继续提交
@@ -1,8 +1,7 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://bkivlkirrx6u8"]
|
||||
[gd_scene load_steps=8 format=3 uid="uid://bkivlkirrx6u8"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://bt1i2yhhlor5e" path="res://assets/地块/土块1.webp" id="1_bns1c"]
|
||||
[ext_resource type="Shader" path="res://Shader/PlantSwayShader.gdshader" id="2_s5pb0"]
|
||||
[ext_resource type="Texture2D" uid="uid://xyj4ro44cwj5" path="res://assets/作物/人参/0.webp" id="3_bns1c"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_v46ok"]
|
||||
|
||||
@@ -34,6 +33,7 @@ corner_radius_bottom_left = 15
|
||||
corner_detail = 15
|
||||
|
||||
[node name="CropItem" type="Button"]
|
||||
self_modulate = Color(1, 1, 1, 0)
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
@@ -49,7 +49,6 @@ texture = ExtResource("1_bns1c")
|
||||
material = SubResource("ShaderMaterial_s5pb0")
|
||||
position = Vector2(51, 45)
|
||||
scale = Vector2(0.339844, 0.363281)
|
||||
texture = ExtResource("3_bns1c")
|
||||
|
||||
[node name="old_crop_sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_s5pb0")
|
||||
@@ -57,6 +56,7 @@ position = Vector2(51, 39)
|
||||
scale = Vector2(0.06, 0.06)
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="."]
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_cyybs")
|
||||
layout_mode = 2
|
||||
offset_left = 18.0
|
||||
@@ -81,7 +81,6 @@ offset_bottom = 118.0
|
||||
scale = Vector2(0.4, 0.4)
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 30
|
||||
text = "[空地]"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
@@ -94,6 +93,5 @@ offset_bottom = 131.0
|
||||
scale = Vector2(0.2, 0.2)
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 50
|
||||
text = "[已施肥]"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
@@ -5,8 +5,9 @@ const client_version :String = "2.0.1" #记录客户端版本
|
||||
var isZoomDisabled :bool = false
|
||||
|
||||
const server_configs = [
|
||||
{"host": "127.0.0.1", "port": 6060, "name": "本地"},
|
||||
#{"host": "127.0.0.1", "port": 6060, "name": "本地"},
|
||||
#{"host": "192.168.31.233", "port": 6060, "name": "家里面局域网"},
|
||||
{"host": "192.168.31.205", "port": 6060, "name": "家里面电脑"},
|
||||
#{"host": "192.168.1.110", "port": 4040, "name": "萌芽局域网"},
|
||||
#{"host": "47.108.90.0", "port": 4040, "name": "成都内网穿透"}#成都内网穿透
|
||||
#{"host": "47.108.90.0", "port": 6060, "name": "成都公网"}#成都服务器
|
||||
|
||||
2092
MainGame.gd
1427
MainGame.tscn
@@ -70,7 +70,6 @@ func _update_connection_status():
|
||||
if not is_connected:
|
||||
is_connected = true
|
||||
tcp.set_no_delay(true) # 禁用Nagle算法提高响应速度
|
||||
print("已连接到服务器")
|
||||
emit_signal("connected_to_server")
|
||||
|
||||
StreamPeerTCP.STATUS_ERROR:
|
||||
@@ -109,11 +108,8 @@ func _process_buffer():
|
||||
|
||||
if error == OK:
|
||||
var data = json.get_data()
|
||||
#print("收到JSON数据: ", data)
|
||||
emit_signal("data_received", data)
|
||||
else:
|
||||
# 非JSON格式数据,直接传递
|
||||
#print("收到原始数据: ", message_text)
|
||||
emit_signal("data_received", message_text)
|
||||
|
||||
func send_data(data):
|
||||
|
||||
@@ -9,20 +9,33 @@ extends Panel
|
||||
@onready var response_label = $Scroll/ResponseLabel
|
||||
@onready var connection_button = $ConnectionButton
|
||||
|
||||
#所有面板
|
||||
#==========================所有面板=================================
|
||||
#大面板
|
||||
@onready var main_game = get_node("/root/main")
|
||||
@onready var lucky_draw_panel: LuckyDrawPanel = $'../LuckyDrawPanel'
|
||||
@onready var daily_check_in_panel: DailyCheckInPanel = $'../DailyCheckInPanel'
|
||||
@onready var item_store_panel: Panel = $'../ItemStorePanel'
|
||||
@onready var item_bag_panel: Panel = $'../ItemBagPanel'
|
||||
@onready var player_bag_panel: Panel = $'../PlayerBagPanel'
|
||||
@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel'
|
||||
@onready var crop_store_panel: Panel = $'../CropStorePanel'
|
||||
@onready var player_ranking_panel: Panel = $'../PlayerRankingPanel'
|
||||
@onready var item_store_panel: Panel = $'../ItemStorePanel'
|
||||
@onready var crop_warehouse_panel: Panel = $'../CropWarehousePanel'
|
||||
@onready var login_panel: PanelContainer = $'../LoginPanel'
|
||||
@onready var player_bag_panel: Panel = $'../PlayerBagPanel'
|
||||
@onready var crop_store_panel: Panel = $'../CropStorePanel'
|
||||
@onready var item_bag_panel: Panel = $'../ItemBagPanel'
|
||||
@onready var pet_store_panel: Panel = $'../PetStorePanel'
|
||||
@onready var pet_bag_panel: Panel = $'../PetBagPanel'
|
||||
@onready var pet_fight_panel: Panel = $'../PetFightPanel'
|
||||
#小面板
|
||||
@onready var land_panel: Panel = $'../../SmallPanel/LandPanel'
|
||||
@onready var load_progress_panel: Panel = $'../../SmallPanel/LoadProgressPanel'
|
||||
@onready var account_setting_panel: Panel = $'../../SmallPanel/AccountSettingPanel'
|
||||
@onready var one_click_plant_panel: Panel = $'../../SmallPanel/OneClickPlantPanel'
|
||||
@onready var online_gift_panel: Panel = $'../../SmallPanel/OnlineGiftPanel'
|
||||
@onready var debug_panel: Panel = $'../../SmallPanel/DebugPanel'
|
||||
@onready var pet_inform_panel: Panel = $'../../SmallPanel/PetInformPanel'
|
||||
@onready var global_server_broadcast_panel: Panel = $'../../SmallPanel/GlobalServerBroadcastPanel'
|
||||
@onready var scare_crow_panel: Panel = $'../../SmallPanel/ScareCrowPanel'
|
||||
@onready var wisdom_tree_panel: Panel = $'../../SmallPanel/WisdomTreePanel'
|
||||
|
||||
|
||||
#==========================所有面板=================================
|
||||
|
||||
# TCP客户端
|
||||
var client: TCPClient = TCPClient.new()
|
||||
@@ -81,8 +94,8 @@ func _process(delta):
|
||||
connection_button.text = "连接"
|
||||
|
||||
# 通知主游戏更新在线人数显示
|
||||
if main_game and main_game.has_method("_update_online_players_display"):
|
||||
main_game._update_online_players_display(0, false, false)
|
||||
|
||||
main_game._update_online_players_display(0, false, false)
|
||||
|
||||
# 处理延迟测量
|
||||
if client.is_client_connected():
|
||||
@@ -109,9 +122,10 @@ func _process(delta):
|
||||
# 更新状态显示
|
||||
update_connection_status()
|
||||
|
||||
#连接成功后处理
|
||||
func _on_connected():
|
||||
print("成功连接到服务器: ", server_configs[current_server_index]["name"])
|
||||
status_label.text = "已连接 ..."
|
||||
status_label.text = "已连接"
|
||||
status_label.modulate = Color.GREEN
|
||||
connection_button.text = "断开"
|
||||
is_trying_to_connect = false
|
||||
@@ -128,6 +142,7 @@ func _on_connected():
|
||||
"content": "你好,服务器!"
|
||||
})
|
||||
|
||||
#===================请求数据=======================
|
||||
# 连接成功后立即请求作物数据
|
||||
sendGetCropData()
|
||||
|
||||
@@ -139,7 +154,10 @@ func _on_connected():
|
||||
|
||||
# 立即开始第一次ping测量
|
||||
send_ping()
|
||||
#===================请求数据=======================
|
||||
|
||||
|
||||
#连接失败后处理
|
||||
func _on_connection_failed():
|
||||
print("连接失败: ", server_configs[current_server_index]["name"])
|
||||
status_label.text = "连接失败 - " + server_configs[current_server_index]["name"]
|
||||
@@ -154,8 +172,10 @@ func _on_connection_failed():
|
||||
|
||||
# 通知主游戏更新在线人数显示
|
||||
main_game._update_online_players_display(0, false, false)
|
||||
# 通知主游戏连接已断开,显示登录面板,以便重新登录
|
||||
main_game._on_connection_lost()
|
||||
|
||||
|
||||
#连接断开后处理
|
||||
func _on_connection_closed():
|
||||
print("连接断开: ", server_configs[current_server_index]["name"])
|
||||
status_label.text = "连接断开 "
|
||||
@@ -169,418 +189,310 @@ func _on_connection_closed():
|
||||
ping_timer = 0.0
|
||||
|
||||
# 通知主游戏更新在线人数显示
|
||||
if main_game and main_game.has_method("_update_online_players_display"):
|
||||
main_game._update_online_players_display(0, false, false)
|
||||
|
||||
# 通知主游戏连接已断开,显示登录面板
|
||||
main_game._update_online_players_display(0, false, false)
|
||||
# 通知主游戏连接已断开,显示登录面板,以便重新登录
|
||||
main_game._on_connection_lost()
|
||||
|
||||
|
||||
#=========================客户端与服务端通信核心=========================================
|
||||
# ============================= 客户端与服务端通信核心 =====================================
|
||||
func _on_data_received(data):
|
||||
# 根据数据类型处理数据
|
||||
response_label.text = "收到: %s" % JSON.stringify(data)
|
||||
match typeof(data):
|
||||
|
||||
# 只处理字典类型的数据
|
||||
if typeof(data) != TYPE_DICTIONARY:
|
||||
return
|
||||
|
||||
var message_type = data.get("type", "")
|
||||
|
||||
# 基础消息类型
|
||||
if message_type == "ping" || message_type == "response":
|
||||
return
|
||||
|
||||
# 登录相关消息
|
||||
if message_type == "login_response":
|
||||
var status = data.get("status", "")
|
||||
var message = data.get("message", "")
|
||||
var player_data = data.get("player_data", {})
|
||||
login_panel._on_login_response_received(status == "success", message, player_data)
|
||||
return
|
||||
|
||||
if message_type == "register_response":
|
||||
var status = data.get("status", "")
|
||||
var message = data.get("message", "")
|
||||
login_panel._on_register_response_received(status == "success", message)
|
||||
return
|
||||
|
||||
if message_type == "verification_code_response":
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
login_panel._on_verification_code_response(success, message)
|
||||
return
|
||||
|
||||
if message_type == "verify_code_response":
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
login_panel._on_verify_code_response(success, message)
|
||||
return
|
||||
|
||||
# 游戏数据更新消息
|
||||
if message_type == "crop_update":
|
||||
main_game._handle_crop_update(data)
|
||||
return
|
||||
|
||||
# 玩家操作响应消息
|
||||
if message_type == "action_response":
|
||||
var action_type = data.get("action_type", "")
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
var updated_data = data.get("updated_data", {})
|
||||
|
||||
# 收获作物响应
|
||||
if action_type == "harvest_crop":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.experience = updated_data["experience"]
|
||||
main_game.level = updated_data["level"]
|
||||
main_game.stamina = updated_data["体力值"]
|
||||
main_game.crop_warehouse = updated_data["作物仓库"]
|
||||
main_game._update_ui()
|
||||
main_game.crop_warehouse_panel.update_crop_warehouse_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 种植作物响应
|
||||
elif action_type == "plant_crop":
|
||||
if success:
|
||||
main_game.player_bag = updated_data["player_bag"]
|
||||
main_game.player_bag_panel.update_player_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 购买种子响应
|
||||
elif action_type == "buy_seed":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.player_bag = updated_data["player_bag"]
|
||||
main_game._update_ui()
|
||||
main_game.player_bag_panel.update_player_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 购买道具响应
|
||||
elif action_type == "buy_item":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.item_bag = updated_data["道具背包"]
|
||||
main_game._update_ui()
|
||||
main_game.item_bag_panel.update_item_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 购买宠物响应
|
||||
elif action_type == "buy_pet":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.pet_bag = updated_data["宠物背包"]
|
||||
main_game._update_ui()
|
||||
main_game.pet_bag_panel.update_pet_bag_ui()
|
||||
Toast.show(message, Color.MAGENTA)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 重命名宠物响应
|
||||
elif action_type == "rename_pet":
|
||||
if success:
|
||||
main_game.pet_bag = updated_data["宠物背包"]
|
||||
main_game.pet_bag_panel.update_pet_bag_ui()
|
||||
|
||||
var pet_id = data.get("pet_id", "")
|
||||
var new_name = data.get("new_name", "")
|
||||
pet_inform_panel.on_rename_pet_success(pet_id, new_name)
|
||||
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 设置巡逻宠物响应
|
||||
elif action_type == "set_patrol_pet":
|
||||
if success:
|
||||
main_game.patrol_pets = updated_data["巡逻宠物"]
|
||||
main_game.update_patrol_pets()
|
||||
pet_inform_panel._refresh_patrol_button()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 使用道具响应
|
||||
elif action_type == "use_item":
|
||||
if success:
|
||||
main_game.item_bag = updated_data["道具背包"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game.experience = updated_data["experience"]
|
||||
main_game.level = updated_data["level"]
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
main_game.item_bag_panel.update_item_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 开垦土地响应
|
||||
elif action_type == "dig_ground":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.experience = updated_data["experience"]
|
||||
main_game.level = updated_data["level"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game.player_bag = updated_data["player_bag"]
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
main_game.player_bag_panel.update_player_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 铲除作物响应
|
||||
elif action_type == "remove_crop":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 浇水响应
|
||||
elif action_type == "water_crop":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game.experience = updated_data["experience"]
|
||||
main_game.level = updated_data["level"]
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.CYAN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 施肥响应
|
||||
elif action_type == "fertilize_crop":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game.experience = updated_data["experience"]
|
||||
main_game.level = updated_data["level"]
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.PURPLE)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 升级土地响应
|
||||
elif action_type == "upgrade_land":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.GOLD)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 添加新土地响应
|
||||
elif action_type == "buy_new_ground":
|
||||
if success:
|
||||
main_game.money = updated_data["money"]
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
main_game._create_farm_buttons()
|
||||
main_game._update_farm_lots_state()
|
||||
main_game._update_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
return
|
||||
|
||||
# 游戏功能响应消息
|
||||
if message_type == "play_time_response":
|
||||
main_game._handle_play_time_response(data)
|
||||
elif message_type == "player_rankings_response":
|
||||
main_game._handle_player_rankings_response(data)
|
||||
elif message_type == "crop_data_response":
|
||||
main_game._handle_crop_data_response(data)
|
||||
elif message_type == "item_config_response":
|
||||
main_game._handle_item_config_response(data)
|
||||
elif message_type == "visit_player_response":
|
||||
main_game._handle_visit_player_response(data)
|
||||
elif message_type == "return_my_farm_response":
|
||||
main_game._handle_return_my_farm_response(data)
|
||||
elif message_type == "like_player_response":
|
||||
main_game._handle_like_player_response(data)
|
||||
elif message_type == "online_players_response":
|
||||
main_game._handle_online_players_response(data)
|
||||
elif message_type == "daily_check_in_response":
|
||||
main_game._handle_daily_check_in_response(data)
|
||||
elif message_type == "check_in_data_response":
|
||||
main_game._handle_check_in_data_response(data)
|
||||
elif message_type == "lucky_draw_response":
|
||||
main_game._handle_lucky_draw_response(data)
|
||||
elif message_type == "new_player_gift_response":
|
||||
main_game._handle_new_player_gift_response(data)
|
||||
elif message_type == "online_gift_data_response":
|
||||
main_game._handle_online_gift_data_response(data)
|
||||
elif message_type == "claim_online_gift_response":
|
||||
main_game._handle_claim_online_gift_response(data)
|
||||
elif message_type == "pong":
|
||||
handle_pong_response(data)
|
||||
elif message_type == "modify_account_info_response":
|
||||
main_game._handle_account_setting_response(data)
|
||||
elif message_type == "delete_account_response":
|
||||
main_game._handle_account_setting_response(data)
|
||||
elif message_type == "refresh_player_info_response":
|
||||
main_game._handle_account_setting_response(data)
|
||||
elif message_type == "steal_caught":
|
||||
main_game._handle_steal_caught_response(data)
|
||||
elif message_type == "global_broadcast_message":
|
||||
main_game._handle_global_broadcast_message(data)
|
||||
elif message_type == "global_broadcast_response":
|
||||
main_game._handle_global_broadcast_response(data)
|
||||
elif message_type == "broadcast_history_response":
|
||||
main_game._handle_broadcast_history_response(data)
|
||||
elif message_type == "use_pet_item_response":
|
||||
main_game._handle_use_pet_item_response(data)
|
||||
elif message_type == "use_farm_item_response":
|
||||
main_game._handle_use_farm_item_response(data)
|
||||
elif message_type == "buy_scare_crow_response":
|
||||
main_game._handle_buy_scare_crow_response(data)
|
||||
elif message_type == "modify_scare_crow_config_response":
|
||||
main_game._handle_modify_scare_crow_config_response(data)
|
||||
elif message_type == "get_scare_crow_config_response":
|
||||
main_game._handle_get_scare_crow_config_response(data)
|
||||
|
||||
# 智慧树相关响应
|
||||
elif message_type == "wisdom_tree_operation_response":
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
var operation_type = data.get("operation_type", "")
|
||||
var updated_data = data.get("updated_data", {})
|
||||
wisdom_tree_panel.handle_wisdom_tree_operation_response(success, message, operation_type, updated_data)
|
||||
|
||||
elif message_type == "wisdom_tree_message_response":
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
var updated_data = data.get("updated_data", {})
|
||||
wisdom_tree_panel.handle_wisdom_tree_message_response(success, message, updated_data)
|
||||
|
||||
elif message_type == "wisdom_tree_config_response":
|
||||
main_game._handle_wisdom_tree_config_response(data)
|
||||
# ============================= 客户端与服务端通信核心 =====================================
|
||||
|
||||
TYPE_DICTIONARY:
|
||||
# 处理JSON对象
|
||||
var message_type = data.get("type", "")
|
||||
|
||||
match message_type:
|
||||
"ping": #ping是否在线
|
||||
return
|
||||
"response": #服务器通用响应
|
||||
return
|
||||
"login_response": #登录响应
|
||||
var status = data.get("status", "")
|
||||
var message = data.get("message", "")
|
||||
var player_data = data.get("player_data", {})
|
||||
if login_panel:
|
||||
login_panel._on_login_response_received(status == "success", message, player_data)
|
||||
"register_response": #注册响应
|
||||
var status = data.get("status", "")
|
||||
var message = data.get("message", "")
|
||||
if login_panel:
|
||||
login_panel._on_register_response_received(status == "success", message)
|
||||
"verification_code_response": #验证码发送响应
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
if login_panel:
|
||||
login_panel._on_verification_code_response(success, message)
|
||||
"verify_code_response": #验证码验证响应
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
if login_panel:
|
||||
login_panel._on_verify_code_response(success, message)
|
||||
"crop_update": #作物更新响应
|
||||
if main_game:
|
||||
main_game._handle_crop_update(data)
|
||||
"action_response": #玩家操作响应
|
||||
if main_game:
|
||||
# 处理玩家动作到服务端响应消息
|
||||
var action_type = data.get("action_type", "")
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
var updated_data = data.get("updated_data", {})
|
||||
|
||||
match action_type:
|
||||
"harvest_crop":#处理收获作物响应
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("experience"):
|
||||
main_game.experience = updated_data["experience"]
|
||||
if updated_data.has("level"):
|
||||
main_game.level = updated_data["level"]
|
||||
if updated_data.has("体力值"):
|
||||
main_game.stamina = updated_data["体力值"]
|
||||
if updated_data.has("作物仓库"):
|
||||
main_game.crop_warehouse = updated_data["作物仓库"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
# 更新作物仓库UI
|
||||
if main_game.crop_warehouse_panel:
|
||||
main_game.crop_warehouse_panel.update_crop_warehouse_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"plant_crop":#处理种植作物响应
|
||||
if success:
|
||||
# 更新玩家背包
|
||||
if updated_data.has("player_bag"):
|
||||
main_game.player_bag = updated_data["player_bag"]
|
||||
|
||||
# 更新玩家背包UI
|
||||
main_game.player_bag_panel.update_player_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"buy_seed":#处理购买种子响应
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("player_bag"):
|
||||
main_game.player_bag = updated_data["player_bag"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
main_game.player_bag_panel.update_player_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"buy_item":#处理购买道具响应
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("道具背包"):
|
||||
main_game.item_bag = updated_data["道具背包"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
if main_game.item_bag_panel:
|
||||
main_game.item_bag_panel.update_item_bag_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"buy_pet":#处理购买宠物响应
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("宠物背包"):
|
||||
main_game.pet_bag = updated_data["宠物背包"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
if main_game.pet_bag_panel:
|
||||
main_game.pet_bag_panel.update_pet_bag_ui()
|
||||
Toast.show(message, Color.MAGENTA)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"rename_pet":#处理重命名宠物响应
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("宠物背包"):
|
||||
main_game.pet_bag = updated_data["宠物背包"]
|
||||
|
||||
# 更新UI
|
||||
if main_game.pet_bag_panel:
|
||||
main_game.pet_bag_panel.update_pet_bag_ui()
|
||||
|
||||
# 通知宠物信息面板更新
|
||||
var pet_inform_panel = get_node_or_null("/root/main/BigPanel/SmallPanel/PetInformPanel")
|
||||
if pet_inform_panel and pet_inform_panel.has_method("on_rename_pet_success"):
|
||||
var pet_id = data.get("pet_id", "")
|
||||
var new_name = data.get("new_name", "")
|
||||
pet_inform_panel.on_rename_pet_success(pet_id, new_name)
|
||||
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"set_patrol_pet":#处理设置巡逻宠物响应
|
||||
if success:
|
||||
# 更新巡逻宠物数据
|
||||
if updated_data.has("巡逻宠物"):
|
||||
main_game.patrol_pets = updated_data["巡逻宠物"]
|
||||
|
||||
# 更新巡逻宠物显示
|
||||
if main_game.has_method("update_patrol_pets"):
|
||||
main_game.update_patrol_pets()
|
||||
|
||||
# 更新巡逻按钮状态
|
||||
var pet_inform_panel = get_node_or_null("/root/main/BigPanel/SmallPanel/PetInformPanel")
|
||||
if pet_inform_panel and pet_inform_panel.has_method("_refresh_patrol_button"):
|
||||
pet_inform_panel._refresh_patrol_button()
|
||||
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"use_item":#处理使用道具响应
|
||||
print("调试:收到道具使用响应")
|
||||
print(" - success: ", success)
|
||||
print(" - message: ", message)
|
||||
print(" - updated_data: ", updated_data)
|
||||
|
||||
if success:
|
||||
print("调试:道具使用成功,开始更新数据")
|
||||
# 更新玩家数据
|
||||
if updated_data.has("道具背包"):
|
||||
main_game.item_bag = updated_data["道具背包"]
|
||||
print("调试:更新道具背包")
|
||||
if updated_data.has("farm_lots"):
|
||||
print("调试:更新地块数据")
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
if updated_data.has("experience"):
|
||||
main_game.experience = updated_data["experience"]
|
||||
print("调试:更新经验值: ", main_game.experience)
|
||||
if updated_data.has("level"):
|
||||
main_game.level = updated_data["level"]
|
||||
print("调试:更新等级: ", main_game.level)
|
||||
|
||||
# 更新UI
|
||||
print("调试:开始更新UI")
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
if main_game.item_bag_panel:
|
||||
main_game.item_bag_panel.update_item_bag_ui()
|
||||
print("调试:UI更新完成")
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
print("错误:道具使用失败: ", message)
|
||||
Toast.show(message, Color.RED)
|
||||
"dig_ground":#处理开垦土地
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("experience"):
|
||||
main_game.experience = updated_data["experience"]
|
||||
if updated_data.has("level"):
|
||||
main_game.level = updated_data["level"]
|
||||
if updated_data.has("farm_lots"):
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
if updated_data.has("player_bag"):
|
||||
main_game.player_bag = updated_data["player_bag"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
# 更新背包UI
|
||||
if main_game.player_bag_panel:
|
||||
main_game.player_bag_panel.update_player_bag_ui()
|
||||
Toast.show(message, Color.GREEN, 3.0, 1.0)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"remove_crop":#处理铲除作物
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("farm_lots"):
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"water_crop":#处理浇水
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("farm_lots"):
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
if updated_data.has("experience"):
|
||||
main_game.experience = updated_data["experience"]
|
||||
if updated_data.has("level"):
|
||||
main_game.level = updated_data["level"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.CYAN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"fertilize_crop":#处理施肥
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("farm_lots"):
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
if updated_data.has("experience"):
|
||||
main_game.experience = updated_data["experience"]
|
||||
if updated_data.has("level"):
|
||||
main_game.level = updated_data["level"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.PURPLE)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"upgrade_land":#处理升级土地
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("farm_lots"):
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
|
||||
# 更新UI
|
||||
main_game._update_ui()
|
||||
main_game._update_farm_lots_state()
|
||||
Toast.show(message, Color.GOLD)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"buy_new_ground":#处理添加新土地
|
||||
if success:
|
||||
# 更新玩家数据
|
||||
if updated_data.has("money"):
|
||||
main_game.money = updated_data["money"]
|
||||
if updated_data.has("farm_lots"):
|
||||
main_game.farm_lots = updated_data["farm_lots"]
|
||||
|
||||
# 重新创建UI来显示新地块
|
||||
main_game._create_farm_buttons()
|
||||
main_game._update_farm_lots_state()
|
||||
main_game._update_ui()
|
||||
Toast.show(message, Color.GREEN)
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
"play_time_response": #游玩时间统计响应
|
||||
if main_game and main_game.has_method("_handle_play_time_response"):
|
||||
main_game._handle_play_time_response(data)
|
||||
"player_rankings_response": #玩家排行榜响应
|
||||
if main_game and main_game.has_method("_handle_player_rankings_response"):
|
||||
main_game._handle_player_rankings_response(data)
|
||||
"crop_data_response": #作物数据更新响应
|
||||
if main_game and main_game.has_method("_handle_crop_data_response"):
|
||||
main_game._handle_crop_data_response(data)
|
||||
"item_config_response": #道具配置数据响应
|
||||
if main_game and main_game.has_method("_handle_item_config_response"):
|
||||
main_game._handle_item_config_response(data)
|
||||
"visit_player_response": #访问玩家响应
|
||||
if main_game and main_game.has_method("_handle_visit_player_response"):
|
||||
main_game._handle_visit_player_response(data)
|
||||
"return_my_farm_response": #返回我的农场响应
|
||||
if main_game and main_game.has_method("_handle_return_my_farm_response"):
|
||||
main_game._handle_return_my_farm_response(data)
|
||||
"like_player_response": #点赞玩家响应
|
||||
if main_game and main_game.has_method("_handle_like_player_response"):
|
||||
main_game._handle_like_player_response(data)
|
||||
"online_players_response": #玩家在线响应
|
||||
if main_game and main_game.has_method("_handle_online_players_response"):
|
||||
main_game._handle_online_players_response(data)
|
||||
"daily_check_in_response": #每日签到响应
|
||||
if main_game and main_game.has_method("_handle_daily_check_in_response"):
|
||||
main_game._handle_daily_check_in_response(data)
|
||||
"check_in_data_response": #获取签到数据响应
|
||||
if main_game and main_game.has_method("_handle_check_in_data_response"):
|
||||
main_game._handle_check_in_data_response(data)
|
||||
"lucky_draw_response": #幸运抽奖响应
|
||||
if main_game and main_game.has_method("_handle_lucky_draw_response"):
|
||||
main_game._handle_lucky_draw_response(data)
|
||||
"new_player_gift_response": #新手大礼包响应
|
||||
if main_game and main_game.has_method("_handle_new_player_gift_response"):
|
||||
main_game._handle_new_player_gift_response(data)
|
||||
"online_gift_data_response": #在线礼包数据响应
|
||||
if main_game and main_game.has_method("_handle_online_gift_data_response"):
|
||||
main_game._handle_online_gift_data_response(data)
|
||||
"claim_online_gift_response": #领取在线礼包响应
|
||||
if main_game and main_game.has_method("_handle_claim_online_gift_response"):
|
||||
main_game._handle_claim_online_gift_response(data)
|
||||
"pong": #延迟检测响应
|
||||
handle_pong_response(data)
|
||||
"modify_account_info_response": #修改账号信息响应
|
||||
if main_game and main_game.has_method("_handle_account_setting_response"):
|
||||
main_game._handle_account_setting_response(data)
|
||||
"delete_account_response": #删除账号响应
|
||||
if main_game and main_game.has_method("_handle_account_setting_response"):
|
||||
main_game._handle_account_setting_response(data)
|
||||
"refresh_player_info_response": #刷新玩家信息响应
|
||||
if main_game and main_game.has_method("_handle_account_setting_response"):
|
||||
main_game._handle_account_setting_response(data)
|
||||
"steal_caught": #偷菜被发现响应
|
||||
if main_game and main_game.has_method("_handle_steal_caught_response"):
|
||||
main_game._handle_steal_caught_response(data)
|
||||
"global_broadcast_message": #全服大喇叭消息
|
||||
if main_game and main_game.has_method("_handle_global_broadcast_message"):
|
||||
main_game._handle_global_broadcast_message(data)
|
||||
"global_broadcast_response": #全服大喇叭发送响应
|
||||
if main_game and main_game.has_method("_handle_global_broadcast_response"):
|
||||
main_game._handle_global_broadcast_response(data)
|
||||
"broadcast_history_response": #全服大喇叭历史消息响应
|
||||
if main_game and main_game.has_method("_handle_broadcast_history_response"):
|
||||
main_game._handle_broadcast_history_response(data)
|
||||
"use_pet_item_response": #宠物使用道具响应
|
||||
if main_game and main_game.has_method("_handle_use_pet_item_response"):
|
||||
main_game._handle_use_pet_item_response(data)
|
||||
"use_farm_item_response": #农场道具使用响应
|
||||
if main_game and main_game.has_method("_handle_use_farm_item_response"):
|
||||
main_game._handle_use_farm_item_response(data)
|
||||
"buy_scare_crow_response": #购买稻草人响应
|
||||
if main_game and main_game.has_method("_handle_buy_scare_crow_response"):
|
||||
main_game._handle_buy_scare_crow_response(data)
|
||||
"modify_scare_crow_config_response": #修改稻草人配置响应
|
||||
if main_game and main_game.has_method("_handle_modify_scare_crow_config_response"):
|
||||
main_game._handle_modify_scare_crow_config_response(data)
|
||||
"get_scare_crow_config_response": #获取稻草人配置响应
|
||||
if main_game and main_game.has_method("_handle_get_scare_crow_config_response"):
|
||||
main_game._handle_get_scare_crow_config_response(data)
|
||||
"wisdom_tree_operation_response": #智慧树操作响应
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
var operation_type = data.get("operation_type", "")
|
||||
var updated_data = data.get("updated_data", {})
|
||||
|
||||
if wisdom_tree_panel and wisdom_tree_panel.has_method("handle_wisdom_tree_operation_response"):
|
||||
wisdom_tree_panel.handle_wisdom_tree_operation_response(success, message, operation_type, updated_data)
|
||||
"wisdom_tree_message_response": #智慧树消息发送响应
|
||||
var success = data.get("success", false)
|
||||
var message = data.get("message", "")
|
||||
var updated_data = data.get("updated_data", {})
|
||||
|
||||
if wisdom_tree_panel and wisdom_tree_panel.has_method("handle_wisdom_tree_message_response"):
|
||||
wisdom_tree_panel.handle_wisdom_tree_message_response(success, message, updated_data)
|
||||
"wisdom_tree_config_response": #智慧树配置响应
|
||||
if main_game and main_game.has_method("_handle_wisdom_tree_config_response"):
|
||||
main_game._handle_wisdom_tree_config_response(data)
|
||||
_:
|
||||
# 显示其他类型的消息
|
||||
return
|
||||
_:
|
||||
# 处理非JSON数据
|
||||
return
|
||||
#=========================客户端与服务端通信核心=========================================
|
||||
|
||||
#=====================================网络连接基本处理=========================================
|
||||
|
||||
|
||||
|
||||
@@ -604,15 +516,11 @@ func connect_to_current_server():
|
||||
status_label.text = "正在连接 " + config["name"] + "..."
|
||||
status_label.modulate = Color.YELLOW
|
||||
|
||||
print("=== 尝试连接服务器 ===")
|
||||
print("服务器名称: ", config["name"])
|
||||
print("服务器地址: ", config["host"], ":", config["port"])
|
||||
print("服务器索引: ", current_server_index, "/", server_configs.size() - 1)
|
||||
|
||||
is_trying_to_connect = true
|
||||
connection_start_time = Time.get_unix_time_from_system()
|
||||
|
||||
client.connect_to_server(config["host"], config["port"])
|
||||
|
||||
#手动发送消息处理
|
||||
func _on_send_button_pressed():
|
||||
if not client.is_client_connected():
|
||||
@@ -636,6 +544,7 @@ func _on_send_button_pressed():
|
||||
#=====================================网络操作处理=========================================
|
||||
|
||||
|
||||
|
||||
#=====================================客户端向服务端发送消息处理=========================================
|
||||
#发送登录信息
|
||||
func sendLoginInfo(username, password):
|
||||
@@ -1180,8 +1089,7 @@ func handle_pong_response(data = null):
|
||||
var current_time = Time.get_unix_time_from_system()
|
||||
current_ping = int((current_time - ping_start_time) * 1000) # 转换为毫秒
|
||||
is_measuring_ping = false
|
||||
#print("延迟: ", current_ping, "ms")
|
||||
|
||||
|
||||
# 更新连接状态显示
|
||||
update_connection_status()
|
||||
|
||||
|
||||
@@ -1,28 +1,55 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dbfqu87627yg6"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dbfqu87627yg6"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fk4q3x6uqydd" path="res://Script/BigPanel/PlayerRankingPanel.gd" id="1_efhd6"]
|
||||
[ext_resource type="PackedScene" uid="uid://crd28qnymob7" path="res://GUI/PlayerRankingItem.tscn" id="1_xwp76"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_efhd6"]
|
||||
border_width_left = 10
|
||||
border_width_top = 10
|
||||
border_width_right = 10
|
||||
border_width_bottom = 10
|
||||
corner_radius_top_left = 20
|
||||
corner_radius_top_right = 20
|
||||
corner_radius_bottom_right = 20
|
||||
corner_radius_bottom_left = 20
|
||||
corner_detail = 20
|
||||
shadow_size = 20
|
||||
|
||||
[node name="PlayerRankingPanel" type="Panel"]
|
||||
offset_left = 2.0
|
||||
offset_right = 1402.0
|
||||
offset_bottom = 720.0
|
||||
offset_left = 59.0
|
||||
offset_top = 37.0
|
||||
offset_right = 1459.0
|
||||
offset_bottom = 757.0
|
||||
scale = Vector2(0.9, 0.9)
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_efhd6")
|
||||
script = ExtResource("1_efhd6")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -171.0
|
||||
offset_top = -109.0
|
||||
offset_right = 1582.0
|
||||
offset_bottom = 792.0
|
||||
color = Color(1, 1, 1, 0)
|
||||
|
||||
[node name="RegisterPlayerNum" type="Label" parent="."]
|
||||
self_modulate = Color(1, 0.701961, 1, 1)
|
||||
layout_mode = 0
|
||||
offset_left = 864.0
|
||||
offset_right = 1014.0
|
||||
offset_bottom = 42.0
|
||||
offset_left = 841.25
|
||||
offset_top = 18.75
|
||||
offset_right = 991.25
|
||||
offset_bottom = 60.75
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 15
|
||||
theme_override_font_sizes/font_size = 30
|
||||
text = "注册人数:"
|
||||
|
||||
[node name="Title" type="RichTextLabel" parent="."]
|
||||
layout_mode = 2
|
||||
offset_left = 2.0
|
||||
offset_right = 1395.0
|
||||
offset_bottom = 56.0
|
||||
offset_left = 7.49999
|
||||
offset_top = 18.75
|
||||
offset_right = 1400.5
|
||||
offset_bottom = 74.75
|
||||
size_flags_vertical = 3
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||
@@ -37,47 +64,49 @@ horizontal_alignment = 1
|
||||
|
||||
[node name="SearchLineEdit" type="LineEdit" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 143.0
|
||||
offset_top = 3.0
|
||||
offset_right = 426.0
|
||||
offset_bottom = 60.0
|
||||
offset_left = 95.0
|
||||
offset_top = 21.25
|
||||
offset_right = 378.0
|
||||
offset_bottom = 78.25
|
||||
theme_override_font_sizes/font_size = 35
|
||||
text = "输入要搜索的人"
|
||||
|
||||
[node name="RefreshButton" type="Button" parent="."]
|
||||
custom_minimum_size = Vector2(55, 55)
|
||||
layout_mode = 0
|
||||
offset_top = 3.0
|
||||
offset_right = 78.0
|
||||
offset_bottom = 60.0
|
||||
offset_left = 16.25
|
||||
offset_top = 21.25
|
||||
offset_right = 94.25
|
||||
offset_bottom = 78.25
|
||||
theme_override_font_sizes/font_size = 35
|
||||
text = "刷新"
|
||||
|
||||
[node name="SearchButton" type="Button" parent="."]
|
||||
custom_minimum_size = Vector2(55, 55)
|
||||
layout_mode = 0
|
||||
offset_left = 425.0
|
||||
offset_top = 3.0
|
||||
offset_right = 503.0
|
||||
offset_bottom = 60.0
|
||||
offset_left = 377.5
|
||||
offset_top = 21.25
|
||||
offset_right = 455.5
|
||||
offset_bottom = 78.25
|
||||
theme_override_font_sizes/font_size = 35
|
||||
text = "搜索"
|
||||
|
||||
[node name="QuitButton" type="Button" parent="."]
|
||||
custom_minimum_size = Vector2(55, 55)
|
||||
layout_mode = 0
|
||||
offset_left = 1338.0
|
||||
offset_top = 3.0
|
||||
offset_right = 1395.0
|
||||
offset_bottom = 60.0
|
||||
offset_left = 1326.25
|
||||
offset_top = 16.25
|
||||
offset_right = 1383.25
|
||||
offset_bottom = 73.25
|
||||
theme_override_font_sizes/font_size = 35
|
||||
text = "X"
|
||||
|
||||
[node name="FiterAndSortHBox" type="HBoxContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_top = 63.0
|
||||
offset_right = 1398.0
|
||||
offset_bottom = 120.0
|
||||
offset_left = 7.50001
|
||||
offset_top = 105.0
|
||||
offset_right = 1388.5
|
||||
offset_bottom = 162.0
|
||||
|
||||
[node name="SortLabel" type="Label" parent="FiterAndSortHBox"]
|
||||
layout_mode = 2
|
||||
@@ -138,9 +167,10 @@ text = "在线情况"
|
||||
|
||||
[node name="Scroll" type="ScrollContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 121.0
|
||||
offset_right = 1400.0
|
||||
offset_bottom = 720.0
|
||||
offset_left = 14.0
|
||||
offset_top = 171.0
|
||||
offset_right = 1389.0
|
||||
offset_bottom = 707.0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="PlayerList" type="VBoxContainer" parent="Scroll"]
|
||||
|
||||
@@ -1,27 +1,38 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dckc8nrn7p425"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://dckc8nrn7p425"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bljtkxil64h14" path="res://Script/SmallPanel/LandPanel.gd" id="1_nmy5p"]
|
||||
[ext_resource type="Texture2D" uid="uid://2sdfbvf1isif" path="res://icon.svg" id="2_07q41"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_03j44"]
|
||||
border_width_left = 10
|
||||
border_width_top = 10
|
||||
border_width_right = 10
|
||||
border_width_bottom = 10
|
||||
corner_detail = 20
|
||||
|
||||
[node name="LandPanel" type="Panel"]
|
||||
offset_left = 385.0
|
||||
offset_top = 69.0
|
||||
offset_right = 901.0
|
||||
offset_bottom = 540.0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_03j44")
|
||||
script = ExtResource("1_nmy5p")
|
||||
|
||||
[node name="Quit_Button" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 475.0
|
||||
offset_right = 515.0
|
||||
offset_bottom = 43.0
|
||||
offset_left = 466.0
|
||||
offset_top = 10.0
|
||||
offset_right = 506.0
|
||||
offset_bottom = 53.0
|
||||
theme_override_font_sizes/font_size = 25
|
||||
text = "X"
|
||||
|
||||
[node name="Refresh_Button" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 43.0
|
||||
offset_left = 9.0
|
||||
offset_top = 10.0
|
||||
offset_right = 67.0
|
||||
offset_bottom = 53.0
|
||||
theme_override_font_sizes/font_size = 25
|
||||
text = "刷新"
|
||||
|
||||
@@ -41,18 +52,17 @@ text = "土地面板"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="GroundFunctionGrid" type="GridContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 42.0
|
||||
offset_right = 516.0
|
||||
offset_bottom = 142.0
|
||||
columns = 5
|
||||
[node name="GroundFunctionGrid" type="HBoxContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 9.0
|
||||
offset_top = 84.0
|
||||
offset_right = 505.0
|
||||
offset_bottom = 184.0
|
||||
|
||||
[node name="Dig_Button" type="Button" parent="GroundFunctionGrid"]
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 4
|
||||
size_flags_horizontal = 3
|
||||
theme_override_colors/font_disabled_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_hover_color = Color(0, 0, 0, 1)
|
||||
@@ -68,7 +78,7 @@ expand_icon = true
|
||||
[node name="Plant_Button" type="Button" parent="GroundFunctionGrid"]
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
theme_override_colors/font_disabled_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1)
|
||||
@@ -84,7 +94,7 @@ expand_icon = true
|
||||
[node name="Harvest_Button" type="Button" parent="GroundFunctionGrid"]
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
theme_override_colors/font_disabled_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1)
|
||||
@@ -100,7 +110,7 @@ expand_icon = true
|
||||
[node name="Upgrade_Button" type="Button" parent="GroundFunctionGrid"]
|
||||
custom_minimum_size = Vector2(100, 100)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 4
|
||||
theme_override_colors/font_color = Color(0.0705882, 0.411765, 0.87451, 1)
|
||||
theme_override_colors/font_focus_color = Color(0, 0, 0, 1)
|
||||
@@ -112,9 +122,10 @@ expand_icon = true
|
||||
|
||||
[node name="CropImageVBox" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 280.0
|
||||
offset_right = 512.0
|
||||
offset_bottom = 408.0
|
||||
offset_left = 9.0
|
||||
offset_top = 330.0
|
||||
offset_right = 503.0
|
||||
offset_bottom = 458.0
|
||||
alignment = 1
|
||||
|
||||
[node name="CropTextureRect" type="TextureRect" parent="CropImageVBox"]
|
||||
@@ -127,16 +138,18 @@ stretch_mode = 5
|
||||
|
||||
[node name="InformVBox" type="VBoxContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_top = 142.0
|
||||
offset_right = 1280.0
|
||||
offset_bottom = 483.0
|
||||
offset_left = 9.0
|
||||
offset_top = 197.0
|
||||
offset_right = 1249.0
|
||||
offset_bottom = 479.0
|
||||
scale = Vector2(0.4, 0.4)
|
||||
|
||||
[node name="GroundInformVBox" type="VBoxContainer" parent="InformVBox"]
|
||||
[node name="GroundInformVBox" type="HBoxContainer" parent="InformVBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="GroundLevel" type="Label" parent="InformVBox/GroundInformVBox"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 40
|
||||
text = "土地等级:"
|
||||
horizontal_alignment = 1
|
||||
@@ -144,6 +157,7 @@ vertical_alignment = 1
|
||||
|
||||
[node name="GroundFunction" type="Label" parent="InformVBox/GroundInformVBox"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 40
|
||||
text = "土地功能:"
|
||||
horizontal_alignment = 1
|
||||
@@ -230,7 +244,7 @@ modulate = Color(0.988235, 0.831373, 1, 1)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 40
|
||||
text = "描述:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
|
||||
text = "描述:啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
|
||||
|
||||
[connection signal="pressed" from="Quit_Button" to="." method="_on_quit_button_pressed"]
|
||||
[connection signal="pressed" from="Refresh_Button" to="." method="_on_refresh_button_pressed"]
|
||||
|
||||
@@ -1,28 +1,41 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://4rwitowdt4h"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://4rwitowdt4h"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://rlk8e51pibtm" path="res://Script/SmallPanel/OneClickPlantPanel.gd" id="1_cvoer"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cvoer"]
|
||||
border_width_left = 15
|
||||
border_width_top = 15
|
||||
border_width_right = 15
|
||||
border_width_bottom = 15
|
||||
corner_radius_top_left = 20
|
||||
corner_radius_top_right = 20
|
||||
corner_radius_bottom_right = 20
|
||||
corner_radius_bottom_left = 20
|
||||
corner_detail = 20
|
||||
shadow_size = 20
|
||||
|
||||
[node name="OneClickPlantPanel" type="Panel"]
|
||||
visible = false
|
||||
offset_left = 450.0
|
||||
offset_top = 77.0
|
||||
offset_right = 966.0
|
||||
offset_bottom = 327.0
|
||||
offset_left = 467.0
|
||||
offset_top = 125.0
|
||||
offset_right = 1075.0
|
||||
offset_bottom = 441.0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_cvoer")
|
||||
script = ExtResource("1_cvoer")
|
||||
|
||||
[node name="Quit_Button" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 465.0
|
||||
offset_right = 515.0
|
||||
offset_bottom = 50.0
|
||||
offset_left = 535.0
|
||||
offset_top = 21.0
|
||||
offset_right = 585.0
|
||||
offset_bottom = 71.0
|
||||
theme_override_font_sizes/font_size = 30
|
||||
text = "X"
|
||||
|
||||
[node name="Title" type="Label" parent="."]
|
||||
self_modulate = Color(0.431373, 0.498039, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_right = 516.0
|
||||
offset_bottom = 42.0
|
||||
offset_right = 608.0
|
||||
offset_bottom = 71.0
|
||||
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/shadow_offset_x = 3
|
||||
@@ -36,9 +49,10 @@ vertical_alignment = 1
|
||||
|
||||
[node name="Grid" type="GridContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 46.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 210.0
|
||||
offset_left = 47.0
|
||||
offset_top = 87.0
|
||||
offset_right = 563.0
|
||||
offset_bottom = 291.0
|
||||
columns = 5
|
||||
|
||||
[node name="FullScreenPlantBtn" type="Button" parent="Grid"]
|
||||
|
||||
@@ -1,20 +1,33 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dpiy0aim20n2h"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dpiy0aim20n2h"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ccaqrb6sdwbux" path="res://Script/SmallPanel/OnlineGiftPanel.gd" id="1_i0ga4"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_i0ga4"]
|
||||
border_width_left = 15
|
||||
border_width_top = 15
|
||||
border_width_right = 15
|
||||
border_width_bottom = 15
|
||||
corner_radius_top_left = 20
|
||||
corner_radius_top_right = 20
|
||||
corner_radius_bottom_right = 20
|
||||
corner_radius_bottom_left = 20
|
||||
corner_detail = 20
|
||||
shadow_size = 20
|
||||
|
||||
[node name="OnlineGiftPanel" type="Panel"]
|
||||
visible = false
|
||||
offset_left = 449.0
|
||||
offset_top = 77.0
|
||||
offset_right = 970.0
|
||||
offset_bottom = 327.0
|
||||
offset_left = 395.0
|
||||
offset_top = 140.0
|
||||
offset_right = 1008.0
|
||||
offset_bottom = 474.0
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_i0ga4")
|
||||
script = ExtResource("1_i0ga4")
|
||||
|
||||
[node name="Quit_Button" type="Button" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 465.0
|
||||
offset_right = 515.0
|
||||
offset_bottom = 50.0
|
||||
offset_left = 543.0
|
||||
offset_top = 21.0
|
||||
offset_right = 593.0
|
||||
offset_bottom = 71.0
|
||||
theme_override_font_sizes/font_size = 30
|
||||
text = "X"
|
||||
|
||||
@@ -26,8 +39,8 @@ offset_bottom = 40.0
|
||||
[node name="Title" type="Label" parent="."]
|
||||
modulate = Color(0.996846, 0.629335, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_right = 516.0
|
||||
offset_bottom = 42.0
|
||||
offset_right = 613.0
|
||||
offset_bottom = 65.0
|
||||
theme_override_colors/font_shadow_color = Color(0, 0, 0, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/shadow_offset_x = 3
|
||||
@@ -41,9 +54,10 @@ vertical_alignment = 1
|
||||
|
||||
[node name="Grid" type="GridContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 46.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 210.0
|
||||
offset_left = 49.0
|
||||
offset_top = 93.0
|
||||
offset_right = 565.0
|
||||
offset_bottom = 297.0
|
||||
columns = 5
|
||||
|
||||
[node name="OneMinute" type="Button" parent="Grid"]
|
||||
|
||||
@@ -187,7 +187,7 @@ func _refresh_player_info():
|
||||
user_password_input.text = main_game.user_password if main_game.user_password != "" else ""
|
||||
|
||||
# 优先从 login_data 获取数据,如果没有则从 data 获取
|
||||
var player_data = main_game.login_data if main_game.login_data.size() > 0 else main_game.data
|
||||
var player_data = main_game.login_data #if main_game.login_data.size() > 0 else main_game.data
|
||||
|
||||
player_name_input.text = player_data.get("player_name", "")
|
||||
farm_name_input.text = player_data.get("farm_name", "")
|
||||
|
||||
@@ -435,7 +435,6 @@ func _on_quit_button_pressed():
|
||||
|
||||
#刷新面板信息
|
||||
func _on_refresh_button_pressed() -> void:
|
||||
print("刷新土地面板信息")
|
||||
_update_panel_information()
|
||||
Toast.show("面板信息已刷新", Color.GREEN, 1.5, 1.0)
|
||||
|
||||
|
||||
@@ -105,15 +105,7 @@ func _ready() -> void:
|
||||
func load_wisdom_tree_data():
|
||||
if main_game and main_game.login_data.has("智慧树配置"):
|
||||
wisdom_tree_config = main_game.login_data["智慧树配置"]
|
||||
else:
|
||||
# 如果没有数据,使用默认值
|
||||
wisdom_tree_config = {
|
||||
"智慧树显示的话": "",
|
||||
"等级": 1,
|
||||
"经验": 0,
|
||||
"生命值": 100,
|
||||
"高度": 20
|
||||
}
|
||||
|
||||
|
||||
# 更新UI显示
|
||||
func update_ui():
|
||||
@@ -129,8 +121,6 @@ func update_ui():
|
||||
experience.text = "经验: " + str(current_exp) + "/" + str(max_exp)
|
||||
height.text = "高度: " + str(wisdom_tree_config["高度"]) + "cm"
|
||||
|
||||
# 检查是否处于访问模式
|
||||
var is_visiting_mode = main_game and main_game.is_visiting_mode
|
||||
|
||||
# 根据生命值设置颜色
|
||||
if current_health <= 0:
|
||||
@@ -141,24 +131,14 @@ func update_ui():
|
||||
elif current_health <= max_health * 0.3: # 生命值低于30%
|
||||
health.modulate = Color.ORANGE
|
||||
revive_button.hide()
|
||||
_set_buttons_enabled(not is_visiting_mode) # 访问模式下禁用按钮
|
||||
else:
|
||||
health.modulate = Color.GREEN
|
||||
revive_button.hide()
|
||||
_set_buttons_enabled(not is_visiting_mode) # 访问模式下禁用按钮
|
||||
|
||||
# 访问模式下的特殊处理
|
||||
if is_visiting_mode:
|
||||
revive_button.hide()
|
||||
talk_input.editable = false
|
||||
talk_input.placeholder_text = "访问模式下无法发送消息"
|
||||
send_button.disabled = true
|
||||
send_button.text = "访问模式"
|
||||
else:
|
||||
talk_input.editable = true
|
||||
talk_input.placeholder_text = "在这里输入(*´∀ ˋ*)"
|
||||
send_button.disabled = false
|
||||
send_button.text = "发送"
|
||||
talk_input.editable = true
|
||||
talk_input.placeholder_text = "在这里输入(*´∀ ˋ*)"
|
||||
send_button.disabled = false
|
||||
send_button.text = "发送"
|
||||
|
||||
# 获取下一等级需要的经验
|
||||
func get_next_level_experience() -> int:
|
||||
@@ -198,96 +178,38 @@ func _on_operation_confirmed(operation_type: String):
|
||||
|
||||
# 浇水按钮
|
||||
func _on_water_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法操作智慧树!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if wisdom_tree_config["当前生命值"] <= 0:
|
||||
Toast.show("智慧树已死亡,请先复活!", Color.RED)
|
||||
return
|
||||
|
||||
show_operation_confirm("water", 100, "给智慧树浇水")
|
||||
|
||||
# 施肥按钮
|
||||
func _on_fertilize_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法操作智慧树!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if wisdom_tree_config["当前生命值"] <= 0:
|
||||
Toast.show("智慧树已死亡,请先复活!", Color.RED)
|
||||
return
|
||||
|
||||
show_operation_confirm("fertilize", 200, "给智慧树施肥")
|
||||
|
||||
# 除草按钮
|
||||
func _on_kill_grass_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法操作智慧树!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if wisdom_tree_config["当前生命值"] <= 0:
|
||||
Toast.show("智慧树已死亡,请先复活!", Color.RED)
|
||||
return
|
||||
|
||||
show_operation_confirm("kill_grass", 150, "给智慧树除草")
|
||||
|
||||
# 杀虫按钮
|
||||
func _on_kill_bug_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法操作智慧树!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if wisdom_tree_config["当前生命值"] <= 0:
|
||||
Toast.show("智慧树已死亡,请先复活!", Color.RED)
|
||||
return
|
||||
|
||||
show_operation_confirm("kill_bug", 150, "给智慧树杀虫")
|
||||
|
||||
# 放音乐按钮
|
||||
func _on_play_music_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法操作智慧树!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if wisdom_tree_config["当前生命值"] <= 0:
|
||||
Toast.show("智慧树已死亡,请先复活!", Color.RED)
|
||||
return
|
||||
|
||||
show_operation_confirm("play_music", 100, "给智慧树放音乐")
|
||||
|
||||
# 复活按钮
|
||||
func _on_revive_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法操作智慧树!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if wisdom_tree_config["当前生命值"] > 0:
|
||||
Toast.show("智慧树还活着,不需要复活!", Color.YELLOW)
|
||||
return
|
||||
|
||||
show_operation_confirm("revive", 1000, "复活智慧树")
|
||||
|
||||
# 发送消息按钮
|
||||
func _on_send_button_pressed():
|
||||
# 检查是否处于访问模式
|
||||
if main_game and main_game.is_visiting_mode:
|
||||
Toast.show("访问模式下无法发送消息!", Color.YELLOW)
|
||||
return
|
||||
|
||||
var message = talk_input.text.strip_edges()
|
||||
if message.is_empty():
|
||||
Toast.show("请输入要发送的消息!", Color.YELLOW)
|
||||
return
|
||||
|
||||
if message.length() > 100:
|
||||
Toast.show("消息长度不能超过100个字符!", Color.RED)
|
||||
if message.length() > 50:
|
||||
Toast.show("消息长度不能超过50个字符!", Color.RED)
|
||||
return
|
||||
|
||||
# 发送消息到服务器
|
||||
@@ -315,7 +237,7 @@ func handle_wisdom_tree_operation_response(success: bool, message: String, opera
|
||||
main_game.money = updated_data["money"]
|
||||
main_game._update_ui()
|
||||
|
||||
# 更新面板UI
|
||||
# 更新智慧树设置面板UI
|
||||
update_ui()
|
||||
|
||||
# 同步更新MainGame中的智慧树显示
|
||||
@@ -375,10 +297,6 @@ func handle_wisdom_tree_message_response(success: bool, message: String, updated
|
||||
else:
|
||||
Toast.show(message, Color.RED)
|
||||
|
||||
# 检查等级是否提升(此函数已不再需要,服务器端处理)
|
||||
func check_level_up():
|
||||
# 等级提升现在由服务器端处理,客户端只需要接收更新后的数据
|
||||
pass
|
||||
|
||||
# 面板显示与隐藏切换处理
|
||||
func _on_visibility_changed():
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"player_name": "柚大青",
|
||||
"user_name": "2143323382",
|
||||
"user_password": "tyh@19900420",
|
||||
"last_login_time": "2025年07月09日16时52分37秒",
|
||||
"last_login_time": "2025年07月09日19时17分38秒",
|
||||
"total_login_time": "5时0分7秒",
|
||||
"farm_lots": [
|
||||
{
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 27 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c42jmucs5udii"
|
||||
uid="uid://dcmcy8sk6qeuj"
|
||||
path="res://.godot/imported/1.webp-113308ca15b586eaeb0bbd809b6997c6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 32 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dcmcy8sk6qeuj"
|
||||
uid="uid://b7qab01msl5l4"
|
||||
path="res://.godot/imported/2.webp-c7dbb06c083db947520775472c40c124.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 29 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7qab01msl5l4"
|
||||
uid="uid://mtmunwgy1x3g"
|
||||
path="res://.godot/imported/3.webp-7bbb31894686faa8c9080a58b509200d.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://0fikmagdh5t0"
|
||||
uid="uid://cgvoioriuf7y0"
|
||||
path="res://.godot/imported/0.webp-e38fa2090339e41d8e2bc2f4382d5f43.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 30 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cgvoioriuf7y0"
|
||||
uid="uid://wqfspwqqpcwa"
|
||||
path="res://.godot/imported/1.webp-39c5186218d6a70b3b214094d5602b76.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://wqfspwqqpcwa"
|
||||
uid="uid://bxhe4pl7e2h4r"
|
||||
path="res://.godot/imported/2.webp-a4ac518035e8dc36ed57f415183fccf4.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dgx5k5d626t0m"
|
||||
path="res://.godot/imported/3.webp-6ae7e142e5a055810c45f1f78d5eae37.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/向日葵/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-6ae7e142e5a055810c45f1f78d5eae37.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cwxs07er03ctf"
|
||||
path="res://.godot/imported/4.webp-1a8ffb7b54f4d9ba58b74c9ee0de9653.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/向日葵/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-1a8ffb7b54f4d9ba58b74c9ee0de9653.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 30 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bxhe4pl7e2h4r"
|
||||
path="res://.godot/imported/5.webp-629d3e808c68cd90f65c3666c8f1655c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/向日葵/5.webp"
|
||||
dest_files=["res://.godot/imported/5.webp-629d3e808c68cd90f65c3666c8f1655c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 34 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cje7iwg3yy5k4"
|
||||
path="res://.godot/imported/6.webp-ebd14968a65dd4e65469cac7fe6b6fcd.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/向日葵/6.webp"
|
||||
dest_files=["res://.godot/imported/6.webp-ebd14968a65dd4e65469cac7fe6b6fcd.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 15 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cbqxg446cqgh4"
|
||||
path="res://.godot/imported/1750005805792.webp-0fbddd6ffbcf5dbd0a339c41005bb0a8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/咖啡豆/1750005805792.webp"
|
||||
dest_files=["res://.godot/imported/1750005805792.webp-0fbddd6ffbcf5dbd0a339c41005bb0a8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bu008ovnojylo"
|
||||
path="res://.godot/imported/3.webp-ab74e732f37e98b4b6c6a539f37d5938.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/哈密瓜/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-ab74e732f37e98b4b6c6a539f37d5938.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 39 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dt4i02lidlyai"
|
||||
path="res://.godot/imported/4.webp-be45b479791d0d9741a717db8ae610a5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/哈密瓜/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-be45b479791d0d9741a717db8ae610a5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 34 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cc8nngcxoegi5"
|
||||
uid="uid://dig8kyw0tib3"
|
||||
path="res://.godot/imported/2.webp-b2dbe3a142652718e988b49bbb0c0744.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dig8kyw0tib3"
|
||||
path="res://.godot/imported/3.webp-6de1b21ec58d062462418ce57bdd5c72.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/土豆/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-6de1b21ec58d062462418ce57bdd5c72.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 36 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dggi6qs6gb12o"
|
||||
path="res://.godot/imported/4.webp-66834ef9070628091dbf121b28727f7e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/土豆/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-66834ef9070628091dbf121b28727f7e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 20 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cjep55ut8nu6n"
|
||||
uid="uid://dgdshxgx8b4wj"
|
||||
path="res://.godot/imported/1.webp-8e159514a2d5265435603e4f8abadb12.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 16 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cdiejckm0f4ys"
|
||||
path="res://.godot/imported/1750050864343.webp-ac1da7418f30a5ffa29164ea2171da4e.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/大白菜/1750050864343.webp"
|
||||
dest_files=["res://.godot/imported/1750050864343.webp-ac1da7418f30a5ffa29164ea2171da4e.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 23 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dgdshxgx8b4wj"
|
||||
uid="uid://dftmxuhrl4jqa"
|
||||
path="res://.godot/imported/2.webp-bdd6486dc35f8c758136190cc6fa9895.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 25 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://byfj5siyg0ssq"
|
||||
path="res://.godot/imported/3.webp-0341056b78c9663bbec47bd90ab15925.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/大白菜/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-0341056b78c9663bbec47bd90ab15925.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://crivb703m02k3"
|
||||
path="res://.godot/imported/4.webp-db34186522e3a517d2a663996ed54306.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/大白菜/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-db34186522e3a517d2a663996ed54306.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 23 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dftmxuhrl4jqa"
|
||||
path="res://.godot/imported/5.webp-e042176eac807c5018b0bb45c0903934.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/大白菜/5.webp"
|
||||
dest_files=["res://.godot/imported/5.webp-e042176eac807c5018b0bb45c0903934.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 36 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://0ti1lqtbress"
|
||||
uid="uid://lw4nejejuy3e"
|
||||
path="res://.godot/imported/2.webp-019081ecbc5fe5a76dd6093516a568f2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 35 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ch1bp1pvqwhve"
|
||||
path="res://.godot/imported/3.webp-d38bb4c3eded2baf6b8623e8f44fac26.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/大豆/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-d38bb4c3eded2baf6b8623e8f44fac26.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 36 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://lw4nejejuy3e"
|
||||
path="res://.godot/imported/4.webp-f8473501df123badf6e050c3755091b6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/大豆/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-f8473501df123badf6e050c3755091b6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 32 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjhlba65jqss4"
|
||||
uid="uid://5x2uq2r3yjms"
|
||||
path="res://.godot/imported/2.webp-638bab14e5309cf618b4ad0d9893879c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 29 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://up47651sou01"
|
||||
path="res://.godot/imported/3.webp-de01368555191f7242fd23b203028fee.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/富贵竹/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-de01368555191f7242fd23b203028fee.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 32 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://5x2uq2r3yjms"
|
||||
path="res://.godot/imported/4.webp-a994d4186fbe14bbc687bc4c999666ae.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/富贵竹/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-a994d4186fbe14bbc687bc4c999666ae.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 29 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bmdt730huwogx"
|
||||
path="res://.godot/imported/5.webp-ec75c8005471a8e9f4bd4c618813b007.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/富贵竹/5.webp"
|
||||
dest_files=["res://.godot/imported/5.webp-ec75c8005471a8e9f4bd4c618813b007.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 33 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cw10nck7cykat"
|
||||
uid="uid://lu6s5qts4hnv"
|
||||
path="res://.godot/imported/0.webp-01976b7393f4108b4278b5fddaf5c9f1.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 38 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://lu6s5qts4hnv"
|
||||
uid="uid://doqkqexho8u2"
|
||||
path="res://.godot/imported/1.webp-aecdb4ce7bebcc6234fa8729e020c125.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://clwxxbayjet1h"
|
||||
path="res://.godot/imported/1750003605876.webp-0f0377d90260327e2169b52f723f20e8.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/1750003605876.webp"
|
||||
dest_files=["res://.godot/imported/1750003605876.webp-0f0377d90260327e2169b52f723f20e8.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 36 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://80wh72ot2nxh"
|
||||
uid="uid://4cbuoe4jv4qf"
|
||||
path="res://.godot/imported/2.webp-944f6e4f9f746fb1e8751aa4709965cf.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://0ed8kn3vmvt8"
|
||||
path="res://.godot/imported/3.webp-7e4221a32293a0408028a0997ea8eb66.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/3.webp"
|
||||
dest_files=["res://.godot/imported/3.webp-7e4221a32293a0408028a0997ea8eb66.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://doqkqexho8u2"
|
||||
path="res://.godot/imported/4.webp-cbfa23fb7bc46659a1357c8af735ef07.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/4.webp"
|
||||
dest_files=["res://.godot/imported/4.webp-cbfa23fb7bc46659a1357c8af735ef07.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 33 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://855x4xx33fhs"
|
||||
path="res://.godot/imported/5.webp-1bf25fcce803b7fb0138d2176e6f96f2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/5.webp"
|
||||
dest_files=["res://.godot/imported/5.webp-1bf25fcce803b7fb0138d2176e6f96f2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 36 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://4cbuoe4jv4qf"
|
||||
path="res://.godot/imported/6.webp-50d626dd861fc6bdfc265406354eda03.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/6.webp"
|
||||
dest_files=["res://.godot/imported/6.webp-50d626dd861fc6bdfc265406354eda03.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 33 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://y1fjfttfq6v8"
|
||||
path="res://.godot/imported/7.webp-6cacc92009a9d8b7eb929763cd502fee.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/7.webp"
|
||||
dest_files=["res://.godot/imported/7.webp-6cacc92009a9d8b7eb929763cd502fee.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,34 +0,0 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dnlcx3cl6fug0"
|
||||
path="res://.godot/imported/8.webp-a281b1b8074c888afecafcce5a3fec86.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://assets/作物/小麦/8.webp"
|
||||
dest_files=["res://.godot/imported/8.webp-a281b1b8074c888afecafcce5a3fec86.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.01
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 19 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bjfchr3l1u8s4"
|
||||
uid="uid://j0gv5s7glfh6"
|
||||
path="res://.godot/imported/1.webp-23308b73f9bc075e7369d063d94aaaa0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 29 KiB |
@@ -2,7 +2,7 @@
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://j0gv5s7glfh6"
|
||||
uid="uid://cioff7umwtsdy"
|
||||
path="res://.godot/imported/2.webp-6131342f071ac1243132a2b1781db3f0.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
|
||||
|
Before Width: | Height: | Size: 29 KiB |