From 4f0f97b91d63c068bf73ea3982ba01fdb495c4be Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 13 Mar 2024 09:57:10 -0500 Subject: [PATCH] More building work --- data/buildings/basic/basic_building_group.tres | 2 +- .../basic/harvester/harvester_particles.gd | 6 +++--- data/buildings/basic/warehouse/warehouse.gd | 7 +++++++ .../basic/warehouse/warehouse_building.tres | 18 ++++++++++++++++++ data/buildings/basic/warehouse_building.tres | 18 ------------------ .../game_resources/carbon/carbon_resource.tres | 3 ++- scripts/autoloads/resource_manager.gd | 12 +++++++----- scripts/cell_data.gd | 2 +- scripts/game_resource.gd | 1 + scripts/gui.gd | 5 +++-- 10 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 data/buildings/basic/warehouse/warehouse.gd create mode 100644 data/buildings/basic/warehouse/warehouse_building.tres delete mode 100644 data/buildings/basic/warehouse_building.tres diff --git a/data/buildings/basic/basic_building_group.tres b/data/buildings/basic/basic_building_group.tres index 10c3199..f0803c6 100644 --- a/data/buildings/basic/basic_building_group.tres +++ b/data/buildings/basic/basic_building_group.tres @@ -3,7 +3,7 @@ [ext_resource type="Texture2D" uid="uid://n806c03hgaq1" path="res://assets/scifi_tilesheet@2.png" id="1_p1crr"] [ext_resource type="Script" path="res://data/buildings/building_group.gd" id="1_xphre"] [ext_resource type="Resource" uid="uid://d38xgwstvtcm4" path="res://data/buildings/basic/harvester/harvester_building.tres" id="2_5rd2r"] -[ext_resource type="Resource" uid="uid://cta6ngelbwo8b" path="res://data/buildings/basic/warehouse_building.tres" id="3_vxs34"] +[ext_resource type="Resource" uid="uid://cta6ngelbwo8b" path="res://data/buildings/basic/warehouse/warehouse_building.tres" id="3_vxs34"] [sub_resource type="AtlasTexture" id="AtlasTexture_nleix"] atlas = ExtResource("1_p1crr") diff --git a/data/buildings/basic/harvester/harvester_particles.gd b/data/buildings/basic/harvester/harvester_particles.gd index 54c4d23..b8f5b8a 100644 --- a/data/buildings/basic/harvester/harvester_particles.gd +++ b/data/buildings/basic/harvester/harvester_particles.gd @@ -15,10 +15,10 @@ func _ready() -> void: if _emitters.size() < 10: var particles = CPUParticles2D.new() particles.amount = 8 - particles.spread = 8 + particles.spread = 8 * (_distance / 128) particles.material = ParticleProcessMaterial.new() - particles.radial_accel_max = _distance * -2.5 - particles.radial_accel_min = _distance * -2.55 + particles.damping_max = _distance * -2.5 + particles.damping_min = _distance * -2.55 particles.gravity = Vector2.ZERO particles.direction = _direction particles.initial_velocity_max = _distance * 2.25 diff --git a/data/buildings/basic/warehouse/warehouse.gd b/data/buildings/basic/warehouse/warehouse.gd new file mode 100644 index 0000000..0a6c33e --- /dev/null +++ b/data/buildings/basic/warehouse/warehouse.gd @@ -0,0 +1,7 @@ +extends Building + +func initialize(building: BuildingBase) -> void: + pass + +func ready(building: BuildingBase) -> void: + pass diff --git a/data/buildings/basic/warehouse/warehouse_building.tres b/data/buildings/basic/warehouse/warehouse_building.tres new file mode 100644 index 0000000..40496cf --- /dev/null +++ b/data/buildings/basic/warehouse/warehouse_building.tres @@ -0,0 +1,18 @@ +[gd_resource type="Resource" load_steps=5 format=3 uid="uid://cta6ngelbwo8b"] + +[ext_resource type="Texture2D" uid="uid://n806c03hgaq1" path="res://assets/scifi_tilesheet@2.png" id="1_t8g7q"] +[ext_resource type="Resource" uid="uid://bpjj0x7jr1k6u" path="res://data/game_resources/carbon/carbon_resource.tres" id="2_0uiah"] +[ext_resource type="Script" path="res://data/buildings/basic/warehouse/warehouse.gd" id="3_nvser"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_hcas6"] +atlas = ExtResource("1_t8g7q") +region = Rect2(1024, 64, 64, 64) + +[resource] +script = ExtResource("3_nvser") +atlas_texture = SubResource("AtlasTexture_hcas6") +name = "Warehouse" +description = "Allows storage of more materials" +cost = { +ExtResource("2_0uiah"): 500 +} diff --git a/data/buildings/basic/warehouse_building.tres b/data/buildings/basic/warehouse_building.tres deleted file mode 100644 index f807938..0000000 --- a/data/buildings/basic/warehouse_building.tres +++ /dev/null @@ -1,18 +0,0 @@ -[gd_resource type="Resource" script_class="Building" load_steps=5 format=3 uid="uid://cta6ngelbwo8b"] - -[ext_resource type="Texture2D" uid="uid://n806c03hgaq1" path="res://assets/scifi_tilesheet@2.png" id="1_24f36"] -[ext_resource type="Script" path="res://data/buildings/building.gd" id="1_aylgh"] -[ext_resource type="Resource" uid="uid://bpjj0x7jr1k6u" path="res://data/game_resources/carbon/carbon_resource.tres" id="2_s5ve8"] - -[sub_resource type="AtlasTexture" id="AtlasTexture_pbx2g"] -atlas = ExtResource("1_24f36") -region = Rect2(1024, 64, 64, 64) - -[resource] -script = ExtResource("1_aylgh") -atlas_texture = SubResource("AtlasTexture_pbx2g") -name = "Warehouse" -description = "Allows storage of more materials" -cost = { -ExtResource("2_s5ve8"): 500 -} diff --git a/data/game_resources/carbon/carbon_resource.tres b/data/game_resources/carbon/carbon_resource.tres index 8037464..417140b 100644 --- a/data/game_resources/carbon/carbon_resource.tres +++ b/data/game_resources/carbon/carbon_resource.tres @@ -8,4 +8,5 @@ script = ExtResource("1_4maxk") atlas_location = Vector2i(5, 3) pickup_value = 20 name = "Carbon" -spawn_patterns = [ExtResource("2_eyt7m")] +spawn_patterns = Array[Resource("res://scripts/spawn_pattern.gd")]([ExtResource("2_eyt7m")]) +storage_max = 2500 diff --git a/scripts/autoloads/resource_manager.gd b/scripts/autoloads/resource_manager.gd index 312a00c..8f3c9df 100644 --- a/scripts/autoloads/resource_manager.gd +++ b/scripts/autoloads/resource_manager.gd @@ -13,11 +13,13 @@ func _on_gained_resource(res: GameResource) -> void: func pickup(resource: GameResource) -> void: if not resources.has(resource): resources[resource] = 0 - resources[resource] += resource.pickup_value - var changed_resources := { - resource: resource.pickup_value - } - changed_resource.emit(ResourceChangedSignal.new(changed_resources)) + var pickup_amount = min(resource.pickup_value, resource.storage_max - resources[resource]) + if pickup_amount > 0: + resources[resource] += pickup_amount + var changed_resources := { + resource: pickup_amount + } + changed_resource.emit(ResourceChangedSignal.new(changed_resources)) func has_amount(res: GameResource, amount: int) -> bool: return resources[res] >= amount if resources.has(res) else false diff --git a/scripts/cell_data.gd b/scripts/cell_data.gd index 869a700..19d1b49 100644 --- a/scripts/cell_data.gd +++ b/scripts/cell_data.gd @@ -29,7 +29,7 @@ func change_building(data: BuildingBase) -> void: layer_info[Constants.TilemapLayers.BUILDINGS] = data func get_resource() -> GameResource: - return layer_info[Constants.TilemapLayerss.ENVIRONMENT] as GameResource + return layer_info[Constants.TilemapLayers.ENVIRONMENT] as GameResource func has_resource() -> bool: return has_layer(Constants.TilemapLayers.ENVIRONMENT) diff --git a/scripts/game_resource.gd b/scripts/game_resource.gd index e4654fd..1c79ee2 100644 --- a/scripts/game_resource.gd +++ b/scripts/game_resource.gd @@ -7,6 +7,7 @@ signal gained_resource(res: GameResource) @export var pickup_value: int @export var name: String @export var spawn_patterns: Array[SpawnPattern] +@export var storage_max: int func _to_string() -> String: return name diff --git a/scripts/gui.gd b/scripts/gui.gd index 88a514b..f1f409e 100644 --- a/scripts/gui.gd +++ b/scripts/gui.gd @@ -21,7 +21,6 @@ func _on_resource_manager_changed_resource(changed: ResourceChangedSignal) -> vo resource_container.add_child(img) var label := Label.new() - label.text = str(changed.changed_resources[resource]) resource_container.add_child(label) var data := ResourceData.new() @@ -29,10 +28,12 @@ func _on_resource_manager_changed_resource(changed: ResourceChangedSignal) -> vo data.label = label data.value = changed.changed_resources[resource] _resource_displays[resource] = data + + label.text = "%s / %s" % [data.value, resource.storage_max] else: var data: ResourceData = _resource_displays[resource] data.value += changed.changed_resources[resource] - data.label.text = str(data.value) + data.label.text = "%s / %s" % [data.value, resource.storage_max] class ResourceData: var image: TextureRect