3 Commits

Author SHA1 Message Date
Altaezio
981965d8c7 plant-builder working 2026-02-24 14:28:24 +01:00
Altaezio
d28e734806 branch rotated + optimization 2026-02-22 00:05:35 +01:00
Altaezio
4ca102966b plant tester + shado assets 2026-02-21 18:40:00 +01:00
85 changed files with 1623 additions and 487 deletions

View File

@@ -2,61 +2,112 @@
[ext_resource type="Script" uid="uid://dt2ip3pw2cboy" path="res://entities/plants/scripts/texture_builder/plant_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://bfyafiewcrjln" path="res://entities/plants/resources/plant_parts/Base1.tres" id="3_15wue"]
[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://bgh8a4xwc5stw" path="res://entities/plants/resources/plant_parts/Base2.tres" id="5_21cjy"]
[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://cyfyodtfxne1w" path="res://entities/plants/resources/plant_parts/Branch5.tres" id="8_qm7aw"]
[ext_resource type="Resource" uid="uid://cuvtf4y1dspcp" path="res://entities/plants/resources/plant_parts/Branch6.tres" id="9_3e4c1"]
[ext_resource type="Resource" uid="uid://wgmxpk52rg7x" path="res://entities/plants/resources/plant_parts/LeafA1.tres" id="11_fc4k8"]
[ext_resource type="Resource" uid="uid://d2y7o2hc6ffei" path="res://entities/plants/resources/plant_parts/Branch11.tres" id="11_hvwgo"]
[ext_resource type="Resource" uid="uid://cbejb0uvdke7k" path="res://entities/plants/resources/plant_parts/LeafA2.tres" id="12_1b4fr"]
[ext_resource type="Resource" uid="uid://civ4gr1c2pq7g" path="res://entities/plants/resources/plant_parts/Branch12.tres" id="12_npk80"]
[ext_resource type="Resource" uid="uid://dujxttu80g0lo" path="res://entities/plants/resources/plant_parts/LeafA3.tres" id="13_ggcwy"]
[ext_resource type="Resource" uid="uid://bqfocs6f0iypo" path="res://entities/plants/resources/plant_parts/Branch13.tres" id="13_hyb2i"]
[ext_resource type="Resource" uid="uid://drml5dm8i3j3a" path="res://entities/plants/resources/plant_parts/Branch14.tres" id="14_4gk8a"]
[ext_resource type="Resource" uid="uid://bgv3nb10t6u3y" path="res://entities/plants/resources/plant_parts/LeafF1.tres" id="14_8r35x"]
[ext_resource type="Resource" uid="uid://bix3qwmsvuxs4" path="res://entities/plants/resources/plant_parts/LeafA4.tres" id="14_15wue"]
[ext_resource type="Resource" uid="uid://bs66avdkmbxjm" path="res://entities/plants/resources/plant_parts/LeafD1.tres" id="15_hvwgo"]
[ext_resource type="Resource" uid="uid://c31h25xdll8si" path="res://entities/plants/resources/plant_parts/FlowerD1.tres" id="15_3ti7v"]
[ext_resource type="Resource" uid="uid://be17y7clvf88e" path="res://entities/plants/resources/plant_parts/LeafE1.tres" id="15_p2blu"]
[ext_resource type="Resource" uid="uid://bkgw3wmoam10n" path="res://entities/plants/resources/plant_parts/LeafF2.tres" id="15_rbd7l"]
[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://cv2iad0m88cdr" path="res://entities/plants/resources/plant_parts/LeafD2.tres" id="16_npk80"]
[ext_resource type="Resource" uid="uid://b806ml8dd7gnn" path="res://entities/plants/resources/plant_parts/LeafD3.tres" id="17_hyb2i"]
[ext_resource type="Resource" uid="uid://ciga0npobiqc4" path="res://entities/plants/resources/plant_parts/LeafD4.tres" id="18_4gk8a"]
[ext_resource type="Resource" uid="uid://clh2iduja5emm" path="res://entities/plants/resources/plant_parts/LeafD5.tres" id="19_alra6"]
[ext_resource type="Resource" uid="uid://r5mspvasrq6y" path="res://entities/plants/resources/plant_parts/FlowerD2.tres" id="16_cpf4r"]
[ext_resource type="Resource" uid="uid://m8j2gfumw11w" path="res://entities/plants/resources/plant_parts/LeafF3.tres" id="16_nfxo0"]
[ext_resource type="Resource" uid="uid://dw7wdihxxy0uf" path="res://entities/plants/resources/plant_parts/LeafE2.tres" id="16_xt8tm"]
[ext_resource type="Resource" uid="uid://dth4dp88vs3gh" path="res://entities/plants/resources/plant_parts/LeafF4.tres" id="17_i8j71"]
[ext_resource type="Resource" uid="uid://br80voioh4jxu" path="res://entities/plants/resources/plant_parts/FlowerD3.tres" id="17_p2blu"]
[ext_resource type="Resource" uid="uid://3yi8hk73s5mm" path="res://entities/plants/resources/plant_parts/LeafE3.tres" id="17_qm7aw"]
[ext_resource type="Resource" uid="uid://cka6sihumbjpw" path="res://entities/plants/resources/plant_parts/LeafF5.tres" id="18_l2vrg"]
[ext_resource type="Resource" uid="uid://dq5dwqherb6ac" path="res://entities/plants/resources/plant_parts/LeafF6.tres" id="19_14c4k"]
[ext_resource type="Resource" uid="uid://ckef0dno4j5mn" path="res://entities/plants/resources/plant_parts/FlowerF1.tres" id="20_lggh7"]
[ext_resource type="Resource" uid="uid://dhhyh56shnure" path="res://entities/plants/resources/plant_parts/FlowerF2.tres" id="21_8r35x"]
[ext_resource type="Resource" uid="uid://cowkewtw2lg4i" path="res://entities/plants/resources/plant_parts/FlowerA1.tres" id="22_rbd7l"]
[ext_resource type="Resource" uid="uid://drn8vt4sp7u6q" path="res://entities/plants/resources/plant_parts/FlowerA2.tres" id="23_nfxo0"]
[ext_resource type="Resource" uid="uid://b3oqeugtrtera" path="res://entities/plants/resources/plant_parts/FlowerA3.tres" id="24_i8j71"]
[ext_resource type="Resource" uid="uid://ydvnxfnkbr2g" path="res://entities/plants/resources/plant_parts/FlowerA4.tres" id="25_l2vrg"]
[ext_resource type="Resource" uid="uid://banfc3pgm6a0m" path="res://entities/plants/resources/plant_parts/FlowerC1.tres" id="21_alra6"]
[ext_resource type="Resource" uid="uid://dmdyj7t4g48p" path="res://entities/plants/resources/plant_parts/FlowerC2.tres" id="22_lggh7"]
[ext_resource type="Resource" uid="uid://bhj7j78tokt25" path="res://entities/plants/resources/plant_parts/FlowerC3.tres" id="23_8r35x"]
[ext_resource type="Resource" uid="uid://bkgrwffi7m2i4" path="res://entities/plants/resources/plant_parts/FlowerC4.tres" id="24_rbd7l"]
[ext_resource type="Resource" uid="uid://bchwhdmxsaqic" path="res://entities/plants/resources/plant_parts/LeafA5.tres" id="29_nfxo0"]
[ext_resource type="Resource" uid="uid://cvr81iqokda6x" path="res://entities/plants/resources/plant_parts/LeafA6.tres" id="30_i8j71"]
[ext_resource type="Resource" uid="uid://cwskfwdasvv0g" path="res://entities/plants/resources/plant_parts/FlowerF3.tres" id="38_rbd7l"]
[ext_resource type="Resource" uid="uid://e0u1baixvaxn" path="res://entities/plants/resources/plant_parts/LeafE4.tres" id="42_14c4k"]
[ext_resource type="Resource" uid="uid://dgivyissl512e" path="res://entities/plants/resources/plant_parts/LeafG1.tres" id="43_y02ao"]
[ext_resource type="Resource" uid="uid://u6dwq3eowpcb" path="res://entities/plants/resources/plant_parts/LeafG2.tres" id="44_s8rsj"]
[ext_resource type="Resource" uid="uid://c4artcndro0r5" path="res://entities/plants/resources/plant_parts/FlowerB1.tres" id="45_coupj"]
[ext_resource type="Resource" uid="uid://b3dfua388ub4k" path="res://entities/plants/resources/plant_parts/FlowerB2.tres" id="46_ggud5"]
[ext_resource type="Resource" uid="uid://bnn0tcoab4plv" path="res://entities/plants/resources/plant_parts/FlowerB3.tres" id="47_ufbqh"]
[sub_resource type="Resource" id="Resource_x75j3"]
[sub_resource type="Resource" id="Resource_rt6tw"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("11_fc4k8"), ExtResource("12_1b4fr"), ExtResource("13_ggcwy"), ExtResource("14_15wue")])
part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_setyo"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("15_hvwgo"), ExtResource("16_npk80"), ExtResource("17_hyb2i"), ExtResource("18_4gk8a"), ExtResource("19_alra6")])
part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_n40r1"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("20_lggh7"), ExtResource("21_8r35x")])
part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_pw6ot"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("22_rbd7l"), ExtResource("23_nfxo0"), ExtResource("24_i8j71"), ExtResource("25_l2vrg")])
parts = Array[ExtResource("2_cfiqo")]([ExtResource("11_fc4k8"), ExtResource("12_1b4fr"), ExtResource("13_ggcwy"), ExtResource("14_15wue"), ExtResource("29_nfxo0"), ExtResource("30_i8j71")])
part_amount = 4
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_y02ao"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("15_3ti7v"), ExtResource("16_cpf4r"), ExtResource("17_p2blu")])
part_amount = 5
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_nfxo0"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("20_lggh7"), ExtResource("21_8r35x"), ExtResource("38_rbd7l")])
part_amount = 5
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_s8rsj"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("15_p2blu"), ExtResource("16_xt8tm"), ExtResource("17_qm7aw"), ExtResource("42_14c4k")])
part_amount = 5
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_14c4k"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("21_alra6"), ExtResource("22_lggh7"), ExtResource("23_8r35x"), ExtResource("24_rbd7l")])
part_amount = 4
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_cfiqo"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("43_y02ao"), ExtResource("44_s8rsj")])
part_amount = 3
metadata/_custom_type_script = "uid://cfjd8jelpm8dt"
[sub_resource type="Resource" id="Resource_jbu3q"]
script = ExtResource("16_c3tk3")
parts = Array[ExtResource("2_cfiqo")]([ExtResource("45_coupj"), ExtResource("46_ggud5"), ExtResource("47_ufbqh")])
part_amount = 5
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")])
branches = Array[ExtResource("2_cfiqo")]([ExtResource("4_ggud5"), ExtResource("5_ufbqh"), ExtResource("6_jbu3q"), ExtResource("7_21cjy"), ExtResource("8_qm7aw"), ExtResource("9_3e4c1")])
bases = Array[ExtResource("2_cfiqo")]([ExtResource("3_15wue")])
baby_bases = Array[ExtResource("2_cfiqo")]([ExtResource("5_21cjy")])
branches = Array[ExtResource("2_cfiqo")]([ExtResource("4_ggud5"), ExtResource("5_ufbqh"), ExtResource("6_jbu3q"), ExtResource("7_21cjy"), ExtResource("8_qm7aw"), ExtResource("9_3e4c1"), ExtResource("11_hvwgo"), ExtResource("12_npk80"), ExtResource("13_hyb2i"), ExtResource("14_4gk8a")])
n_branches = 5
base_leaves = Array[ExtResource("2_cfiqo")]([ExtResource("14_8r35x"), ExtResource("15_rbd7l"), ExtResource("16_nfxo0"), ExtResource("17_i8j71"), ExtResource("18_l2vrg"), ExtResource("19_14c4k")])
parts_mutation_associations = Dictionary[String, ExtResource("16_c3tk3")]({
"ANCIENT": SubResource("Resource_x75j3"),
"PRECOCIOUS": SubResource("Resource_setyo"),
"QUALITY": SubResource("Resource_n40r1"),
"QUICK": SubResource("Resource_pw6ot")
"ANCIENT": SubResource("Resource_rt6tw"),
"EPHEMERAL": SubResource("Resource_y02ao"),
"FERTILE": SubResource("Resource_nfxo0"),
"PURIFICATION": SubResource("Resource_s8rsj"),
"QUICK": SubResource("Resource_14c4k"),
"SOCIAL": SubResource("Resource_cfiqo"),
"TOUGH": SubResource("Resource_jbu3q")
})
chance_to_have_part = 0.9
origin_weights_base = Dictionary[int, int]({
0: 20,
1: 10,
2: 5
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bxnm1quxhx40i"
path="res://.godot/imported/asset-plante-fin_assemble.png-12a4965813cda4e41be0147e88d3a913.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png"
dest_files=["res://.godot/imported/asset-plante-fin_assemble.png-12a4965813cda4e41be0147e88d3a913.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

View File

@@ -1,29 +1,25 @@
[gd_scene format=3 uid="uid://cg6r56x11bvk2"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="1_aiiik"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="1_yh7e0"]
[ext_resource type="Script" uid="uid://c360ic1aost1n" path="res://entities/plants/scripts/texture_builder/plant_part_builder.gd" id="2_a5yje"]
[ext_resource type="Script" uid="uid://d01kj3twwcrmu" path="res://entities/plants/scripts/texture_builder/plant_attach_builder.gd" id="3_yh7e0"]
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("1_aiiik")
region = Rect2(525, 122, 136, 98)
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("1_yh7e0")
region = Rect2(937, 836, 309, 407)
[node name="Sprite" type="Sprite2D" unique_id=1642167049 node_paths=PackedStringArray("root", "attaches")]
texture = SubResource("AtlasTexture_khbsd")
texture = SubResource("AtlasTexture_yh7e0")
script = ExtResource("2_a5yje")
part_name = "Branch1"
part_name = "LeafG1"
type = 1
root = NodePath("Root")
attaches = NodePath("Attaches")
[node name="Root" type="Node2D" parent="." unique_id=1437082577]
position = Vector2(-39, 2)
position = Vector2(116, 172)
script = ExtResource("3_yh7e0")
attach_types = Array[int]([0])
attach_types = Array[int]([1, 3])
metadata/_custom_type_script = "uid://d01kj3twwcrmu"
[node name="Attaches" type="Node" parent="." unique_id=1834697767]
[node name="attach0" type="Node2D" parent="Attaches" unique_id=1511923721]
position = Vector2(8, -4)
script = ExtResource("3_yh7e0")
attach_types = Array[int]([1, 2])

View File

@@ -102,6 +102,7 @@ script = ExtResource("1_pq8o7")
[node name="Sprite" type="Sprite2D" parent="." unique_id=1693882598]
unique_name_in_owner = true
position = Vector2(0, -100)
scale = Vector2(0.15, 0.15)
[node name="PlantedSeed" type="Sprite2D" parent="Sprite" unique_id=1134686525]

View File

@@ -2,45 +2,39 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_10bgv"]
[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://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_10bgv"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_10bgv"]
[sub_resource type="Resource" id="Resource_10bgv"]
script = ExtResource("1_10bgv")
position = Vector2(55, 84)
attach_types = Array[int]([1, 2])
position = Vector2(59, 99)
attach_types = Array[int]([0])
[sub_resource type="Resource" id="Resource_m78t0"]
script = ExtResource("1_10bgv")
position = Vector2(37, 13)
attach_types = Array[int]([1, 2])
position = Vector2(-3, -68)
attach_types = Array[int]([0])
[sub_resource type="Resource" id="Resource_hbwie"]
script = ExtResource("1_10bgv")
position = Vector2(-13, -86)
attach_types = Array[int]([1])
position = Vector2(-17, -237)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_obhnl"]
script = ExtResource("1_10bgv")
position = Vector2(-24, -250)
attach_types = Array[int]([0, 1])
position = Vector2(-50, -286)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_dhqtw"]
script = ExtResource("1_10bgv")
position = Vector2(-56, -303)
attach_types = Array[int]([0, 1])
[sub_resource type="Resource" id="Resource_54ktm"]
script = ExtResource("1_10bgv")
position = Vector2(-7, 270)
attach_types = Array[int]([0])
position = Vector2(-2, 333)
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_10bgv")
region = Rect2(112, 23, 224, 692)
region = Rect2(41, 72, 237, 686)
[resource]
resource_name = "Base1"
script = ExtResource("1_enq8o")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_54ktm")
attaches = Array[ExtResource("1_10bgv")]([SubResource("Resource_10bgv"), SubResource("Resource_m78t0"), SubResource("Resource_hbwie"), SubResource("Resource_obhnl"), SubResource("Resource_dhqtw")])
root = SubResource("Resource_dhqtw")
attaches = Array[ExtResource("1_10bgv")]([SubResource("Resource_10bgv"), SubResource("Resource_m78t0"), SubResource("Resource_hbwie"), SubResource("Resource_obhnl")])

View File

@@ -0,0 +1,40 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bgh8a4xwc5stw"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_fpg0h"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_ex0x2"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_lfxw0"]
[sub_resource type="Resource" id="Resource_uf3kp"]
script = ExtResource("1_fpg0h")
position = Vector2(9, 45)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_hbst6"]
script = ExtResource("1_fpg0h")
position = Vector2(22, -118)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_w4gue"]
script = ExtResource("1_fpg0h")
position = Vector2(56, -169)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_gvdal"]
script = ExtResource("1_fpg0h")
position = Vector2(-22, -190)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_ctxsc"]
script = ExtResource("1_fpg0h")
position = Vector2(-31, 228)
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_lfxw0")
region = Rect2(75, 836, 184, 463)
[resource]
resource_name = "Base2"
script = ExtResource("2_ex0x2")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_ctxsc")
attaches = Array[ExtResource("1_fpg0h")]([SubResource("Resource_uf3kp"), SubResource("Resource_hbst6"), SubResource("Resource_w4gue"), SubResource("Resource_gvdal")])

View File

@@ -4,15 +4,15 @@
[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://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_o5tro"]
[sub_resource type="Resource" id="Resource_sfip3"]
[sub_resource type="Resource" id="Resource_o5tro"]
script = ExtResource("1_o5tro")
position = Vector2(8, -4)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_iss37"]
[sub_resource type="Resource" id="Resource_sfip3"]
script = ExtResource("1_o5tro")
position = Vector2(-39, 2)
attach_types = Array[int]([0])
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_o5tro")
@@ -22,5 +22,5 @@ region = Rect2(525, 122, 136, 98)
resource_name = "Branch1"
script = ExtResource("1_peh48")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_iss37")
attaches = Array[ExtResource("1_o5tro")]([SubResource("Resource_sfip3")])
root = SubResource("Resource_sfip3")
attaches = Array[ExtResource("1_o5tro")]([SubResource("Resource_o5tro")])

View File

@@ -0,0 +1,56 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://b68fyu1j5d6te"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_fvydc"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_x08jn"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_ot5v1"]
[sub_resource type="Resource" id="Resource_fvydc"]
script = ExtResource("1_fvydc")
position = Vector2(-89, 70)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_x08jn"]
script = ExtResource("1_fvydc")
position = Vector2(-38, 36)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_ot5v1"]
script = ExtResource("1_fvydc")
position = Vector2(31, -9)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_yep62"]
script = ExtResource("1_fvydc")
position = Vector2(20, -58)
attach_types = Array[int]([3, 2])
[sub_resource type="Resource" id="Resource_qu1f1"]
script = ExtResource("1_fvydc")
position = Vector2(53, -104)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_0c5bs"]
script = ExtResource("1_fvydc")
position = Vector2(98, -23)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_mybt3"]
script = ExtResource("1_fvydc")
position = Vector2(48, -70)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_qlwyk"]
script = ExtResource("1_fvydc")
position = Vector2(-135, 74)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_ot5v1")
region = Rect2(752, 3559, 363, 339)
[resource]
resource_name = "Branch10"
script = ExtResource("2_x08jn")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_qlwyk")
attaches = Array[ExtResource("1_fvydc")]([SubResource("Resource_fvydc"), SubResource("Resource_x08jn"), SubResource("Resource_ot5v1"), SubResource("Resource_yep62"), SubResource("Resource_qu1f1"), SubResource("Resource_0c5bs"), SubResource("Resource_mybt3")])

View File

@@ -0,0 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://d2y7o2hc6ffei"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_smg8i"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_0o4uq"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_ii5p4"]
[sub_resource type="Resource" id="Resource_83gik"]
script = ExtResource("1_smg8i")
position = Vector2(58, 62)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_dtp6r"]
script = ExtResource("1_smg8i")
position = Vector2(-48, -70)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_7vl6a"]
script = ExtResource("1_smg8i")
position = Vector2(-137, -105)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_yhbk0"]
script = ExtResource("1_smg8i")
position = Vector2(140, 86)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_ii5p4")
region = Rect2(142, 2522, 370, 282)
[resource]
resource_name = "Branch11"
script = ExtResource("2_0o4uq")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_yhbk0")
attaches = Array[ExtResource("1_smg8i")]([SubResource("Resource_83gik"), SubResource("Resource_dtp6r"), SubResource("Resource_7vl6a")])

View File

@@ -0,0 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://civ4gr1c2pq7g"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_h0d20"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_p8rhl"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_0ece1"]
[sub_resource type="Resource" id="Resource_y72ry"]
script = ExtResource("1_h0d20")
position = Vector2(50, -26)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_w8et7"]
script = ExtResource("1_h0d20")
position = Vector2(-110, -61)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_dkuwv"]
script = ExtResource("1_h0d20")
position = Vector2(-157, -72)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_i4sl3"]
script = ExtResource("1_h0d20")
position = Vector2(187, 79)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_0ece1")
region = Rect2(83, 2912, 463, 251)
[resource]
resource_name = "Branch12"
script = ExtResource("2_p8rhl")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_i4sl3")
attaches = Array[ExtResource("1_h0d20")]([SubResource("Resource_y72ry"), SubResource("Resource_w8et7"), SubResource("Resource_dkuwv")])

View File

@@ -0,0 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bqfocs6f0iypo"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_iibe2"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_3j5ru"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_u12ix"]
[sub_resource type="Resource" id="Resource_2cpm3"]
script = ExtResource("1_iibe2")
position = Vector2(-31, 21)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_7thl0"]
script = ExtResource("1_iibe2")
position = Vector2(41, -17)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_2i6au"]
script = ExtResource("1_iibe2")
position = Vector2(138, -61)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_bg6ob"]
script = ExtResource("1_iibe2")
position = Vector2(-143, 52)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_u12ix")
region = Rect2(112, 3279, 409, 215)
[resource]
resource_name = "Branch13"
script = ExtResource("2_3j5ru")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_bg6ob")
attaches = Array[ExtResource("1_iibe2")]([SubResource("Resource_2cpm3"), SubResource("Resource_7thl0"), SubResource("Resource_2i6au")])

View File

@@ -0,0 +1,36 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://drml5dm8i3j3a"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_0v6u4"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_sq3us"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_j5jc7"]
[sub_resource type="Resource" id="Resource_nqyym"]
script = ExtResource("1_0v6u4")
position = Vector2(-57, 49)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_mytka"]
script = ExtResource("1_0v6u4")
position = Vector2(47, -9)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_5hm5x"]
script = ExtResource("1_0v6u4")
position = Vector2(113, -50)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_j68fk"]
script = ExtResource("1_0v6u4")
position = Vector2(-130, 47)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_j5jc7")
region = Rect2(135, 3652, 362, 217)
[resource]
resource_name = "Branch14"
script = ExtResource("2_sq3us")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_j68fk")
attaches = Array[ExtResource("1_0v6u4")]([SubResource("Resource_nqyym"), SubResource("Resource_mytka"), SubResource("Resource_5hm5x")])

View File

@@ -4,15 +4,15 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_h27ow"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_h27ow"]
[sub_resource type="Resource" id="Resource_svi20"]
[sub_resource type="Resource" id="Resource_h27ow"]
script = ExtResource("1_h27ow")
position = Vector2(-1, 1)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_60wnb"]
[sub_resource type="Resource" id="Resource_svi20"]
script = ExtResource("1_h27ow")
position = Vector2(28, 0)
attach_types = Array[int]([0])
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_h27ow")
@@ -22,5 +22,5 @@ region = Rect2(743, 108, 104, 114)
resource_name = "Branch2"
script = ExtResource("1_1eil5")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_60wnb")
attaches = Array[ExtResource("1_h27ow")]([SubResource("Resource_svi20")])
root = SubResource("Resource_svi20")
attaches = Array[ExtResource("1_h27ow")]([SubResource("Resource_h27ow")])

View File

@@ -4,20 +4,25 @@
[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://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_4au1t"]
[sub_resource type="Resource" id="Resource_liidl"]
[sub_resource type="Resource" id="Resource_4au1t"]
script = ExtResource("1_4au1t")
position = Vector2(17, 28)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_liidl"]
script = ExtResource("1_4au1t")
position = Vector2(-15, -36)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_mivnq"]
script = ExtResource("1_4au1t")
position = Vector2(-15, -36)
attach_types = Array[int]([1, 2])
position = Vector2(-43, -55)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_psg71"]
[sub_resource type="Resource" id="Resource_khbsd"]
script = ExtResource("1_4au1t")
position = Vector2(46, 43)
attach_types = Array[int]([0])
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_4au1t")
@@ -27,5 +32,5 @@ region = Rect2(506, 248, 139, 173)
resource_name = "Branch3"
script = ExtResource("1_qrhlr")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_psg71")
attaches = Array[ExtResource("1_4au1t")]([SubResource("Resource_liidl"), SubResource("Resource_mivnq")])
root = SubResource("Resource_khbsd")
attaches = Array[ExtResource("1_4au1t")]([SubResource("Resource_4au1t"), SubResource("Resource_liidl"), SubResource("Resource_mivnq")])

View File

@@ -7,22 +7,22 @@
[sub_resource type="Resource" id="Resource_2wu38"]
script = ExtResource("1_2wu38")
position = Vector2(-19, 37)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_5mbvh"]
script = ExtResource("1_2wu38")
position = Vector2(-3, 1)
attach_types = Array[int]([1, 2])
position = Vector2(-1, -4)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_7ivk8"]
script = ExtResource("1_2wu38")
position = Vector2(29, -52)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_lwslo"]
script = ExtResource("1_2wu38")
position = Vector2(-44, 57)
attach_types = Array[int]([0])
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_5mbvh")

View File

@@ -4,25 +4,25 @@
[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://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_kwcpq"]
[sub_resource type="Resource" id="Resource_a5n1t"]
[sub_resource type="Resource" id="Resource_7ri8e"]
script = ExtResource("1_7ri8e")
position = Vector2(56, 24)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_kwcpq"]
script = ExtResource("1_7ri8e")
position = Vector2(36, -8)
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_a5n1t"]
script = ExtResource("1_7ri8e")
position = Vector2(-40, -66)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_d1jt0"]
script = ExtResource("1_7ri8e")
position = Vector2(36, -8)
attach_types = Array[int]([1, 2])
[sub_resource type="Resource" id="Resource_72tpv"]
script = ExtResource("1_7ri8e")
position = Vector2(-40, -66)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_04uhi"]
script = ExtResource("1_7ri8e")
position = Vector2(73, 61)
attach_types = Array[int]([0])
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_kwcpq")
@@ -32,5 +32,5 @@ region = Rect2(442, 491, 225, 234)
resource_name = "Branch5"
script = ExtResource("1_sfan5")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_04uhi")
attaches = Array[ExtResource("1_7ri8e")]([SubResource("Resource_a5n1t"), SubResource("Resource_d1jt0"), SubResource("Resource_72tpv")])
root = SubResource("Resource_d1jt0")
attaches = Array[ExtResource("1_7ri8e")]([SubResource("Resource_7ri8e"), SubResource("Resource_kwcpq"), SubResource("Resource_a5n1t")])

View File

@@ -4,25 +4,25 @@
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_cps4v"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_t38ym"]
[sub_resource type="Resource" id="Resource_o1b7h"]
[sub_resource type="Resource" id="Resource_yt05g"]
script = ExtResource("1_yt05g")
position = Vector2(-18, 26)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([2, 3])
[sub_resource type="Resource" id="Resource_pdqa4"]
[sub_resource type="Resource" id="Resource_cps4v"]
script = ExtResource("1_yt05g")
position = Vector2(16, -16)
attach_types = Array[int]([1, 2])
attach_types = Array[int]([3, 2])
[sub_resource type="Resource" id="Resource_y2r4w"]
[sub_resource type="Resource" id="Resource_t38ym"]
script = ExtResource("1_yt05g")
position = Vector2(44, -63)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_83cbs"]
[sub_resource type="Resource" id="Resource_o1b7h"]
script = ExtResource("1_yt05g")
position = Vector2(-49, 42)
attach_types = Array[int]([0])
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_t38ym")
@@ -32,5 +32,5 @@ region = Rect2(753, 507, 173, 183)
resource_name = "Branch6"
script = ExtResource("2_cps4v")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_83cbs")
attaches = Array[ExtResource("1_yt05g")]([SubResource("Resource_o1b7h"), SubResource("Resource_pdqa4"), SubResource("Resource_y2r4w")])
root = SubResource("Resource_o1b7h")
attaches = Array[ExtResource("1_yt05g")]([SubResource("Resource_yt05g"), SubResource("Resource_cps4v"), SubResource("Resource_t38ym")])

View File

@@ -0,0 +1,61 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://6jnbms553dyd"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_62ciq"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_hmnx4"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_64xx3"]
[sub_resource type="Resource" id="Resource_62ciq"]
script = ExtResource("1_62ciq")
position = Vector2(19, 109)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_hmnx4"]
script = ExtResource("1_62ciq")
position = Vector2(-64, 158)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_64xx3"]
script = ExtResource("1_62ciq")
position = Vector2(129, -28)
attach_types = Array[int]([1, 3, 2])
[sub_resource type="Resource" id="Resource_584up"]
script = ExtResource("1_62ciq")
position = Vector2(161, -90)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_7pnm7"]
script = ExtResource("1_62ciq")
position = Vector2(81, -121)
attach_types = Array[int]([1, 3, 2])
[sub_resource type="Resource" id="Resource_3cfto"]
script = ExtResource("1_62ciq")
position = Vector2(79, -201)
attach_types = Array[int]([3, 2])
[sub_resource type="Resource" id="Resource_q6abt"]
script = ExtResource("1_62ciq")
position = Vector2(82, 31)
attach_types = Array[int]([3, 2])
[sub_resource type="Resource" id="Resource_xtrwx"]
script = ExtResource("1_62ciq")
position = Vector2(83, -265)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_gi4wl"]
script = ExtResource("1_62ciq")
position = Vector2(-142, 199)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_64xx3")
region = Rect2(733, 2134, 355, 567)
[resource]
resource_name = "Branch7"
script = ExtResource("2_hmnx4")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_gi4wl")
attaches = Array[ExtResource("1_62ciq")]([SubResource("Resource_62ciq"), SubResource("Resource_hmnx4"), SubResource("Resource_64xx3"), SubResource("Resource_584up"), SubResource("Resource_7pnm7"), SubResource("Resource_3cfto"), SubResource("Resource_q6abt"), SubResource("Resource_xtrwx")])

View File

@@ -0,0 +1,81 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkpe0b38m0prg"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_4kt4t"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_27lv3"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_uywa1"]
[sub_resource type="Resource" id="Resource_4kt4t"]
script = ExtResource("1_4kt4t")
position = Vector2(106, 88)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_27lv3"]
script = ExtResource("1_4kt4t")
position = Vector2(30, 29)
attach_types = Array[int]([3, 2])
[sub_resource type="Resource" id="Resource_uywa1"]
script = ExtResource("1_4kt4t")
position = Vector2(-70, 7)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_f38s6"]
script = ExtResource("1_4kt4t")
position = Vector2(-159, -14)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_s0e8g"]
script = ExtResource("1_4kt4t")
position = Vector2(-213, -15)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_ls1nv"]
script = ExtResource("1_4kt4t")
position = Vector2(-68, -102)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_vh6s2"]
script = ExtResource("1_4kt4t")
position = Vector2(103, -181)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_7ej73"]
script = ExtResource("1_4kt4t")
position = Vector2(78, -53)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_m21ts"]
script = ExtResource("1_4kt4t")
position = Vector2(29, -5)
attach_types = Array[int]([3])
[sub_resource type="Resource" id="Resource_2uuoj"]
script = ExtResource("1_4kt4t")
position = Vector2(17, -31)
attach_types = Array[int]([3])
[sub_resource type="Resource" id="Resource_e1t12"]
script = ExtResource("1_4kt4t")
position = Vector2(-25, -63)
attach_types = Array[int]([3])
[sub_resource type="Resource" id="Resource_57gqx"]
script = ExtResource("1_4kt4t")
position = Vector2(89, -124)
attach_types = Array[int]([3, 1])
[sub_resource type="Resource" id="Resource_vj66r"]
script = ExtResource("1_4kt4t")
position = Vector2(172, 138)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_uywa1")
region = Rect2(619, 2705, 551, 494)
[resource]
resource_name = "Branch8"
script = ExtResource("2_27lv3")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_vj66r")
attaches = Array[ExtResource("1_4kt4t")]([SubResource("Resource_4kt4t"), SubResource("Resource_27lv3"), SubResource("Resource_uywa1"), SubResource("Resource_f38s6"), SubResource("Resource_s0e8g"), SubResource("Resource_ls1nv"), SubResource("Resource_vh6s2"), SubResource("Resource_7ej73"), SubResource("Resource_m21ts"), SubResource("Resource_2uuoj"), SubResource("Resource_e1t12"), SubResource("Resource_57gqx")])

View File

@@ -0,0 +1,56 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://31oq17bv1t4t"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_qdh8q"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_hbagk"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_o2wa0"]
[sub_resource type="Resource" id="Resource_qdh8q"]
script = ExtResource("1_qdh8q")
position = Vector2(-11, 57)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_hbagk"]
script = ExtResource("1_qdh8q")
position = Vector2(-60, 31)
attach_types = Array[int]([3, 2])
[sub_resource type="Resource" id="Resource_o2wa0"]
script = ExtResource("1_qdh8q")
position = Vector2(48, -16)
attach_types = Array[int]([1, 3])
[sub_resource type="Resource" id="Resource_w267e"]
script = ExtResource("1_qdh8q")
position = Vector2(-77, -29)
attach_types = Array[int]([1, 3, 2])
[sub_resource type="Resource" id="Resource_drvpg"]
script = ExtResource("1_qdh8q")
position = Vector2(-111, -67)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_bfy67"]
script = ExtResource("1_qdh8q")
position = Vector2(62, 33)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_wvhwx"]
script = ExtResource("1_qdh8q")
position = Vector2(101, -77)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_f4sg7"]
script = ExtResource("1_qdh8q")
position = Vector2(-62, 81)
attach_types = Array[int]([0])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_o2wa0")
region = Rect2(763, 3233, 353, 258)
[resource]
resource_name = "Branch9"
script = ExtResource("2_hbagk")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_f4sg7")
attaches = Array[ExtResource("1_qdh8q")]([SubResource("Resource_qdh8q"), SubResource("Resource_hbagk"), SubResource("Resource_o2wa0"), SubResource("Resource_w267e"), SubResource("Resource_drvpg"), SubResource("Resource_bfy67"), SubResource("Resource_wvhwx")])

View File

@@ -4,10 +4,10 @@
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_rmuvq"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_d3khu"]
[sub_resource type="Resource" id="Resource_m6w7w"]
[sub_resource type="Resource" id="Resource_rmuvq"]
script = ExtResource("1_m6w7w")
position = Vector2(12, 11)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_d3khu")
@@ -18,4 +18,4 @@ resource_name = "FlowerA1"
script = ExtResource("2_rmuvq")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_m6w7w")
root = SubResource("Resource_rmuvq")

View File

@@ -4,10 +4,10 @@
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_8cijn"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_amrra"]
[sub_resource type="Resource" id="Resource_ntn8n"]
[sub_resource type="Resource" id="Resource_8cijn"]
script = ExtResource("1_ntn8n")
position = Vector2(-16, 14)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_amrra")
@@ -18,4 +18,4 @@ resource_name = "FlowerA2"
script = ExtResource("2_8cijn")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_ntn8n")
root = SubResource("Resource_8cijn")

View File

@@ -4,10 +4,10 @@
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_mbqq5"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_08wd6"]
[sub_resource type="Resource" id="Resource_4i4bt"]
[sub_resource type="Resource" id="Resource_mbqq5"]
script = ExtResource("1_4i4bt")
position = Vector2(6, 1)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_08wd6")
@@ -18,4 +18,4 @@ resource_name = "FlowerA3"
script = ExtResource("2_mbqq5")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_4i4bt")
root = SubResource("Resource_mbqq5")

View File

@@ -4,10 +4,10 @@
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_b0i72"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_my41n"]
[sub_resource type="Resource" id="Resource_a64b2"]
[sub_resource type="Resource" id="Resource_b0i72"]
script = ExtResource("1_a64b2")
position = Vector2(-7, 7)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_my41n")
@@ -18,4 +18,4 @@ resource_name = "FlowerA4"
script = ExtResource("2_b0i72")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_a64b2")
root = SubResource("Resource_b0i72")

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dl1k0jv662m67"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_s67jx"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_w7tur"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_6f2ye"]
[sub_resource type="Resource" id="Resource_w7tur"]
script = ExtResource("1_s67jx")
position = Vector2(-6, 13)
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_6f2ye")
region = Rect2(3114, 2090, 215, 180)
[resource]
resource_name = "FlowerA5"
script = ExtResource("2_w7tur")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_w7tur")

View File

@@ -2,20 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_hkelp"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_37dm4"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_yyc7d"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_hkelp"]
[sub_resource type="Resource" id="Resource_hkelp"]
[sub_resource type="Resource" id="Resource_37dm4"]
script = ExtResource("1_hkelp")
position = Vector2(19, -19)
attach_types = Array[int]([1])
position = Vector2(-8, -3)
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_yyc7d")
region = Rect2(1789, 1552, 186, 190)
atlas = ExtResource("3_hkelp")
region = Rect2(1445, 1639, 182, 192)
[resource]
resource_name = "FlowerB1"
script = ExtResource("2_37dm4")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_hkelp")
root = SubResource("Resource_37dm4")

View File

@@ -2,20 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_rnm6j"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_jhn52"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_8ri3q"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_rnm6j"]
[sub_resource type="Resource" id="Resource_rnm6j"]
[sub_resource type="Resource" id="Resource_jhn52"]
script = ExtResource("1_rnm6j")
position = Vector2(-6, -1)
attach_types = Array[int]([1])
position = Vector2(9, -7)
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_8ri3q")
region = Rect2(1975, 1552, 172, 190)
atlas = ExtResource("3_rnm6j")
region = Rect2(1264, 1627, 179, 204)
[resource]
resource_name = "FlowerB2"
script = ExtResource("2_jhn52")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_rnm6j")
root = SubResource("Resource_jhn52")

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bnn0tcoab4plv"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_b0qvt"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_rco0e"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_ayrxj"]
[sub_resource type="Resource" id="Resource_b0qvt"]
script = ExtResource("1_b0qvt")
position = Vector2(15, -12)
attach_types = Array[int]([2, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_ayrxj")
region = Rect2(1046, 1611, 191, 226)
[resource]
resource_name = "FlowerB3"
script = ExtResource("2_rco0e")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_b0qvt")

View File

@@ -2,20 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_aauvf"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_vf3wc"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_xkahm"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_aauvf"]
[sub_resource type="Resource" id="Resource_aauvf"]
[sub_resource type="Resource" id="Resource_vf3wc"]
script = ExtResource("1_aauvf")
position = Vector2(20, 18)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_xkahm")
region = Rect2(2125, 1307, 97, 103)
atlas = ExtResource("3_aauvf")
region = Rect2(2145, 1345, 111, 115)
[resource]
resource_name = "FlowerC1"
script = ExtResource("2_vf3wc")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_aauvf")
root = SubResource("Resource_vf3wc")

View File

@@ -2,20 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_nquip"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_x22o7"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_83m6t"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_nquip"]
[sub_resource type="Resource" id="Resource_nquip"]
[sub_resource type="Resource" id="Resource_x22o7"]
script = ExtResource("1_nquip")
position = Vector2(-29, 2)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_83m6t")
region = Rect2(2270, 1350, 127, 75)
atlas = ExtResource("3_nquip")
region = Rect2(2310, 1397, 145, 86)
[resource]
resource_name = "FlowerC2"
script = ExtResource("2_x22o7")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_nquip")
root = SubResource("Resource_x22o7")

View File

@@ -2,20 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_wmge1"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_fo6bt"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_76mk8"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_wmge1"]
[sub_resource type="Resource" id="Resource_wmge1"]
[sub_resource type="Resource" id="Resource_fo6bt"]
script = ExtResource("1_wmge1")
position = Vector2(-8, -13)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_76mk8")
region = Rect2(2223, 1432, 93, 95)
atlas = ExtResource("3_wmge1")
region = Rect2(2260, 1490, 106, 107)
[resource]
resource_name = "FlowerC3"
script = ExtResource("2_fo6bt")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_wmge1")
root = SubResource("Resource_fo6bt")

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkgrwffi7m2i4"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_bg02b"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_3vf1o"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_dvo33"]
[sub_resource type="Resource" id="Resource_bg02b"]
script = ExtResource("1_bg02b")
position = Vector2(5, 12)
attach_types = Array[int]([2, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_dvo33")
region = Rect2(2541, 1399, 216, 230)
[resource]
resource_name = "FlowerC4"
script = ExtResource("2_3vf1o")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_bg02b")

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_0i0bo"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_gi2kd"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_rmgxy"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_0i0bo"]
[sub_resource type="Resource" id="Resource_0i0bo"]
script = ExtResource("1_0i0bo")
position = Vector2(0, 7)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_rmgxy")
region = Rect2(1798, 1007, 136, 136)
atlas = ExtResource("3_0i0bo")
region = Rect2(2183, 983, 133, 141)
[resource]
resource_name = "FlowerD1"

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_t11x3"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_ojo42"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_anyn2"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_t11x3"]
[sub_resource type="Resource" id="Resource_t11x3"]
script = ExtResource("1_t11x3")
position = Vector2(-2, 6)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_anyn2")
region = Rect2(1934, 1007, 141, 142)
atlas = ExtResource("3_t11x3")
region = Rect2(2327, 981, 142, 150)
[resource]
resource_name = "FlowerD2"

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://br80voioh4jxu"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_vh21j"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_5vhxt"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_l52do"]
[sub_resource type="Resource" id="Resource_vh21j"]
script = ExtResource("1_vh21j")
position = Vector2(-2, 6)
attach_types = Array[int]([2, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_l52do")
region = Rect2(2229, 1129, 192, 193)
[resource]
resource_name = "FlowerD3"
script = ExtResource("2_5vhxt")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_vh21j")

View File

@@ -2,31 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_wof8s"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_skl62"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_7j46p"]
[sub_resource type="Resource" id="Resource_wof8s"]
script = ExtResource("1_wof8s")
position = Vector2(31, -48)
attach_types = Array[int]([1])
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_wof8s"]
[sub_resource type="Resource" id="Resource_skl62"]
script = ExtResource("1_wof8s")
position = Vector2(-41, -13)
attach_types = Array[int]([1])
[sub_resource type="Resource" id="Resource_7j46p"]
script = ExtResource("1_wof8s")
position = Vector2(55, 51)
attach_types = Array[int]([2])
position = Vector2(78, 99)
attach_types = Array[int]([3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_7j46p")
region = Rect2(1588, 12, 148, 167)
atlas = ExtResource("3_wof8s")
region = Rect2(2289, 235, 216, 254)
[resource]
resource_name = "FlowerF1"
script = ExtResource("2_skl62")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_7j46p")
attaches = Array[ExtResource("1_wof8s")]([SubResource("Resource_wof8s"), SubResource("Resource_skl62")])
root = SubResource("Resource_skl62")

View File

@@ -2,21 +2,16 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_6cct5"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_d5e5n"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_yyrkf"]
[sub_resource type="Resource" id="Resource_6cct5"]
script = ExtResource("1_6cct5")
position = Vector2(25, -15)
attach_types = Array[int]([1])
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_6cct5"]
[sub_resource type="Resource" id="Resource_d5e5n"]
script = ExtResource("1_6cct5")
position = Vector2(22, 67)
attach_types = Array[int]([2])
position = Vector2(32, 118)
attach_types = Array[int]([3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_yyrkf")
region = Rect2(1736, 12, 134, 167)
atlas = ExtResource("3_6cct5")
region = Rect2(2518, 226, 163, 279)
[resource]
resource_name = "FlowerF2"
@@ -24,4 +19,3 @@ script = ExtResource("2_d5e5n")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_d5e5n")
attaches = Array[ExtResource("1_6cct5")]([SubResource("Resource_6cct5")])

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cwskfwdasvv0g"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_kd4el"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_h8lr6"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_p6ihu"]
[sub_resource type="Resource" id="Resource_kd4el"]
script = ExtResource("1_kd4el")
position = Vector2(-56, 102)
attach_types = Array[int]([3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_p6ihu")
region = Rect2(2712, 243, 208, 251)
[resource]
resource_name = "FlowerF3"
script = ExtResource("2_h8lr6")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_kd4el")

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_fijpc"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_kuljt"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_gnga0"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_fijpc"]
[sub_resource type="Resource" id="Resource_fijpc"]
script = ExtResource("1_fijpc")
position = Vector2(68, 49)
attach_types = Array[int]([0, 2])
position = Vector2(92, 66)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_gnga0")
region = Rect2(957, 500, 230, 170)
atlas = ExtResource("3_fijpc")
region = Rect2(2406, 2443, 237, 179)
[resource]
resource_name = "LeafA1"

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_1fplc"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_htdkc"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_oqrvj"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_1fplc"]
[sub_resource type="Resource" id="Resource_1fplc"]
script = ExtResource("1_1fplc")
position = Vector2(-50, 70)
attach_types = Array[int]([0, 2])
position = Vector2(-64, 88)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_oqrvj")
region = Rect2(1419, 500, 172, 205)
atlas = ExtResource("3_1fplc")
region = Rect2(2712, 2443, 205, 222)
[resource]
resource_name = "LeafA2"

View File

@@ -2,20 +2,20 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_5fx8e"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_87vbh"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_1ivfe"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_5fx8e"]
[sub_resource type="Resource" id="Resource_5fx8e"]
[sub_resource type="Resource" id="Resource_87vbh"]
script = ExtResource("1_5fx8e")
position = Vector2(65, -58)
attach_types = Array[int]([0, 2])
position = Vector2(81, -63)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_1ivfe")
region = Rect2(965, 739, 174, 158)
atlas = ExtResource("3_5fx8e")
region = Rect2(2419, 2721, 191, 173)
[resource]
resource_name = "LeafA3"
script = ExtResource("2_87vbh")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_5fx8e")
root = SubResource("Resource_87vbh")

View File

@@ -2,16 +2,16 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_1fuxg"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_v5tsw"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_rc5w4"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_1fuxg"]
[sub_resource type="Resource" id="Resource_1fuxg"]
script = ExtResource("1_1fuxg")
position = Vector2(-83, 30)
attach_types = Array[int]([0, 2])
position = Vector2(-104, 31)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_rc5w4")
region = Rect2(1395, 745, 222, 144)
atlas = ExtResource("3_1fuxg")
region = Rect2(2697, 2734, 241, 142)
[resource]
resource_name = "LeafA4"

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bchwhdmxsaqic"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_ef00k"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_0qgsw"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_snml7"]
[sub_resource type="Resource" id="Resource_ef00k"]
script = ExtResource("1_ef00k")
position = Vector2(-11, 127)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_snml7")
region = Rect2(2972, 2361, 474, 382)
[resource]
resource_name = "LeafA5"
script = ExtResource("2_0qgsw")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_ef00k")

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cvr81iqokda6x"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_jqk1k"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_g6exv"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_uh1gd"]
[sub_resource type="Resource" id="Resource_jqk1k"]
script = ExtResource("1_jqk1k")
position = Vector2(-43, 41)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_uh1gd")
region = Rect2(2972, 2743, 474, 220)
[resource]
resource_name = "LeafA6"
script = ExtResource("2_g6exv")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_jqk1k")

View File

@@ -7,12 +7,12 @@
[sub_resource type="Resource" id="Resource_ss0ji"]
script = ExtResource("1_ss0ji")
position = Vector2(18, -24)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_cdvqh"]
script = ExtResource("1_ss0ji")
position = Vector2(90, 41)
attach_types = Array[int]([0, 2])
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_583ad")

View File

@@ -6,12 +6,12 @@
[sub_resource type="Resource" id="Resource_xjkn4"]
script = ExtResource("1_xjkn4")
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_oexr2"]
script = ExtResource("1_xjkn4")
position = Vector2(6, -54)
attach_types = Array[int]([0, 2])
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_xjc6g")

View File

@@ -7,12 +7,12 @@
[sub_resource type="Resource" id="Resource_fuu6r"]
script = ExtResource("1_fuu6r")
position = Vector2(-2, -20)
attach_types = Array[int]([1])
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_a7irw"]
script = ExtResource("1_fuu6r")
position = Vector2(-79, 13)
attach_types = Array[int]([0, 2])
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_4s7gl")

View File

@@ -2,26 +2,26 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_oy0ue"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_6xgob"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_y6h75"]
[sub_resource type="Resource" id="Resource_oy0ue"]
script = ExtResource("1_oy0ue")
position = Vector2(-27, 8)
attach_types = Array[int]([1])
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_oy0ue"]
[sub_resource type="Resource" id="Resource_6xgob"]
script = ExtResource("1_oy0ue")
position = Vector2(70, 55)
position = Vector2(-18, 7)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_y6h75"]
script = ExtResource("1_oy0ue")
position = Vector2(84, 59)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_y6h75")
region = Rect2(345, 1461, 203, 177)
atlas = ExtResource("3_oy0ue")
region = Rect2(345, 1438, 217, 168)
[resource]
resource_name = "LeafE1"
script = ExtResource("2_6xgob")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_6xgob")
attaches = Array[ExtResource("1_oy0ue")]([SubResource("Resource_oy0ue")])
root = SubResource("Resource_y6h75")
attaches = Array[ExtResource("1_oy0ue")]([SubResource("Resource_6xgob")])

View File

@@ -2,26 +2,26 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_pi0vi"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_5mv7l"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_enxeu"]
[sub_resource type="Resource" id="Resource_pi0vi"]
script = ExtResource("1_pi0vi")
position = Vector2(17, 2)
attach_types = Array[int]([1])
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_pi0vi"]
[sub_resource type="Resource" id="Resource_5mv7l"]
script = ExtResource("1_pi0vi")
position = Vector2(-72, 60)
position = Vector2(14, 10)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_enxeu"]
script = ExtResource("1_pi0vi")
position = Vector2(-81, 72)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_enxeu")
region = Rect2(574, 1501, 204, 180)
atlas = ExtResource("3_pi0vi")
region = Rect2(612, 1472, 194, 172)
[resource]
resource_name = "LeafE2"
script = ExtResource("2_5mv7l")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_5mv7l")
attaches = Array[ExtResource("1_pi0vi")]([SubResource("Resource_pi0vi")])
root = SubResource("Resource_enxeu")
attaches = Array[ExtResource("1_pi0vi")]([SubResource("Resource_5mv7l")])

View File

@@ -2,26 +2,26 @@
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_40tq5"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_4ru6m"]
[ext_resource type="Texture2D" uid="uid://b7nfpxk8nfnov" path="res://entities/plants/assets/sprites/asset-plante-fin.png" id="3_m6f42"]
[sub_resource type="Resource" id="Resource_40tq5"]
script = ExtResource("1_40tq5")
position = Vector2(1, 2)
attach_types = Array[int]([1])
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_40tq5"]
[sub_resource type="Resource" id="Resource_4ru6m"]
script = ExtResource("1_40tq5")
position = Vector2(1, 2)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_m6f42"]
script = ExtResource("1_40tq5")
position = Vector2(1, 2)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_m6f42")
region = Rect2(397, 1652, 177, 170)
atlas = ExtResource("3_40tq5")
region = Rect2(419, 1637, 169, 171)
[resource]
resource_name = "LeafE3"
script = ExtResource("2_4ru6m")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_4ru6m")
attaches = Array[ExtResource("1_40tq5")]([SubResource("Resource_40tq5")])
root = SubResource("Resource_m6f42")
attaches = Array[ExtResource("1_40tq5")]([SubResource("Resource_4ru6m")])

View File

@@ -0,0 +1,37 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://e0u1baixvaxn"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_iaant"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_e1qth"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_lcfbs"]
[sub_resource type="Resource" id="Resource_iaant"]
script = ExtResource("1_iaant")
position = Vector2(-36, 92)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_e1qth"]
script = ExtResource("1_iaant")
position = Vector2(54, -19)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_lcfbs"]
script = ExtResource("1_iaant")
position = Vector2(-147, 14)
attach_types = Array[int]([2])
[sub_resource type="Resource" id="Resource_7wds0"]
script = ExtResource("1_iaant")
position = Vector2(-40, 69)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_lcfbs")
region = Rect2(361, 1035, 458, 399)
[resource]
resource_name = "LeafE4"
script = ExtResource("2_e1qth")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_7wds0")
attaches = Array[ExtResource("1_iaant")]([SubResource("Resource_iaant"), SubResource("Resource_e1qth"), SubResource("Resource_lcfbs")])

View File

@@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bgv3nb10t6u3y"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_07pd3"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_bumeo"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_iyic1"]
[sub_resource type="Resource" id="Resource_07pd3"]
script = ExtResource("1_07pd3")
position = Vector2(-94, 80)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_iyic1")
region = Rect2(2628, 3013, 315, 436)
[resource]
resource_name = "LeafF1"
script = ExtResource("2_bumeo")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_07pd3")

View File

@@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://bkgw3wmoam10n"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_6qc5v"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_d1evk"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_4ib3w"]
[sub_resource type="Resource" id="Resource_6qc5v"]
script = ExtResource("1_6qc5v")
position = Vector2(-38, 86)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_4ib3w")
region = Rect2(3043, 3137, 228, 225)
[resource]
resource_name = "LeafF2"
script = ExtResource("2_d1evk")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_6qc5v")

View File

@@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://m8j2gfumw11w"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_1sa08"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_wbtnq"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_d212s"]
[sub_resource type="Resource" id="Resource_1sa08"]
script = ExtResource("1_1sa08")
position = Vector2(43, 68)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_d212s")
region = Rect2(3427, 3290, 140, 172)
[resource]
resource_name = "LeafF3"
script = ExtResource("2_wbtnq")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_1sa08")

View File

@@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dth4dp88vs3gh"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_k7ykv"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_1wv1i"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_47ofa"]
[sub_resource type="Resource" id="Resource_k7ykv"]
script = ExtResource("1_k7ykv")
position = Vector2(20, 33)
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_47ofa")
region = Rect2(2367, 3469, 497, 465)
[resource]
resource_name = "LeafF4"
script = ExtResource("2_1wv1i")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_k7ykv")

View File

@@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://cka6sihumbjpw"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_dbtqk"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_a7ux5"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_m15xm"]
[sub_resource type="Resource" id="Resource_dbtqk"]
script = ExtResource("1_dbtqk")
position = Vector2(168, -53)
attach_types = Array[int]([1])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_m15xm")
region = Rect2(2914, 3495, 374, 420)
[resource]
resource_name = "LeafF5"
script = ExtResource("2_a7ux5")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_dbtqk")

View File

@@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dq5dwqherb6ac"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_fjv82"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_tbtj1"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_xxsyi"]
[sub_resource type="Resource" id="Resource_fjv82"]
script = ExtResource("1_fjv82")
position = Vector2(-100, 147)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_khbsd"]
atlas = ExtResource("3_xxsyi")
region = Rect2(3395, 3520, 324, 391)
[resource]
resource_name = "LeafF6"
script = ExtResource("2_tbtj1")
texture = SubResource("AtlasTexture_khbsd")
root = SubResource("Resource_fjv82")

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://dgivyissl512e"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_nanrd"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_kd22c"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_sfqmm"]
[sub_resource type="Resource" id="Resource_nanrd"]
script = ExtResource("1_nanrd")
position = Vector2(116, 172)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_sfqmm")
region = Rect2(937, 836, 309, 407)
[resource]
resource_name = "LeafG1"
script = ExtResource("2_kd22c")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_nanrd")

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="PlantPart" format=3 uid="uid://u6dwq3eowpcb"]
[ext_resource type="Script" uid="uid://co46ywm8bgnfh" path="res://entities/plants/scripts/texture_builder/plant_attach.gd" id="1_v01f8"]
[ext_resource type="Script" uid="uid://b3jwglylqdqtw" path="res://entities/plants/scripts/texture_builder/plant_part.gd" id="2_frmoh"]
[ext_resource type="Texture2D" uid="uid://bxnm1quxhx40i" path="res://entities/plants/assets/sprites/asset-plante-fin_assemble.png" id="3_w5pyt"]
[sub_resource type="Resource" id="Resource_v01f8"]
script = ExtResource("1_v01f8")
position = Vector2(-135, 133)
attach_types = Array[int]([1, 3])
[sub_resource type="AtlasTexture" id="AtlasTexture_yh7e0"]
atlas = ExtResource("3_w5pyt")
region = Rect2(1301, 896, 328, 350)
[resource]
resource_name = "LeafG2"
script = ExtResource("2_frmoh")
texture = SubResource("AtlasTexture_yh7e0")
type = 1
root = SubResource("Resource_v01f8")

View File

@@ -47,7 +47,7 @@ func generate_sprite() -> PlantSprite:
var sprite_object : PlantSprite = SPRITE_SCENE.instantiate()
add_child(sprite_object)
sprite_object.generate_mutation_effects(self)
# sprite_object.generate_mutation_effects(self)
return sprite_object

View File

@@ -11,9 +11,12 @@ class_name PlantArchetype
@export var seed_random_loose = 1
@export var available_mutations: Array[PlantMutation] = [
AncientMutation.new(),
PrecociousMutation.new(),
QualityMutation.new(),
QuickMutation.new()
EphemeralMutation.new(),
FertileMutation.new(),
PurificationMutation.new(),
QuickMutation.new(),
SocialMutation.new(),
ToughMutation.new()
]
static func get_all() -> Array[PlantArchetype]:

View File

@@ -1,19 +1,19 @@
extends EntityData
class_name PlantData
signal updated(p : PlantData)
signal disappeared(p : PlantData)
signal updated(p: PlantData)
signal disappeared(p: PlantData)
enum State {PLANTED, GROWING, MATURE, DEAD}
@export var archetype: PlantArchetype
@export var plant_name : String
@export var mutations : Array[PlantMutation]
@export var day : int :
@export var plant_name: String
@export var mutations: Array[PlantMutation]
@export var day: int:
set(v):
day = v
updated.emit(self)
@export var random_seed : int
updated.emit(self )
@export var random_seed: int
@export var leafs = 0 # +1 score
@export var roots = 0 # +1 lifetime
@@ -21,11 +21,11 @@ enum State {PLANTED, GROWING, MATURE, DEAD}
# 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(),
_plant_name : String = Random.generate_random_word(),
_mutations : Array[PlantMutation] = [],
_day : int = 0,
_position: Vector2 = Vector2.ZERO,
_archetype: PlantArchetype = PlantArchetype.get_random(),
_plant_name: String = Random.generate_random_word(),
_mutations: Array[PlantMutation] = [],
_day: int = 0,
_random_seed = randi()
):
position = _position
@@ -36,9 +36,9 @@ func _init(
random_seed = _random_seed
for m in mutations:
m.mutate_plant_data(self)
m.mutate_plant_data(self )
static func generate_from_seed(plant_seed : Seed, plant_position : Vector2) -> PlantData:
static func generate_from_seed(plant_seed: Seed, plant_position: Vector2) -> PlantData:
return PlantData.new(
plant_position,
plant_seed.plant_archetype,
@@ -56,7 +56,7 @@ func get_lifetime() -> int:
var lifetime = archetype.lifetime + roots
for m in mutations:
lifetime = m.mutate_lifetime(self, lifetime)
lifetime = m.mutate_lifetime(self , lifetime)
return lifetime
@@ -64,15 +64,18 @@ func get_growing_time() -> int:
var growing_time = archetype.growing_time
for m in mutations:
growing_time = m.mutate_growing_time(self, growing_time)
growing_time = m.mutate_growing_time(self , growing_time)
return growing_time
func get_score(state : State = get_state()) -> int:
func get_score(state: State = get_state()) -> int:
var score = archetype.base_score + leafs if state == State.MATURE else 0
var mult := 1
for m in mutations:
score = m.mutate_score(self, score)
score = m.mutate_score(self , score)
mult = m.mutate_score_multiplier(self , mult)
return score
@@ -89,14 +92,14 @@ func get_seed_number(state = get_state()):
var seed_number = archetype.seed_number if (state == State.MATURE or state == State.DEAD) else 0
for m in mutations:
seed_number = m.mutate_seed_number(self, seed_number)
seed_number = m.mutate_seed_number(self , seed_number)
return seed_number
func get_seed_random_loose():
var seed_random_loose = archetype.seed_random_loose
for m in mutations:
seed_random_loose = m.mutate_seed_random_loose(self, seed_random_loose)
seed_random_loose = m.mutate_seed_random_loose(self , seed_random_loose)
return seed_random_loose
@@ -107,4 +110,4 @@ func get_random_seed_income():
)
func disappear():
disappeared.emit(self)
disappeared.emit(self )

View File

@@ -1,12 +1,12 @@
extends Resource
class_name PlantMutation
@export var level : int = 1
@export var level: int = 1
var id : String : get = get_mutation_id
var name : String : get = get_mutation_name
var id: String: get = get_mutation_id
var name: String: get = get_mutation_name
func _init(_level : int = 1):
func _init(_level: int = 1):
level = _level
func get_icon() -> Texture:
@@ -27,40 +27,43 @@ func get_mutation_description() -> String:
printerr("Classe abstraite PlantMutation appelée")
return ""
func mutate_plant_data(_plant_data : PlantData):
func mutate_plant_data(_plant_data: PlantData):
pass
func mutate_score(_plant_data : PlantData, score : int) -> int:
func mutate_score(_plant_data: PlantData, score: int) -> int:
return score
func mutate_lifetime(_plant_data : PlantData, lifetime : int) -> int:
func mutate_score_multiplier(_plant_data: PlantData, multiplier: int) -> int:
return multiplier
func mutate_lifetime(_plant_data: PlantData, lifetime: int) -> int:
return lifetime
func mutate_growing_time(_plant_data : PlantData, growing_time : int) -> int:
func mutate_growing_time(_plant_data: PlantData, growing_time: int) -> int:
return growing_time
func mutate_seed_number(_plant_data, seed_number):
func mutate_seed_number(_plant_data: PlantData, seed_number: int):
return seed_number
func mutate_seed_random_loose(_plant_data, seed_random_loose):
func mutate_seed_random_loose(_plant_data: PlantData, seed_random_loose):
return seed_random_loose
func _start_planted_effect(_plant : Plant):
func _start_planted_effect(_plant: Plant):
pass
func _start_day_effect(_plant : Plant):
func _start_day_effect(_plant: Plant):
pass
func _start_maturation_effect(_plant : Plant):
func _start_maturation_effect(_plant: Plant):
pass
func _start_dead_effect(_plant : Plant):
func _start_dead_effect(_plant: Plant):
pass
func _start_harvested_effect(_plant : Plant):
func _start_harvested_effect(_plant: Plant):
pass
func get_level_for_rarity(rarity : int) -> int :
func get_level_for_rarity(rarity: int) -> int:
return rarity - get_base_rarity() + 1
func get_rarity() -> int:
@@ -78,7 +81,7 @@ func card_section() -> CardSectionInfo:
return section
static func get_rarity_text(rarity) -> String:
var rarity_text : Array[String] = [
var rarity_text: Array[String] = [
"COMMON",
"RARE",
"VERY_RARE",
@@ -88,11 +91,11 @@ static func get_rarity_text(rarity) -> String:
if rarity < len(rarity_text):
return rarity_text[rarity]
else :
else:
return rarity_text[len(rarity_text) - 1]
static func get_rarity_color(rarity : int) -> Color:
var rarity_colors : Array[Color] = [
static func get_rarity_color(rarity: int) -> Color:
var rarity_colors: Array[Color] = [
Color("25C147"),
Color("8B2DFF"),
Color("FF006E"),

View File

@@ -0,0 +1,23 @@
extends PlantMutation
class_name EphemeralMutation
func get_icon() -> Texture:
return preload("res://common/icons/chevrons-up.svg")
func get_base_rarity() -> int:
return 0
func get_mutation_id() -> String:
return "EPHEMERAL"
func get_mutation_name() -> String:
return tr("EPHEMERAL")
func get_mutation_description() -> String:
return tr("EPHEMERAL_EFFECT_TEXT_LEVEL_%d") % level
func mutate_lifetime(_plant_data: PlantData, lifetime: int) -> int:
return lifetime - ceil(0.5 * level)
func mutate_seed_number(_plant_data: PlantData, seed_number: int):
return seed_number + level

View File

@@ -0,0 +1 @@
uid://bmo42h1p554nv

View File

@@ -0,0 +1,21 @@
extends PlantMutation
class_name FertileMutation
func get_icon() -> Texture:
return preload("res://common/icons/chevrons-up.svg")
func get_base_rarity() -> int:
return 0
func get_mutation_id() -> String:
return "FERTILE"
func get_mutation_name() -> String:
return tr("FERTILE")
func get_mutation_description() -> String:
return tr("FERTILE_EFFECT_TEXT_LEVEL_%d") % level
func mutate_lifetime(_plant_data : PlantData, lifetime : int) -> int:
print("TODO:: Implemnt FERTILE lifetime based on plants around")
return lifetime + level

View File

@@ -0,0 +1 @@
uid://eslsw42a0ylv

View File

@@ -0,0 +1,21 @@
extends PlantMutation
class_name PurificationMutation
func get_icon() -> Texture:
return preload("res://common/icons/chevrons-up.svg")
func get_base_rarity() -> int:
return 0
func get_mutation_id() -> String:
return "PURIFICATION"
func get_mutation_name() -> String:
return tr("PURIFICATION")
func get_mutation_description() -> String:
return tr("PURIFICATION_EFFECT_TEXT_LEVEL_%d") % level
func _start_maturation_effect(_plant : Plant):
print("Implement purification maturation effect")
pass

View File

@@ -0,0 +1 @@
uid://buwy5v4yi3piv

View File

@@ -16,5 +16,8 @@ func get_mutation_name() -> String:
func get_mutation_description() -> String:
return tr("QUICK_EFFECT_TEXT_LEVEL_%d") % level
func mutate_score(_plant_data : PlantData, score : int) -> int:
return score + level
func mutate_growing_time(_data : PlantData, grow_time : int) -> int:
return max(grow_time - level, 0)
return max(grow_time - level, 1)

View File

@@ -0,0 +1,21 @@
extends PlantMutation
class_name SocialMutation
func get_icon() -> Texture:
return preload("res://common/icons/chevrons-up.svg")
func get_base_rarity() -> int:
return 0
func get_mutation_id() -> String:
return "SOCIAL"
func get_mutation_name() -> String:
return tr("SOCIAL")
func get_mutation_description() -> String:
return tr("SOCIAL_EFFECT_TEXT_LEVEL_%d") % level
func mutate_score(_plant_data : PlantData, score : int) -> int:
printerr("TODO:: implement SOCIAL score based on plants around")
return score + level

View File

@@ -0,0 +1 @@
uid://bhej2wpdfveu5

View File

@@ -0,0 +1,23 @@
extends PlantMutation
class_name ToughMutation
func get_icon() -> Texture:
return preload("res://common/icons/chevrons-up.svg")
func get_base_rarity() -> int:
return 0
func get_mutation_id() -> String:
return "TOUGH"
func get_mutation_name() -> String:
return tr("TOUGH")
func get_mutation_description() -> String:
return tr("TOUGH_EFFECT_TEXT_LEVEL_%d") % level
func mutate_score_multiplier(_plant_data: PlantData, multiplier: int) -> int:
return multiplier + 2
func mutate_growing_time(_plant_data: PlantData, growing_time: int) -> int:
return growing_time + maxi(0, 3 - level)

View File

@@ -0,0 +1 @@
uid://bwsnyirytbnqj

View File

@@ -1,20 +1,72 @@
extends Node
@export var n_plants_to_generate: int
@export var n_plants_to_generate: int = 1
@export var n_plants_per_row: int = 0
@export var n_mutation_per_plant: int
@export var space_between_plants: float
@export var randomize_pos: bool
@export var random_pos_offset: float
func _ready():
%ZoomLevel.value = %Camera2D.zoom.x
%NPlants.value = n_plants_to_generate
%NMutationsPerPlant.value = n_mutation_per_plant
%RandomizePos.button_pressed = randomize_pos
%RandomizeOffset.value = random_pos_offset
generate_plants();
func _input(_event) -> void:
var input_dir = Input.get_vector("move_left", "move_right", "move_up", "move_down")
%Camera2D.position += 1 / %Camera2D.zoom.x * 10 * input_dir
func generate_plants():
for child in %Plants.get_children():
child.free()
for i in n_plants_to_generate:
print("Generate plant")
var plant_position := Vector2(i * space_between_plants, 0)
print("Generate plant :")
var plant_pos_x = (i % n_plants_per_row) * space_between_plants
@warning_ignore("integer_division")
var plant_pos_y = (i / n_plants_per_row) * space_between_plants
var plant_position := Vector2(plant_pos_x, plant_pos_y)
if randomize_pos:
plant_position += randf_range(0, random_pos_offset) * Vector2.ONE.rotated(randf_range(0, 2 * PI))
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())
plant_data.mutations.append(plant_data.archetype.available_mutations.pick_random())
plant_data.mutations.append(plant_data.archetype.available_mutations.pick_random())
for j in n_mutation_per_plant:
plant_data.mutations.append(plant_data.archetype.available_mutations.pick_random())
var plant: Plant = Plant.new(plant_data)
add_child(plant)
print(plant.data.plant_name)
%Plants.add_child(plant)
plant.set_owner(self )
plant.global_position = plant_position
func _on_generate_plants_pressed() -> void:
generate_plants()
func _on_zoom_level_value_changed(value: float) -> void:
%Camera2D.zoom = Vector2.ONE * value
func _on_reset_zoom_pressed() -> void:
%Camera2D.zoom = Vector2.ONE
%ZoomLevel.value = 1
func _on_n_plants_value_changed(value: float) -> void:
n_plants_to_generate = int(value)
func _on_n_plants_per_row_value_changed(value: float) -> void:
n_plants_per_row = int(value)
func _on_n_mutations_per_plant_value_changed(value: float) -> void:
n_mutation_per_plant = int(value)
func _on_randomize_pos_toggled(toggled_on: bool) -> void:
randomize_pos = toggled_on
func _on_randomize_offset_value_changed(value: float) -> void:
random_pos_offset = value

View File

@@ -1,7 +1,7 @@
extends Resource
class_name PlantAttach
enum AttachType {ORANGE_ATTACH, BLUE_ATTACH, PINK_ATTACH}
enum AttachType {BIG_ATTACH, MEDIUM_ATTACH, FLOWER_ATTACH, SMALL_ATTACH}
@export var position: Vector2
@export var attach_types: Array[AttachType]

View File

@@ -8,8 +8,16 @@ enum PartType {BASE_PART, BRANCH_PART, LEAF_PART, FLOWER_PART}
@export var root: PlantAttach
@export var attaches: Array[PlantAttach] # array of vec2
var image: Image: get = get_image
func init(textute_arg: Texture, type_arg: PartType, root_arg: PlantAttach, attaches_arg: Array[PlantAttach]) -> void:
texture = textute_arg
image = texture.get_image()
type = type_arg
root = root_arg
attaches = attaches_arg
func get_image():
if image == null:
image = texture.get_image()
return image

View File

@@ -27,6 +27,7 @@ func load_resource():
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].position
attaches_children[i].attach_types = plant_part.attaches[i].attach_types
elif i >= attaches_children.size():
var new_child = PlantAttachBuilder.new()
new_child.name = "attach" + str(i)

View File

@@ -1,20 +1,35 @@
extends Node
const IMAGE_WIDTH := 1000
const IMAGE_HEIGHT := 2000
const IMAGE_WIDTH := 2048
const IMAGE_HEIGHT := 2048
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")
enum OriginType {BRANCH_ORIGIN, MUTATION_ORIGIN, BASE_LEAF_ORIGIN}
# @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]
@export var base_leaves: Array[PlantPart]
@export var parts_mutation_associations: Dictionary[String, PartMutationAssociation] # Array[PlantPart]
@export var chance_to_have_part := 0.75;
@export var origin_weights_base: Dictionary[OriginType, int] = {OriginType.BRANCH_ORIGIN: 10, OriginType.MUTATION_ORIGIN: 10, OriginType.BASE_LEAF_ORIGIN: 10}
@export var origin_weight_loss := 3
@export var origin_weight_gain := 1
@export var mutation_weight_base := 10
@export var mutation_weight_loss := 3
@export var mutation_weight_gain := 1
var rng := RandomNumberGenerator.new()
var image: Image = Image.create_empty(IMAGE_WIDTH, IMAGE_HEIGHT, false, Image.FORMAT_RGBA8)
var image_center: Vector2i = Vector2(0.5, 1) * Vector2(image.get_size())
func random_ind(array: Array) -> int:
return rng.randi_range(0, array.size() - 1)
@@ -30,102 +45,127 @@ func shuffle(array: Array):
array[available_ind] = array[picked_ind]
array[picked_ind] = temp
func shuffle_weighted(array: Array, weights: Array[int]):
assert(array.size() == weights.size(), "Suffle with weights not same size")
var indices := range(array.size())
var random_values: Array[int] = []
for i in range(array.size()):
random_values.append(rng.randi_range(0, weights[i]))
indices.sort_custom(func(a, b): return random_values[a] > random_values[b])
var originalArray := array.duplicate()
var originalWeights := weights.duplicate()
for i in range(array.size()):
array[i] = originalArray[indices[i]]
weights[i] = originalWeights[indices[i]]
func build_seed_texture(_random_seed: int) -> Texture:
return PLACEHOLDER_SEED_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 texture: Texture
var base_part: PlantPart
var base_image_coord: Vector2i
var available_attaches: Array[PlantAttach]
var parent_image_coords: Array[Vector2]
var parts_to_place: Array[PlantPart]
match plant_data.get_state():
PlantData.State.MATURE:
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)
texture = PLACEHOLDER_MATURE_TEXTURE
base_part = pick_random(bases)
var base_image = base_part.texture.get_image()
var base_image_center: Vector2i = 0.5 * base_image.get_size()
base_image_coord = mature_image_center - Vector2i(base_part.root.position)
mature_image.blend_rect(base_image, Rect2i(Vector2i.ZERO, base_image.get_size()), base_image_coord - base_image_center)
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:
parts_to_place.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:
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)
texture = PLACEHOLDER_GROWING_TEXTURE
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()
base_image_coord = mature_image_center - Vector2i(base_part.root.position)
mature_image.blend_rect(base_image, Rect2i(Vector2i.ZERO, base_image.get_size()), base_image_coord - base_image_center)
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))
_:
print("Not handled state")
return null
available_attaches = base_part.attaches.duplicate()
parent_image_coords.resize(available_attaches.size())
parent_image_coords.fill(base_image_coord)
var weight_per_origin_type: Array[int] = origin_weights_base.values().duplicate()
for part: PlantPart in parts_to_place:
print("Add part : ", part.resource_name)
var ind := find_random_matching_attach_ind(part.root, available_attaches)
if ind == -1:
printerr("No attach found")
continue
var parts_to_place: Dictionary[OriginType, Array] # BRANCH_ORIGIN : Array[PlantPart], MUTATION_ORIGIN : Array[Array[PlantPart]], BASE_LEAF_ORIGIN : Array[PlantPart]
parts_to_place[OriginType.BRANCH_ORIGIN] = branches
parts_to_place[OriginType.MUTATION_ORIGIN] = []
parts_to_place[OriginType.BASE_LEAF_ORIGIN] = base_leaves
var mutation_weights: Array[int] = []
for mutation in plant_data.mutations:
parts_to_place[OriginType.MUTATION_ORIGIN].append(parts_mutation_associations[mutation.id].parts)
mutation_weights.append(mutation_weight_base)
var attach: PlantAttach = available_attaches.pop_at(ind)
var parent_image_coord: Vector2i = parent_image_coords.pop_at(ind)
var base_image_coord = blend_part(image_center, Vector2.ZERO, base_part)
populate_part(parts_to_place, weight_per_origin_type, mutation_weights, base_part, base_image_coord)
var part_image: Image = part.texture.get_image()
var part_image_center: Vector2i = 0.5 * part_image.get_size()
var part_image_coord: Vector2i = parent_image_coord + Vector2i(attach.position - part.root.position)
mature_image.blend_rect(part_image, Rect2i(Vector2i.ZERO, part.texture.get_size()), part_image_coord - part_image_center)
for sub_attach in part.attaches:
available_attaches.append(sub_attach)
parent_image_coords.append(part_image_coord)
mature_texture = ImageTexture.create_from_image(mature_image)
return mature_texture
texture = ImageTexture.create_from_image(image)
image.fill(Color.TRANSPARENT)
return texture
## returns -1 if not found
func find_random_matching_attach_ind(attach_to_match: PlantAttach, array: Array[PlantAttach]) -> int:
var indices: Array = range(array.size())
func find_random_matching_attach_ind(attach_to_match: PlantAttach, array: Array[PlantPart]) -> int:
var indices := range(array.size())
shuffle(indices)
return indices.find_custom(func(i): return array[i].attach_types.any(func(type): return attach_to_match.attach_types.has(type)))
for i in indices:
if array[i].root.attach_types.any(func(type): return attach_to_match.attach_types.has(type)):
return i
return -1
func populate_part(all_parts: Dictionary[OriginType, Array], weight_per_origin_type: Array[int], mutation_weights: Array[int], parent_part: PlantPart, parent_image_coord: Vector2i):
var part_placed: Array[PlantPart] # same ind as their corresponding attach
var part_image_coords: Array[Vector2i] # idem
# first find and blend parts per attach
for attach in parent_part.attaches:
# get part to place
var part_to_place := get_part(all_parts, weight_per_origin_type, mutation_weights, attach)
part_placed.append(part_to_place)
# blend part
if part_to_place:
var part_image_coord := blend_part(parent_image_coord, attach.position, part_to_place)
part_image_coords.append(part_image_coord)
else:
part_image_coords.append(Vector2i.ZERO)
# then populate them
for i in range(part_placed.size()):
if part_placed[i] != null:
populate_part(all_parts, weight_per_origin_type, mutation_weights, part_placed[i], part_image_coords[i])
func get_part(all_parts: Dictionary[OriginType, Array], weight_per_origin_type: Array[int], mutation_weights: Array[int], attach: PlantAttach) -> PlantPart:
var rand := rng.randf()
if rand <= chance_to_have_part:
var origins: Array[int] = all_parts.keys().duplicate()
var weight_copy: Array[int] = weight_per_origin_type.duplicate()
shuffle_weighted(origins, weight_copy)
for originIndInd: int in range(origins.size()):
var originInd: int = origins[originIndInd]
var origin := originInd as OriginType
if origin == OriginType.BRANCH_ORIGIN || origin == OriginType.BASE_LEAF_ORIGIN:
var ind := find_random_matching_attach_ind(attach, all_parts[origin])
if ind >= 0:
weight_per_origin_type[origin] -= origin_weight_loss
weight_per_origin_type[((origin + 1) % 3) as OriginType] += origin_weight_gain
weight_per_origin_type[((origin + 2) % 3) as OriginType] += origin_weight_gain
return all_parts[origin][ind]
else: # find a mutation part to place
var parts_per_mutations: Array = all_parts[origin]
shuffle_weighted(parts_per_mutations, mutation_weights)
for mutation_parts_ind in range(parts_per_mutations.size()):
var ind := find_random_matching_attach_ind(attach, parts_per_mutations[mutation_parts_ind])
if ind >= 0:
for i in range(mutation_weights.size()):
mutation_weights[i] += mutation_weight_gain
mutation_weights[mutation_parts_ind] -= mutation_weight_gain + mutation_weight_loss
weight_per_origin_type[origin] -= origin_weight_loss
weight_per_origin_type[(origin + 1) % 3] += origin_weight_gain
weight_per_origin_type[(origin + 2) % 3] += origin_weight_gain
return parts_per_mutations[mutation_parts_ind][ind]
return null
func blend_part(parent_image_coord: Vector2i, attach_position: Vector2, part_to_blend: PlantPart) -> Vector2i:
var part_image: Image = part_to_blend.image
var part_image_center: Vector2i = 0.5 * part_image.get_size()
var part_image_coord: Vector2i = parent_image_coord + Vector2i(attach_position - part_to_blend.root.position)
image.blend_rect(part_image, Rect2i(Vector2i.ZERO, part_to_blend.image.get_size()), part_image_coord - part_image_center)
return part_image_coord

File diff suppressed because one or more lines are too long

View File

@@ -1,78 +0,0 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://xsllr3c4yde1"
path="res://.godot/imported/cockpit.blend-043f73cf84b030cfc681bc4a789d77b2.scn"
[deps]
source_file="res://stages/cockpit/assets/3d/cockpit.blend"
dest_files=["res://.godot/imported/cockpit.blend-043f73cf84b030cfc681bc4a789d77b2.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={
"materials": {
"Holo": {
"use_external/enabled": true,
"use_external/fallback_path": "res://stages/cockpit/resources/materials/holo.tres",
"use_external/path": "uid://47j6hwb23gfs"
},
"MetalLight": {
"use_external/enabled": true,
"use_external/fallback_path": "res://stages/cockpit/resources/materials/metal_light.tres",
"use_external/path": "uid://itgletxb2jgb"
},
"Screen": {
"use_external/enabled": true,
"use_external/fallback_path": "res://stages/cockpit/resources/materials/screen.tres",
"use_external/path": "uid://d3vp57wyye6hw"
}
}
}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
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
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ctpo1togykb1v"
path="res://.godot/imported/moss_contamination_atlas_texture_just_square.png-7302b2f544cfc7218fdcf9e5fde1bf41.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_just_square.png"
dest_files=["res://.godot/imported/moss_contamination_atlas_texture_just_square.png-7302b2f544cfc7218fdcf9e5fde1bf41.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