From ee8deac6512a00b4f62107ff76769e73cbdade24 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 31 Oct 2025 21:10:55 +1100 Subject: [PATCH] Heck yeah, you punch those trees, Gary! --- .editorconfig | 4 +++ .gitattributes | 2 ++ .gitignore | 3 ++ character/character.gd | 36 +++++++++++++++++++++++ character/character.gd.uid | 1 + character/gary_pixels.png | Bin 0 -> 1492 bytes character/gary_pixels.png.import | 34 +++++++++++++++++++++ icon.svg | 1 + icon.svg.import | 37 +++++++++++++++++++++++ project.godot | 49 +++++++++++++++++++++++++++++++ terrain/dirt.png | Bin 0 -> 934 bytes terrain/dirt.png.import | 34 +++++++++++++++++++++ terrain/grass.png | Bin 0 -> 1247 bytes terrain/grass.png.import | 34 +++++++++++++++++++++ terrain/terrain.gd | 9 ++++++ terrain/terrain.gd.uid | 1 + terrain/terrain_tileset.tres | 19 ++++++++++++ tree/small_tree.gd | 11 +++++++ tree/small_tree.gd.uid | 1 + tree/small_tree.png | Bin 0 -> 2618 bytes tree/small_tree.png.import | 34 +++++++++++++++++++++ tree/small_tree.tscn | 21 +++++++++++++ tree/small_tree.xcf | Bin 0 -> 5298 bytes working_scene.gd | 15 ++++++++++ working_scene.gd.uid | 1 + working_scene.tscn | 35 ++++++++++++++++++++++ workspace/tileset.xcf | Bin 0 -> 2187 bytes 27 files changed, 382 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 character/character.gd create mode 100644 character/character.gd.uid create mode 100644 character/gary_pixels.png create mode 100644 character/gary_pixels.png.import create mode 100644 icon.svg create mode 100644 icon.svg.import create mode 100644 project.godot create mode 100644 terrain/dirt.png create mode 100644 terrain/dirt.png.import create mode 100644 terrain/grass.png create mode 100644 terrain/grass.png.import create mode 100644 terrain/terrain.gd create mode 100644 terrain/terrain.gd.uid create mode 100644 terrain/terrain_tileset.tres create mode 100644 tree/small_tree.gd create mode 100644 tree/small_tree.gd.uid create mode 100644 tree/small_tree.png create mode 100644 tree/small_tree.png.import create mode 100644 tree/small_tree.tscn create mode 100644 tree/small_tree.xcf create mode 100644 working_scene.gd create mode 100644 working_scene.gd.uid create mode 100644 working_scene.tscn create mode 100644 workspace/tileset.xcf diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f28239b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +charset = utf-8 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/character/character.gd b/character/character.gd new file mode 100644 index 0000000..73c7b7d --- /dev/null +++ b/character/character.gd @@ -0,0 +1,36 @@ +extends CharacterBody2D + +var _grid_pos: Vector2i = Vector2i.ZERO +var _grid_tween: Tween = null + +var _cached_dir: Vector2i = Vector2i.ZERO #used for reversing the current input + +func _physics_process(delta: float) -> void: + #WARNING: this has the potential for getting stuck + if _grid_pos * 32 == Vector2i(position): + _check_grid_move(delta) + +func _check_grid_move(delta: float) -> void: + if Input.is_action_pressed("input_north"): + _set_grid_move(Vector2i.UP) + elif Input.is_action_pressed("input_south"): + _set_grid_move(Vector2i.DOWN) + elif Input.is_action_pressed("input_west"): + _set_grid_move(Vector2i.LEFT) + elif Input.is_action_pressed("input_east"): + _set_grid_move(Vector2i.RIGHT) + +func _set_grid_move(grid_dir: Vector2i): + _cached_dir = grid_dir + _grid_pos += grid_dir + _grid_tween = create_tween() + _grid_tween.set_ease(Tween.EASE_OUT_IN) + _grid_tween.set_trans(Tween.TRANS_QUAD) + _grid_tween.tween_property(self, "position", Vector2(_grid_pos * 32), 0.3) + +func repel_collision(_other: Node2D) -> void: + #NOTE: character's collider has a 1 pixel margin + if _cached_dir != Vector2i.ZERO: + _grid_tween.kill() + _set_grid_move(-_cached_dir) #go backwards + _cached_dir = Vector2i.ZERO #only do this once each collision diff --git a/character/character.gd.uid b/character/character.gd.uid new file mode 100644 index 0000000..df34df5 --- /dev/null +++ b/character/character.gd.uid @@ -0,0 +1 @@ +uid://vn4kdorxug8f diff --git a/character/gary_pixels.png b/character/gary_pixels.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5f15bfceb047b45cbdf7fa125ff53f2e196b00 GIT binary patch literal 1492 zcmV;_1uOcAP)EX>4Tx04R}tkv&MmKpe$iQ?*j64t5X`%ut=|q9Ts93Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RL3r>nIQsV!TLW@`rj{EWM-sA2aAk@oDv$|q{rrTyJ z5f?MrRWb02AV$%He$2|uGUg;HiH_sz9zMR_MR``|bAOILHD@uvClbe)VcNtS#50?= z!FiuJ%!;x~d`>)J(glehxvqHp#<}3Kz%#>UIyFxmCKd~Ath6yJni}ymaYWU0$`>*o ztDLtuYvn3y-jlyDl+#z1xlVHg2`pj>5=1DdqJ%PRL}}GYv5=zucnANm>zBx-kgEhn zjs;YpL3aJ%fAG6oD?c^qC57TZ_lx6vi~)gNpiy(2?_(i|qi@OrgSS9%&FihXkJASrOeSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00XQ^L_t(o!^M|PY#T)s$A2^H_1a!%ZKsJ{(yP(<&w;zZ{e`8K^0USeJpjK6 z+*nvzDRdG?bO{bHzOb~i)~OK5|7>loz@5d*yUKt1eI0-SCra9}F=Qju+aG@+dPcwt zy4Q9{*b$SI9l^FtOv6BUq8>y>vQKX;rYI zRV+J7$O#>2nZ5AaZ#`ZXI!J3ygk{iGVYe0@)A7A$M%U}XJ02e zFya>)1a2i0jKB2;c7M{{ja=S+aqY0%zqJjrFMxmphSL~dpX2rg@%|LYr!HV66T6uE z?t%D`EGK8CNRJKxhA)t>l@18glTD`UYc)rNNFN>K?BM^~b0;&LN z!{-`0bE1(0FT8ddGh*#gxe4kC`rVS>eWePuJfOT@sI5cw0s3le&tm=Tf@^=3HY1jM z9`7t())VhtC6O8UZwpcMd}D*{R3doP7Vw?n-|luTreQ+0t_6DY+u-}ZAYir2s(o0) zt7@Nm-#xJ7*k}LrV6FQI1mAZN1(GO<9uUw?F=S9;coUmam*5rD&_F`NLy-k)Y*7`n6OVfGO{j0L zMgV8txcPk*H5@c1jPb{3wf9en*@)$pQbh!*{(Qur|H; zQYY`4S*Vkf^}+H?(fKXzczwkepA?zKdG0G9qUS|^xNu#Ws=8ZgO;ybg7p^zGO`pfl uY3`jRUoy@w&vg{5<0>=1JQw)fuKf$mO(0P;S$JCj0000 \ No newline at end of file diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..dfaebb6 --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cenrv2i6tua12" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.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=false +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=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..562ca42 --- /dev/null +++ b/project.godot @@ -0,0 +1,49 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="mini-garden" +run/main_scene="uid://8o4ffx055dof" +config/features=PackedStringArray("4.4", "GL Compatibility") +config/icon="res://icon.svg" + +[input] + +input_north={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +input_south={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +input_east={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +input_west={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} + +[rendering] + +textures/canvas_textures/default_texture_filter=0 +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/terrain/dirt.png b/terrain/dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..c651fc526325d25a67ccd598adbfe074bc2ec1dd GIT binary patch literal 934 zcmV;X16lluP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+Ko|Lj>9kr{O1&V1Plc1EX>4Tx0C=2zkv&Mm zP!xqvQ;Sk64t5X`%ut=|q9Ts93Pq?8YK2xEOkVm2O&XFE7e~Rh;NZ_<)xpJCR|i)? z5c~mg7n~Gbq{RD@LW>w5Jl@B7?;P&C7Z93Nrdd4+K+|nAlS+!Y{HoadiZDhI0?;cn z%b1g-G)JQh~&e zTvt4P<6LrC;F(b~o0%t$5{soSR=Sv#O^tY(IHqbk*PO-6!ev4 zuG1bt3X52R1Q81AsGtfPaXNKUEM(|D>Ej=E{Svtpa#g^{v49#h$gUrJ2ETi26{jY> zq(~A7y*SRt7>#EaXf+(?``B?>CqVESxY9fRS`(Q4B)!qmVn@KhHgIv>(Ud*lat9cC zGGtSBr66sgSOnhBXiRxv@D>QKd3|f&Eo%Aj0000P zbVXQnLvL+uWo~o;Lvm$dbY)~9cWHEJAV*0}P*;Ht7XSbNoJmAMR9M4foLv_DpJ4z2 z6T<+5q3?jDr``^%1ES4@2Uir}3lVH`jDs>4P#UkKgc1{>c%_A7kj-bJbs`%rh=#rc z&=VoG6D7%skQ#}SU^b*RASoLTyF`edhL{F2_~~97(j^K=%_YM(5fU2}O!P`@1RX%@ zMhHO%(7N6yItu6=5=``N0a2U?>0TYvI)s>LozH3J0BVH<0I7{Ly>r@PtN;K207*qo IM6N<$f)y`~T>t<8 literal 0 HcmV?d00001 diff --git a/terrain/dirt.png.import b/terrain/dirt.png.import new file mode 100644 index 0000000..ecbad8b --- /dev/null +++ b/terrain/dirt.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5lr861cmya6r" +path="res://.godot/imported/dirt.png-4b2e3b8f4083fb0baf8bb6a15680a151.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://terrain/dirt.png" +dest_files=["res://.godot/imported/dirt.png-4b2e3b8f4083fb0baf8bb6a15680a151.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=false +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=1 diff --git a/terrain/grass.png b/terrain/grass.png new file mode 100644 index 0000000000000000000000000000000000000000..d0de91b61c7cd644be3bd07663d81074be15622f GIT binary patch literal 1247 zcmV<51R(o~P) zaB^>EX>4U6ba`-PAZ2)IW&i+q+Ko|L4gxU<{O1%NfdZxNajIJrZ{YErZdv2{VI=7+ z3}kpLjpyS|muXU%ESKudonh9jNrzK;S>G|S?YNsn3h{}jcS1lZzPiHd!4L2#N>NyE zq0_rji&sy{XIDv6JvF)EZ0004mX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&Mm zP!xqvQ;Sk64t5X`%ut=|q9Ts93Pq?8YK2xEOkVm2O&XFE7e~Rh;NZ_<)xpJCR|i)? z5c~mg7n~Gbq{RD@LW>w5Jl@B7?;P&C7Z93Nrdd4+K+|nAlS+!Y{HoadiZDhI0?;cn z%b1g-G)JQh~&e zTvt4P<6LrC;F(b~o0%t$5{soSR=Sv#O^tY(IHqbk*PO-6!ev4 zuG1bt3X52R1Q81AsGtfPaXNKUEM(|D>Ej=E{Svtpa#g^{v49#h$gUrJ2ETi26{jY> zq(~A7y*SRt7>#EaXf+(?``B?>CqVESxY9fRS`(Q4B)!qmVn@KhHgIv>(Ud*lat9cC zGGtSBr66sgSOnhBXiRxv@D>QKd3|f&0&Jc*ky|nn0p!^(f4nUMx?A*Hm0IW`8I6I6a z$}CjsMgdShbg?6p#}VRL2O;g+bIFz&{Z20cBp7=SOD~Phg@lS7NOAxdFmV1hMfEkB z&Hyt;FX1I+z}|y$`Vz7u96g`GRMMXX`hNXtZ6i=Gqj3O;7`yjtsKoYwx>`!JQAC9-omDKvO@W(C?a(XUH&0)((#r7X) z!={M9j=}*reU-wt;fN4-o-BKR|BYcss27*fEC|5an+#nujfHll1~b1er%K|>yQKfP z5zGXod9tlcCDE2@uuIqxblzeAu;@cgkzj1!ttL~O&zr&f)w#yo!j5ib7Skz3>>|2i@9|X`83ae8+uCEA~A5_qppQ8pPaGmhV2%UHS zaeQ6tCAS0rn3Tsc&R*v?S4h_#$aW3lnGFX(Mh-G^;Uu`}`3B=}q*H(RFIWHo002ov JPDHLkV1h5uF(&{3 literal 0 HcmV?d00001 diff --git a/terrain/grass.png.import b/terrain/grass.png.import new file mode 100644 index 0000000..b367c21 --- /dev/null +++ b/terrain/grass.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bavfwcsgof0tp" +path="res://.godot/imported/grass.png-a4e0c50e89c55d70401dc2d88d40db84.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://terrain/grass.png" +dest_files=["res://.godot/imported/grass.png-a4e0c50e89c55d70401dc2d88d40db84.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=false +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=1 diff --git a/terrain/terrain.gd b/terrain/terrain.gd new file mode 100644 index 0000000..4ffbd8e --- /dev/null +++ b/terrain/terrain.gd @@ -0,0 +1,9 @@ +extends TileMapLayer + +var dirt_id = 0 +var grass_id = 1 + +func _unhandled_input(event: InputEvent) -> void: + if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.is_pressed(): + var coords: Vector2i = local_to_map(event.position) + set_cell(coords, dirt_id, Vector2i.ZERO, 0) diff --git a/terrain/terrain.gd.uid b/terrain/terrain.gd.uid new file mode 100644 index 0000000..9a2f847 --- /dev/null +++ b/terrain/terrain.gd.uid @@ -0,0 +1 @@ +uid://cmgxx7uxo2ah0 diff --git a/terrain/terrain_tileset.tres b/terrain/terrain_tileset.tres new file mode 100644 index 0000000..da791f1 --- /dev/null +++ b/terrain/terrain_tileset.tres @@ -0,0 +1,19 @@ +[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://resk8tvqugsx"] + +[ext_resource type="Texture2D" uid="uid://c5lr861cmya6r" path="res://terrain/dirt.png" id="1_m2li2"] +[ext_resource type="Texture2D" uid="uid://bavfwcsgof0tp" path="res://terrain/grass.png" id="2_54oqm"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_busfd"] +texture = ExtResource("1_m2li2") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_wkw05"] +texture = ExtResource("2_54oqm") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 + +[resource] +tile_size = Vector2i(32, 32) +sources/0 = SubResource("TileSetAtlasSource_busfd") +sources/1 = SubResource("TileSetAtlasSource_wkw05") diff --git a/tree/small_tree.gd b/tree/small_tree.gd new file mode 100644 index 0000000..a93404a --- /dev/null +++ b/tree/small_tree.gd @@ -0,0 +1,11 @@ +extends Area2D + +var _durability: int = 3 + +func _on_body_entered(body: Node2D) -> void: + if body is CharacterBody2D: + _durability -= 1 + body.repel_collision(self) + if _durability <= 0: + print("tree dead") + queue_free() diff --git a/tree/small_tree.gd.uid b/tree/small_tree.gd.uid new file mode 100644 index 0000000..664e168 --- /dev/null +++ b/tree/small_tree.gd.uid @@ -0,0 +1 @@ +uid://clxosihgty8t5 diff --git a/tree/small_tree.png b/tree/small_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..6384a971d978c9b5a6212cf03969e02e52d5a534 GIT binary patch literal 2618 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 literal 0 HcmV?d00001 diff --git a/tree/small_tree.png.import b/tree/small_tree.png.import new file mode 100644 index 0000000..e9c8fc7 --- /dev/null +++ b/tree/small_tree.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bfyw8l1ubdnsj" +path="res://.godot/imported/small_tree.png-6b7409adbeafd078c10945c05a21c2ab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://tree/small_tree.png" +dest_files=["res://.godot/imported/small_tree.png-6b7409adbeafd078c10945c05a21c2ab.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=false +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=1 diff --git a/tree/small_tree.tscn b/tree/small_tree.tscn new file mode 100644 index 0000000..b34064f --- /dev/null +++ b/tree/small_tree.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=4 format=3 uid="uid://d2re5mee0xayj"] + +[ext_resource type="Texture2D" uid="uid://bfyw8l1ubdnsj" path="res://tree/small_tree.png" id="1_1ao6o"] +[ext_resource type="Script" uid="uid://clxosihgty8t5" path="res://tree/small_tree.gd" id="1_brd4x"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_vb5bs"] +size = Vector2(32, 32) + +[node name="Tree" type="Area2D"] +script = ExtResource("1_brd4x") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_1ao6o") +offset = Vector2(16, 16) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +visible = false +position = Vector2(16, 16) +shape = SubResource("RectangleShape2D_vb5bs") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/tree/small_tree.xcf b/tree/small_tree.xcf new file mode 100644 index 0000000000000000000000000000000000000000..5eae9e44c8ac7d0b51b1848a90ac44413d40ea13 GIT binary patch literal 5298 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 H5;F5Y+w%?F literal 0 HcmV?d00001 diff --git a/working_scene.gd b/working_scene.gd new file mode 100644 index 0000000..ea44c33 --- /dev/null +++ b/working_scene.gd @@ -0,0 +1,15 @@ +extends Node2D + +@export var small_tree = preload("res://tree/small_tree.tscn") + +func _ready() -> void: + randomize() + _procgen() + +func _procgen() -> void: + for i in range(0, 15): + var grid_pos = Vector2i(randi() % 20, randi() % 20) + if grid_pos.x == 0 and grid_pos.y == 0: continue #NOTE: don't spawn on the player + var st = small_tree.instantiate() + st.position = Vector2(grid_pos * 32) + add_child(st) diff --git a/working_scene.gd.uid b/working_scene.gd.uid new file mode 100644 index 0000000..bbec01e --- /dev/null +++ b/working_scene.gd.uid @@ -0,0 +1 @@ +uid://qrdh3cheiudm diff --git a/working_scene.tscn b/working_scene.tscn new file mode 100644 index 0000000..eafabbb --- /dev/null +++ b/working_scene.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=8 format=4 uid="uid://8o4ffx055dof"] + +[ext_resource type="TileSet" uid="uid://resk8tvqugsx" path="res://terrain/terrain_tileset.tres" id="1_l08c4"] +[ext_resource type="Script" uid="uid://qrdh3cheiudm" path="res://working_scene.gd" id="1_q46u1"] +[ext_resource type="Script" uid="uid://cmgxx7uxo2ah0" path="res://terrain/terrain.gd" id="2_fkv0g"] +[ext_resource type="Texture2D" uid="uid://bhcajd6qgtt62" path="res://character/gary_pixels.png" id="3_i8yjd"] +[ext_resource type="Script" uid="uid://vn4kdorxug8f" path="res://character/character.gd" id="3_vb5bs"] +[ext_resource type="PackedScene" uid="uid://d2re5mee0xayj" path="res://tree/small_tree.tscn" id="5_hojm4"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_vb5bs"] +size = Vector2(30, 30) + +[node name="WorkingScene" type="Node2D"] +script = ExtResource("1_q46u1") +metadata/_edit_horizontal_guides_ = [456.0] + +[node name="TileMapLayer" type="TileMapLayer" parent="."] +tile_map_data = PackedByteArray("AAAAAAAAAQAAAAAAAAABAAAAAQAAAAAAAAACAAAAAQAAAAAAAAADAAAAAQAAAAAAAAAEAAAAAQAAAAAAAAAFAAAAAQAAAAAAAAAGAAAAAQAAAAAAAAAHAAAAAQAAAAAAAAAIAAAAAQAAAAAAAAAJAAAAAQAAAAAAAAAJAAEAAQAAAAAAAAAKAAEAAQAAAAAAAAALAAEAAQAAAAAAAAAMAAEAAQAAAAAAAAANAAEAAQAAAAAAAAAOAAEAAQAAAAAAAAANAAAAAQAAAAAAAAAMAAAAAQAAAAAAAAALAAAAAQAAAAAAAAAKAAAAAQAAAAAAAAAAAAEAAQAAAAAAAAABAAEAAQAAAAAAAAACAAEAAQAAAAAAAAADAAEAAQAAAAAAAAAEAAEAAQAAAAAAAAAFAAEAAQAAAAAAAAAGAAEAAQAAAAAAAAAHAAEAAQAAAAAAAAAIAAEAAQAAAAAAAAAOAAAAAQAAAAAAAAAAAAIAAQAAAAAAAAAAAAMAAQAAAAAAAAAAAAQAAQAAAAAAAAAAAAUAAQAAAAAAAAAAAAYAAQAAAAAAAAAAAAcAAQAAAAAAAAAAAAgAAQAAAAAAAAAAAAkAAQAAAAAAAAAAAAoAAQAAAAAAAAAAAAsAAQAAAAAAAAAAAAwAAQAAAAAAAAAAAA0AAQAAAAAAAAAAAA4AAQAAAAAAAAAAAA8AAQAAAAAAAAAAABAAAQAAAAAAAAAAABEAAQAAAAAAAAABAAIAAQAAAAAAAAABAAMAAQAAAAAAAAABAAQAAQAAAAAAAAABAAUAAQAAAAAAAAABAAYAAQAAAAAAAAABAAcAAQAAAAAAAAABAAgAAQAAAAAAAAABAAkAAQAAAAAAAAABAAoAAQAAAAAAAAABAAsAAQAAAAAAAAABAAwAAQAAAAAAAAABAA0AAQAAAAAAAAABAA4AAQAAAAAAAAABAA8AAQAAAAAAAAABABAAAQAAAAAAAAABABEAAQAAAAAAAAACAAIAAQAAAAAAAAACAAMAAQAAAAAAAAACAAQAAQAAAAAAAAACAAUAAQAAAAAAAAACAAYAAQAAAAAAAAACAAcAAQAAAAAAAAACAAgAAQAAAAAAAAACAAkAAQAAAAAAAAACAAoAAQAAAAAAAAACAAsAAQAAAAAAAAACAAwAAQAAAAAAAAACAA0AAQAAAAAAAAACAA4AAQAAAAAAAAACAA8AAQAAAAAAAAACABAAAQAAAAAAAAACABEAAQAAAAAAAAADAAIAAQAAAAAAAAADAAMAAQAAAAAAAAADAAQAAQAAAAAAAAADAAUAAQAAAAAAAAADAAYAAQAAAAAAAAADAAcAAQAAAAAAAAADAAgAAQAAAAAAAAADAAkAAQAAAAAAAAADAAoAAQAAAAAAAAADAAsAAQAAAAAAAAADAAwAAQAAAAAAAAADAA0AAQAAAAAAAAADAA4AAQAAAAAAAAADAA8AAQAAAAAAAAADABAAAQAAAAAAAAADABEAAQAAAAAAAAAEAAIAAQAAAAAAAAAEAAMAAQAAAAAAAAAEAAQAAQAAAAAAAAAEAAUAAQAAAAAAAAAEAAYAAQAAAAAAAAAEAAcAAQAAAAAAAAAEAAgAAQAAAAAAAAAEAAkAAQAAAAAAAAAEAAoAAQAAAAAAAAAEAAsAAQAAAAAAAAAEAAwAAQAAAAAAAAAEAA0AAQAAAAAAAAAEAA4AAQAAAAAAAAAEAA8AAQAAAAAAAAAEABAAAQAAAAAAAAAEABEAAQAAAAAAAAAFAAIAAQAAAAAAAAAFAAMAAQAAAAAAAAAFAAQAAQAAAAAAAAAFAAUAAQAAAAAAAAAFAAYAAQAAAAAAAAAFAAcAAQAAAAAAAAAFAAgAAQAAAAAAAAAFAAkAAQAAAAAAAAAFAAoAAQAAAAAAAAAFAAsAAQAAAAAAAAAFAAwAAQAAAAAAAAAFAA0AAQAAAAAAAAAFAA4AAQAAAAAAAAAFAA8AAQAAAAAAAAAFABAAAQAAAAAAAAAFABEAAQAAAAAAAAAGAAIAAQAAAAAAAAAGAAMAAQAAAAAAAAAGAAQAAQAAAAAAAAAGAAUAAQAAAAAAAAAGAAYAAQAAAAAAAAAGAAcAAQAAAAAAAAAGAAgAAQAAAAAAAAAGAAkAAQAAAAAAAAAGAAoAAQAAAAAAAAAGAAsAAQAAAAAAAAAGAAwAAQAAAAAAAAAGAA0AAQAAAAAAAAAGAA4AAQAAAAAAAAAGAA8AAQAAAAAAAAAGABAAAQAAAAAAAAAGABEAAQAAAAAAAAAHAAIAAQAAAAAAAAAHAAMAAQAAAAAAAAAHAAQAAQAAAAAAAAAHAAUAAQAAAAAAAAAHAAYAAQAAAAAAAAAHAAcAAQAAAAAAAAAHAAgAAQAAAAAAAAAHAAkAAQAAAAAAAAAHAAoAAQAAAAAAAAAHAAsAAQAAAAAAAAAHAAwAAQAAAAAAAAAHAA0AAQAAAAAAAAAHAA4AAQAAAAAAAAAHAA8AAQAAAAAAAAAHABAAAQAAAAAAAAAHABEAAQAAAAAAAAAIAAIAAQAAAAAAAAAIAAMAAQAAAAAAAAAIAAQAAQAAAAAAAAAIAAUAAQAAAAAAAAAIAAYAAQAAAAAAAAAIAAcAAQAAAAAAAAAIAAgAAQAAAAAAAAAIAAkAAQAAAAAAAAAIAAoAAQAAAAAAAAAIAAsAAQAAAAAAAAAIAAwAAQAAAAAAAAAIAA0AAQAAAAAAAAAIAA4AAQAAAAAAAAAIAA8AAQAAAAAAAAAIABAAAQAAAAAAAAAIABEAAQAAAAAAAAAJAAIAAQAAAAAAAAAJAAMAAQAAAAAAAAAJAAQAAQAAAAAAAAAJAAUAAQAAAAAAAAAJAAYAAQAAAAAAAAAJAAcAAQAAAAAAAAAJAAgAAQAAAAAAAAAJAAkAAQAAAAAAAAAJAAoAAQAAAAAAAAAJAAsAAQAAAAAAAAAJAAwAAQAAAAAAAAAJAA0AAQAAAAAAAAAJAA4AAQAAAAAAAAAJAA8AAQAAAAAAAAAJABAAAQAAAAAAAAAJABEAAQAAAAAAAAAKAAIAAQAAAAAAAAAKAAMAAQAAAAAAAAAKAAQAAQAAAAAAAAAKAAUAAQAAAAAAAAAKAAYAAQAAAAAAAAAKAAcAAQAAAAAAAAAKAAgAAQAAAAAAAAAKAAkAAQAAAAAAAAAKAAoAAQAAAAAAAAAKAAsAAQAAAAAAAAAKAAwAAQAAAAAAAAAKAA0AAQAAAAAAAAAKAA4AAQAAAAAAAAAKAA8AAQAAAAAAAAAKABAAAQAAAAAAAAAKABEAAQAAAAAAAAALAAIAAQAAAAAAAAALAAMAAQAAAAAAAAALAAQAAQAAAAAAAAALAAUAAQAAAAAAAAALAAYAAQAAAAAAAAALAAcAAQAAAAAAAAALAAgAAQAAAAAAAAALAAkAAQAAAAAAAAALAAoAAQAAAAAAAAALAAsAAQAAAAAAAAALAAwAAQAAAAAAAAALAA0AAQAAAAAAAAALAA4AAQAAAAAAAAALAA8AAQAAAAAAAAALABAAAQAAAAAAAAALABEAAQAAAAAAAAAMAAIAAQAAAAAAAAAMAAMAAQAAAAAAAAAMAAQAAQAAAAAAAAAMAAUAAQAAAAAAAAAMAAYAAQAAAAAAAAAMAAcAAQAAAAAAAAAMAAgAAQAAAAAAAAAMAAkAAQAAAAAAAAAMAAoAAQAAAAAAAAAMAAsAAQAAAAAAAAAMAAwAAQAAAAAAAAAMAA0AAQAAAAAAAAAMAA4AAQAAAAAAAAAMAA8AAQAAAAAAAAAMABAAAQAAAAAAAAAMABEAAQAAAAAAAAANAAIAAQAAAAAAAAANAAMAAQAAAAAAAAANAAQAAQAAAAAAAAANAAUAAQAAAAAAAAANAAYAAQAAAAAAAAANAAcAAQAAAAAAAAANAAgAAQAAAAAAAAANAAkAAQAAAAAAAAANAAoAAQAAAAAAAAANAAsAAQAAAAAAAAANAAwAAQAAAAAAAAANAA0AAQAAAAAAAAANAA4AAQAAAAAAAAANAA8AAQAAAAAAAAANABAAAQAAAAAAAAANABEAAQAAAAAAAAAOAAIAAQAAAAAAAAAOAAMAAQAAAAAAAAAOAAQAAQAAAAAAAAAOAAUAAQAAAAAAAAAOAAYAAQAAAAAAAAAOAAcAAQAAAAAAAAAOAAgAAQAAAAAAAAAOAAkAAQAAAAAAAAAOAAoAAQAAAAAAAAAOAAsAAQAAAAAAAAAOAAwAAQAAAAAAAAAOAA0AAQAAAAAAAAAOAA4AAQAAAAAAAAAOAA8AAQAAAAAAAAAOABAAAQAAAAAAAAAOABEAAQAAAAAAAAAPAAAAAQAAAAAAAAAPAAEAAQAAAAAAAAAPAAIAAQAAAAAAAAAPAAMAAQAAAAAAAAAPAAQAAQAAAAAAAAAPAAUAAQAAAAAAAAAPAAYAAQAAAAAAAAAPAAcAAQAAAAAAAAAPAAgAAQAAAAAAAAAPAAkAAQAAAAAAAAAPAAoAAQAAAAAAAAAPAAsAAQAAAAAAAAAPAAwAAQAAAAAAAAAPAA0AAQAAAAAAAAAPAA4AAQAAAAAAAAAPAA8AAQAAAAAAAAAPABAAAQAAAAAAAAAPABEAAQAAAAAAAAAQAAAAAQAAAAAAAAAQAAEAAQAAAAAAAAAQAAIAAQAAAAAAAAAQAAMAAQAAAAAAAAAQAAQAAQAAAAAAAAAQAAUAAQAAAAAAAAAQAAYAAQAAAAAAAAAQAAcAAQAAAAAAAAAQAAgAAQAAAAAAAAAQAAkAAQAAAAAAAAAQAAoAAQAAAAAAAAAQAAsAAQAAAAAAAAAQAAwAAQAAAAAAAAAQAA0AAQAAAAAAAAAQAA4AAQAAAAAAAAAQAA8AAQAAAAAAAAAQABAAAQAAAAAAAAAQABEAAQAAAAAAAAARAAAAAQAAAAAAAAARAAEAAQAAAAAAAAARAAIAAQAAAAAAAAARAAMAAQAAAAAAAAARAAQAAQAAAAAAAAARAAUAAQAAAAAAAAARAAYAAQAAAAAAAAARAAcAAQAAAAAAAAARAAgAAQAAAAAAAAARAAkAAQAAAAAAAAARAAoAAQAAAAAAAAARAAsAAQAAAAAAAAARAAwAAQAAAAAAAAARAA0AAQAAAAAAAAARAA4AAQAAAAAAAAARAA8AAQAAAAAAAAARABAAAQAAAAAAAAARABEAAQAAAAAAAAASAAAAAQAAAAAAAAASAAEAAQAAAAAAAAASAAIAAQAAAAAAAAASAAMAAQAAAAAAAAASAAQAAQAAAAAAAAASAAUAAQAAAAAAAAASAAYAAQAAAAAAAAASAAcAAQAAAAAAAAASAAgAAQAAAAAAAAASAAkAAQAAAAAAAAASAAoAAQAAAAAAAAASAAsAAQAAAAAAAAASAAwAAQAAAAAAAAASAA0AAQAAAAAAAAASAA4AAQAAAAAAAAASAA8AAQAAAAAAAAASABAAAQAAAAAAAAASABEAAQAAAAAAAAATAAAAAQAAAAAAAAATAAEAAQAAAAAAAAATAAIAAQAAAAAAAAATAAMAAQAAAAAAAAATAAQAAQAAAAAAAAATAAUAAQAAAAAAAAATAAYAAQAAAAAAAAATAAcAAQAAAAAAAAATAAgAAQAAAAAAAAATAAkAAQAAAAAAAAATAAoAAQAAAAAAAAATAAsAAQAAAAAAAAATAAwAAQAAAAAAAAATAA0AAQAAAAAAAAATAA4AAQAAAAAAAAATAA8AAQAAAAAAAAATABAAAQAAAAAAAAATABEAAQAAAAAAAAAUAAAAAQAAAAAAAAAUAAEAAQAAAAAAAAAUAAIAAQAAAAAAAAAUAAMAAQAAAAAAAAAUAAQAAQAAAAAAAAAUAAUAAQAAAAAAAAAUAAYAAQAAAAAAAAAUAAcAAQAAAAAAAAAUAAgAAQAAAAAAAAAUAAkAAQAAAAAAAAAUAAoAAQAAAAAAAAAUAAsAAQAAAAAAAAAUAAwAAQAAAAAAAAAUAA0AAQAAAAAAAAAUAA4AAQAAAAAAAAAUAA8AAQAAAAAAAAAUABAAAQAAAAAAAAAUABEAAQAAAAAAAAA=") +tile_set = ExtResource("1_l08c4") +script = ExtResource("2_fkv0g") + +[node name="Character" type="CharacterBody2D" parent="."] +script = ExtResource("3_vb5bs") + +[node name="Sprite2D" type="Sprite2D" parent="Character"] +texture = ExtResource("3_i8yjd") +offset = Vector2(16, 16) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Character"] +visible = false +position = Vector2(16, 16) +shape = SubResource("RectangleShape2D_vb5bs") + +[node name="Small Tree" parent="." instance=ExtResource("5_hojm4")] +position = Vector2(320, 160) diff --git a/workspace/tileset.xcf b/workspace/tileset.xcf new file mode 100644 index 0000000000000000000000000000000000000000..71ce811ab6db8960c05e2b63518f7aa4f1dc244d GIT binary patch literal 2187 zcmds&{ZHFQ7{{HIBn{(b49E{HK{vLEfb7@~g~9|0DjHLzO+sS~T8)a3IEf*S?Zmuo zQoH@IX;Rlst5(z%3Zv^tPTK#lzl(J_?|Z>fQ)yHAd5`tE=X>|O_-yAOuNxNG&E&|o zqN)OncyPTBdVtS|p%+}9!x9J92iiafh6ha46Wo~F7V)6b7d{< zXj!tOI|cIL&5sv&?lrQU9zQ(ivh*g}uqDCraQO}OF$8!0MSv1Qe)^Jie zzn&&a<5EWuUjLV{N*Wgr?^djIMla=ws$jPF%FLTcTP58gdMQ)TD!jtXbdw${)*x^bf>bQl^4^7Rn&%(lLXhajMV=wX%v2> zmGVwuC^?q6NcOUxy-@Ne8a~gKgNIte%Nt6*uKCK#0&GQ5Wc4+>xpnb^g@Wmr@j3n@ zS;WW2%V{>BmS4VC{z+QwQuKTh{GnyBDG3AzpHK+q%jrr5Lh$ne76kkZxZrKBQ(s}k zIRSi~SA|>jkf-5qeb&`#(Q$>1Wnxy&F|N=5Co6${_lAjPI#AV7Y6@M zi*BCdOIT~MHlEWo0>Sa_*_MKC8iC-z+Lq6~AQbF+Y26yIS#d3Fv#i!FcVJlI37xiU!fy=Pu933Y1~2{0 zh$3>uW|r=^*&SZ7SqRx@n=7baH!;nv2W+3kZ0oAc^0y+$4j|j;=Xcw{-8ORA+NK3n z$e^<|h>hMs=hEhqU7+>f9@GXXJNYh5*-sDqDEs*|NPP#rv|hb?GD6w$=>V)sueQe&;D} zc=!lgJgP!H{t>NfgOok|2CbhTFVTX?;^R?~$rE9bT^s8Y*_ad*eQK{*mnP*A1SCW! z6LHL^m5r_a%<%r0p6x=~cU@M9QmAIBf>UE^Wl_l|BTjLlJ{De5%0$IJ> z_}B4&I%mzl9p{fIgzkHSJL2J;#ZZ+mdPd+mu+X39UJ%R!clHJdfEb8?Ft{fiWAp%|-M80T2Tb5C-Uh U(GO&>3MRlB7zMLn-t)@hKbwA7$N&HU literal 0 HcmV?d00001