pathfinding rework for now

This commit is contained in:
2025-06-13 00:06:51 +10:00
parent 400415f8a5
commit 6f4f465e37
817 changed files with 5533 additions and 3146 deletions

View File

@ -11,10 +11,7 @@ class_name GameEndScreen extends PanelContainer
func _ready() -> void:
var wins: int = Data.save_data.twenty_game_history.count(true)
var games: int = Data.save_data.twenty_game_history.size()
var winrate: int = int((float(wins) / float(games)) * 100.0)
winrate_label.text = "Your 20-game winrate is now: " + str(winrate) + "%!"
winrate_label.text = "Your 20-game winrate is now: " + str(Data.save_data.winrate) + "%!"
total_games_label.text = "Total games: " + str(Data.save_data.wins + Data.save_data.losses)
total_wins_label.text = "Total wins: " + str(Data.save_data.wins)
total_losses_label.text = "Total losses: " + str(Data.save_data.losses)

View File

@ -19,18 +19,18 @@ var temp_data: SaveData
func _ready() -> void:
$ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = Data.player_profile.display_name
load_stats(Data.save_data)
bg_level.a_star_graph_3d.make_grid()
bg_level.a_star_graph_3d.find_path()
bg_level.a_star_graph_3d.build_random_maze(70)
bg_level.a_star_graph_3d.place_random_towers(30)
bg_level.a_star_graph_3d.disable_all_tower_frames()
#bg_level.a_star_graph_3d.make_grid()
#bg_level.a_star_graph_3d.find_path()
#bg_level.a_star_graph_3d.build_random_maze(70)
#bg_level.a_star_graph_3d.place_random_towers(30)
#bg_level.a_star_graph_3d.disable_all_tower_frames()
Game.level = bg_level
WaveManager.generate_wave(WaveManager.calculate_spawn_power(50, 4), bg_level.enemy_pool, bg_level.enemy_spawns)
for spawn: EnemySpawner in bg_level.enemy_spawns:
spawn.enemy_died_callback = enemy_died
spawn.enemy_reached_goal_callback = damage_goal
spawn.enemy_spawned.connect(increase_enemy_count)
spawn.spawn_wave()
#WaveManager.generate_wave(WaveManager.calculate_spawn_power(50, 4), bg_level.enemy_pool, bg_level.enemy_spawns)
#for spawn: EnemySpawner in bg_level.enemy_spawns:
# spawn.enemy_died_callback = enemy_died
# spawn.enemy_reached_goal_callback = damage_goal
# spawn.enemy_spawned.connect(increase_enemy_count)
# spawn.spawn_wave()
#these exist purely to make the enemies that spawn on the main menu happy
@ -122,7 +122,7 @@ func _on_standard_button_pressed() -> void:
func _on_daily_button_pressed() -> void:
gamemode.seed = hash(Time.get_date_string_from_system(true))
gamemode.rng_seed = hash(Time.get_date_string_from_system(true))
gamemode.endless = false
gamemode.daily = true
start_game()
@ -144,7 +144,7 @@ func _on_changelog_button_pressed() -> void:
func load_stats(stats: SaveData) -> void:
$ProfileManager/VBoxContainer/Stats/Wins/Label2.text = str(stats.wins)
$ProfileManager/VBoxContainer/Stats/Losses/Label2.text = str(stats.losses)
$ProfileManager/VBoxContainer/Stats/Winrate/Label2.text = str(int(stats.wins / 20.0))
$ProfileManager/VBoxContainer/Stats/Winrate/Label2.text = str(stats.winrate) + "%"
$ProfileManager/VBoxContainer/Stats/EngineerCardsBought/Label2.text = str(stats.engineer_cards_bought)
$ProfileManager/VBoxContainer/Stats/MageCardsBought/Label2.text = str(stats.mage_cards_bought)

View File

@ -2,7 +2,6 @@
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://UI/new_theme.tres" id="1_p1cib"]
[ext_resource type="Script" uid="uid://ci8vq73u23viy" path="res://Scenes/Menus/MainMenu/main_menu.gd" id="2_ivytu"]
[ext_resource type="Texture2D" uid="uid://lvvnrb5jugum" path="res://Assets/Textures/logo_title.png" id="3_8jkeb"]
[ext_resource type="PackedScene" uid="uid://y1qa1g3ic8sp" path="res://Worlds/GreenPlanet/Levels/first_level.tscn" id="3_l8r4a"]
[ext_resource type="AudioStream" uid="uid://cp6ph4ra7u5rk" path="res://Scenes/UI/drop_003.ogg" id="5_cwn2i"]
[ext_resource type="Script" uid="uid://cbwxa2a4hfcy4" path="res://Scripts/Resources/enemy.gd" id="5_u514r"]
@ -19,6 +18,7 @@
[ext_resource type="Texture2D" uid="uid://cpa1hl36xfplg" path="res://Assets/Textures/first_scroll_seen.png" id="16_sv1gy"]
[ext_resource type="Texture2D" uid="uid://ctbi3gm1me1t5" path="res://Assets/Textures/unlock_mage_achievement.png" id="17_6t4jd"]
[ext_resource type="Script" uid="uid://cxrm2naq75jo1" path="res://mod_menu.gd" id="19_6t4jd"]
[ext_resource type="FontFile" uid="uid://c3hwdjscf2hnk" path="res://Assets/Fonts/OpenType (.otf)/Kaph-Regular.otf" id="20_y5bw6"]
[sub_resource type="ViewportTexture" id="ViewportTexture_5u75i"]
viewport_path = NodePath("SubViewport")
@ -94,19 +94,23 @@ grow_horizontal = 2
grow_vertical = 2
texture = SubResource("ViewportTexture_5u75i")
[node name="TextureRect2" type="TextureRect" parent="."]
[node name="TitleLabel" type="Label" parent="."]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -627.0
offset_top = 73.0
offset_right = 1293.0
offset_bottom = 1153.0
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 0.5
grow_horizontal = 2
scale = Vector2(0.67, 0.67)
texture = ExtResource("3_8jkeb")
expand_mode = 1
theme_override_colors/font_color = Color(0.8, 0.5644, 0.344, 1)
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
theme_override_constants/line_spacing = -35
theme_override_constants/outline_size = 55
theme_override_fonts/font = ExtResource("20_y5bw6")
theme_override_font_sizes/font_size = 146
text = "decked
out
defense"
horizontal_alignment = 1
vertical_alignment = 1
[node name="MainControls" type="VBoxContainer" parent="."]
layout_mode = 1
@ -125,6 +129,7 @@ text = "Play"
[node name="MultiplayerButton" type="Button" parent="MainControls"]
layout_mode = 2
disabled = true
text = "Multiplayer"
[node name="ModsButton" type="Button" parent="MainControls"]

View File

@ -9,7 +9,6 @@ texture = ExtResource("1_kau30")
[sub_resource type="VisualShaderNodeTexture2DParameter" id="VisualShaderNodeTexture2DParameter_hqcdo"]
parameter_name = "Texture2DParameter"
qualifier = 2
texture_type = 1
texture_filter = 1
@ -17,7 +16,6 @@ texture_filter = 1
output_port_for_preview = 0
expanded_output_ports = [0]
parameter_name = "Color"
qualifier = 2
default_value_enabled = true
default_value = Color(0, 1, 0, 0.752941)
@ -51,7 +49,6 @@ op_type = 2
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_8utgl"]
parameter_name = "Float"
qualifier = 2
default_value_enabled = true
default_value = 1.0
@ -80,8 +77,8 @@ render_mode blend_mix, depth_draw_always, cull_back, diffuse_lambert, specular_s
uniform sampler2D Texture2DParameter : source_color, filter_nearest;
uniform sampler2D tex_frg_7;
instance uniform float Float = 1.0;
instance uniform vec4 Color : source_color = vec4(0.000000, 1.000000, 0.000000, 0.752941);
uniform float Float = 1.0;
uniform vec4 Color : source_color = vec4(0.000000, 1.000000, 0.000000, 0.752941);
@ -150,6 +147,8 @@ void fragment() {
"
modes/depth_draw = 1
flags/depth_prepass_alpha = true
preview_params/Texture2DParameter = "Resource(\"res://Scenes/TowerBase/funboxtex.png\")"
preview_params/Float = "1.0"
nodes/fragment/0/position = Vector2(1220, 280)
nodes/fragment/2/node = SubResource("VisualShaderNodeInput_nxokf")
nodes/fragment/2/position = Vector2(-580, 180)
@ -162,11 +161,11 @@ nodes/fragment/8/position = Vector2(-60, 340)
nodes/fragment/9/node = SubResource("VisualShaderNodeFloatFunc_h0gpf")
nodes/fragment/9/position = Vector2(140, 360)
nodes/fragment/13/node = SubResource("VisualShaderNodeTexture_ugjxq")
nodes/fragment/13/position = Vector2(260, 140)
nodes/fragment/13/position = Vector2(260, 120)
nodes/fragment/14/node = SubResource("VisualShaderNodeTexture2DParameter_hqcdo")
nodes/fragment/14/position = Vector2(-60, 0)
nodes/fragment/14/position = Vector2(-60, -240)
nodes/fragment/15/node = SubResource("VisualShaderNodeColorParameter_rwgpq")
nodes/fragment/15/position = Vector2(40, 940)
nodes/fragment/15/position = Vector2(20, 1040)
nodes/fragment/18/node = SubResource("VisualShaderNodeVectorOp_g2jnk")
nodes/fragment/18/position = Vector2(500, 340)
nodes/fragment/19/node = SubResource("VisualShaderNodeVectorOp_ddxtc")

Binary file not shown.

View File

@ -33,15 +33,19 @@ animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={
"materials": {
"Material": {
"use_external/enabled": true,
"use_external/path": "uid://dsi0ofa74tfc4"
}
},
"meshes": {
"funbox_Cube_001": {
"generate/lightmap_uv": 0,
"generate/lods": 0,
"generate/shadow_meshes": 0,
"lods/normal_merge_angle": 60.0,
"lods/normal_split_angle": 25.0,
"save_to_file/enabled": false,
"save_to_file/make_streamable": "",
"save_to_file/enabled": true,
"save_to_file/path": "res://textmesh.res"
}
}

View File

@ -0,0 +1,12 @@
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://bi0grduhgdma4"]
[ext_resource type="Shader" uid="uid://dsi0ofa74tfc4" path="res://Scenes/TowerBase/dissolve.tres" id="1_id1v3"]
[ext_resource type="Texture2D" uid="uid://bmor4v4j7krgh" path="res://Scenes/TowerBase/funboxtex.png" id="2_8kmo6"]
[resource]
resource_local_to_scene = true
render_priority = 0
shader = ExtResource("1_id1v3")
shader_parameter/Texture2DParameter = ExtResource("2_8kmo6")
shader_parameter/Float = 1.0
shader_parameter/Color = Color(0, 1, 0, 0.752941)

View File

@ -0,0 +1,58 @@
class_name TowerBase extends StaticBody3D
@export var inventory: Inventory
@export var block: Node3D
@export var collider: CollisionShape3D
@export var minimap_icon: Sprite3D
var owner_id: int
var point: FlowNode
var tower: Tower = null
var has_card: bool :
set(_value):
return
get:
return inventory.size != 0
func set_color(color: Color) -> void:
$MeshInstance3D.material_override.set("shader_parameter/Color", color)
func set_float(value: float) -> void:
$MeshInstance3D.material_override.set("shader_parameter/Float", value)
func add_card(card: Card, caller_id: int) -> void:
networked_spawn_tower.rpc(Data.cards.find(card), caller_id)
func remove_card() -> void:
networked_remove_tower.rpc()
func toggle_collision() -> void:
collider.disabled = !collider.disabled
@rpc("reliable", "call_local", "any_peer")
func networked_spawn_tower(card_index: int, caller_id: int) -> void:
var card: Card = Data.cards[card_index]
inventory.add(card)
tower = inventory.contents.keys()[0].turret_scene.instantiate() as Tower
tower.stats = inventory.contents.keys()[0].tower_stats
tower.name = "tower"
tower.base_name = name
tower.owner_id = caller_id
tower.position = Vector3(0, 1.2, 0)
minimap_icon.modulate = Color.RED
add_child(tower)
@rpc("reliable", "call_local", "any_peer")
func networked_remove_tower() -> void:
Game.connected_players_nodes[tower.owner_id].add_card(inventory.remove_at(0))
Game.connected_players_nodes[tower.owner_id].unready_self()
tower.queue_free()
tower = null
minimap_icon.modulate = Color.GREEN

View File

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

View File

@ -1,56 +1,33 @@
[gd_scene load_steps=10 format=3 uid="uid://ddbbwx0yy16lh"]
[gd_scene load_steps=7 format=3 uid="uid://ddbbwx0yy16lh"]
[ext_resource type="Script" uid="uid://si58bm4r7r2i" path="res://Scripts/tower_base.gd" id="1_kalmg"]
[ext_resource type="Script" uid="uid://si58bm4r7r2i" path="res://Scenes/TowerBase/tower_base.gd" id="1_kalmg"]
[ext_resource type="Script" uid="uid://do24iuot0j7d7" path="res://Scripts/inventory.gd" id="2_m0oxx"]
[ext_resource type="ArrayMesh" uid="uid://cr83c74ys8rll" path="res://Scenes/TowerBase/textmesh.res" id="3_ly30x"]
[ext_resource type="Material" uid="uid://bi0grduhgdma4" path="res://Scenes/TowerBase/new_shader_material.tres" id="3_ueedj"]
[ext_resource type="ArrayMesh" uid="uid://cm5xjp442ew0y" path="res://textmesh.res" id="4_8j8ue"]
[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="4_lbvtm"]
[sub_resource type="BoxShape3D" id="BoxShape3D_lc72v"]
size = Vector3(1.1, 1.1, 1.1)
size = Vector3(1.381, 1.377, 1.381)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o3uwr"]
albedo_color = Color(0.462745, 0.439216, 0.415686, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1i074"]
albedo_color = Color(0.462745, 0.439216, 0.415686, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jt61s"]
albedo_color = Color(0.462745, 0.439216, 0.415686, 1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_t32n1"]
albedo_color = Color(0.462745, 0.439216, 0.415686, 1)
[node name="Node3D" type="StaticBody3D" node_paths=PackedStringArray("inventory", "block", "collider", "minimap_icon", "north_icon", "south_icon", "east_icon", "west_icon", "north_mesh", "south_mesh", "east_mesh", "west_mesh", "north_collider", "south_collider", "east_collider", "west_collider") groups=["TowerBases"]]
[node name="TowerBase" type="StaticBody3D" node_paths=PackedStringArray("inventory", "block", "collider", "minimap_icon") groups=["TowerBases"]]
collision_layer = 17
script = ExtResource("1_kalmg")
inventory = NodePath("Inventory")
block = NodePath("MeshInstance3D")
collider = NodePath("CollisionShape3D")
minimap_icon = NodePath("MinimapIcon")
north_icon = NodePath("North/NorthMinimapIcon")
south_icon = NodePath("South/SouthMinimapIcon")
east_icon = NodePath("East/EastMinimapIcon")
west_icon = NodePath("West/WestMinimapIcon")
north_mesh = NodePath("North")
south_mesh = NodePath("South")
east_mesh = NodePath("East")
west_mesh = NodePath("West")
north_collider = NodePath("CollisionShape3D2")
south_collider = NodePath("CollisionShape3D3")
east_collider = NodePath("CollisionShape3D5")
west_collider = NodePath("CollisionShape3D4")
[node name="Inventory" type="Node" parent="."]
script = ExtResource("2_m0oxx")
max_size = 1
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.688315, 0.00199121)
shape = SubResource("BoxShape3D_lc72v")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 0)
mesh = ExtResource("3_ly30x")
material_override = ExtResource("3_ueedj")
mesh = ExtResource("4_8j8ue")
[node name="MinimapIcon" type="Sprite3D" parent="."]
transform = Transform3D(3.5, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07, 0, 1.5, 0)
@ -58,79 +35,3 @@ layers = 4
modulate = Color(0, 1, 0, 1)
texture_filter = 0
texture = ExtResource("4_lbvtm")
[node name="North" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0.45, 0)
visible = false
size = Vector3(1, 0.9, 0.5)
material = SubResource("StandardMaterial3D_o3uwr")
[node name="NorthMinimapIcon" type="Sprite3D" parent="North"]
transform = Transform3D(3.5, 0, 0, 0, -6.7097e-08, 3.5, 0, -1.535, -1.5299e-07, 0.0251597, 1, 0)
layers = 4
modulate = Color(0, 1, 0, 1)
texture_filter = 0
texture = ExtResource("4_lbvtm")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 0.55, 0)
visible = false
shape = SubResource("BoxShape3D_lc72v")
disabled = true
[node name="South" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.45, 0)
visible = false
size = Vector3(1, 0.9, 0.5)
material = SubResource("StandardMaterial3D_1i074")
[node name="SouthMinimapIcon" type="Sprite3D" parent="South"]
transform = Transform3D(3.5, 0, 0, 0, -6.7097e-08, 3.5, 0, -1.535, -1.5299e-07, -0.0251607, 1, 0)
layers = 4
modulate = Color(0, 1, 0, 1)
texture_filter = 0
texture = ExtResource("4_lbvtm")
[node name="CollisionShape3D3" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0.55, 0)
visible = false
shape = SubResource("BoxShape3D_lc72v")
disabled = true
[node name="East" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.45, -0.5)
visible = false
size = Vector3(0.5, 0.9, 1)
material = SubResource("StandardMaterial3D_jt61s")
[node name="EastMinimapIcon" type="Sprite3D" parent="East"]
transform = Transform3D(1.535, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07, 0, 1, 0.0248078)
layers = 4
modulate = Color(0, 1, 0, 1)
texture_filter = 0
texture = ExtResource("4_lbvtm")
[node name="CollisionShape3D5" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, -0.5)
visible = false
shape = SubResource("BoxShape3D_lc72v")
disabled = true
[node name="West" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.45, 0.5)
visible = false
size = Vector3(0.5, 0.9, 1)
material = SubResource("StandardMaterial3D_t32n1")
[node name="WestMinimapIcon" type="Sprite3D" parent="West"]
transform = Transform3D(1.535, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07, 0, 1, -0.0252527)
layers = 4
modulate = Color(0, 1, 0, 1)
texture_filter = 0
texture = ExtResource("4_lbvtm")
[node name="CollisionShape3D4" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.55, 0.5)
visible = false
shape = SubResource("BoxShape3D_lc72v")
disabled = true

View File

@ -1,41 +0,0 @@
[gd_scene load_steps=5 format=3 uid="uid://dqt1ggtkpkuhs"]
[ext_resource type="Script" uid="uid://ckm02cx0ai624" path="res://Scripts/edit_tool.gd" id="1_yf8lt"]
[ext_resource type="PackedScene" uid="uid://ddbbwx0yy16lh" path="res://Scenes/TowerBase/tower_base.tscn" id="2_r3632"]
[ext_resource type="Texture2D" uid="uid://gh4yvnerf1f5" path="res://Assets/Textures/radial.png" id="3_a323w"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_36ot1"]
transparency = 1
depth_draw_mode = 1
[node name="EditTool" type="Node3D" node_paths=PackedStringArray("ray", "wall_preview", "progress_bar")]
script = ExtResource("1_yf8lt")
ray = NodePath("RayCast3D")
wall_preview = NodePath("WallPreview")
build_preview_material = SubResource("StandardMaterial3D_36ot1")
progress_bar = NodePath("ProgressBar")
[node name="RayCast3D" type="RayCast3D" parent="."]
target_position = Vector3(0, 0, -20)
collision_mask = 25
[node name="WallPreview" parent="." instance=ExtResource("2_r3632")]
visible = false
[node name="ProgressBar" type="TextureProgressBar" parent="."]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -90.0
offset_top = -90.0
offset_right = 90.0
offset_bottom = 90.0
grow_horizontal = 2
grow_vertical = 2
scale = Vector2(0.5, 0.5)
pivot_offset = Vector2(90, 90)
step = 0.0
fill_mode = 4
texture_progress = ExtResource("3_a323w")

View File

@ -17,27 +17,27 @@ albedo_color = Color(0.356863, 0.87451, 0.94902, 1)
[node name="Node3D" type="Node3D"]
[node name="CSGBox3D2" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0.475)
size = Vector3(1, 0.04, 0.05)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0.625)
size = Vector3(1.25, 0.04, 0.05)
material = SubResource("StandardMaterial3D_xt3aj")
[node name="CSGBox3D3" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, -0.475)
size = Vector3(1, 0.04, 0.05)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, -0.625)
size = Vector3(1.25, 0.04, 0.05)
material = SubResource("StandardMaterial3D_gbm1j")
[node name="CSGBox3D4" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.475, 0.02, 0)
size = Vector3(0.05, 0.04, 1)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.625, 0.02, 0)
size = Vector3(0.05, 0.04, 1.3)
material = SubResource("StandardMaterial3D_18qg8")
[node name="CSGBox3D5" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.475, 0.02, 0)
size = Vector3(0.05, 0.04, 1)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.625, 0.02, 0)
size = Vector3(0.05, 0.04, 1.3)
material = SubResource("StandardMaterial3D_ip8b2")
[node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(3.5, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07, 0, 0, 0)
transform = Transform3D(4, 0, 0, 0, -1.74846e-07, 4, 0, -4, -1.74846e-07, 0, 0, 0)
layers = 4
texture_filter = 0
texture = ExtResource("1_phew5")