From 2f5296e05a765202672c73632531295fe57ca109 Mon Sep 17 00:00:00 2001 From: kziolkowski Date: Sun, 6 Jul 2025 23:48:01 +0200 Subject: [PATCH] Diversified field shapes --- art/masks/field_outline_1.png | Bin 0 -> 5743 bytes art/masks/field_outline_1.png.import | 34 ++++++++++++++++++ art/masks/field_outline_2.png | Bin 0 -> 6918 bytes art/masks/field_outline_2.png.import | 34 ++++++++++++++++++ art/masks/field_outline_3.png | Bin 0 -> 7181 bytes art/masks/field_outline_3.png.import | 34 ++++++++++++++++++ prefabs/farm/base_field_2d.tscn | 30 ++++++++++------ .../CSharp/Common/Farming/FieldBehaviour2D.cs | 14 +++++--- 8 files changed, 132 insertions(+), 14 deletions(-) create mode 100644 art/masks/field_outline_1.png create mode 100644 art/masks/field_outline_1.png.import create mode 100644 art/masks/field_outline_2.png create mode 100644 art/masks/field_outline_2.png.import create mode 100644 art/masks/field_outline_3.png create mode 100644 art/masks/field_outline_3.png.import diff --git a/art/masks/field_outline_1.png b/art/masks/field_outline_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b39785f0c0d48d3c36cb0112aef31743d1d459e6 GIT binary patch literal 5743 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 literal 0 HcmV?d00001 diff --git a/art/masks/field_outline_1.png.import b/art/masks/field_outline_1.png.import new file mode 100644 index 0000000..b2e555d --- /dev/null +++ b/art/masks/field_outline_1.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cgmu3qlovdr22" +path="res://.godot/imported/field_outline_1.png-6d3fddc82592de77807ed60581b515c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/masks/field_outline_1.png" +dest_files=["res://.godot/imported/field_outline_1.png-6d3fddc82592de77807ed60581b515c5.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 diff --git a/art/masks/field_outline_2.png b/art/masks/field_outline_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b249b536610c49f61209796daf513d1901ae94 GIT binary patch literal 6918 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 ZW4GfTPZ9kbmiFW|)HBg7K5u{je*iF`gKq!; literal 0 HcmV?d00001 diff --git a/art/masks/field_outline_3.png.import b/art/masks/field_outline_3.png.import new file mode 100644 index 0000000..11e0f72 --- /dev/null +++ b/art/masks/field_outline_3.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://djpigvoyadvjs" +path="res://.godot/imported/field_outline_3.png-1ae7ea2c620df01f38d55e21a86cbf92.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://art/masks/field_outline_3.png" +dest_files=["res://.godot/imported/field_outline_3.png-1ae7ea2c620df01f38d55e21a86cbf92.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 diff --git a/prefabs/farm/base_field_2d.tscn b/prefabs/farm/base_field_2d.tscn index f14c044..044e30f 100644 --- a/prefabs/farm/base_field_2d.tscn +++ b/prefabs/farm/base_field_2d.tscn @@ -1,10 +1,13 @@ -[gd_scene load_steps=8 format=3 uid="uid://b1d2e7ely6hyw"] +[gd_scene load_steps=11 format=3 uid="uid://b1d2e7ely6hyw"] [ext_resource type="PackedScene" uid="uid://cqc72e4hq6bcd" path="res://prefabs/interactions/interaction_area_2d.tscn" id="1_femni"] [ext_resource type="Script" uid="uid://bdffon388rkty" path="res://scripts/CSharp/Common/Farming/FieldBehaviour2D.cs" id="2_femni"] -[ext_resource type="Texture2D" uid="uid://cpxjptdjw7bi6" path="res://art/farm/tilable grounds/böden/trockene farming erde rund.png" id="2_yi42k"] -[ext_resource type="Texture2D" uid="uid://d3dq15edmgbwf" path="res://art/farm/tilable grounds/böden/nasse farming erde rund.png" id="4_lsfck"] +[ext_resource type="Texture2D" uid="uid://cgmu3qlovdr22" path="res://art/masks/field_outline_1.png" id="3_cus02"] +[ext_resource type="Texture2D" uid="uid://eg5ej0mtuac" path="res://art/masks/field_outline_2.png" id="4_msuq8"] +[ext_resource type="Texture2D" uid="uid://djpigvoyadvjs" path="res://art/masks/field_outline_3.png" id="5_21et0"] [ext_resource type="PackedScene" uid="uid://c3hwbwo423nbm" path="res://prefabs/farm/base_plant_2d.tscn" id="5_femni"] +[ext_resource type="Texture2D" uid="uid://c2pirgay3jfnn" path="res://art/farm/tilable grounds/böden/trockene farming erde.png" id="6_4k6eh"] +[ext_resource type="Texture2D" uid="uid://ctvdxwgmfaj5c" path="res://art/farm/tilable grounds/böden/nasse farming erde.png" id="7_rrmd3"] [sub_resource type="CircleShape2D" id="CircleShape2D_yi42k"] resource_local_to_scene = true @@ -21,13 +24,15 @@ visible = false z_index = 1 scale = Vector2(2.225, 2.225) -[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_growingCollider")] +[node name="FieldBehaviour" type="Sprite2D" parent="." node_paths=PackedStringArray("_fieldSprite", "_maskSprite", "_growingCollider")] z_index = -1 scale = Vector2(0.9, 1) -texture = ExtResource("2_yi42k") script = ExtResource("2_femni") -Tilled = ExtResource("2_yi42k") -Watered = ExtResource("4_lsfck") +_fieldSprite = NodePath("MaskedField/FieldTexture") +_maskSprite = NodePath("MaskedField") +_maskTexture = Array[Texture2D]([ExtResource("3_cus02"), ExtResource("4_msuq8"), ExtResource("5_21et0")]) +Tilled = ExtResource("6_4k6eh") +Watered = ExtResource("7_rrmd3") _growingCollider = NodePath("BasePlant/InteractionArea") [node name="BasePlant" parent="FieldBehaviour" node_paths=PackedStringArray("_field") instance=ExtResource("5_femni")] @@ -45,12 +50,17 @@ shape = SubResource("CircleShape2D_yi42k") [node name="CollisionShape3D" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2/Area2D" index="0"] shape = SubResource("CircleShape2D_femni") -[node name="Label" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem/InteractionArea2" index="1"] -visible = false - [node name="ReadyPlant" parent="FieldBehaviour/BasePlant/ReadyPlantInventoryItem" index="5"] position = Vector2(0, -291.3) +[node name="MaskedField" type="Sprite2D" parent="FieldBehaviour"] +clip_children = 1 +scale = Vector2(1.5, 1.5) +texture = ExtResource("4_msuq8") + +[node name="FieldTexture" type="Sprite2D" parent="FieldBehaviour/MaskedField"] +texture = ExtResource("6_4k6eh") + [connection signal="Interacted" from="InteractionArea2" to="FieldBehaviour/BasePlant" method="Grow"] [editable path="FieldBehaviour/BasePlant"] diff --git a/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs b/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs index de7c165..c5838db 100644 --- a/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs +++ b/scripts/CSharp/Common/Farming/FieldBehaviour2D.cs @@ -1,3 +1,4 @@ +using System; using Babushka.scripts.CSharp.Common.CharacterControls; using Godot; @@ -15,6 +16,9 @@ public enum FieldState [GlobalClass] public partial class FieldBehaviour2D : Sprite2D { + [Export] private Sprite2D _fieldSprite; + [Export] private Sprite2D _maskSprite; + [Export] private Texture2D[] _maskTexture; [Export] private Texture2D Tilled; [Export] private Texture2D Watered; [Export] public FieldState FieldState = FieldState.Tilled; @@ -25,6 +29,8 @@ public partial class FieldBehaviour2D : Sprite2D public override void _Ready() { UpdateFieldState(FieldState); + int randomIndex = new Random().Next(0, _maskTexture.Length); + _maskSprite.Texture = _maskTexture[randomIndex]; base._Ready(); } @@ -37,12 +43,12 @@ public partial class FieldBehaviour2D : Sprite2D break; case FieldState.Tilled: FieldState = FieldState.Tilled; - Texture = Tilled; + _fieldSprite.Texture = Tilled; _growingCollider.Visible = false; break; case FieldState.Watered: FieldState = FieldState.Watered; - Texture = Watered; + _fieldSprite.Texture = Watered; _growingCollider.Visible = true; break; case FieldState.Planted: @@ -58,7 +64,7 @@ public partial class FieldBehaviour2D : Sprite2D public void Water() { FieldState = FieldState.Watered; - Texture = Watered; + _fieldSprite.Texture = Watered; } /// @@ -69,7 +75,7 @@ public partial class FieldBehaviour2D : Sprite2D switch (FieldState) { case FieldState.Empty: - Texture = Tilled; + _fieldSprite.Texture = Tilled; FieldState = FieldState.Tilled; break; case FieldState.Watered: