diff --git a/common/game_data/scripts/terrain_data.gd b/common/game_data/scripts/terrain_data.gd index f606d43..802cd21 100644 --- a/common/game_data/scripts/terrain_data.gd +++ b/common/game_data/scripts/terrain_data.gd @@ -62,16 +62,16 @@ func impact_contamination(position : Vector2, impact_radius : int, to_value : fl Color(1., 1., 1., to_value) ) -func get_contamination(point : Vector2) -> float: - var pixel_point : Vector2 = ( - Vector2(point) / float(TERRAIN_IMAGE_GAME_FACTOR) - - Vector2.ONE / 2 - ) - if ( +func is_in_image(pixel_point : Vector2, image : Image): + return ( pixel_point.x > 0 and pixel_point.y > 0 - and pixel_point.x < contamination.get_width() - and pixel_point.y < contamination.get_height()): + and pixel_point.x < image.get_width() + and pixel_point.y < image.get_height()) + +func get_contamination(point : Vector2) -> float: + var pixel_point : Vector2 = get_pixel_point(point) + if (is_in_image(pixel_point, contamination)): return contamination.get_pixel( int(round(pixel_point.x)), int(round(pixel_point.y)) @@ -80,3 +80,9 @@ func get_contamination(point : Vector2) -> float: func get_decontamination_coverage() -> float: return ImageTools.get_color_coverage(contamination) + +func get_pixel_point(point : Vector2) -> Vector2: + return ( + Vector2(point) / float(TERRAIN_IMAGE_GAME_FACTOR) + - Vector2.ONE / 2 + ) diff --git a/common/inventory/assets/icons/package.svg b/common/inventory/assets/icons/package.svg new file mode 100644 index 0000000..28da1be --- /dev/null +++ b/common/inventory/assets/icons/package.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/common/inventory/assets/icons/package.svg.import b/common/inventory/assets/icons/package.svg.import new file mode 100644 index 0000000..832e572 --- /dev/null +++ b/common/inventory/assets/icons/package.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0xg54agef5gh" +path="res://.godot/imported/package.svg-a9602fd424cfb199cd9405d02663e7df.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://common/inventory/assets/icons/package.svg" +dest_files=["res://.godot/imported/package.svg-a9602fd424cfb199cd9405d02663e7df.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/inventory/resources/items/compost.tres b/common/inventory/resources/items/compost.tres new file mode 100644 index 0000000..1b35115 --- /dev/null +++ b/common/inventory/resources/items/compost.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="Package" load_steps=4 format=3 uid="uid://bya8sm6rm6747"] + +[ext_resource type="Texture2D" uid="uid://0xg54agef5gh" path="res://common/inventory/assets/icons/package.svg" id="1_lhhdv"] +[ext_resource type="Script" uid="uid://b6kubqgq0k7vj" path="res://common/inventory/scripts/items/package.gd" id="1_x02bb"] +[ext_resource type="PackedScene" uid="uid://bkwh1ntvgkkrt" path="res://entities/interactables/machines/compost/compost.tscn" id="2_uulso"] + +[resource] +script = ExtResource("1_x02bb") +scene = ExtResource("2_uulso") +name = "Compost" +description = "Compost" +icon = ExtResource("1_lhhdv") +use_zone_radius = 5 +use_energy = 1 +metadata/_custom_type_script = "uid://b6kubqgq0k7vj" diff --git a/common/inventory/scripts/items/package.gd b/common/inventory/scripts/items/package.gd new file mode 100644 index 0000000..dfc1a04 --- /dev/null +++ b/common/inventory/scripts/items/package.gd @@ -0,0 +1,22 @@ +extends Item +class_name Package + +@export var scene: PackedScene + +func _init(_scene : PackedScene = null): + scene = _scene + +func use_text() -> String: + return "Build " + name + +func is_one_time_use(): + return true + +func can_use(player : Player, zone : Area2D) -> bool: + print(zone.global_position) + return player.planet.is_in_zone(zone.global_position) + +func use(player : Player, zone : Area2D) -> bool: + print(zone.global_position) + player.planet.instantiate_entity(scene, zone.global_position) + return true diff --git a/common/inventory/scripts/items/package.gd.uid b/common/inventory/scripts/items/package.gd.uid new file mode 100644 index 0000000..2ed3698 --- /dev/null +++ b/common/inventory/scripts/items/package.gd.uid @@ -0,0 +1 @@ +uid://b6kubqgq0k7vj diff --git a/entities/interactables/item_object/script/item_object.gd b/entities/interactables/item_object/script/item_object.gd index 340bf19..bb8a44d 100644 --- a/entities/interactables/item_object/script/item_object.gd +++ b/entities/interactables/item_object/script/item_object.gd @@ -1,4 +1,3 @@ -@tool extends Interactable class_name ItemObject @@ -20,6 +19,9 @@ func _init(_item = null): func _ready(): generate_collision(ITEM_AREA_WIDTH) + if item and object_sprite: + object_sprite.apply_texture_to_sprite(item.icon, ITEM_SPRITE_SIZE) + func inspected_text(): return item.name + (" Seed" if item is Seed else "") diff --git a/entities/interactables/compost/assets/sprites/compost.svg b/entities/interactables/machines/compost/assets/sprites/compost.svg similarity index 100% rename from entities/interactables/compost/assets/sprites/compost.svg rename to entities/interactables/machines/compost/assets/sprites/compost.svg diff --git a/entities/interactables/compost/assets/sprites/compost.svg.import b/entities/interactables/machines/compost/assets/sprites/compost.svg.import similarity index 72% rename from entities/interactables/compost/assets/sprites/compost.svg.import rename to entities/interactables/machines/compost/assets/sprites/compost.svg.import index c818139..d79015d 100644 --- a/entities/interactables/compost/assets/sprites/compost.svg.import +++ b/entities/interactables/machines/compost/assets/sprites/compost.svg.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://f2rte5jc0psp" -path="res://.godot/imported/compost.svg-503fc2423ba701b15edd51da5ab01164.ctex" +path="res://.godot/imported/compost.svg-f43ad0f7b40754d19aa7d5ea88e80cb8.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://entities/interactables/compost/assets/sprites/compost.svg" -dest_files=["res://.godot/imported/compost.svg-503fc2423ba701b15edd51da5ab01164.ctex"] +source_file="res://entities/interactables/machines/compost/assets/sprites/compost.svg" +dest_files=["res://.godot/imported/compost.svg-f43ad0f7b40754d19aa7d5ea88e80cb8.ctex"] [params] diff --git a/entities/interactables/compost/compost.tscn b/entities/interactables/machines/compost/compost.tscn similarity index 90% rename from entities/interactables/compost/compost.tscn rename to entities/interactables/machines/compost/compost.tscn index e27a8db..595b1c8 100644 --- a/entities/interactables/compost/compost.tscn +++ b/entities/interactables/machines/compost/compost.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=10 format=3 uid="uid://bkwh1ntvgkkrt"] -[ext_resource type="Script" uid="uid://dw6jgsasb2fe1" path="res://entities/interactables/compost/scripts/compost.gd" id="1_1758a"] -[ext_resource type="Texture2D" uid="uid://f2rte5jc0psp" path="res://entities/interactables/compost/assets/sprites/compost.svg" id="2_r6435"] +[ext_resource type="Script" uid="uid://dw6jgsasb2fe1" path="res://entities/interactables/machines/compost/scripts/compost.gd" id="1_c0pig"] +[ext_resource type="Texture2D" uid="uid://f2rte5jc0psp" path="res://entities/interactables/machines/compost/assets/sprites/compost.svg" id="2_r6435"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_etofw"] bg_color = Color(0.260098, 0.11665, 0.0419712, 0.231373) @@ -17,9 +17,6 @@ corner_radius_top_right = 5 corner_radius_bottom_right = 5 corner_radius_bottom_left = 5 -[sub_resource type="RectangleShape2D" id="RectangleShape2D_coj8m"] -size = Vector2(77, 92) - [sub_resource type="Animation" id="Animation_r6435"] length = 0.001 tracks/0/type = "value" @@ -98,8 +95,11 @@ _data = { &"fill": SubResource("Animation_etofw") } +[sub_resource type="RectangleShape2D" id="RectangleShape2D_akkx7"] +size = Vector2(66, 84) + [node name="Compost" type="Area2D"] -script = ExtResource("1_1758a") +script = ExtResource("1_c0pig") [node name="Compost" type="Sprite2D" parent="."] modulate = Color(0.615686, 0.501961, 0.270588, 1) @@ -114,16 +114,13 @@ offset_right = 62.0 offset_bottom = 120.0 theme_override_styles/background = SubResource("StyleBoxFlat_etofw") theme_override_styles/fill = SubResource("StyleBoxFlat_3ao1n") -value = 20.0 fill_mode = 3 show_percentage = false -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -visible = false -position = Vector2(-0.5, 2) -shape = SubResource("RectangleShape2D_coj8m") - [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_etofw") } + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("RectangleShape2D_akkx7") diff --git a/entities/interactables/compost/scripts/compost.gd b/entities/interactables/machines/compost/scripts/compost.gd similarity index 81% rename from entities/interactables/compost/scripts/compost.gd rename to entities/interactables/machines/compost/scripts/compost.gd index 3252dd3..c64111b 100644 --- a/entities/interactables/compost/scripts/compost.gd +++ b/entities/interactables/machines/compost/scripts/compost.gd @@ -1,10 +1,8 @@ -extends Interactable +extends Machine class_name Compost - -@export var value_per_seed : float = 0.5 - -@onready var fill_value : float = 0. +var value_per_seed : float = 0.5 +var fill_value : float = 0. func _process(_delta): %ProgressBar.value = lerp(%ProgressBar.value, fill_value * 100, 0.5) @@ -13,7 +11,7 @@ func inspected_text(): return "Compost" func interact_text(): - return "Put a seed" + return "Put a seed ("+str(roundi((1-fill_value)/value_per_seed))+" left)" func can_interact(p : Player) -> bool: return p.inventory.get_item() and p.inventory.get_item() is Seed diff --git a/entities/interactables/compost/scripts/compost.gd.uid b/entities/interactables/machines/compost/scripts/compost.gd.uid similarity index 100% rename from entities/interactables/compost/scripts/compost.gd.uid rename to entities/interactables/machines/compost/scripts/compost.gd.uid diff --git a/entities/interactables/compost/sounds/compost_level_up.wav b/entities/interactables/machines/compost/sounds/compost_level_up.wav similarity index 100% rename from entities/interactables/compost/sounds/compost_level_up.wav rename to entities/interactables/machines/compost/sounds/compost_level_up.wav diff --git a/entities/interactables/compost/sounds/compost_level_up.wav.import b/entities/interactables/machines/compost/sounds/compost_level_up.wav.import similarity index 50% rename from entities/interactables/compost/sounds/compost_level_up.wav.import rename to entities/interactables/machines/compost/sounds/compost_level_up.wav.import index e8dec48..846ecea 100644 --- a/entities/interactables/compost/sounds/compost_level_up.wav.import +++ b/entities/interactables/machines/compost/sounds/compost_level_up.wav.import @@ -3,12 +3,12 @@ importer="wav" type="AudioStreamWAV" uid="uid://cjo6ea86rfqbe" -path="res://.godot/imported/compost_level_up.wav-d796efae9b651b45ecdda95fd157999a.sample" +path="res://.godot/imported/compost_level_up.wav-18f25f0720265f21705081af070ef8cd.sample" [deps] -source_file="res://entities/interactables/compost/sounds/compost_level_up.wav" -dest_files=["res://.godot/imported/compost_level_up.wav-d796efae9b651b45ecdda95fd157999a.sample"] +source_file="res://entities/interactables/machines/compost/sounds/compost_level_up.wav" +dest_files=["res://.godot/imported/compost_level_up.wav-18f25f0720265f21705081af070ef8cd.sample"] [params] diff --git a/entities/interactables/recharge_station/assets/sprites/recharge_station.svg b/entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg similarity index 100% rename from entities/interactables/recharge_station/assets/sprites/recharge_station.svg rename to entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg diff --git a/entities/interactables/recharge_station/assets/sprites/recharge_station.svg.import b/entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg.import similarity index 69% rename from entities/interactables/recharge_station/assets/sprites/recharge_station.svg.import rename to entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg.import index c6f72ad..b0f9b47 100644 --- a/entities/interactables/recharge_station/assets/sprites/recharge_station.svg.import +++ b/entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg.import @@ -3,15 +3,15 @@ importer="texture" type="CompressedTexture2D" uid="uid://c82ljr3in67am" -path="res://.godot/imported/recharge_station.svg-e388da7bbc5335a093731cd3d5c6eb67.ctex" +path="res://.godot/imported/recharge_station.svg-b4dbe96f287bff2995b6160acd3f32ff.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://entities/interactables/recharge_station/assets/sprites/recharge_station.svg" -dest_files=["res://.godot/imported/recharge_station.svg-e388da7bbc5335a093731cd3d5c6eb67.ctex"] +source_file="res://entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg" +dest_files=["res://.godot/imported/recharge_station.svg-b4dbe96f287bff2995b6160acd3f32ff.ctex"] [params] diff --git a/entities/interactables/recharge_station/recharge_station.tscn b/entities/interactables/machines/recharge_station/recharge_station.tscn similarity index 79% rename from entities/interactables/recharge_station/recharge_station.tscn rename to entities/interactables/machines/recharge_station/recharge_station.tscn index 0e597c8..2b908ed 100644 --- a/entities/interactables/recharge_station/recharge_station.tscn +++ b/entities/interactables/machines/recharge_station/recharge_station.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=4 format=3 uid="uid://d324mlmgls4fs"] -[ext_resource type="Script" uid="uid://bsrn3gd2a532q" path="res://entities/interactables/recharge_station/scripts/recharge_station.gd" id="1_2ffjo"] -[ext_resource type="Texture2D" uid="uid://c82ljr3in67am" path="res://entities/interactables/recharge_station/assets/sprites/recharge_station.svg" id="2_58ax0"] +[ext_resource type="Script" uid="uid://bsrn3gd2a532q" path="res://entities/interactables/machines/recharge_station/scripts/recharge_station.gd" id="1_2ffjo"] +[ext_resource type="Texture2D" uid="uid://c82ljr3in67am" path="res://entities/interactables/machines/recharge_station/assets/sprites/recharge_station.svg" id="2_58ax0"] [sub_resource type="CapsuleShape2D" id="CapsuleShape2D_bjhct"] radius = 15.0 diff --git a/entities/interactables/recharge_station/scripts/recharge_station.gd b/entities/interactables/machines/recharge_station/scripts/recharge_station.gd similarity index 90% rename from entities/interactables/recharge_station/scripts/recharge_station.gd rename to entities/interactables/machines/recharge_station/scripts/recharge_station.gd index 736d13d..c59b342 100644 --- a/entities/interactables/recharge_station/scripts/recharge_station.gd +++ b/entities/interactables/machines/recharge_station/scripts/recharge_station.gd @@ -1,4 +1,4 @@ -extends Interactable +extends Machine class_name RechargeStation var planet : Planet # mis à jour par la classe Planet diff --git a/entities/interactables/recharge_station/scripts/recharge_station.gd.uid b/entities/interactables/machines/recharge_station/scripts/recharge_station.gd.uid similarity index 100% rename from entities/interactables/recharge_station/scripts/recharge_station.gd.uid rename to entities/interactables/machines/recharge_station/scripts/recharge_station.gd.uid diff --git a/entities/interactables/machines/scripts/machine.gd b/entities/interactables/machines/scripts/machine.gd new file mode 100644 index 0000000..f8acd3b --- /dev/null +++ b/entities/interactables/machines/scripts/machine.gd @@ -0,0 +1,2 @@ +extends Interactable +class_name Machine \ No newline at end of file diff --git a/entities/interactables/machines/scripts/machine.gd.uid b/entities/interactables/machines/scripts/machine.gd.uid new file mode 100644 index 0000000..69bfa9f --- /dev/null +++ b/entities/interactables/machines/scripts/machine.gd.uid @@ -0,0 +1 @@ +uid://du7qppxobx5nd diff --git a/entities/interactables/scripts/interactable.gd b/entities/interactables/scripts/interactable.gd index 71e84a1..248e094 100644 --- a/entities/interactables/scripts/interactable.gd +++ b/entities/interactables/scripts/interactable.gd @@ -6,11 +6,14 @@ var available : bool = true func can_interact(_p : Player) -> bool: return true +func interaction_cost(_p : Player) -> int: + return 0 + func interact(_p : Player) -> bool: printerr("Interact function called on abstract Interactable class") return false -func generate_collision(area_width : float): +func generate_collision(area_width : float) -> CollisionShape2D: var collision = CollisionShape2D.new() var collision_shape = CircleShape2D.new() collision_shape.radius = area_width @@ -18,5 +21,7 @@ func generate_collision(area_width : float): collision.shape = collision_shape add_child(collision) + return collision + func interact_text(): return "" diff --git a/entities/plants/resources/plants/default.tres b/entities/plants/resources/plant_types/default.tres similarity index 100% rename from entities/plants/resources/plants/default.tres rename to entities/plants/resources/plant_types/default.tres diff --git a/entities/plants/resources/plants/maias.tres b/entities/plants/resources/plant_types/maias.tres similarity index 100% rename from entities/plants/resources/plants/maias.tres rename to entities/plants/resources/plant_types/maias.tres diff --git a/entities/player/scripts/player.gd b/entities/player/scripts/player.gd index 5d0eb70..039f41c 100644 --- a/entities/player/scripts/player.gd +++ b/entities/player/scripts/player.gd @@ -127,7 +127,6 @@ func can_use_item_on_zone(item : Item, zone: Area2D) -> bool: ) func use_item(item : Item): - print(action_zone.get_overlapping_areas()) if can_use_item_on_zone(item, action_zone): var is_item_used = item.use(self, action_zone) if is_item_used: diff --git a/game.tscn b/game.tscn index 1a41898..1da3804 100644 --- a/game.tscn +++ b/game.tscn @@ -7,13 +7,13 @@ [ext_resource type="Script" uid="uid://dedg615xudpoq" path="res://entities/interactables/item_object/script/item_object.gd" id="3_215e1"] [ext_resource type="PackedScene" uid="uid://tsi5j1uxppa4" path="res://stages/terrain/planet/planet.tscn" id="6_e8heu"] [ext_resource type="Resource" uid="uid://ddqalo1k30i5x" path="res://common/inventory/resources/items/default_shovel.tres" id="6_lc2xo"] -[ext_resource type="PackedScene" uid="uid://bkwh1ntvgkkrt" path="res://entities/interactables/compost/compost.tscn" id="7_215e1"] +[ext_resource type="Resource" uid="uid://bya8sm6rm6747" path="res://common/inventory/resources/items/compost.tres" id="7_215e1"] [ext_resource type="Script" uid="uid://bq7admu4ahs5r" path="res://common/inventory/scripts/item.gd" id="7_rvswv"] -[ext_resource type="PackedScene" uid="uid://d324mlmgls4fs" path="res://entities/interactables/recharge_station/recharge_station.tscn" id="8_7sc4i"] +[ext_resource type="PackedScene" uid="uid://d324mlmgls4fs" path="res://entities/interactables/machines/recharge_station/recharge_station.tscn" id="8_7sc4i"] [ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="8_boyg6"] -[ext_resource type="Resource" uid="uid://b04vho33bl52b" path="res://entities/plants/resources/plants/default.tres" id="9_e36ub"] +[ext_resource type="Resource" uid="uid://b04vho33bl52b" path="res://entities/plants/resources/plant_types/default.tres" id="9_e36ub"] [ext_resource type="Script" uid="uid://bypjcvlc15gsm" path="res://common/inventory/scripts/items/seed.gd" id="10_hb5m1"] -[ext_resource type="Resource" uid="uid://dsctivn1vrem2" path="res://entities/plants/resources/plants/maias.tres" id="11_x5p1p"] +[ext_resource type="Resource" uid="uid://dsctivn1vrem2" path="res://entities/plants/resources/plant_types/maias.tres" id="11_x5p1p"] [ext_resource type="PackedScene" uid="uid://dj7gp3crtg2yt" path="res://entities/camera/camera.tscn" id="12_qhcbd"] [sub_resource type="AtlasTexture" id="AtlasTexture_qt76e"] @@ -74,17 +74,20 @@ y_sort_enabled = true [node name="Player" parent="Entities" instance=ExtResource("2_lc2xo")] -[node name="ShovelObject" type="Area2D" parent="Entities"] -position = Vector2(2, 72) +[node name="ItemObject" type="Area2D" parent="Entities"] +position = Vector2(0, 129) script = ExtResource("3_215e1") item = ExtResource("6_lc2xo") metadata/_custom_type_script = "uid://dedg615xudpoq" -[node name="Compost" parent="Entities" instance=ExtResource("7_215e1")] -position = Vector2(3, 458) +[node name="ItemObject2" type="Area2D" parent="Entities"] +position = Vector2(-162, 23) +script = ExtResource("3_215e1") +item = ExtResource("7_215e1") +metadata/_custom_type_script = "uid://dedg615xudpoq" [node name="RechargeStation" parent="Entities" instance=ExtResource("8_7sc4i")] -position = Vector2(0, -154) +position = Vector2(-1, -217) [node name="Planet" parent="." node_paths=PackedStringArray("import_entities_from_node") instance=ExtResource("6_e8heu")] loot_items = Array[ExtResource("7_rvswv")]([SubResource("Resource_7sc4i"), SubResource("Resource_80cx4"), SubResource("Resource_e8heu")]) diff --git a/gui/game/mouse/scripts/mouse.gd b/gui/game/mouse/scripts/mouse.gd deleted file mode 100644 index 482e3a1..0000000 --- a/gui/game/mouse/scripts/mouse.gd +++ /dev/null @@ -1,10 +0,0 @@ -extends Control -class_name Mouse - -@export var default_cursor : Texture2D - -func _ready(): - Input.set_custom_mouse_cursor(default_cursor) - -func _process(_delta): - position = get_viewport().get_mouse_position() diff --git a/gui/game/mouse/scripts/mouse.gd.uid b/gui/game/mouse/scripts/mouse.gd.uid deleted file mode 100644 index 71532a4..0000000 --- a/gui/game/mouse/scripts/mouse.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://dm0d2sxki2ljd diff --git a/stages/terrain/planet/scripts/planet.gd b/stages/terrain/planet/scripts/planet.gd index 112deff..57d5e2f 100644 --- a/stages/terrain/planet/scripts/planet.gd +++ b/stages/terrain/planet/scripts/planet.gd @@ -40,6 +40,13 @@ func _ready(): #region ------------------ Generation ------------------ +func instantiate_entity(s: PackedScene, entity_position : Vector2): + var entity = s.instantiate() as Node2D + + add_entity(entity) + + entity.global_position = entity_position + func add_entity(e : Node2D, container : Node2D = entityContainer): if e.get_parent(): e.get_parent().remove_child(e) @@ -49,7 +56,6 @@ func add_entity(e : Node2D, container : Node2D = entityContainer): container.add_child(e) - func generate_polygon_sprite(order : int = 0) -> Polygon2D: var sprite = Polygon2D.new() var size = terrainData.terrainSize @@ -115,6 +121,9 @@ func impact_contamination(impact_position : Vector2, impact_radius : int, contam if contamination_texture: contamination_texture.update(terrainData.contamination) +func is_in_zone(point : Vector2) -> bool: + return terrainData.is_in_image(terrainData.get_pixel_point(point), terrainData.contamination) + func is_there_contamination(point : Vector2) -> bool: return terrainData.get_contamination(point) < 0.5