Placement and platforms
This commit is contained in:
parent
a2164dca72
commit
d37c4ec858
31 changed files with 351 additions and 11 deletions
37
Samera.tres
Normal file
37
Samera.tres
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[gd_resource type="Theme" load_steps=6 format=3 uid="uid://csh7en7c4otv6"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://3h6y6jxhf1qp" path="res://sprites/Uitto.png" id="1_cpeo0"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_cpeo0"]
|
||||||
|
atlas = ExtResource("1_cpeo0")
|
||||||
|
region = Rect2(16, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_rknw5"]
|
||||||
|
texture = SubResource("AtlasTexture_cpeo0")
|
||||||
|
texture_margin_left = 6.0
|
||||||
|
texture_margin_top = 5.0
|
||||||
|
texture_margin_right = 6.0
|
||||||
|
texture_margin_bottom = 4.0
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_rknw5"]
|
||||||
|
atlas = ExtResource("1_cpeo0")
|
||||||
|
region = Rect2(0, 0, 16, 16)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_jukqe"]
|
||||||
|
texture = SubResource("AtlasTexture_rknw5")
|
||||||
|
texture_margin_left = 2.0
|
||||||
|
texture_margin_top = 2.0
|
||||||
|
texture_margin_right = 2.0
|
||||||
|
texture_margin_bottom = 2.0
|
||||||
|
axis_stretch_horizontal = 1
|
||||||
|
axis_stretch_vertical = 1
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
CRT/base_type = &"Button"
|
||||||
|
CRT/styles/disabled = SubResource("StyleBoxTexture_rknw5")
|
||||||
|
CRT/styles/focus = SubResource("StyleBoxTexture_rknw5")
|
||||||
|
CRT/styles/hover = SubResource("StyleBoxTexture_rknw5")
|
||||||
|
CRT/styles/hover_pressed = SubResource("StyleBoxTexture_rknw5")
|
||||||
|
CRT/styles/normal = SubResource("StyleBoxTexture_rknw5")
|
||||||
|
CRT/styles/pressed = SubResource("StyleBoxTexture_rknw5")
|
||||||
|
Panel/styles/panel = SubResource("StyleBoxTexture_jukqe")
|
15
generic/constructibles/conveyor.tres
Normal file
15
generic/constructibles/conveyor.tres
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[gd_resource type="Resource" script_class="Constructible" load_steps=5 format=3 uid="uid://dj524jjal1f0n"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://c80sp6f77l5ha" path="res://scripts/constructible.gd" id="1_53h7j"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cbtre16ilxte0" path="res://sprites/atlasses/Popekko.png" id="1_x27pp"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://b0h8dd82b3ox5" path="res://scenes/conveyor.tscn" id="2_hinjf"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_uvy8r"]
|
||||||
|
atlas = ExtResource("1_x27pp")
|
||||||
|
region = Rect2(16, 0, 16, 16)
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_53h7j")
|
||||||
|
scene = ExtResource("2_hinjf")
|
||||||
|
preview = SubResource("AtlasTexture_uvy8r")
|
||||||
|
metadata/_custom_type_script = "uid://c80sp6f77l5ha"
|
|
@ -1 +0,0 @@
|
||||||
extends Node2D
|
|
|
@ -1 +0,0 @@
|
||||||
uid://6q6yvdigdloo
|
|
|
@ -15,12 +15,35 @@ run/main_scene="uid://u7thalwj5742"
|
||||||
config/features=PackedStringArray("4.5", "GL Compatibility")
|
config/features=PackedStringArray("4.5", "GL Compatibility")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
GuiEventBus="*res://scripts/gui/gui_event_bus.gd"
|
||||||
|
RuntimePlayerData="*res://scripts/runtime_player_data.gd"
|
||||||
|
Registry="*res://scripts/registry.gd"
|
||||||
|
|
||||||
[display]
|
[display]
|
||||||
|
|
||||||
window/size/viewport_width=512
|
window/size/viewport_width=512
|
||||||
window/size/viewport_height=288
|
window/size/viewport_height=288
|
||||||
window/stretch/mode="canvas_items"
|
window/stretch/mode="canvas_items"
|
||||||
|
|
||||||
|
[gui]
|
||||||
|
|
||||||
|
theme/custom="uid://csh7en7c4otv6"
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
plc_place={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(176.91797, 7.2773438),"global_position":Vector2(180.91797, 44.277344),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
plc_cancel={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(441.39453, 21.890625),"global_position":Vector2(445.39453, 58.890625),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
2d_physics/layer_1="Platform"
|
2d_physics/layer_1="Platform"
|
||||||
|
|
|
@ -1,10 +1,91 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://u7thalwj5742"]
|
[gd_scene load_steps=9 format=3 uid="uid://u7thalwj5742"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://b7du4vul4bmpq" path="res://scenes/player_platform.tscn" id="1_4ia00"]
|
[ext_resource type="PackedScene" uid="uid://b7du4vul4bmpq" path="res://scenes/player_platform.tscn" id="1_4ia00"]
|
||||||
|
[ext_resource type="Script" uid="uid://db37xmo8ygwhg" path="res://scripts/gui/construction_button.gd" id="2_27lod"]
|
||||||
|
[ext_resource type="Resource" uid="uid://dj524jjal1f0n" path="res://generic/constructibles/conveyor.tres" id="3_2crwe"]
|
||||||
|
[ext_resource type="Script" uid="uid://b4nkk0ndqcto" path="res://scripts/construction_placer.gd" id="4_i7yte"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bac552xgua68e" path="res://scenes/other_platform.tscn" id="5_mnxrb"]
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_bq5r8"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("OtherPlatform:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(309, 15)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_ymyc2"]
|
||||||
|
resource_name = "main"
|
||||||
|
length = 10.0
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("OtherPlatform:position")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 5),
|
||||||
|
"transitions": PackedFloat32Array(-2, -2),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(309, 15), Vector2(309, 131)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_mogn5"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_bq5r8"),
|
||||||
|
&"main": SubResource("Animation_ymyc2")
|
||||||
|
}
|
||||||
|
|
||||||
[node name="2D World" type="Node2D"]
|
[node name="2D World" type="Node2D"]
|
||||||
|
|
||||||
[node name="PlayerPlatform" parent="." instance=ExtResource("1_4ia00")]
|
[node name="PlayerPlatform" parent="." instance=ExtResource("1_4ia00")]
|
||||||
position = Vector2(17, 17)
|
position = Vector2(17, 17)
|
||||||
use_kinematic_bodies = true
|
|
||||||
navigation_enabled = false
|
[node name="OtherPlatform" parent="." instance=ExtResource("5_mnxrb")]
|
||||||
|
position = Vector2(309, 15)
|
||||||
|
|
||||||
|
[node name="GUI" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
|
[node name="Panel" type="Panel" parent="GUI"]
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_top = 0.757
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_top = -0.01600647
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 0
|
||||||
|
|
||||||
|
[node name="ConveyorButton" type="Button" parent="GUI/Panel"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_left = 0.008
|
||||||
|
anchor_top = 0.086
|
||||||
|
anchor_right = 0.1
|
||||||
|
anchor_bottom = 0.88600004
|
||||||
|
offset_left = -0.096000195
|
||||||
|
offset_top = -0.01999998
|
||||||
|
offset_right = -0.20000076
|
||||||
|
offset_bottom = -0.020004272
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
theme_type_variation = &"CRT"
|
||||||
|
icon_alignment = 1
|
||||||
|
expand_icon = true
|
||||||
|
script = ExtResource("2_27lod")
|
||||||
|
constructible = ExtResource("3_2crwe")
|
||||||
|
|
||||||
|
[node name="Placer" type="Node2D" parent="."]
|
||||||
|
script = ExtResource("4_i7yte")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_mogn5")
|
||||||
|
}
|
||||||
|
autoplay = "main"
|
||||||
|
|
14
scenes/conveyor.tscn
Normal file
14
scenes/conveyor.tscn
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://b0h8dd82b3ox5"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cbtre16ilxte0" path="res://sprites/atlasses/Popekko.png" id="1_kqxj7"]
|
||||||
|
[ext_resource type="Script" uid="uid://bbd7o2st8kmgl" path="res://scripts/construction.gd" id="1_y326v"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_uvy8r"]
|
||||||
|
atlas = ExtResource("1_kqxj7")
|
||||||
|
region = Rect2(16, 0, 16, 16)
|
||||||
|
|
||||||
|
[node name="Conveyor" type="Node2D" groups=["buildings"]]
|
||||||
|
script = ExtResource("1_y326v")
|
||||||
|
|
||||||
|
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||||
|
texture = SubResource("AtlasTexture_uvy8r")
|
13
scenes/other_platform.tscn
Normal file
13
scenes/other_platform.tscn
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[gd_scene load_steps=3 format=4 uid="uid://bac552xgua68e"]
|
||||||
|
|
||||||
|
[ext_resource type="TileSet" uid="uid://bv75bu0af04vs" path="res://generic/platform.tres" id="1_fs1oy"]
|
||||||
|
[ext_resource type="Script" uid="uid://lw1ya3iu14uf" path="res://scripts/build_zone.gd" id="2_bwire"]
|
||||||
|
|
||||||
|
[node name="OtherPlatform" type="TileMapLayer"]
|
||||||
|
tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAEAAAAAAAEAAAAAAAIAAAAAAAEAAAAAAAMAAAAAAAEAAAAAAAQAAAAAAAEAAAABAAAAAAAAAAEAAAABAAEAAAAAAAEAAAABAAIAAAAAAAEAAAABAAMAAAAAAAAAAAABAAQAAAAAAAEAAAACAAAAAAAAAAAAAAACAAEAAAAAAAEAAAACAAIAAAAAAAEAAAACAAMAAAAAAAAAAAACAAQAAAAAAAAAAAD/////AAACAAEAAAD//wAAAAAEAAIAAAD//wEAAAAEAAIAAAD//wIAAAAEAAIAAAD//wMAAAAEAAIAAAD//wQAAAAEAAIAAAAAAP//AAABAAIAAAABAP//AAABAAIAAAACAP//AAABAAIAAAADAP//AAADAAEAAAD//wUAAAAEAAEAAAADAAUAAAAFAAEAAAAAAAUAAAAGAAEAAAABAAUAAAAGAAEAAAACAAUAAAAGAAEAAAADAAAAAAAFAAIAAAADAAEAAAAFAAIAAAADAAIAAAAFAAIAAAADAAMAAAAFAAIAAAADAAQAAAAFAAIAAAA=")
|
||||||
|
tile_set = ExtResource("1_fs1oy")
|
||||||
|
|
||||||
|
[node name="BuildZone" type="Marker2D" parent="."]
|
||||||
|
script = ExtResource("2_bwire")
|
||||||
|
building_rect = Rect2(0, 0, 48, 80)
|
||||||
|
metadata/_custom_type_script = "uid://lw1ya3iu14uf"
|
|
@ -1,12 +1,20 @@
|
||||||
[gd_scene load_steps=3 format=4 uid="uid://b7du4vul4bmpq"]
|
[gd_scene load_steps=4 format=4 uid="uid://b7du4vul4bmpq"]
|
||||||
|
|
||||||
[ext_resource type="TileSet" uid="uid://bv75bu0af04vs" path="res://generic/platform.tres" id="1_khkq2"]
|
[ext_resource type="TileSet" uid="uid://bv75bu0af04vs" path="res://generic/platform.tres" id="1_khkq2"]
|
||||||
[ext_resource type="Script" uid="uid://lw1ya3iu14uf" path="res://scripts/build_zone.gd" id="2_wpmwa"]
|
[ext_resource type="Script" uid="uid://lw1ya3iu14uf" path="res://scripts/build_zone.gd" id="2_wpmwa"]
|
||||||
|
[ext_resource type="Script" uid="uid://x5edy155eg0s" path="res://scripts/entity_holder.gd" id="3_6hjoe"]
|
||||||
|
|
||||||
[node name="PlayerPlatform" type="TileMapLayer"]
|
[node name="PlayerPlatform" type="Node2D"]
|
||||||
tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAADAAAAAAAAAAEAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAEAAAAGAAAAAAAAAAAAAAAGAAEAAAAAAAAAAAAHAAEAAAAAAAAAAAAHAAIAAAAAAAAAAAAGAAIAAAAAAAEAAAAFAAIAAAAAAAEAAAAEAAIAAAAAAAAAAAADAAIAAAAAAAAAAAACAAIAAAAAAAAAAAACAAEAAAAAAAEAAAABAAEAAAAAAAEAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAEAAAABAAMAAAAAAAEAAAABAAQAAAAAAAEAAAACAAQAAAAAAAAAAAADAAQAAAAAAAAAAAADAAMAAAAAAAAAAAAEAAMAAAAAAAEAAAAAAAQAAAAAAAEAAAAAAAUAAAAAAAAAAAABAAIAAAAAAAEAAAABAAUAAAAAAAAAAAACAAMAAAAAAAAAAAACAAUAAAAAAAEAAAADAAEAAAAAAAEAAAADAAUAAAAAAAEAAAAEAAEAAAAAAAAAAAAEAAQAAAAAAAEAAAAEAAUAAAAAAAAAAAAFAAEAAAAAAAEAAAAFAAMAAAAAAAAAAAAFAAQAAAAAAAEAAAAFAAUAAAAAAAAAAAAGAAMAAAAAAAEAAAAGAAQAAAAAAAEAAAAGAAUAAAAAAAEAAAAHAAAAAAAAAAEAAAAHAAMAAAAAAAEAAAAHAAQAAAAAAAAAAAAHAAUAAAAAAAAAAAAIAAAAAAAAAAEAAAAIAAEAAAAAAAEAAAAIAAIAAAAAAAAAAAAIAAMAAAAAAAEAAAAIAAQAAAAAAAAAAAAIAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAABAAYAAAAAAAEAAAABAAcAAAAAAAEAAAACAAYAAAAAAAAAAAACAAcAAAAAAAAAAAADAAYAAAAAAAEAAAADAAcAAAAAAAEAAAAEAAYAAAAAAAEAAAAEAAcAAAAAAAEAAAAFAAYAAAAAAAEAAAAFAAcAAAAAAAAAAAAGAAYAAAAAAAEAAAAGAAcAAAAAAAEAAAAHAAYAAAAAAAEAAAAHAAcAAAAAAAAAAAAIAAYAAAAAAAAAAAAIAAcAAAAAAAEAAAAJAAAAAAAAAAEAAAAJAAEAAAAAAAEAAAAJAAIAAAAAAAEAAAAJAAMAAAAAAAAAAAAJAAQAAAAAAAEAAAAJAAUAAAAAAAAAAAAJAAYAAAAAAAEAAAAJAAcAAAAAAAAAAAAKAAAAAAAAAAEAAAAKAAEAAAAAAAAAAAAKAAIAAAAAAAAAAAAKAAMAAAAAAAEAAAAKAAQAAAAAAAAAAAAKAAUAAAAAAAEAAAAKAAYAAAAAAAAAAAAKAAcAAAAAAAEAAAALAAAAAAAAAAEAAAALAAEAAAAAAAAAAAALAAIAAAAAAAEAAAALAAMAAAAAAAEAAAALAAQAAAAAAAAAAAALAAUAAAAAAAAAAAALAAYAAAAAAAAAAAALAAcAAAAAAAAAAAAMAAAAAAAAAAEAAAAMAAEAAAAAAAAAAAAMAAIAAAAAAAEAAAAMAAMAAAAAAAAAAAAMAAQAAAAAAAAAAAAMAAUAAAAAAAEAAAAMAAYAAAAAAAEAAAAMAAcAAAAAAAAAAAANAAAAAAABAAEAAAANAAEAAAABAAEAAAANAAIAAAABAAEAAAANAAMAAAABAAEAAAANAAQAAAABAAEAAAANAAUAAAABAAEAAAANAAYAAAABAAEAAAANAAcAAAABAAEAAAD//wAAAAABAAAAAAD//wEAAAABAAAAAAD//wIAAAABAAAAAAD//wMAAAABAAAAAAD//wQAAAABAAAAAAD//wUAAAABAAAAAAD//wYAAAABAAAAAAD//wcAAAABAAAAAAD//wgAAAADAAAAAAANAAgAAAAEAAAAAAAAAAgAAAACAAAAAAABAAgAAAACAAAAAAACAAgAAAACAAAAAAADAAgAAAACAAAAAAAEAAgAAAACAAAAAAAFAAgAAAACAAAAAAAGAAgAAAACAAAAAAAHAAgAAAACAAAAAAAIAAgAAAACAAAAAAAJAAgAAAACAAAAAAAKAAgAAAACAAAAAAALAAgAAAACAAAAAAAMAAgAAAACAAAAAAAAAP//AAAAAAIAAAABAP//AAAAAAIAAAACAP//AAAAAAIAAAADAP//AAAAAAIAAAAEAP//AAAAAAIAAAAFAP//AAAAAAIAAAAGAP//AAAAAAIAAAAHAP//AAAAAAIAAAAIAP//AAAAAAIAAAAJAP//AAAAAAIAAAAKAP//AAAAAAIAAAALAP//AAAAAAIAAAAMAP//AAAAAAIAAAD/////AAACAAIAAAANAP//AAADAAIAAAA=")
|
|
||||||
|
[node name="TileMapLayer" type="TileMapLayer" parent="."]
|
||||||
|
tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAGAAAAAAAAAAEAAAAHAAAAAAAAAAAAAAAIAAAAAAAAAAEAAAAJAAAAAAAAAAEAAAAKAAAAAAAAAAEAAAALAAAAAAAAAAAAAAAMAAAAAAAAAAEAAAANAAAAAAAAAAEAAAAOAAAAAAAAAAEAAAAPAAAAAAAAAAAAAAAQAAAAAAAAAAEAAAAQAAEAAAAAAAAAAAAPAAEAAAAAAAAAAAAOAAEAAAAAAAEAAAANAAEAAAAAAAAAAAAMAAEAAAAAAAAAAAALAAEAAAAAAAEAAAAKAAEAAAAAAAEAAAAJAAEAAAAAAAEAAAAIAAEAAAAAAAEAAAAHAAEAAAAAAAAAAAAGAAEAAAAAAAEAAAAFAAEAAAAAAAEAAAAEAAEAAAAAAAAAAAADAAEAAAAAAAAAAAACAAEAAAAAAAEAAAABAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAIAAAAAAAAAAAABAAIAAAAAAAEAAAACAAIAAAAAAAEAAAACAAMAAAAAAAEAAAADAAMAAAAAAAAAAAADAAIAAAAAAAAAAAAEAAIAAAAAAAAAAAAFAAIAAAAAAAEAAAAGAAIAAAAAAAEAAAAHAAIAAAAAAAEAAAAIAAIAAAAAAAEAAAAJAAIAAAAAAAEAAAAKAAIAAAAAAAEAAAALAAIAAAAAAAAAAAAMAAIAAAAAAAEAAAANAAIAAAAAAAEAAAAOAAIAAAAAAAAAAAAPAAIAAAAAAAEAAAAQAAIAAAAAAAEAAAAQAAMAAAAAAAEAAAAPAAMAAAAAAAEAAAAOAAMAAAAAAAEAAAANAAMAAAAAAAAAAAANAAQAAAAAAAAAAAAMAAQAAAAAAAEAAAALAAQAAAAAAAEAAAAKAAQAAAAAAAEAAAAJAAQAAAAAAAAAAAAJAAMAAAAAAAAAAAAIAAMAAAAAAAAAAAAHAAMAAAAAAAEAAAAGAAMAAAAAAAAAAAAFAAMAAAAAAAEAAAAEAAMAAAAAAAEAAAABAAMAAAAAAAEAAAAAAAMAAAAAAAEAAAAAAAQAAAAAAAAAAAABAAQAAAAAAAEAAAACAAQAAAAAAAAAAAADAAQAAAAAAAAAAAAEAAQAAAAAAAEAAAAFAAQAAAAAAAAAAAAGAAQAAAAAAAAAAAAHAAQAAAAAAAAAAAAIAAQAAAAAAAEAAAAOAAQAAAAAAAEAAAAPAAQAAAAAAAEAAAAQAAQAAAAAAAEAAAAMAAMAAAAAAAAAAAALAAMAAAAAAAEAAAAKAAMAAAAAAAEAAAABAAUAAAAAAAEAAAAAAAUAAAAAAAAAAAACAAUAAAAAAAEAAAADAAUAAAAAAAEAAAAEAAUAAAAAAAEAAAAFAAUAAAAAAAEAAAAGAAUAAAAAAAEAAAAHAAUAAAAAAAEAAAAIAAUAAAAAAAEAAAAJAAUAAAAAAAEAAAAKAAUAAAAAAAAAAAALAAUAAAAAAAAAAAAMAAUAAAAAAAAAAAANAAUAAAAAAAAAAAAOAAUAAAAAAAEAAAAPAAUAAAAAAAAAAAAQAAUAAAAAAAAAAAAQAAYAAAAAAAEAAAAPAAYAAAAAAAAAAAAPAAcAAAAAAAAAAAAOAAcAAAAAAAAAAAAOAAYAAAAAAAAAAAANAAYAAAAAAAAAAAAMAAYAAAAAAAAAAAALAAYAAAAAAAEAAAAKAAYAAAAAAAEAAAAJAAYAAAAAAAEAAAAIAAYAAAAAAAEAAAAHAAYAAAAAAAAAAAAGAAYAAAAAAAEAAAAFAAYAAAAAAAAAAAAEAAYAAAAAAAEAAAADAAYAAAAAAAEAAAACAAYAAAAAAAEAAAABAAYAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAABAAcAAAAAAAAAAAACAAcAAAAAAAAAAAADAAcAAAAAAAAAAAAEAAcAAAAAAAEAAAAFAAcAAAAAAAAAAAAGAAcAAAAAAAAAAAAHAAcAAAAAAAAAAAAIAAcAAAAAAAEAAAAJAAcAAAAAAAAAAAAKAAcAAAAAAAEAAAALAAcAAAAAAAAAAAAMAAcAAAAAAAAAAAANAAcAAAAAAAEAAAAQAAcAAAAAAAAAAAARAAAAAAABAAEAAAARAAEAAAABAAEAAAARAAIAAAABAAEAAAARAAMAAAABAAEAAAARAAQAAAABAAEAAAARAAUAAAABAAEAAAARAAYAAAABAAEAAAARAAcAAAABAAEAAAD//wAAAAABAAAAAAD//wEAAAABAAAAAAD//wIAAAABAAAAAAD//wMAAAABAAAAAAD//wQAAAABAAAAAAD//wUAAAABAAAAAAD//wYAAAABAAAAAAD//wcAAAABAAAAAAAAAP//AAAAAAIAAAABAP//AAAAAAIAAAACAP//AAAAAAIAAAADAP//AAAAAAIAAAAEAP//AAAAAAIAAAAFAP//AAAAAAIAAAAGAP//AAAAAAIAAAAHAP//AAAAAAIAAAAIAP//AAAAAAIAAAAJAP//AAAAAAIAAAAKAP//AAAAAAIAAAALAP//AAAAAAIAAAAMAP//AAAAAAIAAAANAP//AAAAAAIAAAAOAP//AAAAAAIAAAAPAP//AAAAAAIAAAAQAP//AAAAAAIAAAD/////AAACAAIAAAARAP//AAADAAIAAAD//wgAAAADAAAAAAARAAgAAAAEAAAAAAAQAAgAAAACAAAAAAAPAAgAAAACAAAAAAAOAAgAAAACAAAAAAANAAgAAAACAAAAAAAMAAgAAAACAAAAAAALAAgAAAACAAAAAAAKAAgAAAACAAAAAAAJAAgAAAACAAAAAAAIAAgAAAACAAAAAAAHAAgAAAACAAAAAAAGAAgAAAACAAAAAAAFAAgAAAACAAAAAAAEAAgAAAACAAAAAAADAAgAAAACAAAAAAACAAgAAAACAAAAAAABAAgAAAACAAAAAAAAAAgAAAACAAAAAAA=")
|
||||||
tile_set = ExtResource("1_khkq2")
|
tile_set = ExtResource("1_khkq2")
|
||||||
|
|
||||||
[node name="BuildRect" type="Marker2D" parent="."]
|
[node name="BuildRect" type="Marker2D" parent="."]
|
||||||
script = ExtResource("2_wpmwa")
|
script = ExtResource("2_wpmwa")
|
||||||
building_rect = Rect2(0, 0, 208, 128)
|
building_rect = Rect2(0, 0, 272, 128)
|
||||||
|
|
||||||
|
[node name="EntityHolder" type="Node2D" parent="." node_paths=PackedStringArray("building_zone")]
|
||||||
|
script = ExtResource("3_6hjoe")
|
||||||
|
building_zone = NodePath("../BuildRect")
|
||||||
|
metadata/_custom_type_script = "uid://x5edy155eg0s"
|
||||||
|
|
|
@ -17,6 +17,10 @@ const GRID_SIZE : Vector2 = Vector2(16,16)
|
||||||
get:
|
get:
|
||||||
return building_rect
|
return building_rect
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
if not Engine.is_editor_hint():
|
||||||
|
Registry.build_zones.append(self)
|
||||||
|
|
||||||
func _draw() -> void:
|
func _draw() -> void:
|
||||||
if Engine.is_editor_hint() and EditorInterface.get_inspector().get_edited_object() == self:
|
if Engine.is_editor_hint() and EditorInterface.get_inspector().get_edited_object() == self:
|
||||||
draw_rect(building_rect,Color.CYAN,false,1)
|
draw_rect(building_rect,Color.CYAN,false,1)
|
||||||
|
|
6
scripts/constructible.gd
Normal file
6
scripts/constructible.gd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
extends Resource
|
||||||
|
|
||||||
|
class_name Constructible
|
||||||
|
|
||||||
|
@export var scene : PackedScene
|
||||||
|
@export var preview : Texture2D
|
1
scripts/constructible.gd.uid
Normal file
1
scripts/constructible.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://c80sp6f77l5ha
|
6
scripts/construction.gd
Normal file
6
scripts/construction.gd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
class_name Construction
|
||||||
|
|
||||||
|
func get_relative(dv : Vector2) -> Construction:
|
||||||
|
return get_parent().get_at(global_position+dv)
|
1
scripts/construction.gd.uid
Normal file
1
scripts/construction.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://bbd7o2st8kmgl
|
42
scripts/construction_placer.gd
Normal file
42
scripts/construction_placer.gd
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
var held_construction : Construction
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
GuiEventBus.construction_selected.connect(on_construction_selected)
|
||||||
|
|
||||||
|
func _input(event: InputEvent) -> void:
|
||||||
|
if held_construction == null:
|
||||||
|
return
|
||||||
|
if event.is_action_pressed("plc_place"):
|
||||||
|
var zone = try_get_zone(held_construction.global_position)
|
||||||
|
if zone == null:
|
||||||
|
held_construction.queue_free()
|
||||||
|
else:
|
||||||
|
if zone.get_parent().get_node("EntityHolder").add_construction(held_construction):
|
||||||
|
held_construction = null
|
||||||
|
|
||||||
|
if event.is_action_pressed("plc_cancel"):
|
||||||
|
held_construction.queue_free()
|
||||||
|
|
||||||
|
func on_construction_selected(constructible : Constructible):
|
||||||
|
if held_construction:
|
||||||
|
held_construction.queue_free()
|
||||||
|
held_construction = constructible.scene.instantiate()
|
||||||
|
add_child(held_construction)
|
||||||
|
|
||||||
|
|
||||||
|
func _process(_delta: float) -> void:
|
||||||
|
if held_construction != null:
|
||||||
|
var mouse_pos = get_global_mouse_position()
|
||||||
|
var zone = try_get_zone(mouse_pos)
|
||||||
|
if zone:
|
||||||
|
global_position = zone.get_placement_position(mouse_pos)
|
||||||
|
else:
|
||||||
|
global_position = mouse_pos
|
||||||
|
|
||||||
|
func try_get_zone(point : Vector2) -> BuildZone:
|
||||||
|
for zone in Registry.build_zones:
|
||||||
|
if zone.is_global_point_in_zone(point):
|
||||||
|
return zone
|
||||||
|
return null
|
1
scripts/construction_placer.gd.uid
Normal file
1
scripts/construction_placer.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://b4nkk0ndqcto
|
22
scripts/entity_holder.gd
Normal file
22
scripts/entity_holder.gd
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
extends Node2D
|
||||||
|
|
||||||
|
class_name EntityHolder
|
||||||
|
|
||||||
|
const GRID_SIZE : Vector2 = Vector2(16,16)
|
||||||
|
|
||||||
|
@export var building_zone : BuildZone
|
||||||
|
var constructions : Array[Construction]
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
constructions.resize(building_zone.get_capacity())
|
||||||
|
|
||||||
|
func add_construction(construction : Construction) -> bool:
|
||||||
|
if constructions[building_zone.indexify_global_point(construction.global_position)]:
|
||||||
|
return false
|
||||||
|
construction.reparent(self)
|
||||||
|
construction.global_position = building_zone.get_placement_position(construction.global_position)
|
||||||
|
constructions[building_zone.indexify_global_point(construction.global_position)] = construction
|
||||||
|
return true
|
||||||
|
|
||||||
|
func get_at(point : Vector2):
|
||||||
|
return constructions[building_zone.indexify_global_point(point)]
|
1
scripts/entity_holder.gd.uid
Normal file
1
scripts/entity_holder.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://x5edy155eg0s
|
9
scripts/gui/construction_button.gd
Normal file
9
scripts/gui/construction_button.gd
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
extends Button
|
||||||
|
|
||||||
|
@export var constructible : Constructible
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
icon = constructible.preview
|
||||||
|
|
||||||
|
func _pressed() -> void:
|
||||||
|
GuiEventBus.construction_selected.emit(constructible)
|
1
scripts/gui/construction_button.gd.uid
Normal file
1
scripts/gui/construction_button.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://db37xmo8ygwhg
|
6
scripts/gui/gui_event_bus.gd
Normal file
6
scripts/gui/gui_event_bus.gd
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
@warning_ignore_start("unused_signal")
|
||||||
|
|
||||||
|
signal construction_selected(constructible : Constructible)
|
||||||
|
signal construction_placed(constructible : Constructible)
|
1
scripts/gui/gui_event_bus.gd.uid
Normal file
1
scripts/gui/gui_event_bus.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://x5eghpenp777
|
|
@ -1 +0,0 @@
|
||||||
uid://b004eslxx7ylv
|
|
9
scripts/registry.gd
Normal file
9
scripts/registry.gd
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
get_tree().scene_changed.connect(cleanup_runtime_cache)
|
||||||
|
|
||||||
|
func cleanup_runtime_cache():
|
||||||
|
build_zones.clear()
|
||||||
|
|
||||||
|
var build_zones : Array[BuildZone]
|
1
scripts/registry.gd.uid
Normal file
1
scripts/registry.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://coqgbea1uchn4
|
1
scripts/runtime_player_data.gd.uid
Normal file
1
scripts/runtime_player_data.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://bmowwtsy0f8mf
|
BIN
sprites/Uitto.png
Normal file
BIN
sprites/Uitto.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
40
sprites/Uitto.png.import
Normal file
40
sprites/Uitto.png.import
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://3h6y6jxhf1qp"
|
||||||
|
path="res://.godot/imported/Uitto.png-aa56f94032c469259c3a25656653a91a.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://sprites/Uitto.png"
|
||||||
|
dest_files=["res://.godot/imported/Uitto.png-aa56f94032c469259c3a25656653a91a.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
|
Binary file not shown.
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 948 B |
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://416h8gs1f7x0"
|
uid="uid://cbtre16ilxte0"
|
||||||
path="res://.godot/imported/Popekko.png-5c34a5f2a8c85fcf59453310fa6553d9.ctex"
|
path="res://.godot/imported/Popekko.png-5c34a5f2a8c85fcf59453310fa6553d9.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue