From 6f56fffb5997335f5e8ad63efb4c9a5c6cb4a3c5 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sat, 11 Oct 2025 12:58:36 +0500 Subject: [PATCH] Dimensions for constructibles --- generic/constructibles/dbg_assembler.tres | 15 +++++++ project.godot | 4 +- scenes/2d_world.tscn | 21 +++++++++- scenes/debug_assembler.tscn | 16 ++++++++ scenes/other_platform.tscn | 11 ++++- scenes/player_platform.tscn | 3 +- scripts/{ => autoloads}/registry.gd | 0 scripts/{ => autoloads}/registry.gd.uid | 0 .../{ => autoloads}/runtime_player_data.gd | 0 .../runtime_player_data.gd.uid | 0 scripts/build_zone.gd | 12 +++--- scripts/construction.gd | 38 ++++++++++++++++++ scripts/construction_placer.gd | 17 ++++---- scripts/entity_holder.gd | 14 +++++-- scripts/globals.gd | 6 +++ scripts/globals.gd.uid | 1 + sprites/atlasses/Popekko.png | Bin 948 -> 1172 bytes sprites/atlasses/Popekko.png.import | 2 +- 18 files changed, 135 insertions(+), 25 deletions(-) create mode 100644 generic/constructibles/dbg_assembler.tres create mode 100644 scenes/debug_assembler.tscn rename scripts/{ => autoloads}/registry.gd (100%) rename scripts/{ => autoloads}/registry.gd.uid (100%) rename scripts/{ => autoloads}/runtime_player_data.gd (100%) rename scripts/{ => autoloads}/runtime_player_data.gd.uid (100%) create mode 100644 scripts/globals.gd create mode 100644 scripts/globals.gd.uid diff --git a/generic/constructibles/dbg_assembler.tres b/generic/constructibles/dbg_assembler.tres new file mode 100644 index 0000000..0dfedeb --- /dev/null +++ b/generic/constructibles/dbg_assembler.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="Constructible" load_steps=5 format=3 uid="uid://yn1iesx30nfu"] + +[ext_resource type="Script" uid="uid://c80sp6f77l5ha" path="res://scripts/constructible.gd" id="1_mqcr0"] +[ext_resource type="Texture2D" uid="uid://dinyjq8853usn" path="res://sprites/atlasses/Popekko.png" id="1_sh8t1"] +[ext_resource type="PackedScene" uid="uid://dfatkxv6n55dw" path="res://scenes/debug_assembler.tscn" id="2_kf3x0"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_kf3x0"] +atlas = ExtResource("1_sh8t1") +region = Rect2(32, 0, 32, 32) + +[resource] +script = ExtResource("1_mqcr0") +scene = ExtResource("2_kf3x0") +preview = SubResource("AtlasTexture_kf3x0") +metadata/_custom_type_script = "uid://c80sp6f77l5ha" diff --git a/project.godot b/project.godot index b6648e2..352b36b 100644 --- a/project.godot +++ b/project.godot @@ -18,8 +18,8 @@ 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" +RuntimePlayerData="*res://scripts/autoloads/runtime_player_data.gd" +Registry="*res://scripts/autoloads/registry.gd" [display] diff --git a/scenes/2d_world.tscn b/scenes/2d_world.tscn index 5e93434..254927d 100644 --- a/scenes/2d_world.tscn +++ b/scenes/2d_world.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=9 format=3 uid="uid://u7thalwj5742"] +[gd_scene load_steps=10 format=3 uid="uid://u7thalwj5742"] [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"] +[ext_resource type="Resource" uid="uid://yn1iesx30nfu" path="res://generic/constructibles/dbg_assembler.tres" id="5_ymyc2"] [sub_resource type="Animation" id="Animation_bq5r8"] length = 0.001 @@ -81,6 +82,24 @@ expand_icon = true script = ExtResource("2_27lod") constructible = ExtResource("3_2crwe") +[node name="AssemblerButton" 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 = 50.904 +offset_top = -0.01999998 +offset_right = 50.8 +offset_bottom = -0.020004272 +size_flags_horizontal = 3 +theme_type_variation = &"CRT" +icon_alignment = 1 +expand_icon = true +script = ExtResource("2_27lod") +constructible = ExtResource("5_ymyc2") + [node name="Placer" type="Node2D" parent="."] script = ExtResource("4_i7yte") diff --git a/scenes/debug_assembler.tscn b/scenes/debug_assembler.tscn new file mode 100644 index 0000000..88bad0c --- /dev/null +++ b/scenes/debug_assembler.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=4 format=3 uid="uid://dfatkxv6n55dw"] + +[ext_resource type="Script" uid="uid://bbd7o2st8kmgl" path="res://scripts/construction.gd" id="1_k5y3y"] +[ext_resource type="Texture2D" uid="uid://dinyjq8853usn" path="res://sprites/atlasses/Popekko.png" id="2_4befw"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_xh4eg"] +atlas = ExtResource("2_4befw") +region = Rect2(32, 0, 32, 32) + +[node name="DebugAssembler" type="Node2D"] +script = ExtResource("1_k5y3y") +dimensions = Rect2i(0, 0, 2, 2) + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = SubResource("AtlasTexture_xh4eg") +offset = Vector2(8, 8) diff --git a/scenes/other_platform.tscn b/scenes/other_platform.tscn index 125ccab..9bc4169 100644 --- a/scenes/other_platform.tscn +++ b/scenes/other_platform.tscn @@ -1,13 +1,20 @@ -[gd_scene load_steps=3 format=4 uid="uid://bac552xgua68e"] +[gd_scene load_steps=4 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"] +[ext_resource type="Script" uid="uid://x5edy155eg0s" path="res://scripts/entity_holder.gd" id="3_qaudu"] [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="."] +[node name="BuildZone" type="Marker2D" parent="." node_paths=PackedStringArray("entity_holder")] script = ExtResource("2_bwire") building_rect = Rect2(0, 0, 48, 80) +entity_holder = NodePath("../EntityHolder") metadata/_custom_type_script = "uid://lw1ya3iu14uf" + +[node name="EntityHolder" type="Node2D" parent="." node_paths=PackedStringArray("building_zone")] +script = ExtResource("3_qaudu") +building_zone = NodePath("../BuildZone") +metadata/_custom_type_script = "uid://x5edy155eg0s" diff --git a/scenes/player_platform.tscn b/scenes/player_platform.tscn index c23ecc3..28b19a1 100644 --- a/scenes/player_platform.tscn +++ b/scenes/player_platform.tscn @@ -10,9 +10,10 @@ 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") -[node name="BuildRect" type="Marker2D" parent="."] +[node name="BuildRect" type="Marker2D" parent="." node_paths=PackedStringArray("entity_holder")] script = ExtResource("2_wpmwa") building_rect = Rect2(0, 0, 272, 128) +entity_holder = NodePath("../EntityHolder") [node name="EntityHolder" type="Node2D" parent="." node_paths=PackedStringArray("building_zone")] script = ExtResource("3_6hjoe") diff --git a/scripts/registry.gd b/scripts/autoloads/registry.gd similarity index 100% rename from scripts/registry.gd rename to scripts/autoloads/registry.gd diff --git a/scripts/registry.gd.uid b/scripts/autoloads/registry.gd.uid similarity index 100% rename from scripts/registry.gd.uid rename to scripts/autoloads/registry.gd.uid diff --git a/scripts/runtime_player_data.gd b/scripts/autoloads/runtime_player_data.gd similarity index 100% rename from scripts/runtime_player_data.gd rename to scripts/autoloads/runtime_player_data.gd diff --git a/scripts/runtime_player_data.gd.uid b/scripts/autoloads/runtime_player_data.gd.uid similarity index 100% rename from scripts/runtime_player_data.gd.uid rename to scripts/autoloads/runtime_player_data.gd.uid diff --git a/scripts/build_zone.gd b/scripts/build_zone.gd index 23a16f8..bc3a720 100644 --- a/scripts/build_zone.gd +++ b/scripts/build_zone.gd @@ -6,8 +6,6 @@ extends Marker2D class_name BuildZone -const GRID_SIZE : Vector2 = Vector2(16,16) - ## Rect that used for bounds check and conversions @export var building_rect : Rect2: set(value): @@ -17,6 +15,8 @@ const GRID_SIZE : Vector2 = Vector2(16,16) get: return building_rect +@export var entity_holder : EntityHolder + func _ready() -> void: if not Engine.is_editor_hint(): Registry.build_zones.append(self) @@ -37,7 +37,7 @@ func is_global_point_in_zone(point: Vector2) -> bool: func indexify_point(point : Vector2) -> int: if is_point_in_zone(point) == false: return -1 - return int(point.x) / int(GRID_SIZE.x) + int(building_rect.size.x/GRID_SIZE.x)*(int(point.y) / int(GRID_SIZE.y)) + return int(point.x) / int(Globals.GRID_SIZE.x) + int(building_rect.size.x/Globals.GRID_SIZE.x)*(int(point.y) / int(Globals.GRID_SIZE.y)) ## Returns index of point (global coordinates) to be used in array func indexify_global_point(point : Vector2) -> int: @@ -45,7 +45,7 @@ func indexify_global_point(point : Vector2) -> int: ## Inverses indexification of point, returning snapped position func inverse_index(index: int) -> Vector2: - return to_global(Vector2(index%int(building_rect.size.x/GRID_SIZE.x)*GRID_SIZE.x,index / int(building_rect.size.x/GRID_SIZE.x) * GRID_SIZE.y)) + return to_global(Vector2(index%int(building_rect.size.x/Globals.GRID_SIZE.x)*Globals.GRID_SIZE.x,index / int(building_rect.size.x/Globals.GRID_SIZE.x) * Globals.GRID_SIZE.y)) ## Returns snapped position of point (global coordinates). ## Equivalent of [code] @@ -54,8 +54,8 @@ func inverse_index(index: int) -> Vector2: func get_placement_position(point : Vector2) -> Vector2: if is_global_point_in_zone(point) == false: return Vector2.ZERO - return to_global((to_local(point) / GRID_SIZE).floor()*GRID_SIZE + GRID_SIZE/2.0) + return to_global((to_local(point) / Globals.GRID_SIZE).floor()*Globals.GRID_SIZE + Globals.GRID_SIZE/2.0) ## Returns capacity of building zone to be used in the array func get_capacity() -> int: - return int(building_rect.size.x/GRID_SIZE.x)*int(building_rect.size.y/GRID_SIZE.y) + return int(building_rect.size.x/Globals.GRID_SIZE.x)*int(building_rect.size.y/Globals.GRID_SIZE.y) diff --git a/scripts/construction.gd b/scripts/construction.gd index 7d86f32..facfa7a 100644 --- a/scripts/construction.gd +++ b/scripts/construction.gd @@ -1,6 +1,44 @@ +@tool extends Node2D class_name Construction +@export var dimensions : Rect2i = Rect2i(0,0,1,1): + set(value): + dimensions = value + if Engine.is_editor_hint(): + queue_redraw() + get: + return dimensions + +func _draw() -> void: + if Engine.is_editor_hint(): + for x in range(dimensions.size.x): + for y in range(dimensions.size.y): + draw_circle((dimensions.position+Vector2i(x,y)) * Vector2i(Globals.GRID_SIZE),2,Color.AQUA) + func get_relative(dv : Vector2) -> Construction: return get_parent().get_at(global_position+dv) + +func can_be_placed(zone : BuildZone) -> bool: + for dp in get_dimension_points(): + var point = global_position + dp + if zone.is_global_point_in_zone(point) == false: + return false + if zone.entity_holder.is_point_occupied(point): + return false + return true + +func try_place(zone : BuildZone) -> bool: + if can_be_placed(zone) == false: + return false + + return zone.entity_holder.add_construction(self) + +func get_dimension_points() -> Array[Vector2]: + var result : Array[Vector2] = [] + result.resize(dimensions.size.x*dimensions.size.y) + for x in range(dimensions.size.x): + for y in range(dimensions.size.y): + result[x + y * dimensions.size.x] = (Vector2(x,y)*Globals.GRID_SIZE + Vector2(dimensions.position)) + return result diff --git a/scripts/construction_placer.gd b/scripts/construction_placer.gd index bbbdb82..009466d 100644 --- a/scripts/construction_placer.gd +++ b/scripts/construction_placer.gd @@ -13,7 +13,7 @@ func _input(event: InputEvent) -> void: if zone == null: held_construction.queue_free() else: - if zone.get_parent().get_node("EntityHolder").add_construction(held_construction): + if held_construction.try_place(zone): held_construction = null if event.is_action_pressed("plc_cancel"): @@ -27,13 +27,14 @@ func on_construction_selected(constructible : Constructible): 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 + if held_construction == null: + return + var mouse_pos = get_global_mouse_position() + var zone = try_get_zone(mouse_pos) + if zone and held_construction.can_be_placed(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: diff --git a/scripts/entity_holder.gd b/scripts/entity_holder.gd index 6b6b129..12a7d8b 100644 --- a/scripts/entity_holder.gd +++ b/scripts/entity_holder.gd @@ -11,12 +11,18 @@ 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 + var construction_dp = construction.get_dimension_points() + for point in construction_dp: + if constructions[building_zone.indexify_global_point(construction.global_position + point)]: + 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 + for point in construction_dp: + constructions[building_zone.indexify_global_point(construction.global_position + point)] = construction return true -func get_at(point : Vector2): +func get_at(point : Vector2) -> Construction: return constructions[building_zone.indexify_global_point(point)] + +func is_point_occupied(point : Vector2) -> bool: + return get_at(point) != null diff --git a/scripts/globals.gd b/scripts/globals.gd new file mode 100644 index 0000000..d7ff107 --- /dev/null +++ b/scripts/globals.gd @@ -0,0 +1,6 @@ +@abstract +extends Object + +class_name Globals + +const GRID_SIZE : Vector2 = Vector2(16,16) diff --git a/scripts/globals.gd.uid b/scripts/globals.gd.uid new file mode 100644 index 0000000..4bb6907 --- /dev/null +++ b/scripts/globals.gd.uid @@ -0,0 +1 @@ +uid://bnmjkc8vfd7mo diff --git a/sprites/atlasses/Popekko.png b/sprites/atlasses/Popekko.png index 48fd6af3658da21a9fee571959b02691f7d4c6fe..8ff06cb4c3036ff2bc196dc7b1d4b6f2fc533fcd 100644 GIT binary patch delta 645 zcmV;00($+l2b2krBYy;2Nkl4cH7y#fmp&&RULwg{_PVG{tZh;PN{Rtw9 zzraO*g5u^T=;ALBMf?fb90J)i;L=Pfr4Sw3p-?ECi&vVoq0wA(*WB|gxjVkgU9!CI z_kQ2USBt;4w|3H}4}f3;q!i>uas__u(+s*IHKw_l>)EVt@E6R+E*pYyWb-yLS+`Z!P8gv!-)= za$3l90ibC0?X8`3cz6^q-@ZA!*dKIj%grSEgKjM%Vt9B|TzNkW z{t*#Lvk@T?0DpjmQSbEHwWQgIq}do5+s|}*?OGQ2C$#|pZkDAOo78uiq}ho6Km`B* z7DfH@`%hO+^t)_WpsY;n1Awd5BO>0t`cSH+eE$=~vsDGzih}d24gi2r^@xZUub-8o zXFp32-yi-OxhFeU5deUT>W`m4DMj#)oPzlHcc=&ez<)*cDca0k9zlFkG64XTGy%wZ z{CNa%fgb=aDpdk7smCvf13=lT(`k0Z>V$ssLp4_yOR0 zl`;VU0It`}`|!?MLcjmuURu-=J(UIks;V>k|N~tndkNMOOg6fBRARe*ggU zR+5&hvS*Zet9y ffdTyi7c8zn$rtQ+{r5%+00000NkvXXu0mjf?w}>i delta 390 zcmV;10eSwE3A6{0BYy*XNkl6b9gbhOINj?tqA?vW<{7kUozfqWAyzubf4RP#UTpc50DyJMVSm&tS66xS{_J{kzL*xr zRh{`_S|rJGb@e}=5dhe-vK<^(b@E4hzfJy0QdgZsApih-qnymfMO}4LSDhPc`>n}r zT(pV*Z!rMCZeBUctxbJ*sjE)r3mpIe*cauO^UrHH`rWlG008W+GD$wX{kYMud;q|1 zDU;;&yO+M~0pNg?&t5&3`~l#=l=p}M0QQUm000h<0ssIG(8lZk4g&&!-J=5l00&3` kvw;Hq0h5pdA{VUn3l>^yU;SZF$^ZZW07*qoM6N<$f;zpwwEzGB diff --git a/sprites/atlasses/Popekko.png.import b/sprites/atlasses/Popekko.png.import index e1cba67..f2b9199 100644 --- a/sprites/atlasses/Popekko.png.import +++ b/sprites/atlasses/Popekko.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cbtre16ilxte0" +uid="uid://dinyjq8853usn" path="res://.godot/imported/Popekko.png-5c34a5f2a8c85fcf59453310fa6553d9.ctex" metadata={ "vram_texture": false