fixed some bugs The Typening caused
This commit is contained in:
19
Scenes/Menus/CharacterSelect/charselect.gd
Normal file
19
Scenes/Menus/CharacterSelect/charselect.gd
Normal file
@ -0,0 +1,19 @@
|
||||
class_name HeroSelector extends Control
|
||||
|
||||
signal hero_selected(hero_class: int)
|
||||
|
||||
@export var hero_card_scene: PackedScene
|
||||
@export var hbox: HBoxContainer
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
for hero: HeroClass in Data.characters:
|
||||
var card: Control = hero_card_scene.instantiate()
|
||||
card.set_hero(hero)
|
||||
card.pressed.connect(func(x: int) -> void: hero_selected.emit(x))
|
||||
card.button_mouse_entered.connect(_on_button_mouse_entered)
|
||||
hbox.add_child(card)
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
49
Scenes/Menus/CharacterSelect/charselect.tscn
Normal file
49
Scenes/Menus/CharacterSelect/charselect.tscn
Normal file
@ -0,0 +1,49 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dqqitmhu66a7d"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scenes/Menus/CharacterSelect/charselect.gd" id="1_h2h26"]
|
||||
[ext_resource type="PackedScene" uid="uid://bnsf2degj5tio" path="res://Scenes/UI/hero_card.tscn" id="1_v2mfo"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="3_o88ca"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_ehpk7"]
|
||||
random_pitch = 1.1
|
||||
streams_count = 1
|
||||
stream_0/stream = ExtResource("3_o88ca")
|
||||
stream_0/weight = 1.0
|
||||
|
||||
[node name="Control" type="Control" node_paths=PackedStringArray("hbox")]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
script = ExtResource("1_h2h26")
|
||||
hero_card_scene = ExtResource("1_v2mfo")
|
||||
hbox = NodePath("CenterContainer/VBoxContainer/HBoxContainer")
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "Choose your hero"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
alignment = 1
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
stream = SubResource("AudioStreamRandomizer_ehpk7")
|
||||
bus = &"SFX"
|
74
Scenes/Menus/MainMenu/main_menu.gd
Normal file
74
Scenes/Menus/MainMenu/main_menu.gd
Normal file
@ -0,0 +1,74 @@
|
||||
class_name MainMenu extends Control
|
||||
|
||||
@export var bg_level: Level
|
||||
|
||||
var confirmation_popup_scene: PackedScene = preload("res://Scenes/Menus/confirmation_popup.tscn")
|
||||
var text_input_popup_scene: PackedScene = preload("res://Scenes/Menus/text_input_popup.tscn")
|
||||
var multiplayer_lobby_scene_path: String = "res://Scenes/multiplayer_lobby.tscn"
|
||||
var options_menu_scene: PackedScene = preload("res://Scenes/Menus/options_menu.tscn")
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
$ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = Data.player_profile.display_name
|
||||
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(50)
|
||||
bg_level.a_star_graph_3d.place_random_towers(20)
|
||||
bg_level.a_star_graph_3d.disable_all_tower_frames()
|
||||
Game.level = bg_level
|
||||
var new_wave: Dictionary = WaveManager.generate_wave(400, bg_level.enemy_pool)
|
||||
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(new_wave)
|
||||
|
||||
|
||||
#these exist purely to make the enemies that spawn on the main menu happy
|
||||
func enemy_died(_some_arg: Enemy) -> void:
|
||||
pass
|
||||
func damage_goal(_some_arg1: int, _some_arg2: int) -> void:
|
||||
pass
|
||||
func increase_enemy_count() -> void:
|
||||
pass
|
||||
|
||||
|
||||
func _on_display_name_edit_pressed() -> void:
|
||||
var popup: TextInputPopup = text_input_popup_scene.instantiate() as TextInputPopup
|
||||
popup.set_popup(Data.player_profile.display_name, "Display Name", "Confirm")
|
||||
popup.completed.connect(change_profile_display_name)
|
||||
add_child(popup)
|
||||
|
||||
|
||||
func change_profile_display_name(display_name: String) -> void:
|
||||
$ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = display_name
|
||||
Data.player_profile.set_display_name(display_name)
|
||||
|
||||
|
||||
func _on_quit_button_pressed() -> void:
|
||||
var popup: ConfirmationPopup = confirmation_popup_scene.instantiate() as ConfirmationPopup
|
||||
popup.set_popup("Are you sure you want to quit?", "Yes", "No")
|
||||
popup.completed.connect(quit_game)
|
||||
add_child(popup)
|
||||
|
||||
|
||||
func quit_game(confirmation: bool) -> void:
|
||||
if confirmation:
|
||||
get_tree().quit()
|
||||
|
||||
|
||||
func _on_play_button_pressed() -> void:
|
||||
Game.scene_switch_to_singleplayer_lobby()
|
||||
|
||||
|
||||
func _on_options_button_pressed() -> void:
|
||||
var menu: OptionsMenu = options_menu_scene.instantiate()
|
||||
add_child(menu)
|
||||
|
||||
|
||||
func _on_multiplayer_button_pressed() -> void:
|
||||
Game.scene_switch_to_multiplayer_lobby()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://8yv7excojcg0"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_p1cib"]
|
||||
[ext_resource type="Script" path="res://Scripts/main_menu.gd" id="2_ivytu"]
|
||||
[ext_resource type="Script" 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://dknygn5eyuhxt" path="res://shot1.wav" id="5_4c4cl"]
|
50
Scenes/Menus/PauseMenu/pause_menu.gd
Normal file
50
Scenes/Menus/PauseMenu/pause_menu.gd
Normal file
@ -0,0 +1,50 @@
|
||||
class_name PauseMenu extends Control
|
||||
|
||||
signal closed()
|
||||
|
||||
var options_menu_scene: PackedScene = preload("res://Scenes/Menus/options_menu.tscn")
|
||||
var confirmation_popup_scene: PackedScene = preload("res://Scenes/Menus/confirmation_popup.tscn")
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("Pause"):
|
||||
accept_event()
|
||||
_on_resume_pressed()
|
||||
|
||||
|
||||
func _on_resume_pressed() -> void:
|
||||
closed.emit()
|
||||
queue_free()
|
||||
|
||||
|
||||
func _on_options_pressed() -> void:
|
||||
var menu: OptionsMenu = options_menu_scene.instantiate()
|
||||
add_child(menu)
|
||||
|
||||
|
||||
func _on_quit_to_main_menu_pressed() -> void:
|
||||
var popup: ConfirmationPopup = confirmation_popup_scene.instantiate() as ConfirmationPopup
|
||||
popup.set_popup("Are you sure you want to quit and return to main menu?", "Yes", "No")
|
||||
popup.completed.connect(return_to_menu)
|
||||
add_child(popup)
|
||||
|
||||
|
||||
func return_to_menu(confirmation: bool) -> void:
|
||||
if confirmation:
|
||||
Game.scene_switch_main_menu()
|
||||
|
||||
|
||||
func _on_quit_to_desktop_pressed() -> void:
|
||||
var popup: ConfirmationPopup = confirmation_popup_scene.instantiate() as ConfirmationPopup
|
||||
popup.set_popup("Are you sure you want to quit?", "Yes", "No")
|
||||
popup.completed.connect(quit_game)
|
||||
add_child(popup)
|
||||
|
||||
|
||||
func quit_game(confirmation: bool) -> void:
|
||||
if confirmation:
|
||||
Game.quit_to_desktop()
|
||||
|
||||
|
||||
func _on_button_mouse_entered() -> void:
|
||||
$AudioStreamPlayer.play()
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://buvgdem68wtev"]
|
||||
|
||||
[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_gaupv"]
|
||||
[ext_resource type="Script" path="res://Scripts/pause_menu.gd" id="2_4pn2l"]
|
||||
[ext_resource type="Script" path="res://Scenes/Menus/PauseMenu/pause_menu.gd" id="2_4pn2l"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="3_q3xhn"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_n6ixr"]
|
@ -4,7 +4,7 @@
|
||||
[ext_resource type="Script" path="res://Scripts/multiplayer_lobby.gd" id="2_nb860"]
|
||||
[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://Scenes/UI/scoreboard.tscn" id="3_f6bia"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvfit0sy2tnw4" path="res://Scenes/Menus/server_form.tscn" id="5_bqbwv"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqitmhu66a7d" path="res://charselect.tscn" id="5_lvoo2"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqitmhu66a7d" path="res://Scenes/Menus/CharacterSelect/charselect.tscn" id="5_lvoo2"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="6_wtqwd"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="7_npnbo"]
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://Scenes/UI/scoreboard.tscn" id="1_423py"]
|
||||
[ext_resource type="Script" path="res://Scripts/singleplayer_lobby.gd" id="1_nd17k"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="3_l8xy3"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqitmhu66a7d" path="res://charselect.tscn" id="5_vg5y0"]
|
||||
[ext_resource type="PackedScene" uid="uid://dqqitmhu66a7d" path="res://Scenes/Menus/CharacterSelect/charselect.tscn" id="5_vg5y0"]
|
||||
[ext_resource type="AudioStream" uid="uid://dknygn5eyuhxt" path="res://shot1.wav" id="6_qgq1v"]
|
||||
|
||||
[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_g5har"]
|
||||
|
BIN
Scenes/TowerBase/funbox.glb
Normal file
BIN
Scenes/TowerBase/funbox.glb
Normal file
Binary file not shown.
47
Scenes/TowerBase/funbox.glb.import
Normal file
47
Scenes/TowerBase/funbox.glb.import
Normal file
@ -0,0 +1,47 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://dx0ixlcxcxpcg"
|
||||
path="res://.godot/imported/funbox.glb-0d98cfb9abd4d8ea0cefa019611e5edf.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Scenes/TowerBase/funbox.glb"
|
||||
dest_files=["res://.godot/imported/funbox.glb-0d98cfb9abd4d8ea0cefa019611e5edf.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type="Node3D"
|
||||
nodes/root_name="Scene Root"
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
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
|
||||
import_script/path=""
|
||||
_subresources={
|
||||
"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/path": "res://textmesh.res"
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=0
|
||||
gltf/embedded_image_handling=0
|
BIN
Scenes/TowerBase/funboxtex.png
Normal file
BIN
Scenes/TowerBase/funboxtex.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
34
Scenes/TowerBase/funboxtex.png.import
Normal file
34
Scenes/TowerBase/funboxtex.png.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bmor4v4j7krgh"
|
||||
path="res://.godot/imported/funboxtex.png-cacd48052e8a0cbba5138ea8a2d1200c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Scenes/TowerBase/funboxtex.png"
|
||||
dest_files=["res://.godot/imported/funboxtex.png-cacd48052e8a0cbba5138ea8a2d1200c.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
BIN
Scenes/TowerBase/textmesh.res
Normal file
BIN
Scenes/TowerBase/textmesh.res
Normal file
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://ddbbwx0yy16lh"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/tower_base.gd" id="1_tghvd"]
|
||||
[ext_resource type="Script" path="res://Scripts/inventory.gd" id="2_p5c7g"]
|
||||
[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="3_01hk3"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cr83c74ys8rll" path="res://textmesh.res" id="4_hosgw"]
|
||||
[ext_resource type="Script" path="res://Scripts/tower_base.gd" id="1_kalmg"]
|
||||
[ext_resource type="Script" 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="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)
|
||||
@ -22,7 +22,7 @@ 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")]
|
||||
collision_layer = 17
|
||||
script = ExtResource("1_tghvd")
|
||||
script = ExtResource("1_kalmg")
|
||||
inventory = NodePath("Inventory")
|
||||
block = NodePath("MeshInstance3D")
|
||||
collider = NodePath("CollisionShape3D")
|
||||
@ -41,7 +41,7 @@ east_collider = NodePath("CollisionShape3D5")
|
||||
west_collider = NodePath("CollisionShape3D4")
|
||||
|
||||
[node name="Inventory" type="Node" parent="."]
|
||||
script = ExtResource("2_p5c7g")
|
||||
script = ExtResource("2_m0oxx")
|
||||
max_size = 1
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
@ -50,14 +50,14 @@ 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("4_hosgw")
|
||||
mesh = ExtResource("3_ly30x")
|
||||
|
||||
[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)
|
||||
layers = 4
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
texture_filter = 0
|
||||
texture = ExtResource("3_01hk3")
|
||||
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)
|
||||
@ -70,7 +70,7 @@ transform = Transform3D(3.5, 0, 0, 0, -6.7097e-08, 3.5, 0, -1.535, -1.5299e-07,
|
||||
layers = 4
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
texture_filter = 0
|
||||
texture = ExtResource("3_01hk3")
|
||||
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)
|
||||
@ -89,7 +89,7 @@ transform = Transform3D(3.5, 0, 0, 0, -6.7097e-08, 3.5, 0, -1.535, -1.5299e-07,
|
||||
layers = 4
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
texture_filter = 0
|
||||
texture = ExtResource("3_01hk3")
|
||||
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)
|
||||
@ -108,7 +108,7 @@ transform = Transform3D(1.535, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07,
|
||||
layers = 4
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
texture_filter = 0
|
||||
texture = ExtResource("3_01hk3")
|
||||
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)
|
||||
@ -127,7 +127,7 @@ transform = Transform3D(1.535, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07,
|
||||
layers = 4
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
texture_filter = 0
|
||||
texture = ExtResource("3_01hk3")
|
||||
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)
|
@ -1,7 +1,7 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://dqt1ggtkpkuhs"]
|
||||
|
||||
[ext_resource type="Script" path="res://Scripts/edit_tool.gd" id="1_yf8lt"]
|
||||
[ext_resource type="PackedScene" uid="uid://ddbbwx0yy16lh" path="res://Scenes/tower_base.tscn" id="2_r3632"]
|
||||
[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"]
|
||||
|
Reference in New Issue
Block a user