diff --git a/common/plant_texture_builder/plant_texture_builder.tscn b/common/plant_texture_builder/plant_texture_builder.tscn new file mode 100644 index 0000000..ba4617f --- /dev/null +++ b/common/plant_texture_builder/plant_texture_builder.tscn @@ -0,0 +1,85 @@ +[gd_scene format=3 uid="uid://b8gqdgabrjaml"] + +[ext_resource type="Script" uid="uid://dt2ip3pw2cboy" path="res://entities/plants/scripts/texture_builder/texture_builder.gd" id="1_s8rsj"] +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cfiqo"] +[ext_resource type="Resource" uid="uid://bfyafiewcrjln" path="res://entities/plants/resources/plant_parts/Base1.tres" id="3_coupj"] +[ext_resource type="Resource" uid="uid://d2vdf2sth2xjm" path="res://entities/plants/resources/plant_parts/Base3.tres" id="4_coupj"] +[ext_resource type="Resource" uid="uid://7hrdkl6bf3o4" path="res://entities/plants/resources/plant_parts/Branch1.tres" id="4_ggud5"] +[ext_resource type="Resource" uid="uid://clruuysx80pnn" path="res://entities/plants/resources/plant_parts/Base4.tres" id="5_ggud5"] +[ext_resource type="Resource" uid="uid://ceisi5yyie7to" path="res://entities/plants/resources/plant_parts/Branch2.tres" id="5_ufbqh"] +[ext_resource type="Resource" uid="uid://cxiu8frk04b5i" path="res://entities/plants/resources/plant_parts/Branch3.tres" id="6_jbu3q"] +[ext_resource type="Resource" uid="uid://53p5g07e3pb4" path="res://entities/plants/resources/plant_parts/Branch4.tres" id="7_21cjy"] +[ext_resource type="Resource" uid="uid://d2y7o2hc6ffei" path="res://entities/plants/resources/plant_parts/Branch11.tres" id="8_rs2ow"] +[ext_resource type="Resource" uid="uid://civ4gr1c2pq7g" path="res://entities/plants/resources/plant_parts/Branch12.tres" id="9_5job5"] +[ext_resource type="Resource" uid="uid://bqfocs6f0iypo" path="res://entities/plants/resources/plant_parts/Branch13.tres" id="10_cynqk"] +[ext_resource type="Resource" uid="uid://drml5dm8i3j3a" path="res://entities/plants/resources/plant_parts/Branch14.tres" id="11_b21au"] +[ext_resource type="Resource" uid="uid://b1t5nfwcln5vo" path="res://entities/plants/resources/plant_parts/Branch15.tres" id="12_17ac3"] +[ext_resource type="Resource" uid="uid://b4s58a600q2rn" path="res://entities/plants/resources/plant_parts/Branch16.tres" id="13_fuh2b"] +[ext_resource type="Resource" uid="uid://dspugxsjw2aea" path="res://entities/plants/resources/plant_parts/Branch17.tres" id="14_28gvc"] +[ext_resource type="Resource" uid="uid://cnt38l2fmg8d7" path="res://entities/plants/resources/plant_parts/Branch18.tres" id="15_1cwvj"] +[ext_resource type="Script" uid="uid://cfjd8jelpm8dt" path="res://entities/plants/scripts/texture_builder/part_mutation_association.gd" id="16_c3tk3"] +[ext_resource type="Resource" uid="uid://wxqxm6d5twdh" path="res://entities/plants/resources/plant_parts/Leaf8.tres" id="17_q0jli"] +[ext_resource type="Resource" uid="uid://uoikjpno37bi" path="res://entities/plants/resources/plant_parts/Leaf9.tres" id="18_rplk6"] +[ext_resource type="Resource" uid="uid://c5gqwck2p5h5n" path="res://entities/plants/resources/plant_parts/Leaf10.tres" id="19_mcckl"] +[ext_resource type="Resource" uid="uid://c5fj1cw0f4mu6" path="res://entities/plants/resources/plant_parts/Leaf11.tres" id="20_3hcun"] +[ext_resource type="Resource" uid="uid://dce788f0adauv" path="res://entities/plants/resources/plant_parts/Leaf12.tres" id="21_kvmj5"] +[ext_resource type="Resource" uid="uid://dd34dikqoynp3" path="res://entities/plants/resources/plant_parts/Leaf13.tres" id="22_ocu7e"] +[ext_resource type="Resource" uid="uid://bynje6g2wvuvl" path="res://entities/plants/resources/plant_parts/Leaf14.tres" id="23_q771y"] +[ext_resource type="Resource" uid="uid://bd2op6q1masjt" path="res://entities/plants/resources/plant_parts/Leaf15.tres" id="24_5fbyu"] +[ext_resource type="Resource" uid="uid://bvajuw0r47edw" path="res://entities/plants/resources/plant_parts/Leaf16.tres" id="25_2plsj"] +[ext_resource type="Resource" uid="uid://cxgw1vgket0fw" path="res://entities/plants/resources/plant_parts/Leaf1.tres" id="26_yjh7s"] +[ext_resource type="Resource" uid="uid://qb6bftgq0n6y" path="res://entities/plants/resources/plant_parts/Leaf2.tres" id="27_abtbh"] +[ext_resource type="Resource" uid="uid://ft112n57di0e" path="res://entities/plants/resources/plant_parts/Leaf3.tres" id="28_j5s6w"] +[ext_resource type="Resource" uid="uid://dwjj6qmcjhn68" path="res://entities/plants/resources/plant_parts/Leaf4.tres" id="29_p21mk"] +[ext_resource type="Resource" uid="uid://bkr70mstyf8pp" path="res://entities/plants/resources/plant_parts/Leaf5.tres" id="30_wmcor"] +[ext_resource type="Resource" uid="uid://dcuwupmqt34ju" path="res://entities/plants/resources/plant_parts/Leaf6.tres" id="31_dx2ud"] +[ext_resource type="Resource" uid="uid://djmidq7yq452i" path="res://entities/plants/resources/plant_parts/Leaf7.tres" id="32_fpktn"] +[ext_resource type="Resource" uid="uid://crmvc77bqax1y" path="res://entities/plants/resources/plant_parts/Flower1.tres" id="33_7b70u"] +[ext_resource type="Resource" uid="uid://c0hr7icfkjkoi" path="res://entities/plants/resources/plant_parts/Flower2.tres" id="34_q8uyx"] +[ext_resource type="Resource" uid="uid://clkoc1iccts2w" path="res://entities/plants/resources/plant_parts/Flower3.tres" id="35_r166b"] +[ext_resource type="Resource" uid="uid://bd8yapi1pokj6" path="res://entities/plants/resources/plant_parts/Flower4.tres" id="36_78dq1"] +[ext_resource type="Resource" uid="uid://brmd6d3l8trqs" path="res://entities/plants/resources/plant_parts/BottomLeaf1.tres" id="37_kyre2"] +[ext_resource type="Resource" uid="uid://cfr33014u7ig5" path="res://entities/plants/resources/plant_parts/BottomLeaf2.tres" id="38_hwp0s"] +[ext_resource type="Resource" uid="uid://cf70m1us8mfqp" path="res://entities/plants/resources/plant_parts/BottomLeaf3.tres" id="39_wjthp"] +[ext_resource type="Resource" uid="uid://ctlmah4ohqp25" path="res://entities/plants/resources/plant_parts/BottomLeaf4.tres" id="40_rf72b"] +[ext_resource type="Resource" uid="uid://b8o4q0hsm84ov" path="res://entities/plants/resources/plant_parts/BottomLeaf5.tres" id="41_fnybh"] +[ext_resource type="Resource" uid="uid://bb33v756anesy" path="res://entities/plants/resources/plant_parts/BottomLeaf6.tres" id="42_6o0xq"] +[ext_resource type="Resource" uid="uid://cbqrl72y0d1yg" path="res://entities/plants/resources/plant_parts/BottomLeaf7.tres" id="43_h02jx"] +[ext_resource type="Resource" uid="uid://dwppani7gyjl5" path="res://entities/plants/resources/plant_parts/BottomLeaf8.tres" id="44_1v1v5"] +[ext_resource type="Resource" uid="uid://dkta1u1u0efxk" path="res://entities/plants/resources/plant_parts/BottomLeaf9.tres" id="45_yha2t"] + +[sub_resource type="Resource" id="Resource_x75j3"] +script = ExtResource("16_c3tk3") +parts = Array[ExtResource("2_cfiqo")]([ExtResource("17_q0jli"), ExtResource("18_rplk6"), ExtResource("19_mcckl"), ExtResource("20_3hcun"), ExtResource("21_kvmj5"), ExtResource("22_ocu7e"), ExtResource("23_q771y"), ExtResource("24_5fbyu"), ExtResource("25_2plsj")]) +part_amount = 2 +metadata/_custom_type_script = "uid://cfjd8jelpm8dt" + +[sub_resource type="Resource" id="Resource_setyo"] +script = ExtResource("16_c3tk3") +parts = Array[ExtResource("2_cfiqo")]([ExtResource("26_yjh7s"), ExtResource("27_abtbh"), ExtResource("28_j5s6w"), ExtResource("29_p21mk"), ExtResource("30_wmcor"), ExtResource("31_dx2ud"), ExtResource("32_fpktn")]) +part_amount = 2 +metadata/_custom_type_script = "uid://cfjd8jelpm8dt" + +[sub_resource type="Resource" id="Resource_n40r1"] +script = ExtResource("16_c3tk3") +parts = Array[ExtResource("2_cfiqo")]([ExtResource("33_7b70u"), ExtResource("34_q8uyx"), ExtResource("35_r166b"), ExtResource("36_78dq1")]) +part_amount = 2 +metadata/_custom_type_script = "uid://cfjd8jelpm8dt" + +[sub_resource type="Resource" id="Resource_pw6ot"] +script = ExtResource("16_c3tk3") +parts = Array[ExtResource("2_cfiqo")]([ExtResource("37_kyre2"), ExtResource("38_hwp0s"), ExtResource("39_wjthp"), ExtResource("40_rf72b"), ExtResource("41_fnybh"), ExtResource("42_6o0xq"), ExtResource("43_h02jx"), ExtResource("44_1v1v5"), ExtResource("45_yha2t")]) +part_amount = 2 +metadata/_custom_type_script = "uid://cfjd8jelpm8dt" + +[node name="TextureBuilder" type="Node" unique_id=79184097] +script = ExtResource("1_s8rsj") +bases = Array[ExtResource("2_cfiqo")]([ExtResource("3_coupj")]) +baby_bases = Array[ExtResource("2_cfiqo")]([ExtResource("4_coupj"), ExtResource("5_ggud5")]) +branches = Array[ExtResource("2_cfiqo")]([ExtResource("4_ggud5"), ExtResource("5_ufbqh"), ExtResource("6_jbu3q"), ExtResource("7_21cjy"), ExtResource("8_rs2ow"), ExtResource("9_5job5"), ExtResource("10_cynqk"), ExtResource("11_b21au"), ExtResource("12_17ac3"), ExtResource("13_fuh2b"), ExtResource("14_28gvc"), ExtResource("15_1cwvj")]) +parts_mutation_associations = Dictionary[String, ExtResource("16_c3tk3")]({ +"ANCIENT": SubResource("Resource_x75j3"), +"PRECOCIOUS": SubResource("Resource_setyo"), +"QUALITY": SubResource("Resource_n40r1"), +"QUICK": SubResource("Resource_pw6ot") +}) diff --git a/entities/interactables/item_object/assets/sprites/shadow.svg.import b/entities/interactables/item_object/assets/sprites/shadow.svg.import index 667d421..03ce6b1 100644 --- a/entities/interactables/item_object/assets/sprites/shadow.svg.import +++ b/entities/interactables/item_object/assets/sprites/shadow.svg.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/shadow.svg-3484c898461c709704cdbeef0cc1d3c3.c compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/entities/plants/assets/sprites/maias/growing.png.import b/entities/plants/assets/sprites/maias/growing.png.import index 1473020..661c8bf 100644 --- a/entities/plants/assets/sprites/maias/growing.png.import +++ b/entities/plants/assets/sprites/maias/growing.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/growing.png-7b76a9f596f5cec79fdd8685670b16b5. compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/entities/plants/assets/sprites/maias/mature.png.import b/entities/plants/assets/sprites/maias/mature.png.import index 68bb966..5c581d2 100644 --- a/entities/plants/assets/sprites/maias/mature.png.import +++ b/entities/plants/assets/sprites/maias/mature.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/mature.png-8766aea5da569488db27850c55c8418b.c compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/entities/plants/assets/sprites/plante-teste.png b/entities/plants/assets/sprites/plante-teste.png new file mode 100644 index 0000000..01b85a9 Binary files /dev/null and b/entities/plants/assets/sprites/plante-teste.png differ diff --git a/entities/plants/assets/sprites/plante-teste.png.import b/entities/plants/assets/sprites/plante-teste.png.import new file mode 100644 index 0000000..7ebfaf6 --- /dev/null +++ b/entities/plants/assets/sprites/plante-teste.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://doo2cxxa2p70a" +path="res://.godot/imported/plante-teste.png-24b9cb3074b067213929085cb8adf112.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://entities/plants/assets/sprites/plante-teste.png" +dest_files=["res://.godot/imported/plante-teste.png-24b9cb3074b067213929085cb8adf112.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +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/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +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/entities/plants/assets/sprites/seeds/grille_seeds.png.import b/entities/plants/assets/sprites/seeds/grille_seeds.png.import index 49e16d3..bfa5e3b 100644 --- a/entities/plants/assets/sprites/seeds/grille_seeds.png.import +++ b/entities/plants/assets/sprites/seeds/grille_seeds.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/grille_seeds.png-5193c30dc41cd45a15f8418b446b compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/entities/plants/plant_part_buider.tscn b/entities/plants/plant_part_buider.tscn new file mode 100644 index 0000000..d7236be --- /dev/null +++ b/entities/plants/plant_part_buider.tscn @@ -0,0 +1,41 @@ +[gd_scene format=3 uid="uid://cg6r56x11bvk2"] + +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="1_8nppj"] +[ext_resource type="Script" uid="uid://c360ic1aost1n" path="res://entities/plants/scripts/texture_builder/plant_part_builder.gd" id="2_a5yje"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("1_8nppj") +region = Rect2(46, 30, 308, 671) + +[node name="Base1" type="Sprite2D" unique_id=1642167049 node_paths=PackedStringArray("root", "attaches", "bottom_attaches")] +texture = SubResource("AtlasTexture_mypt2") +script = ExtResource("2_a5yje") +part_name = "Base1" +root = NodePath("Root") +attaches = NodePath("Attaches") +bottom_attaches = NodePath("BottomAttaches") + +[node name="Root" type="Node2D" parent="." unique_id=1974108401] +position = Vector2(14, 263) + +[node name="Attaches" type="Node" parent="." unique_id=2082226435] + +[node name="attach1" type="Node2D" parent="Attaches" unique_id=808392694] +position = Vector2(0, -251) + +[node name="attach2" type="Node2D" parent="Attaches" unique_id=1951230244] +position = Vector2(10, -85) + +[node name="attach3" type="Node2D" parent="Attaches" unique_id=1491711670] +position = Vector2(81, 80) + +[node name="BottomAttaches" type="Node" parent="." unique_id=456407982] + +[node name="battom_attach0" type="Node2D" parent="BottomAttaches" unique_id=885194661] +position = Vector2(-17, 293) + +[node name="battom_attach1" type="Node2D" parent="BottomAttaches" unique_id=1362515589] +position = Vector2(27, 295) + +[node name="battom_attach2" type="Node2D" parent="BottomAttaches" unique_id=1546335762] +position = Vector2(52, 300) diff --git a/entities/plants/plant_sprite.tscn b/entities/plants/plant_sprite.tscn index fd2102d..5effedc 100644 --- a/entities/plants/plant_sprite.tscn +++ b/entities/plants/plant_sprite.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://2hrg6yjk0yt0"] +[gd_scene format=3 uid="uid://2hrg6yjk0yt0"] [ext_resource type="Script" uid="uid://bmjjpk4lvijws" path="res://entities/plants/scripts/plant_sprite.gd" id="1_pq8o7"] [ext_resource type="Texture2D" uid="uid://pltmnkqd5ut2" path="res://entities/plants/assets/sprites/seeds/grille_seeds.png" id="3_j6jm5"] @@ -97,15 +97,14 @@ _data = { &"harvest": SubResource("Animation_rbgiq") } -[node name="PlantSprite" type="Node2D"] +[node name="PlantSprite" type="Node2D" unique_id=1274989778] script = ExtResource("1_pq8o7") -[node name="Sprite" type="Sprite2D" parent="."] +[node name="Sprite" type="Sprite2D" parent="." unique_id=1693882598] unique_name_in_owner = true scale = Vector2(0.15, 0.15) -offset = Vector2(0, -151.56) -[node name="PlantedSeed" type="Sprite2D" parent="Sprite"] +[node name="PlantedSeed" type="Sprite2D" parent="Sprite" unique_id=1134686525] unique_name_in_owner = true scale = Vector2(1.5, 1.5) texture = SubResource("AtlasTexture_wyuub") @@ -113,8 +112,6 @@ region_enabled = true region_rect = Rect2(0, -50, 124, 135) region_filter_clip_enabled = true -[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1793068152] unique_name_in_owner = true -libraries = { -&"": SubResource("AnimationLibrary_8eofq") -} +libraries/ = SubResource("AnimationLibrary_8eofq") diff --git a/entities/plants/resources/plant_mutations/ancient_mutation.tres b/entities/plants/resources/plant_mutations/ancient_mutation.tres index 494e671..0e782fb 100644 --- a/entities/plants/resources/plant_mutations/ancient_mutation.tres +++ b/entities/plants/resources/plant_mutations/ancient_mutation.tres @@ -1,7 +1,19 @@ -[gd_resource type="Resource" script_class="AncientMutation" load_steps=2 format=3 uid="uid://dys1ehlg4kwh7"] +[gd_resource type="Resource" script_class="AncientMutation" format=3 uid="uid://dys1ehlg4kwh7"] [ext_resource type="Script" uid="uid://c7po0bstyg80u" path="res://entities/plants/scripts/plant_mutation/ancient_mutation.gd" id="1_5g2qg"] +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_yqbjv"] +[ext_resource type="Resource" uid="uid://wxqxm6d5twdh" path="res://entities/plants/resources/plant_parts/Leaf8.tres" id="2_s2bpe"] +[ext_resource type="Resource" uid="uid://uoikjpno37bi" path="res://entities/plants/resources/plant_parts/Leaf9.tres" id="3_wfusp"] +[ext_resource type="Resource" uid="uid://c5gqwck2p5h5n" path="res://entities/plants/resources/plant_parts/Leaf10.tres" id="4_60d0x"] +[ext_resource type="Resource" uid="uid://c5fj1cw0f4mu6" path="res://entities/plants/resources/plant_parts/Leaf11.tres" id="5_ooo8j"] +[ext_resource type="Resource" uid="uid://dce788f0adauv" path="res://entities/plants/resources/plant_parts/Leaf12.tres" id="6_d0tr0"] +[ext_resource type="Resource" uid="uid://dd34dikqoynp3" path="res://entities/plants/resources/plant_parts/Leaf13.tres" id="7_jsy7o"] +[ext_resource type="Resource" uid="uid://bynje6g2wvuvl" path="res://entities/plants/resources/plant_parts/Leaf14.tres" id="8_m31fx"] +[ext_resource type="Resource" uid="uid://bd2op6q1masjt" path="res://entities/plants/resources/plant_parts/Leaf15.tres" id="9_78ar7"] +[ext_resource type="Resource" uid="uid://bvajuw0r47edw" path="res://entities/plants/resources/plant_parts/Leaf16.tres" id="10_dq1wt"] [resource] script = ExtResource("1_5g2qg") +possible_parts = Array[ExtResource("1_yqbjv")]([ExtResource("2_s2bpe"), ExtResource("3_wfusp"), ExtResource("4_60d0x"), ExtResource("5_ooo8j"), ExtResource("6_d0tr0"), ExtResource("7_jsy7o"), ExtResource("8_m31fx"), ExtResource("9_78ar7"), ExtResource("10_dq1wt")]) +part_amount = 3 metadata/_custom_type_script = "uid://c7po0bstyg80u" diff --git a/entities/plants/resources/plant_mutations/precocious_mutation.tres b/entities/plants/resources/plant_mutations/precocious_mutation.tres index 224cde2..5e2f8f6 100644 --- a/entities/plants/resources/plant_mutations/precocious_mutation.tres +++ b/entities/plants/resources/plant_mutations/precocious_mutation.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" script_class="PrecociousMutation" load_steps=2 format=3 uid="uid://c3am7s5bjy8qk"] +[gd_resource type="Resource" script_class="PrecociousMutation" format=3 uid="uid://c3am7s5bjy8qk"] [ext_resource type="Script" uid="uid://cx5mg5vf62bia" path="res://entities/plants/scripts/plant_mutation/precocious_mutation.gd" id="1_wjcm0"] diff --git a/entities/plants/resources/plant_mutations/quality_mutation.tres b/entities/plants/resources/plant_mutations/quality_mutation.tres index 4e13015..be9139a 100644 --- a/entities/plants/resources/plant_mutations/quality_mutation.tres +++ b/entities/plants/resources/plant_mutations/quality_mutation.tres @@ -1,7 +1,14 @@ -[gd_resource type="Resource" script_class="QualityMutation" load_steps=2 format=3 uid="uid://uabbkvg1rciq"] +[gd_resource type="Resource" script_class="QualityMutation" format=3 uid="uid://uabbkvg1rciq"] +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_f2p7y"] [ext_resource type="Script" uid="uid://bdobyk2j625lb" path="res://entities/plants/scripts/plant_mutation/quality_mutation.gd" id="1_u0ku1"] +[ext_resource type="Resource" uid="uid://crmvc77bqax1y" path="res://entities/plants/resources/plant_parts/Flower1.tres" id="2_1b5fn"] +[ext_resource type="Resource" uid="uid://c0hr7icfkjkoi" path="res://entities/plants/resources/plant_parts/Flower2.tres" id="3_k2uo3"] +[ext_resource type="Resource" uid="uid://clkoc1iccts2w" path="res://entities/plants/resources/plant_parts/Flower3.tres" id="4_ywc6r"] +[ext_resource type="Resource" uid="uid://bd8yapi1pokj6" path="res://entities/plants/resources/plant_parts/Flower4.tres" id="5_fnfed"] [resource] script = ExtResource("1_u0ku1") +possible_parts = Array[ExtResource("1_f2p7y")]([ExtResource("2_1b5fn"), ExtResource("3_k2uo3"), ExtResource("4_ywc6r"), ExtResource("5_fnfed")]) +part_amount = 2 metadata/_custom_type_script = "uid://bdobyk2j625lb" diff --git a/entities/plants/resources/plant_mutations/quick_mutation.tres b/entities/plants/resources/plant_mutations/quick_mutation.tres index ad6933b..e974102 100644 --- a/entities/plants/resources/plant_mutations/quick_mutation.tres +++ b/entities/plants/resources/plant_mutations/quick_mutation.tres @@ -1,7 +1,19 @@ -[gd_resource type="Resource" script_class="QuickMutation" load_steps=2 format=3 uid="uid://b04gaipu237sx"] +[gd_resource type="Resource" script_class="QuickMutation" format=3 uid="uid://b04gaipu237sx"] +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_68ssf"] [ext_resource type="Script" uid="uid://bhtq0cbrgu58v" path="res://entities/plants/scripts/plant_mutation/quick_mutation.gd" id="1_hr7tm"] +[ext_resource type="Resource" uid="uid://brmd6d3l8trqs" path="res://entities/plants/resources/plant_parts/BottomLeaf1.tres" id="2_37ogi"] +[ext_resource type="Resource" uid="uid://cfr33014u7ig5" path="res://entities/plants/resources/plant_parts/BottomLeaf2.tres" id="3_4wjrs"] +[ext_resource type="Resource" uid="uid://cf70m1us8mfqp" path="res://entities/plants/resources/plant_parts/BottomLeaf3.tres" id="4_w4xgf"] +[ext_resource type="Resource" uid="uid://ctlmah4ohqp25" path="res://entities/plants/resources/plant_parts/BottomLeaf4.tres" id="5_7gtu2"] +[ext_resource type="Resource" uid="uid://b8o4q0hsm84ov" path="res://entities/plants/resources/plant_parts/BottomLeaf5.tres" id="6_yoj6x"] +[ext_resource type="Resource" uid="uid://bb33v756anesy" path="res://entities/plants/resources/plant_parts/BottomLeaf6.tres" id="7_fuf4y"] +[ext_resource type="Resource" uid="uid://cbqrl72y0d1yg" path="res://entities/plants/resources/plant_parts/BottomLeaf7.tres" id="8_25vee"] +[ext_resource type="Resource" uid="uid://dwppani7gyjl5" path="res://entities/plants/resources/plant_parts/BottomLeaf8.tres" id="9_hqe0q"] +[ext_resource type="Resource" uid="uid://dkta1u1u0efxk" path="res://entities/plants/resources/plant_parts/BottomLeaf9.tres" id="10_mxd37"] [resource] script = ExtResource("1_hr7tm") +possible_parts = Array[ExtResource("1_68ssf")]([ExtResource("2_37ogi"), ExtResource("3_4wjrs"), ExtResource("4_w4xgf"), ExtResource("5_7gtu2"), ExtResource("6_yoj6x"), ExtResource("7_fuf4y"), ExtResource("8_25vee"), ExtResource("9_hqe0q"), ExtResource("10_mxd37")]) +part_amount = 2 metadata/_custom_type_script = "uid://bhtq0cbrgu58v" diff --git a/entities/plants/resources/plant_parts/Base1.tres b/entities/plants/resources/plant_parts/Base1.tres new file mode 100644 index 0000000..64b8c8c --- /dev/null +++ b/entities/plants/resources/plant_parts/Base1.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bfyafiewcrjln"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_enq8o"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_10bgv"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_10bgv") +region = Rect2(46, 30, 308, 671) + +[resource] +script = ExtResource("1_enq8o") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(14, 263) +attaches = Array[Vector2]([Vector2(0, -251), Vector2(10, -85), Vector2(81, 80)]) +bottom_attaches = Array[Vector2]([Vector2(-17, 293), Vector2(27, 295), Vector2(52, 300)]) diff --git a/entities/plants/resources/plant_parts/Base2.tres b/entities/plants/resources/plant_parts/Base2.tres new file mode 100644 index 0000000..6f63c6c --- /dev/null +++ b/entities/plants/resources/plant_parts/Base2.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bgh8a4xwc5stw"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ratl7"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_d45yo"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_d45yo") +region = Rect2(52, 724, 363, 448) + +[resource] +script = ExtResource("1_ratl7") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(89, 180) +attaches = Array[Vector2]([Vector2(82, 84), Vector2(-27, 5), Vector2(-121, -64), Vector2(-94, -159)]) +bottom_attaches = Array[Vector2]([Vector2(114, 191), Vector2(61, 187)]) diff --git a/entities/plants/resources/plant_parts/Base3.tres b/entities/plants/resources/plant_parts/Base3.tres new file mode 100644 index 0000000..039ba6e --- /dev/null +++ b/entities/plants/resources/plant_parts/Base3.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2vdf2sth2xjm"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p8ox4"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_3h2vf"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_3h2vf") +region = Rect2(58, 1268, 141, 393) + +[resource] +script = ExtResource("1_p8ox4") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(7, 156) +attaches = Array[Vector2]([Vector2(0, 52), Vector2(19, -149), Vector2(-10, -52)]) +bottom_attaches = Array[Vector2]([Vector2(21, 161), Vector2(-7, 162)]) diff --git a/entities/plants/resources/plant_parts/Base4.tres b/entities/plants/resources/plant_parts/Base4.tres new file mode 100644 index 0000000..3e426ea --- /dev/null +++ b/entities/plants/resources/plant_parts/Base4.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://clruuysx80pnn"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_03in3"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_108r1"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_108r1") +region = Rect2(223, 1265, 200, 386) + +[resource] +script = ExtResource("1_03in3") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(31, 158) +attaches = Array[Vector2]([Vector2(-8, 26), Vector2(-42, -156), Vector2(17, 54)]) +bottom_attaches = Array[Vector2]([Vector2(49, 165), Vector2(19, 169)]) diff --git a/entities/plants/resources/plant_parts/BottomLeaf1.tres b/entities/plants/resources/plant_parts/BottomLeaf1.tres new file mode 100644 index 0000000..67618ff --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf1.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://brmd6d3l8trqs"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_mvsqc"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_oqbgr"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_oqbgr") +region = Rect2(117, 1662, 70, 100) + +[resource] +script = ExtResource("1_mvsqc") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(1, 32) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf2.tres b/entities/plants/resources/plant_parts/BottomLeaf2.tres new file mode 100644 index 0000000..bb24015 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf2.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cfr33014u7ig5"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_14sjf"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_ud5ex"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_ud5ex") +region = Rect2(9, 1751, 100, 94) + +[resource] +script = ExtResource("1_14sjf") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(10, 35) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf3.tres b/entities/plants/resources/plant_parts/BottomLeaf3.tres new file mode 100644 index 0000000..f749719 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf3.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cf70m1us8mfqp"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_xplyn"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uj75q"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_uj75q") +region = Rect2(210, 1644, 112, 220) + +[resource] +script = ExtResource("1_xplyn") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(26, 79) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf4.tres b/entities/plants/resources/plant_parts/BottomLeaf4.tres new file mode 100644 index 0000000..bbe8c40 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf4.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ctlmah4ohqp25"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tv8sf"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_srnvv"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_srnvv") +region = Rect2(328, 1665, 118, 196) + +[resource] +script = ExtResource("1_tv8sf") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-29, 81) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf5.tres b/entities/plants/resources/plant_parts/BottomLeaf5.tres new file mode 100644 index 0000000..e769c68 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf5.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b8o4q0hsm84ov"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5lgql"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0b6yj"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_0b6yj") +region = Rect2(6, 1868, 101, 246) + +[resource] +script = ExtResource("1_5lgql") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-21, 102) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf6.tres b/entities/plants/resources/plant_parts/BottomLeaf6.tres new file mode 100644 index 0000000..d64422d --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf6.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bb33v756anesy"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gcphf"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_tnhr7"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_tnhr7") +region = Rect2(100, 1930, 121, 181) + +[resource] +script = ExtResource("1_gcphf") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(7, 68) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf7.tres b/entities/plants/resources/plant_parts/BottomLeaf7.tres new file mode 100644 index 0000000..055e692 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf7.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cbqrl72y0d1yg"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_k38pp"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_cwsfe"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_cwsfe") +region = Rect2(238, 1897, 80, 82) + +[resource] +script = ExtResource("1_k38pp") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(12, 25) +type = 2 +is_back = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf8.tres b/entities/plants/resources/plant_parts/BottomLeaf8.tres new file mode 100644 index 0000000..94da737 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf8.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dwppani7gyjl5"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2m37y"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_pyvr6"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_pyvr6") +region = Rect2(347, 1935, 87, 89) + +[resource] +script = ExtResource("1_2m37y") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-5, 25) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/BottomLeaf9.tres b/entities/plants/resources/plant_parts/BottomLeaf9.tres new file mode 100644 index 0000000..b2675d1 --- /dev/null +++ b/entities/plants/resources/plant_parts/BottomLeaf9.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dkta1u1u0efxk"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_2r1e2"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_tv2v3"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_tv2v3") +region = Rect2(281, 2022, 97, 94) + +[resource] +script = ExtResource("1_2r1e2") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(11, 25) +type = 2 +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Branch1.tres b/entities/plants/resources/plant_parts/Branch1.tres new file mode 100644 index 0000000..1fe2e75 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch1.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://7hrdkl6bf3o4"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_peh48"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_o5tro"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_o5tro") +region = Rect2(518, 116, 147, 110) + +[resource] +script = ExtResource("1_peh48") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-34, 2) +type = 1 +is_back = true diff --git a/entities/plants/resources/plant_parts/Branch10.tres b/entities/plants/resources/plant_parts/Branch10.tres new file mode 100644 index 0000000..2fdb13c --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch10.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b68fyu1j5d6te"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bxo74"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_fvydc"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_fvydc") +region = Rect2(716, 966, 212, 172) + +[resource] +script = ExtResource("1_bxo74") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-66, 11) +attaches = Array[Vector2]([Vector2(-14, 39), Vector2(58, -39)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch11.tres b/entities/plants/resources/plant_parts/Branch11.tres new file mode 100644 index 0000000..aebffdd --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch11.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2y7o2hc6ffei"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wnxgs"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_smg8i"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_smg8i") +region = Rect2(487, 1206, 111, 164) + +[resource] +script = ExtResource("1_wnxgs") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(28, 47) +attaches = Array[Vector2]([Vector2(4, 29)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch12.tres b/entities/plants/resources/plant_parts/Branch12.tres new file mode 100644 index 0000000..3622585 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch12.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://civ4gr1c2pq7g"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1cr0i"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h0d20"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_h0d20") +region = Rect2(753, 1188, 172, 191) + +[resource] +script = ExtResource("1_1cr0i") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-19, 57) +attaches = Array[Vector2]([Vector2(6, 31), Vector2(1, -12)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch13.tres b/entities/plants/resources/plant_parts/Branch13.tres new file mode 100644 index 0000000..cd509ef --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch13.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bqfocs6f0iypo"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_p4qfr"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_iibe2"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_iibe2") +region = Rect2(515, 1445, 123, 171) + +[resource] +script = ExtResource("1_p4qfr") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-19, 57) +attaches = Array[Vector2]([Vector2(12, 16)]) +type = 1 +is_back = true diff --git a/entities/plants/resources/plant_parts/Branch14.tres b/entities/plants/resources/plant_parts/Branch14.tres new file mode 100644 index 0000000..562dc03 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch14.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://drml5dm8i3j3a"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_5xrel"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0v6u4"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_0v6u4") +region = Rect2(708, 1421, 178, 204) + +[resource] +script = ExtResource("1_5xrel") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(34, 75) +attaches = Array[Vector2]([Vector2(18, 21)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch15.tres b/entities/plants/resources/plant_parts/Branch15.tres new file mode 100644 index 0000000..c275e22 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch15.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b1t5nfwcln5vo"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0mgvf"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_k1p2k"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_k1p2k") +region = Rect2(450, 1656, 194, 235) + +[resource] +script = ExtResource("1_0mgvf") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(33, 85) +attaches = Array[Vector2]([Vector2(-6, 19), Vector2(-33, -25)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch16.tres b/entities/plants/resources/plant_parts/Branch16.tres new file mode 100644 index 0000000..bfab889 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch16.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b4s58a600q2rn"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4nmf"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_ifu40"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_ifu40") +region = Rect2(745, 1655, 214, 183) + +[resource] +script = ExtResource("1_l4nmf") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-42, 53) +attaches = Array[Vector2]([Vector2(19, 3)]) +type = 1 +is_back = true diff --git a/entities/plants/resources/plant_parts/Branch17.tres b/entities/plants/resources/plant_parts/Branch17.tres new file mode 100644 index 0000000..7a17d7e --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch17.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dspugxsjw2aea"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_gpxi3"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_e0an0"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_e0an0") +region = Rect2(453, 1996, 156, 102) + +[resource] +script = ExtResource("1_gpxi3") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(47, 30) +attaches = Array[Vector2]([Vector2(-11, 5)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch18.tres b/entities/plants/resources/plant_parts/Branch18.tres new file mode 100644 index 0000000..7f8d05b --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch18.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cnt38l2fmg8d7"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_wmuv5"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4klgd"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_4klgd") +region = Rect2(723, 1895, 198, 194) + +[resource] +script = ExtResource("1_wmuv5") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-49, 73) +attaches = Array[Vector2]([Vector2(18, 21)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch2.tres b/entities/plants/resources/plant_parts/Branch2.tres new file mode 100644 index 0000000..cfe1d3f --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch2.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ceisi5yyie7to"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1eil5"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h27ow"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_h27ow") +region = Rect2(735, 104, 118, 109) + +[resource] +script = ExtResource("1_1eil5") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(28, 5) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch3.tres b/entities/plants/resources/plant_parts/Branch3.tres new file mode 100644 index 0000000..80e4c12 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch3.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cxiu8frk04b5i"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_qrhlr"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4au1t"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_4au1t") +region = Rect2(487, 242, 188, 176) + +[resource] +script = ExtResource("1_qrhlr") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(39, 45) +attaches = Array[Vector2]([Vector2(6, 35), Vector2(-24, -34)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch4.tres b/entities/plants/resources/plant_parts/Branch4.tres new file mode 100644 index 0000000..afc1692 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch4.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://53p5g07e3pb4"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_tu2er"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_2wu38"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_2wu38") +region = Rect2(743, 246, 192, 185) + +[resource] +script = ExtResource("1_tu2er") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-30, 56) +attaches = Array[Vector2]([Vector2(1, 27), Vector2(43, -54)]) +type = 1 +is_back = true diff --git a/entities/plants/resources/plant_parts/Branch5.tres b/entities/plants/resources/plant_parts/Branch5.tres new file mode 100644 index 0000000..fbc431e --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch5.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cyfyodtfxne1w"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sfan5"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_7ri8e"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_7ri8e") +region = Rect2(458, 495, 226, 204) + +[resource] +script = ExtResource("1_sfan5") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(54, 70) +attaches = Array[Vector2]([Vector2(18, 6), Vector2(-55, -52)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch6.tres b/entities/plants/resources/plant_parts/Branch6.tres new file mode 100644 index 0000000..5cd288a --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch6.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cuvtf4y1dspcp"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_l4h5t"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_yt05g"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_yt05g") +region = Rect2(728, 493, 203, 179) + +[resource] +script = ExtResource("1_l4h5t") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-36, 59) +attaches = Array[Vector2]([Vector2(16, 27)]) +type = 1 +is_back = true diff --git a/entities/plants/resources/plant_parts/Branch7.tres b/entities/plants/resources/plant_parts/Branch7.tres new file mode 100644 index 0000000..0acfaee --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch7.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://6jnbms553dyd"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ixygn"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_62ciq"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_62ciq") +region = Rect2(446, 743, 234, 186) + +[resource] +script = ExtResource("1_ixygn") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(67, 31) +attaches = Array[Vector2]([Vector2(-4, 14), Vector2(-63, -45)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Branch8.tres b/entities/plants/resources/plant_parts/Branch8.tres new file mode 100644 index 0000000..c56f6c2 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch8.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkpe0b38m0prg"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1kyqm"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_4kt4t"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_4kt4t") +region = Rect2(714, 787, 187, 129) + +[resource] +script = ExtResource("1_1kyqm") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-55, -5) +attaches = Array[Vector2]([Vector2(-18, 16), Vector2(55, 2)]) +type = 1 +is_back = true diff --git a/entities/plants/resources/plant_parts/Branch9.tres b/entities/plants/resources/plant_parts/Branch9.tres new file mode 100644 index 0000000..6eafd29 --- /dev/null +++ b/entities/plants/resources/plant_parts/Branch9.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://31oq17bv1t4t"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_36y6q"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_qdh8q"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_qdh8q") +region = Rect2(442, 964, 199, 159) + +[resource] +script = ExtResource("1_36y6q") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(67, 23) +attaches = Array[Vector2]([Vector2(13, 31), Vector2(-29, -14)]) +type = 1 diff --git a/entities/plants/resources/plant_parts/Flower1.tres b/entities/plants/resources/plant_parts/Flower1.tres new file mode 100644 index 0000000..21e8032 --- /dev/null +++ b/entities/plants/resources/plant_parts/Flower1.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://crmvc77bqax1y"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_3u7fo"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_23bbh"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_23bbh") +region = Rect2(1597, 5, 152, 159) + +[resource] +script = ExtResource("1_3u7fo") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(49, 63) +type = 3 +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Flower2.tres b/entities/plants/resources/plant_parts/Flower2.tres new file mode 100644 index 0000000..3fc1c3a --- /dev/null +++ b/entities/plants/resources/plant_parts/Flower2.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c0hr7icfkjkoi"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_bcreq"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_af12b"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_af12b") +region = Rect2(1746, 8, 116, 165) + +[resource] +script = ExtResource("1_bcreq") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(23, 67) +type = 3 +is_back = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Flower3.tres b/entities/plants/resources/plant_parts/Flower3.tres new file mode 100644 index 0000000..8e7fb2a --- /dev/null +++ b/entities/plants/resources/plant_parts/Flower3.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://clkoc1iccts2w"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_vlome"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_157wb"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_157wb") +region = Rect2(1884, 8, 83, 202) + +[resource] +script = ExtResource("1_vlome") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(11, 72) +type = 3 +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Flower4.tres b/entities/plants/resources/plant_parts/Flower4.tres new file mode 100644 index 0000000..2b1475b --- /dev/null +++ b/entities/plants/resources/plant_parts/Flower4.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bd8yapi1pokj6"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_0uwmh"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_h3coc"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_h3coc") +region = Rect2(1995, 32, 103, 187) + +[resource] +script = ExtResource("1_0uwmh") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-13, 76) +type = 3 +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf1.tres b/entities/plants/resources/plant_parts/Leaf1.tres new file mode 100644 index 0000000..c3ed2c8 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf1.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cxgw1vgket0fw"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_ajsfl"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_nif4i"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_nif4i") +region = Rect2(1108, 8, 123, 149) + +[resource] +script = ExtResource("1_ajsfl") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(27, 42) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf10.tres b/entities/plants/resources/plant_parts/Leaf10.tres new file mode 100644 index 0000000..f1a6a21 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf10.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c5gqwck2p5h5n"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_205mu"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_nlpf8"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_nlpf8") +region = Rect2(1281, 504, 72, 89) + +[resource] +script = ExtResource("1_205mu") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-10, 34) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf11.tres b/entities/plants/resources/plant_parts/Leaf11.tres new file mode 100644 index 0000000..c6a691d --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf11.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://c5fj1cw0f4mu6"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_nyyxg"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_y2fie"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_y2fie") +region = Rect2(1251, 600, 74, 95) + +[resource] +script = ExtResource("1_nyyxg") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-16, 32) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf12.tres b/entities/plants/resources/plant_parts/Leaf12.tres new file mode 100644 index 0000000..84cae65 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf12.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dce788f0adauv"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_eaujg"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_lsafj"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_lsafj") +region = Rect2(1419, 499, 195, 198) + +[resource] +script = ExtResource("1_eaujg") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-58, 75) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf13.tres b/entities/plants/resources/plant_parts/Leaf13.tres new file mode 100644 index 0000000..0f14be5 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf13.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dd34dikqoynp3"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_faxmp"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_0me46"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_0me46") +region = Rect2(952, 728, 189, 168) + +[resource] +script = ExtResource("1_faxmp") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(70, -55) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf14.tres b/entities/plants/resources/plant_parts/Leaf14.tres new file mode 100644 index 0000000..40bdad2 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf14.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bynje6g2wvuvl"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_55x88"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_dmctu"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_dmctu") +region = Rect2(1178, 720, 110, 95) + +[resource] +script = ExtResource("1_55x88") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(25, 0) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf15.tres b/entities/plants/resources/plant_parts/Leaf15.tres new file mode 100644 index 0000000..f9a7727 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf15.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bd2op6q1masjt"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_uhia7"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_atmi3"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_atmi3") +region = Rect2(1292, 810, 104, 95) + +[resource] +script = ExtResource("1_uhia7") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-32, 5) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf16.tres b/entities/plants/resources/plant_parts/Leaf16.tres new file mode 100644 index 0000000..88ec0a1 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf16.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bvajuw0r47edw"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_761dd"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_3rcv4"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_3rcv4") +region = Rect2(1390, 745, 241, 143) + +[resource] +script = ExtResource("1_761dd") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-86, 28) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf2.tres b/entities/plants/resources/plant_parts/Leaf2.tres new file mode 100644 index 0000000..43eb275 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf2.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://qb6bftgq0n6y"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_b4uc1"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_dc8tr"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_dc8tr") +region = Rect2(1230, 79, 81, 132) + +[resource] +script = ExtResource("1_b4uc1") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(1, 48) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf3.tres b/entities/plants/resources/plant_parts/Leaf3.tres new file mode 100644 index 0000000..52242d0 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf3.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://ft112n57di0e"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_sabo0"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uvvih"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_uvvih") +region = Rect2(1302, 15, 87, 114) + +[resource] +script = ExtResource("1_sabo0") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-18, 46) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf4.tres b/entities/plants/resources/plant_parts/Leaf4.tres new file mode 100644 index 0000000..ab27633 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf4.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dwjj6qmcjhn68"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_fvj4t"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_akiip"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_akiip") +region = Rect2(926, 108, 226, 322) + +[resource] +script = ExtResource("1_fvj4t") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(80, 133) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf5.tres b/entities/plants/resources/plant_parts/Leaf5.tres new file mode 100644 index 0000000..d121d86 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf5.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkr70mstyf8pp"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_07tkv"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_uotjj"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_uotjj") +region = Rect2(1154, 230, 137, 215) + +[resource] +script = ExtResource("1_07tkv") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(40, 74) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf6.tres b/entities/plants/resources/plant_parts/Leaf6.tres new file mode 100644 index 0000000..73234bf --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf6.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dcuwupmqt34ju"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_m3t4k"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_qfabu"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_qfabu") +region = Rect2(1306, 214, 107, 221) + +[resource] +script = ExtResource("1_m3t4k") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-28, 91) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf7.tres b/entities/plants/resources/plant_parts/Leaf7.tres new file mode 100644 index 0000000..cca5d32 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf7.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://djmidq7yq452i"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_jg4cg"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_chdp7"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_chdp7") +region = Rect2(1431, 134, 191, 287) + +[resource] +script = ExtResource("1_jg4cg") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(-58, 109) +type = 2 +base_attachable = true +bottom_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf8.tres b/entities/plants/resources/plant_parts/Leaf8.tres new file mode 100644 index 0000000..b8476bb --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf8.tres @@ -0,0 +1,16 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://wxqxm6d5twdh"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_1f2ok"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_pu3mc"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_pu3mc") +region = Rect2(974, 502, 200, 162) + +[resource] +script = ExtResource("1_1f2ok") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(73, 47) +type = 2 +base_attachable = true +branch_attachable = true diff --git a/entities/plants/resources/plant_parts/Leaf9.tres b/entities/plants/resources/plant_parts/Leaf9.tres new file mode 100644 index 0000000..e369ec8 --- /dev/null +++ b/entities/plants/resources/plant_parts/Leaf9.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://uoikjpno37bi"] + +[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="1_g38jy"] +[ext_resource type="Texture2D" uid="uid://doo2cxxa2p70a" path="res://entities/plants/assets/sprites/plante-teste.png" id="2_unpmr"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_mypt2"] +atlas = ExtResource("2_unpmr") +region = Rect2(1171, 488, 94, 104) + +[resource] +script = ExtResource("1_g38jy") +texture = SubResource("AtlasTexture_mypt2") +root = Vector2(23, 37) +type = 2 +is_back = true +base_attachable = true +branch_attachable = true diff --git a/entities/plants/scripts/plant_archetype.gd b/entities/plants/scripts/plant_archetype.gd index 46fd99f..fb5acd7 100644 --- a/entities/plants/scripts/plant_archetype.gd +++ b/entities/plants/scripts/plant_archetype.gd @@ -1,17 +1,15 @@ -@tool extends Resource class_name PlantArchetype -@export var archetype_name = Random.generate_random_word() -@export var texture_builder = TextureBuilder.new() +@export var archetype_name := Random.generate_random_word() @export var plant_area_radius = 20 @export var plant_influence_radius = 100 -@export var growing_time= 2 +@export var growing_time = 2 @export var lifetime = 8 @export var base_score = 1 @export var seed_number = 2 @export var seed_random_loose = 1 -@export var available_mutations : Array[PlantMutation] = [ +@export var available_mutations: Array[PlantMutation] = [ AncientMutation.new(), PrecociousMutation.new(), QualityMutation.new(), @@ -19,9 +17,7 @@ class_name PlantArchetype ] static func get_all() -> Array[PlantArchetype]: - return [ - PlantArchetype.new() - ] + return [PlantArchetype.new()] static func get_random() -> PlantArchetype: return get_all().pick_random() diff --git a/entities/plants/scripts/plant_data.gd b/entities/plants/scripts/plant_data.gd index c9d9d3b..f1c8419 100644 --- a/entities/plants/scripts/plant_data.gd +++ b/entities/plants/scripts/plant_data.gd @@ -18,6 +18,8 @@ enum State {PLANTED, GROWING, MATURE, DEAD} @export var leafs = 0 # +1 score @export var roots = 0 # +1 lifetime +# var texture_builder: TextureBuilder = preload("res://entities/plants/scripts/texture_builder/texture_builder.tres") + func _init( _position : Vector2 = Vector2.ZERO, _archetype : PlantArchetype = PlantArchetype.get_random(), @@ -83,12 +85,6 @@ func get_state() -> State: return State.GROWING return State.MATURE -func get_plant_texture() -> Texture: - return archetype.texture_builder.build_plant_texture(self) - -func get_seed_texture(): - return archetype.texture_builder.build_seed_texture(random_seed) - func get_seed_number(state = get_state()): var seed_number = archetype.seed_number if (state == State.MATURE or state == State.DEAD) else 0 @@ -111,4 +107,4 @@ func get_random_seed_income(): ) func disappear(): - disappeared.emit(self) \ No newline at end of file + disappeared.emit(self) diff --git a/entities/plants/scripts/plant_mutation.gd b/entities/plants/scripts/plant_mutation.gd index 897b39e..e522eaf 100644 --- a/entities/plants/scripts/plant_mutation.gd +++ b/entities/plants/scripts/plant_mutation.gd @@ -3,6 +3,7 @@ class_name PlantMutation @export var level : int = 1 +var id : String : get = get_mutation_id var name : String : get = get_mutation_name func _init(_level : int = 1): @@ -14,6 +15,10 @@ func get_icon() -> Texture: func get_base_rarity() -> int: return 0 +func get_mutation_id() -> String: + printerr("Classe abstraite PlantMutation appelée") + return "" + func get_mutation_name() -> String: printerr("Classe abstraite PlantMutation appelée") return "" diff --git a/entities/plants/scripts/plant_mutation/ancient_mutation.gd b/entities/plants/scripts/plant_mutation/ancient_mutation.gd index 229b4f7..e758ede 100644 --- a/entities/plants/scripts/plant_mutation/ancient_mutation.gd +++ b/entities/plants/scripts/plant_mutation/ancient_mutation.gd @@ -9,6 +9,9 @@ func get_icon() -> Texture: func get_base_rarity() -> int: return 0 +func get_mutation_id() -> String: + return "ANCIENT" + func get_mutation_name() -> String: return tr("ANCIENT") diff --git a/entities/plants/scripts/plant_mutation/precocious_mutation.gd b/entities/plants/scripts/plant_mutation/precocious_mutation.gd index f3e92b5..cbe67d6 100644 --- a/entities/plants/scripts/plant_mutation/precocious_mutation.gd +++ b/entities/plants/scripts/plant_mutation/precocious_mutation.gd @@ -7,6 +7,9 @@ func get_icon() -> Texture: func get_base_rarity() -> int: return 0 +func get_mutation_id() -> String: + return "PRECOCIOUS" + func get_mutation_name() -> String: return tr("PRECOCIOUS") diff --git a/entities/plants/scripts/plant_mutation/quality_mutation.gd b/entities/plants/scripts/plant_mutation/quality_mutation.gd index dcdfc44..07a28bf 100644 --- a/entities/plants/scripts/plant_mutation/quality_mutation.gd +++ b/entities/plants/scripts/plant_mutation/quality_mutation.gd @@ -7,6 +7,9 @@ func get_icon() -> Texture: func get_base_rarity() -> int: return 0 +func get_mutation_id() -> String: + return "QUALITY" + func get_mutation_name() -> String: return tr("QUALITY") diff --git a/entities/plants/scripts/plant_mutation/quick_mutation.gd b/entities/plants/scripts/plant_mutation/quick_mutation.gd index 0ac1c55..124ec17 100644 --- a/entities/plants/scripts/plant_mutation/quick_mutation.gd +++ b/entities/plants/scripts/plant_mutation/quick_mutation.gd @@ -7,6 +7,9 @@ func get_icon() -> Texture: func get_base_rarity() -> int: return 0 +func get_mutation_id() -> String: + return "QUICK" + func get_mutation_name() -> String: return tr("QUICK") diff --git a/entities/plants/scripts/plant_sprite.gd b/entities/plants/scripts/plant_sprite.gd index bd09063..01a239a 100644 --- a/entities/plants/scripts/plant_sprite.gd +++ b/entities/plants/scripts/plant_sprite.gd @@ -16,9 +16,9 @@ func update_plant_sprite(plant_data : PlantData, with_animation = false): await %AnimationPlayer.animation_finished %Sprite.flip_h = true if plant_data.random_seed%2 == 0 else false - %Sprite.texture = plant_data.get_plant_texture() + %Sprite.texture = PlantTextureBuilder.build_plant_texture(plant_data) - %PlantedSeed.texture = plant_data.get_seed_texture() + %PlantedSeed.texture = PlantTextureBuilder.build_seed_texture(plant_data.random_seed) %PlantedSeed.visible = plant_data.get_state() == PlantData.State.PLANTED # %PlantedSeed.region_rect = Rect2( diff --git a/entities/plants/scripts/texture_builder/part_archetypr_association.gd b/entities/plants/scripts/texture_builder/part_archetypr_association.gd new file mode 100644 index 0000000..e25e009 --- /dev/null +++ b/entities/plants/scripts/texture_builder/part_archetypr_association.gd @@ -0,0 +1,6 @@ +extends Resource +class_name PartArchetypeAssociation + +@export var bases: Array[PlantPart] +@export var branches: Array[PlantPart] +@export var branches_amount: int = 1 diff --git a/entities/plants/scripts/texture_builder/part_archetypr_association.gd.uid b/entities/plants/scripts/texture_builder/part_archetypr_association.gd.uid new file mode 100644 index 0000000..4a07c58 --- /dev/null +++ b/entities/plants/scripts/texture_builder/part_archetypr_association.gd.uid @@ -0,0 +1 @@ +uid://c8wmu8a3gyg55 diff --git a/entities/plants/scripts/texture_builder/part_assembler.gd b/entities/plants/scripts/texture_builder/part_assembler.gd new file mode 100644 index 0000000..4640dee --- /dev/null +++ b/entities/plants/scripts/texture_builder/part_assembler.gd @@ -0,0 +1,18 @@ +extends Node + +@export var n_plants_to_generate: int +@export var space_between_plants: float + +func _ready(): + generate_plants(); + +func generate_plants(): + for i in n_plants_to_generate: + print("Generate plant") + var plant_position := Vector2(i * space_between_plants, 0) + var plant_data: PlantData = PlantData.new(plant_position) + plant_data.day = plant_data.get_growing_time() + plant_data.mutations.append(plant_data.archetype.available_mutations.pick_random()) + var plant: Plant = Plant.new(plant_data) + add_child(plant) + plant.global_position = plant_position diff --git a/entities/plants/scripts/texture_builder/part_assembler.gd.uid b/entities/plants/scripts/texture_builder/part_assembler.gd.uid new file mode 100644 index 0000000..19429e9 --- /dev/null +++ b/entities/plants/scripts/texture_builder/part_assembler.gd.uid @@ -0,0 +1 @@ +uid://daod4korkrm2r diff --git a/entities/plants/scripts/texture_builder/part_mutation_association.gd b/entities/plants/scripts/texture_builder/part_mutation_association.gd new file mode 100644 index 0000000..2ae0e8e --- /dev/null +++ b/entities/plants/scripts/texture_builder/part_mutation_association.gd @@ -0,0 +1,5 @@ +extends Resource +class_name PartMutationAssociation + +@export var parts: Array[PlantPart] +@export var part_amount: int = 1 diff --git a/entities/plants/scripts/texture_builder/part_mutation_association.gd.uid b/entities/plants/scripts/texture_builder/part_mutation_association.gd.uid new file mode 100644 index 0000000..bcd0745 --- /dev/null +++ b/entities/plants/scripts/texture_builder/part_mutation_association.gd.uid @@ -0,0 +1 @@ +uid://cfjd8jelpm8dt diff --git a/entities/plants/scripts/texture_builder/plant_part.gd b/entities/plants/scripts/texture_builder/plant_part.gd new file mode 100644 index 0000000..86f2745 --- /dev/null +++ b/entities/plants/scripts/texture_builder/plant_part.gd @@ -0,0 +1,26 @@ +extends Resource +class_name PlantPart + +enum PartType {BASE_PART, BRANCH_PART, LEAF_PART, FLOWER_PART} + +@export var texture: Texture +@export var root: Vector2 +@export var attaches: Array[Vector2] +@export var bottom_attaches: Array[Vector2] +@export var type: PartType + +@export var is_back: bool +@export var base_attachable: bool +@export var bottom_attachable: bool +@export var branch_attachable: bool + +func init(textute_arg: Texture, root_arg: Vector2, attaches_arg: Array[Vector2], bottom_attaches_arg: Array[Vector2], type_arg: PartType, is_back_arg: bool, base_attachable_arg: bool, bottom_attachable_arg: bool, branch_attachable_arg: bool) -> void: + texture = textute_arg + root = root_arg + attaches = attaches_arg + bottom_attaches = bottom_attaches_arg + type = type_arg + is_back = is_back_arg + base_attachable = base_attachable_arg + bottom_attachable = bottom_attachable_arg + branch_attachable = branch_attachable_arg diff --git a/entities/plants/scripts/texture_builder/plant_part.gd.uid b/entities/plants/scripts/texture_builder/plant_part.gd.uid new file mode 100644 index 0000000..8f0dd7a --- /dev/null +++ b/entities/plants/scripts/texture_builder/plant_part.gd.uid @@ -0,0 +1 @@ +uid://b3jwglylqdqtw diff --git a/entities/plants/scripts/texture_builder/plant_part_builder.gd b/entities/plants/scripts/texture_builder/plant_part_builder.gd new file mode 100644 index 0000000..1fd573f --- /dev/null +++ b/entities/plants/scripts/texture_builder/plant_part_builder.gd @@ -0,0 +1,83 @@ +@tool +extends Sprite2D +class_name PlantPartScene + +@export var part_name: String + +@export_tool_button("Load resource") var load_resource_button = load_resource + +@export var root: Node2D +@export var attaches: Node +@export var bottom_attaches: Node +@export var type: PlantPart.PartType + +@export var is_back: bool +@export var base_attachable: bool +@export var bottom_attachable: bool +@export var branch_attachable: bool + +@export_tool_button("Save as resource") var save_as_resource_button = save_as_resource + +func load_resource(): + var destination := "res://entities/plants/resources/plant_parts/" + part_name + ".tres" + print("Loading: ", part_name, " at: ", destination) + var plant_part = ResourceLoader.load(destination) + if plant_part is PlantPart: + root.position = plant_part.root + texture = plant_part.texture + + var attaches_children := attaches.get_children() + for i in maxi(attaches_children.size(), plant_part.attaches.size()): + if i < attaches_children.size() && i < plant_part.attaches.size(): + attaches_children[i].position = plant_part.attaches[i] + elif i >= attaches_children.size(): + var new_child = Node2D.new() + new_child.name = "attach" + str(i) + new_child.position = plant_part.attaches[i] + attaches.add_child(new_child) + new_child.set_owner(self ) + elif i >= plant_part.attaches.size(): + attaches_children[i].free() + else: + printerr("Invalid code path") + + var bottom_attaches_children := bottom_attaches.get_children() + for i in maxi(bottom_attaches_children.size(), plant_part.bottom_attaches.size()): + if i < bottom_attaches_children.size() && i < plant_part.bottom_attaches.size(): + bottom_attaches_children[i].position = plant_part.bottom_attaches[i] + elif i >= bottom_attaches_children.size(): + var new_child = Node2D.new() + new_child.name = "bottom_attach" + str(i) + new_child.position = plant_part.bottom_attaches[i] + bottom_attaches.add_child(new_child) + new_child.set_owner(self ) + elif i >= plant_part.bottom_attaches.size(): + bottom_attaches_children[i].free() + else: + printerr("Invalid code path") + + type = plant_part.type + is_back = plant_part.is_back + base_attachable = plant_part.base_attachable + bottom_attachable = plant_part.bottom_attachable + branch_attachable = plant_part.branch_attachable + else: + printerr("Error loading ", part_name) + +func save_as_resource(): + var destination := "res://entities/plants/resources/plant_parts/" + part_name + ".tres" + print("Saving: ", part_name, " at: ", destination) + var attaches_vec2: Array[Vector2] + for attach in attaches.get_children(): + attaches_vec2.append(attach.position) + var bottom_attaches_vec2: Array[Vector2] + for bottom_attach in bottom_attaches.get_children(): + bottom_attaches_vec2.append(bottom_attach.position) + + var plant_part = PlantPart.new() + plant_part.init(texture, root.position, attaches_vec2, bottom_attaches_vec2, type, is_back, base_attachable, bottom_attachable, branch_attachable) + var err := ResourceSaver.save(plant_part, destination) + if err != OK: + printerr("Error saving resource: ", error_string(err)) + else: + plant_part.take_over_path(destination) diff --git a/entities/plants/scripts/texture_builder/plant_part_builder.gd.uid b/entities/plants/scripts/texture_builder/plant_part_builder.gd.uid new file mode 100644 index 0000000..776a85f --- /dev/null +++ b/entities/plants/scripts/texture_builder/plant_part_builder.gd.uid @@ -0,0 +1 @@ +uid://c360ic1aost1n diff --git a/entities/plants/scripts/texture_builder/texture_builder.gd b/entities/plants/scripts/texture_builder/texture_builder.gd index 48eccc4..7c8a1b7 100644 --- a/entities/plants/scripts/texture_builder/texture_builder.gd +++ b/entities/plants/scripts/texture_builder/texture_builder.gd @@ -1,20 +1,158 @@ -extends Resource -class_name TextureBuilder +extends Node -const PLACEHOLDER_SEED_TEXTURE : Texture = preload("res://entities/plants/assets/sprites/default/seed.png") -const PLACEHOLDER_MATURE_TEXTURE : Texture = preload("res://entities/plants/assets/sprites/default/mature.png") -const PLACEHOLDER_GROWING_TEXTURE : Texture = preload("res://entities/plants/assets/sprites/default/growing.png") +const IMAGE_WIDTH := 1000 +const IMAGE_HEIGHT := 2000 +const PLACEHOLDER_SEED_TEXTURE: Texture = preload("res://entities/plants/assets/sprites/default/seed.png") +const PLACEHOLDER_MATURE_TEXTURE: Texture = preload("res://entities/plants/assets/sprites/default/mature.png") +const PLACEHOLDER_GROWING_TEXTURE: Texture = preload("res://entities/plants/assets/sprites/default/growing.png") -func build_seed_texture(_random_seed : int) -> Texture: +# @export var parts_archetype_associations: Dictionary[PlantArchetype, PartArchetypeAssociation] TODO:: have the archetypes +@export var bases: Array[PlantPart] +@export var baby_bases: Array[PlantPart] +@export var branches: Array[PlantPart] +@export var n_branches: int = 2 +@export var parts_mutation_associations: Dictionary[String, PartMutationAssociation] + +var rng := RandomNumberGenerator.new() + +func build_seed_texture(_random_seed: int) -> Texture: return PLACEHOLDER_SEED_TEXTURE -func build_plant_texture(plant_data : PlantData) -> Texture: +func build_plant_texture(plant_data: PlantData) -> Texture: + rng.seed = plant_data.random_seed + + var mature_texture: Texture = PLACEHOLDER_MATURE_TEXTURE + var mature_image: Image = Image.create_empty(IMAGE_WIDTH, IMAGE_HEIGHT, false, Image.FORMAT_RGBA8) + var mature_image_center: Vector2i = 0.5 * mature_image.get_size() + var branch_parts: Array[PlantPart] + var base_part: PlantPart + var available_base_attaches: Array[Vector2] + var available_base_bottom_attach: Array[Vector2] + var branch_attaches: Array[Vector2] + var branch_root: Array[Vector2] + var branch_parent_attach: Array[Vector2] + var parts_to_place: Array[PlantPart] match plant_data.get_state(): PlantData.State.MATURE: - return PLACEHOLDER_MATURE_TEXTURE + print("Build mature texture") + # var plant_archetype := plant_data.archetype + if bases.size() == 0: + printerr("No base in archetype") + return mature_texture + # var base_part: PlantPart = pick_random(parts_archetype_associations[plant_archetype].bases) + base_part = pick_random(bases) + + var base_image = base_part.texture.get_image() + var base_image_center: Vector2i = 0.5 * base_image.get_size() + mature_image.blend_rect(base_image, Rect2i(Vector2i.ZERO, base_image.get_size()), mature_image_center - base_image_center - Vector2i(base_part.root)) + + if branches.size() == 0: + printerr("No branches in archetype") + # var branch_parts: Array[PlantPart] = parts_archetype_associations[plant_archetype].branches + for i in n_branches: + branch_parts.append(pick_random(branches)) + + for m in plant_data.mutations: + print("mutations: ", m.id) + var association: PartMutationAssociation = parts_mutation_associations[m.id] + var mutation_possible_parts := association.parts + for p in association.part_amount: + parts_to_place.append(pick_random(mutation_possible_parts)) + + PlantData.State.GROWING: - return PLACEHOLDER_GROWING_TEXTURE + print("Build growing texture") + # var plant_archetype := plant_data.archetype + if baby_bases.size() == 0: + printerr("No baby base in archetype") + return mature_texture + # var base_part: PlantPart = pick_random(parts_archetype_associations[plant_archetype].baby_bases) + base_part = pick_random(baby_bases) + + var base_image = base_part.texture.get_image() + var base_image_center: Vector2i = 0.5 * base_image.get_size() + mature_image.blend_rect(base_image, Rect2i(Vector2i.ZERO, base_image.get_size()), mature_image_center - base_image_center - Vector2i(base_part.root)) + + for m in plant_data.mutations: + print("mutations: ", m.id) + var association: PartMutationAssociation = parts_mutation_associations[m.id] + var mutation_possible_parts := association.parts + for p in ceil(0.5 * association.part_amount): + parts_to_place.append(pick_random(mutation_possible_parts)) _: - return null \ No newline at end of file + print("Not handled state") + return null + + available_base_attaches = base_part.attaches.duplicate() + available_base_bottom_attach = base_part.bottom_attaches.duplicate() + + assert(branch_parts.size() <= base_part.attaches.size(), + str("More branches (", branch_parts.size(), ") than base attaches (", base_part.attaches.size(), ")")) + + for branch in branch_parts: + if available_base_attaches.size() == 0: + break + + var ind: int = rng.randi_range(0, available_base_attaches.size() - 1) + var attach: Vector2 = available_base_attaches.pop_at(ind) + + var branch_image: Image = branch.texture.get_image() + var branch_image_center: Vector2i = 0.5 * branch_image.get_size() + mature_image.blend_rect(branch_image, Rect2i(Vector2i.ZERO, branch.texture.get_size()), mature_image_center - branch_image_center + Vector2i(attach - branch.root - base_part.root)) + + for branch_attach in branch.attaches: + branch_attaches.append(branch_attach) + branch_root.append(branch.root) + branch_parent_attach.append(attach) + + if parts_to_place.size() > branch_attaches.size() + base_part.attaches.size() - branch_parts.size(): + printerr("ERROR generating : Parts to place : ", parts_to_place.size(), + "; Branch Attaches : ", branch_attaches.size(), + "; Base attaches : ", base_part.attaches.size(), + "; Branch parts : ", branch_parts.size()) + + for part: PlantPart in parts_to_place: + print("create part") + var attach: Vector2 + var parent_root: Vector2 + var chosen_attach_type: int = 0 + var attachables: Array[int] + if part.base_attachable && available_base_attaches.size() > 0: + attachables.append(1) + if part.bottom_attachable && available_base_bottom_attach.size() > 0: + attachables.append(2) + if part.branch_attachable && branch_attaches.size() > 0: + attachables.append(3) + # assert(attachables.size() > 0) + if attachables.size() == 0: + print("No attach available") + continue + chosen_attach_type = pick_random(attachables) + + if chosen_attach_type == 1: # base attach + var ind := rng.randi_range(0, available_base_attaches.size() - 1) + attach = available_base_attaches.pop_at(ind) + parent_root = base_part.root + elif chosen_attach_type == 2: # bottom + var ind := rng.randi_range(0, available_base_bottom_attach.size() - 1) + attach = available_base_bottom_attach.pop_at(ind) + parent_root = base_part.root + elif chosen_attach_type == 3: # branch + var ind := rng.randi_range(0, branch_attaches.size() - 1) + attach = branch_attaches.pop_at(ind) - branch_root.pop_at(ind) + branch_parent_attach.pop_at(ind) + parent_root = base_part.root + + var part_image: Image = part.texture.get_image() + var part_image_center: Vector2i = 0.5 * part_image.get_size() + var relative_root_centered_pos: Vector2 = Vector2(mature_image_center - part_image_center) - part.root + mature_image.blend_rect(part_image, Rect2i(Vector2i.ZERO, part.texture.get_size()), relative_root_centered_pos + attach - parent_root) + + if rng.randi() % 2 == 0: + mature_image.flip_x() + mature_texture = ImageTexture.create_from_image(mature_image) + return mature_texture + +func pick_random(array: Array): + return array[rng.randi_range(0, array.size() - 1)] diff --git a/entities/plants/test_sprites.tscn b/entities/plants/test_sprites.tscn new file mode 100644 index 0000000..12ddff3 --- /dev/null +++ b/entities/plants/test_sprites.tscn @@ -0,0 +1,27 @@ +[gd_scene format=3 uid="uid://cfsq3hma8djk3"] + +[ext_resource type="Script" uid="uid://daod4korkrm2r" path="res://entities/plants/scripts/texture_builder/part_assembler.gd" id="1_wqioj"] +[ext_resource type="Texture2D" uid="uid://dr72xhc07i56e" path="res://stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture.png" id="2_jldtq"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_jldtq"] +atlas = ExtResource("2_jldtq") +region = Rect2(536, 22.5, 210, 210) + +[node name="TestSprites" type="Node2D" unique_id=1624731692] +script = ExtResource("1_wqioj") +n_plants_to_generate = 3 +space_between_plants = 125.0 + +[node name="Camera2D" type="Camera2D" parent="." unique_id=628954249] +position = Vector2(123, -46) + +[node name="MossContaminationAtlasTexture" type="Sprite2D" parent="." unique_id=1497811487] +position = Vector2(255, -66) +texture = SubResource("AtlasTexture_jldtq") + +[node name="Sprite2D" type="Sprite2D" parent="." unique_id=143026861] +texture_repeat = 2 +position = Vector2(46, -67) +texture = SubResource("AtlasTexture_jldtq") +region_enabled = true +region_rect = Rect2(0, 0, 210, 210) diff --git a/entities/player/assets/sprites/robot.png.import b/entities/player/assets/sprites/robot.png.import index dae6874..b6a6231 100644 --- a/entities/player/assets/sprites/robot.png.import +++ b/entities/player/assets/sprites/robot.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/robot.png-17ad80b7e526843a55ea7e95e3e071cb.ct compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/entities/player/inventory/scripts/items/seed.gd b/entities/player/inventory/scripts/items/seed.gd index 46600e4..760aed5 100644 --- a/entities/player/inventory/scripts/items/seed.gd +++ b/entities/player/inventory/scripts/items/seed.gd @@ -51,7 +51,7 @@ func get_description() -> String: return tr("PLANT_%s_MUST_BE_USED_IN_DECONTAMINATED_ZONE") % plant_name func get_icon() -> Texture2D: - return plant_archetype.texture_builder.build_seed_texture(random_seed) + return PlantTextureBuilder.build_seed_texture(random_seed) func get_energy_used() -> int: return 1 diff --git a/gui/game/assets/texture/Interface sans boutons.png.import b/gui/game/assets/texture/Interface sans boutons.png.import index 3e550a6..150a00b 100644 --- a/gui/game/assets/texture/Interface sans boutons.png.import +++ b/gui/game/assets/texture/Interface sans boutons.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Interface sans boutons.png-8803a272a5ab9636d0 compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/gui/game/assets/texture/Tablette info.png.import b/gui/game/assets/texture/Tablette info.png.import index 2c2afbf..ea87f19 100644 --- a/gui/game/assets/texture/Tablette info.png.import +++ b/gui/game/assets/texture/Tablette info.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/Tablette info.png-1bbdbf5d41cf3eed26f09b419e1 compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/gui/menu/assets/texture/SeedingPlanetsLogo.png.import b/gui/menu/assets/texture/SeedingPlanetsLogo.png.import index 6a9e8e5..600cd4e 100644 --- a/gui/menu/assets/texture/SeedingPlanetsLogo.png.import +++ b/gui/menu/assets/texture/SeedingPlanetsLogo.png.import @@ -18,6 +18,8 @@ dest_files=["res://.godot/imported/SeedingPlanetsLogo.png-21df48940674276ef147ab compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/gui/ressources/fonts/spincycle_ot.otf.import b/gui/ressources/fonts/spincycle_ot.otf.import index d2d6484..bce5388 100644 --- a/gui/ressources/fonts/spincycle_ot.otf.import +++ b/gui/ressources/fonts/spincycle_ot.otf.import @@ -21,6 +21,7 @@ msdf_pixel_range=8 msdf_size=48 allow_system_fallback=true force_autohinter=false +modulate_color_glyphs=false hinting=1 subpixel_positioning=4 keep_rounding_remainders=true diff --git a/project.godot b/project.godot index be492d0..72ba961 100644 --- a/project.godot +++ b/project.godot @@ -28,6 +28,7 @@ buses/default_bus_layout="" [autoload] Pointer="*res://gui/pointer/pointer.tscn" +PlantTextureBuilder="*uid://b8gqdgabrjaml" AudioManager="*res://common/audio_manager/audio_manager.tscn" GameInfo="*res://common/game_info/game_info.gd" Pause="*res://gui/pause/pause.tscn" diff --git a/stages/cockpit/assets/3d/cockpit.blend.import b/stages/cockpit/assets/3d/cockpit.blend.import index c70f50d..1991b5d 100644 --- a/stages/cockpit/assets/3d/cockpit.blend.import +++ b/stages/cockpit/assets/3d/cockpit.blend.import @@ -66,6 +66,7 @@ blender/meshes/colors=false blender/meshes/uvs=true blender/meshes/normals=true blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false blender/meshes/tangents=true blender/meshes/skins=2 blender/meshes/export_bones_deforming_mesh_only=false