From 27149e3563682760310d6a8cf836f9c0d905e4b2 Mon Sep 17 00:00:00 2001 From: Olivier 'reivilibre Date: Sat, 7 Jan 2023 20:05:47 +0000 Subject: [PATCH] Add a lot of basic things to the game --- characters/player/Player.gd | 39 ++- characters/player/Player.tscn | 17 +- characters/player/PlayerAttachmentManager.gd | 35 +++ .../player/PlayerAttachmentManager.tscn | 6 + characters/player/player1_r.kra | 4 +- characters/player/player1_r.png | 4 +- items/bottle_oliveoil.kra | 3 + items/bottle_oliveoil.png | 3 + items/bottle_oliveoil.png.import | 35 +++ items/bottle_oliveoil_bottle.png | 3 + items/bottle_oliveoil_bottle.png.import | 35 +++ items/bottle_oliveoil_label.png | 3 + items/bottle_oliveoil_label.png.import | 35 +++ items/bottle_oliveoil_lid.png | 3 + items/bottle_oliveoil_lid.png.import | 35 +++ items/bottle_oliveoil_oil.png | 3 + items/bottle_oliveoil_oil.png.import | 35 +++ items/olive.kra | 3 + items/olive.png | 3 + items/olive.png.import | 35 +++ levels/Level0A.tscn | 36 +++ project.godot | 15 +- projectiles/OliveProjectile.gd | 37 +++ projectiles/OliveProjectile.tscn | 27 ++ scenery/facilities/OliveTree.gd | 23 ++ scenery/facilities/OliveTree.tscn | 40 +++ scenery/facilities/OliveTreeBud.gd | 60 ++++ scenery/facilities/OliveTreeBud.tscn | 14 + scenery/facilities/Press.tscn | 82 ++++++ scenery/facilities/Wheelbarrow.gd | 32 +++ scenery/facilities/Wheelbarrow.tscn | 80 ++++++ scenery/facilities/olivetree.kra | 3 + scenery/facilities/olivetree.png | 3 + scenery/facilities/olivetree.png.import | 35 +++ scenery/facilities/olivetreebud.kra | 3 + scenery/facilities/olivetreebud.png | 3 + scenery/facilities/olivetreebud.png.import | 35 +++ scenery/facilities/press.kra | 3 + scenery/facilities/press_back.png | 3 + scenery/facilities/press_back.png.import | 35 +++ scenery/facilities/press_front.png | 3 + scenery/facilities/press_front.png.import | 35 +++ scenery/facilities/wheelbarrow.kra | 3 + scenery/facilities/wheelbarrow_back.png | 3 + .../facilities/wheelbarrow_back.png.import | 35 +++ scenery/facilities/wheelbarrow_fore.png | 3 + .../facilities/wheelbarrow_fore.png.import | 35 +++ scenery/tiles/brickwall_LMR.kra | 3 + scenery/tiles/brickwall_LR.kra | 3 + scenery/tiles/brickwall_set.kra | 3 + scenery/tiles/brickwall_set.png | 3 + scenery/tiles/brickwall_set.png.import | 35 +++ scenery/tiles/ceilstrip_LR.kra | 3 + scenery/tiles/concrete.kra | 3 + scenery/tiles/concrete.png | 3 + scenery/tiles/concrete.png.import | 35 +++ scenery/tiles/grass.kra | 3 + scenery/tiles/grass.png | 3 + scenery/tiles/grass.png.import | 35 +++ scenery/tiles/grasswallconcrete.kra | 3 + scenery/tiles/grasswallconcrete.png | 3 + scenery/tiles/grasswallconcrete.png.import | 35 +++ scenery/tiles/ohld_tileset.kra | 3 + scenery/tiles/ohld_tileset.tres | 265 ++++++++++++++++++ 64 files changed, 1456 insertions(+), 10 deletions(-) create mode 100644 characters/player/PlayerAttachmentManager.gd create mode 100644 characters/player/PlayerAttachmentManager.tscn create mode 100644 items/bottle_oliveoil.kra create mode 100644 items/bottle_oliveoil.png create mode 100644 items/bottle_oliveoil.png.import create mode 100644 items/bottle_oliveoil_bottle.png create mode 100644 items/bottle_oliveoil_bottle.png.import create mode 100644 items/bottle_oliveoil_label.png create mode 100644 items/bottle_oliveoil_label.png.import create mode 100644 items/bottle_oliveoil_lid.png create mode 100644 items/bottle_oliveoil_lid.png.import create mode 100644 items/bottle_oliveoil_oil.png create mode 100644 items/bottle_oliveoil_oil.png.import create mode 100644 items/olive.kra create mode 100644 items/olive.png create mode 100644 items/olive.png.import create mode 100644 levels/Level0A.tscn create mode 100644 projectiles/OliveProjectile.gd create mode 100644 projectiles/OliveProjectile.tscn create mode 100644 scenery/facilities/OliveTree.gd create mode 100644 scenery/facilities/OliveTree.tscn create mode 100644 scenery/facilities/OliveTreeBud.gd create mode 100644 scenery/facilities/OliveTreeBud.tscn create mode 100644 scenery/facilities/Press.tscn create mode 100644 scenery/facilities/Wheelbarrow.gd create mode 100644 scenery/facilities/Wheelbarrow.tscn create mode 100644 scenery/facilities/olivetree.kra create mode 100644 scenery/facilities/olivetree.png create mode 100644 scenery/facilities/olivetree.png.import create mode 100644 scenery/facilities/olivetreebud.kra create mode 100644 scenery/facilities/olivetreebud.png create mode 100644 scenery/facilities/olivetreebud.png.import create mode 100644 scenery/facilities/press.kra create mode 100644 scenery/facilities/press_back.png create mode 100644 scenery/facilities/press_back.png.import create mode 100644 scenery/facilities/press_front.png create mode 100644 scenery/facilities/press_front.png.import create mode 100644 scenery/facilities/wheelbarrow.kra create mode 100644 scenery/facilities/wheelbarrow_back.png create mode 100644 scenery/facilities/wheelbarrow_back.png.import create mode 100644 scenery/facilities/wheelbarrow_fore.png create mode 100644 scenery/facilities/wheelbarrow_fore.png.import create mode 100644 scenery/tiles/brickwall_LMR.kra create mode 100644 scenery/tiles/brickwall_LR.kra create mode 100644 scenery/tiles/brickwall_set.kra create mode 100644 scenery/tiles/brickwall_set.png create mode 100644 scenery/tiles/brickwall_set.png.import create mode 100644 scenery/tiles/ceilstrip_LR.kra create mode 100644 scenery/tiles/concrete.kra create mode 100644 scenery/tiles/concrete.png create mode 100644 scenery/tiles/concrete.png.import create mode 100644 scenery/tiles/grass.kra create mode 100644 scenery/tiles/grass.png create mode 100644 scenery/tiles/grass.png.import create mode 100644 scenery/tiles/grasswallconcrete.kra create mode 100644 scenery/tiles/grasswallconcrete.png create mode 100644 scenery/tiles/grasswallconcrete.png.import create mode 100644 scenery/tiles/ohld_tileset.kra create mode 100644 scenery/tiles/ohld_tileset.tres diff --git a/characters/player/Player.gd b/characters/player/Player.gd index b4f06e4..393ddcd 100644 --- a/characters/player/Player.gd +++ b/characters/player/Player.gd @@ -1,5 +1,6 @@ extends KinematicBody2D +const SPEED_MULTIPLIER_WHEN_ATTACHED = 0.8 export var speed = 200 # How fast the player will move (pixels/sec). var screen_size # Size of the game window. @@ -8,15 +9,47 @@ var screen_size # Size of the game window. func _ready(): screen_size = get_viewport_rect().size -func _physics_process(delta): +func _physics_process(_delta): var velocity = Vector2.ZERO # The player's movement vector. velocity.x += Input.get_action_strength("move_right") - Input.get_action_strength("move_left") velocity.y += Input.get_action_strength("move_down") - Input.get_action_strength("move_up") if velocity.length() > 0: - velocity = velocity.normalized() * speed + var direction = velocity.normalized() + if $PlayerAttachmentManager.attached != null: + velocity = direction * speed * SPEED_MULTIPLIER_WHEN_ATTACHED + else: + velocity = direction * speed $AnimatedSprite.play() + if $PlayerAttachmentManager.attached != null: + var _att_lin_vel = $PlayerAttachmentManager.attached.move_and_slide(velocity) + var _lin_vel = self.move_and_slide(velocity) + if abs(velocity.x) > 0: + $AnimatedSprite.flip_h = velocity.x < 0 + + $InteractionArea.rotation = direction.angle() else: $AnimatedSprite.stop() - self.move_and_slide(velocity) + +func _process(_delta): + if Input.is_action_just_pressed("interact"): + print("interact") + + if $PlayerAttachmentManager.attached != null: + print("detach") + $PlayerAttachmentManager.detach() + return + + var bodies = $InteractionArea.get_overlapping_bodies() + print("found", len(bodies)) + for body in bodies: + print(body) + if body.is_in_group("attachable"): + print("attachable!") + $PlayerAttachmentManager.attach(body) + break + + if body.is_in_group("interactable"): + print("interactable!") + body.interact(self) diff --git a/characters/player/Player.tscn b/characters/player/Player.tscn index 21c14f5..12bf49c 100644 --- a/characters/player/Player.tscn +++ b/characters/player/Player.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=2] [ext_resource path="res://characters/player/player1_r.png" type="Texture" id=1] [ext_resource path="res://characters/player/Player.gd" type="Script" id=2] +[ext_resource path="res://characters/player/PlayerAttachmentManager.tscn" type="PackedScene" id=3] [sub_resource type="SpriteFrames" id=1] animations = [ { @@ -16,9 +17,12 @@ radius = 23.0217 [node name="Player" type="KinematicBody2D"] script = ExtResource( 2 ) +__meta__ = { +"_edit_horizontal_guides_": [ -111.0 ] +} [node name="AnimatedSprite" type="AnimatedSprite" parent="."] -position = Vector2( 11, 5 ) +position = Vector2( 5.68434e-14, -3 ) scale = Vector2( 0.05, 0.05 ) frames = SubResource( 1 ) animation = "right" @@ -28,3 +32,12 @@ __meta__ = { [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource( 2 ) + +[node name="InteractionArea" type="Area2D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="InteractionArea"] +polygon = PoolVector2Array( 0, -21, 20, -8, 20, 12, 0, 24, 0, 35, 52, 21, 52, -20, 0, -32 ) + +[node name="PlayerAttachmentManager" parent="." instance=ExtResource( 3 )] diff --git a/characters/player/PlayerAttachmentManager.gd b/characters/player/PlayerAttachmentManager.gd new file mode 100644 index 0000000..24cd106 --- /dev/null +++ b/characters/player/PlayerAttachmentManager.gd @@ -0,0 +1,35 @@ +extends Node2D + +const SPEED_PER_DISTANCE = 15 +const MAX_SPEED = 200 +const MAX_DISTANCE_BEFORE_DETACH = 32 + +var attached: KinematicBody2D = null +var anchor_offset = Vector2.ZERO + +func attach(node: KinematicBody2D): + attached = node + anchor_offset = -(node.global_position - self.global_position) + +func detach(): + attached = null + anchor_offset = Vector2.ZERO + +func _physics_process(_delta): + if attached == null: + return + + var anchor_relative_to_us = (attached.global_position + anchor_offset) - self.global_position + var distance = anchor_relative_to_us.length() + if distance < 0.1: + return + + if distance > MAX_DISTANCE_BEFORE_DETACH: + attached = null + anchor_offset = Vector2.ZERO + # TODO play sfx + print("detached!") + return + + var velocity = (-anchor_relative_to_us.normalized()) * min(MAX_SPEED, SPEED_PER_DISTANCE * distance) + attached.move_and_slide(velocity) diff --git a/characters/player/PlayerAttachmentManager.tscn b/characters/player/PlayerAttachmentManager.tscn new file mode 100644 index 0000000..6d261e5 --- /dev/null +++ b/characters/player/PlayerAttachmentManager.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://characters/player/PlayerAttachmentManager.gd" type="Script" id=1] + +[node name="PlayerAttachmentManager" type="Node2D"] +script = ExtResource( 1 ) diff --git a/characters/player/player1_r.kra b/characters/player/player1_r.kra index 5eca4c5..aa6a90e 100644 --- a/characters/player/player1_r.kra +++ b/characters/player/player1_r.kra @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3eff06eecf58f2219cd14723f4adf247be0057e50adff6ab0b9dca3bd83df662 -size 450618 +oid sha256:780ae8524e5dcd65185cfe484ee48fcfb6ebfbd7c088331182021e36a635e6df +size 457821 diff --git a/characters/player/player1_r.png b/characters/player/player1_r.png index 63343f6..2f30b54 100644 --- a/characters/player/player1_r.png +++ b/characters/player/player1_r.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:64b64d8c8e5ea17288f48da64142a7b5da57a01920ebb724dfaef766722d6249 -size 66239 +oid sha256:856ce890b397312ef67ba6fceb0c5d9c4da315b5c212300e25249b42828c0f9e +size 68819 diff --git a/items/bottle_oliveoil.kra b/items/bottle_oliveoil.kra new file mode 100644 index 0000000..8e29369 --- /dev/null +++ b/items/bottle_oliveoil.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bd23d062505c443d5e94ae7bc2fd28a9815823baccc19b093035b3790f33723 +size 123242 diff --git a/items/bottle_oliveoil.png b/items/bottle_oliveoil.png new file mode 100644 index 0000000..f1d7694 --- /dev/null +++ b/items/bottle_oliveoil.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fb13305c1204ec086a87fcc181a0e2a4bfa0c6d6bef2eb38b2962a015394a6b +size 2600 diff --git a/items/bottle_oliveoil.png.import b/items/bottle_oliveoil.png.import new file mode 100644 index 0000000..0b394b4 --- /dev/null +++ b/items/bottle_oliveoil.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bottle_oliveoil.png-520178365b65481ca2e1277d900f657c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/bottle_oliveoil.png" +dest_files=[ "res://.import/bottle_oliveoil.png-520178365b65481ca2e1277d900f657c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/items/bottle_oliveoil_bottle.png b/items/bottle_oliveoil_bottle.png new file mode 100644 index 0000000..a8bda0b --- /dev/null +++ b/items/bottle_oliveoil_bottle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a57705301efb9a08b4fcf5cd0918aa07781ed44c450897deaa8d6840fe14192 +size 1809 diff --git a/items/bottle_oliveoil_bottle.png.import b/items/bottle_oliveoil_bottle.png.import new file mode 100644 index 0000000..1a27e33 --- /dev/null +++ b/items/bottle_oliveoil_bottle.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bottle_oliveoil_bottle.png-dbd895a4ca0607ad24e0381b26eef669.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/bottle_oliveoil_bottle.png" +dest_files=[ "res://.import/bottle_oliveoil_bottle.png-dbd895a4ca0607ad24e0381b26eef669.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/items/bottle_oliveoil_label.png b/items/bottle_oliveoil_label.png new file mode 100644 index 0000000..f727256 --- /dev/null +++ b/items/bottle_oliveoil_label.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44f7d760b4653e9dbe610b8c03b6eca80dda0236815eb792a3387244c33cbcbb +size 1404 diff --git a/items/bottle_oliveoil_label.png.import b/items/bottle_oliveoil_label.png.import new file mode 100644 index 0000000..be612aa --- /dev/null +++ b/items/bottle_oliveoil_label.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bottle_oliveoil_label.png-3a6ea91cfcdff5baef1070651bff65c3.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/bottle_oliveoil_label.png" +dest_files=[ "res://.import/bottle_oliveoil_label.png-3a6ea91cfcdff5baef1070651bff65c3.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/items/bottle_oliveoil_lid.png b/items/bottle_oliveoil_lid.png new file mode 100644 index 0000000..209bf75 --- /dev/null +++ b/items/bottle_oliveoil_lid.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e8d30877e2eec3468a2b9f368ff7849c3fea103a00076d2ad26fe123b7cbf6d +size 725 diff --git a/items/bottle_oliveoil_lid.png.import b/items/bottle_oliveoil_lid.png.import new file mode 100644 index 0000000..eb33bd6 --- /dev/null +++ b/items/bottle_oliveoil_lid.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bottle_oliveoil_lid.png-2ab93bd20adf0296825e924b6849ab0b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/bottle_oliveoil_lid.png" +dest_files=[ "res://.import/bottle_oliveoil_lid.png-2ab93bd20adf0296825e924b6849ab0b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/items/bottle_oliveoil_oil.png b/items/bottle_oliveoil_oil.png new file mode 100644 index 0000000..1dd606e --- /dev/null +++ b/items/bottle_oliveoil_oil.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4999abd4425be30a9d8c2737911fb0452405c1d9d888110082c58924cac1ded +size 1191 diff --git a/items/bottle_oliveoil_oil.png.import b/items/bottle_oliveoil_oil.png.import new file mode 100644 index 0000000..158187d --- /dev/null +++ b/items/bottle_oliveoil_oil.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/bottle_oliveoil_oil.png-b055cb18e976a17de69e9437975a2fb8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/bottle_oliveoil_oil.png" +dest_files=[ "res://.import/bottle_oliveoil_oil.png-b055cb18e976a17de69e9437975a2fb8.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/items/olive.kra b/items/olive.kra new file mode 100644 index 0000000..95f71d1 --- /dev/null +++ b/items/olive.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d2fd36bd2ecdd38b2c04f61b31b6987f0a358934e4badcd20cd57293138dedd +size 25961 diff --git a/items/olive.png b/items/olive.png new file mode 100644 index 0000000..5ed62d5 --- /dev/null +++ b/items/olive.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab7977dd07a42f7828786b9d9f0a205161bd13cc76b652e44a1f88e9794b95fc +size 1621 diff --git a/items/olive.png.import b/items/olive.png.import new file mode 100644 index 0000000..c99ccad --- /dev/null +++ b/items/olive.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/olive.png-1b9011d0c54af177dc910283c94c238c.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://items/olive.png" +dest_files=[ "res://.import/olive.png-1b9011d0c54af177dc910283c94c238c.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/levels/Level0A.tscn b/levels/Level0A.tscn new file mode 100644 index 0000000..f91764e --- /dev/null +++ b/levels/Level0A.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scenery/tiles/ohld_tileset.tres" type="TileSet" id=1] +[ext_resource path="res://characters/player/Player.tscn" type="PackedScene" id=2] +[ext_resource path="res://scenery/facilities/OliveTree.tscn" type="PackedScene" id=3] +[ext_resource path="res://scenery/facilities/Wheelbarrow.tscn" type="PackedScene" id=4] +[ext_resource path="res://scenery/facilities/Press.tscn" type="PackedScene" id=5] + +[node name="Node2D" type="Node2D"] + +[node name="TileMapGround" type="TileMap" parent="."] +z_index = -10 +tile_set = ExtResource( 1 ) +format = 1 +tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 131072, 0, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 196608, 0, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 0, 262144, 0, 0, 262145, 0, 0, 262146, 8, 0, 262147, 8, 0, 262148, 8, 0, 262149, 8, 0, 262150, 11, 0, 262151, 11, 0, 262152, 8, 0, 262153, 8, 0, 262154, 8, 0, 262155, 8, 0, 262156, 8, 0, 262157, 8, 0, 262158, 0, 0, 262159, 0, 0, 327680, 0, 0, 327681, 0, 0, 327682, 8, 0, 327683, 8, 0, 327684, 8, 0, 327685, 8, 0, 327686, 8, 0, 327687, 8, 0, 327688, 8, 0, 327689, 8, 0, 327690, 8, 0, 327691, 8, 0, 327692, 8, 0, 327693, 8, 0, 327694, 0, 0, 327695, 0, 0, 393216, 0, 0, 393217, 0, 0, 393218, 8, 0, 393219, 8, 0, 393220, 8, 0, 393221, 8, 0, 393222, 8, 0, 393223, 8, 0, 393224, 8, 0, 393225, 8, 0, 393226, 8, 0, 393227, 8, 0, 393228, 8, 0, 393229, 8, 0, 393230, 0, 0, 393231, 0, 0, 458752, 0, 0, 458753, 0, 0, 458754, 8, 0, 458755, 8, 0, 458756, 8, 0, 458757, 8, 0, 458758, 8, 0, 458759, 8, 0, 458760, 8, 0, 458761, 8, 0, 458762, 8, 0, 458763, 8, 0, 458764, 8, 0, 458765, 8, 0, 458766, 0, 0, 458767, 0, 0, 524288, 0, 0, 524289, 0, 0, 524290, 0, 0, 524291, 10, 0, 524292, 10, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 589824, 0, 0, 589825, 0, 0, 589826, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0 ) + +[node name="TileMapWalls" type="TileMap" parent="."] +z_index = -1 +tile_set = ExtResource( 1 ) +format = 1 +tile_data = PoolIntArray( 262145, 5, 0, 262146, 1, 0, 262147, 1, 0, 262148, 1, 0, 262149, 1, 0, 262150, 2, 0, 262151, 3, 0, 262152, 1, 0, 262153, 1, 0, 262154, 1, 0, 262155, 1, 0, 262156, 1, 0, 262157, 1, 0, 262158, 6, 0, 327681, 4, 0, 327694, 7, 0, 393217, 4, 0, 393226, 4, 0, 393227, 1, 0, 393228, 9, 0, 393229, 1, 0, 393230, 7, 0, 458753, 4, 0, 458762, 4, 0, 458766, 7, 0, 524289, 3, 0, 524290, 1, 0, 524291, 2, 0, 524292, 3, 0, 524293, 1, 0, 524294, 1, 0, 524295, 1, 0, 524296, 1, 0, 524297, 1, 0, 524298, 1, 0, 524299, 1, 0, 524300, 1, 0, 524301, 1, 0, 524302, 2, 0 ) + +[node name="Press" parent="." instance=ExtResource( 5 )] +position = Vector2( 120, 257 ) + +[node name="Player" parent="." instance=ExtResource( 2 )] +position = Vector2( 486, 154 ) + +[node name="Node2D" parent="." instance=ExtResource( 3 )] +position = Vector2( 701, 189 ) + +[node name="Node2D2" parent="." instance=ExtResource( 3 )] +position = Vector2( 135, 190 ) + +[node name="Node2D3" parent="." instance=ExtResource( 4 )] +position = Vector2( 542, 475 ) diff --git a/project.godot b/project.godot index 5f0151e..a752512 100644 --- a/project.godot +++ b/project.godot @@ -11,11 +11,12 @@ config_version=4 [application] config/name="Olive Harvest LD52" -run/main_scene="res://characters/player/Player.tscn" +run/main_scene="res://levels/Level0A.tscn" config/icon="res://icon.png" [display] +window/size/height=640 window/stretch/mode="2d" window/stretch/aspect="keep" @@ -53,6 +54,18 @@ move_down={ , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } +interact={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"physical_scancode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) + ] +} + +[layer_names] + +2d_physics/layer_1="Collision" +2d_physics/layer_2="Interaction" +2d_physics/layer_3="AutoCollection" [physics] diff --git a/projectiles/OliveProjectile.gd b/projectiles/OliveProjectile.gd new file mode 100644 index 0000000..eefe8a4 --- /dev/null +++ b/projectiles/OliveProjectile.gd @@ -0,0 +1,37 @@ +extends Area2D + +var shooting_to_ground = false + +var wheelbarrow = null +var slot = null + +func shoot_to(target_pos: Vector2, in_time: float): + $Tween.interpolate_property(self, "position:x", self.position.x, target_pos.x, in_time, Tween.TRANS_QUART, Tween.EASE_OUT) + $Tween.interpolate_property(self, "position:y", self.position.y, target_pos.y, in_time, Tween.TRANS_BOUNCE, Tween.EASE_OUT) + $Tween.start() + shooting_to_ground = true + +func harvest_into_wheelbarrow(target_pos: Vector2, target_rotation: float, new_wheelbarrow: Node2D, new_slot: Node2D): + var first_stage_time = rand_range(0.2, 0.5) + var second_stage_time = rand_range(0.2, 0.6) + + var mid_pos = Vector2(target_pos.x + rand_range(-4, 4), target_pos.y - 40) + + $Tween.interpolate_property(self, "position", self.position, mid_pos, first_stage_time, Tween.TRANS_QUART, Tween.EASE_OUT) + $Tween.interpolate_property(self, "position:x", mid_pos.x, target_pos.x, second_stage_time, Tween.TRANS_QUART, Tween.EASE_OUT, first_stage_time) + $Tween.interpolate_property(self, "position:y", mid_pos.y, target_pos.y, second_stage_time, Tween.TRANS_BOUNCE, Tween.EASE_OUT, first_stage_time) + $Tween.interpolate_property(self, "rotation", self.rotation, target_rotation, first_stage_time, Tween.TRANS_QUAD, Tween.EASE_IN_OUT) + $Tween.start() + + wheelbarrow = new_wheelbarrow + slot = new_slot + +func _on_Tween_tween_all_completed(): + $Tween.remove_all() + if shooting_to_ground: + self.add_to_group("olive_collectible") + shooting_to_ground = false + elif wheelbarrow != null: + wheelbarrow.slot_entry_complete(slot) + self.queue_free() + diff --git a/projectiles/OliveProjectile.tscn b/projectiles/OliveProjectile.tscn new file mode 100644 index 0000000..241c635 --- /dev/null +++ b/projectiles/OliveProjectile.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://items/olive.png" type="Texture" id=1] +[ext_resource path="res://projectiles/OliveProjectile.gd" type="Script" id=2] + +[sub_resource type="CapsuleShape2D" id=1] +radius = 8.95455 +height = 8.67516 + +[node name="OliveProjectile" type="Area2D"] +collision_layer = 4 +collision_mask = 0 +script = ExtResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 11, 9 ) +rotation = -0.87441 +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="Tween" type="Tween" parent="."] + +[connection signal="tween_all_completed" from="Tween" to="." method="_on_Tween_tween_all_completed"] diff --git a/scenery/facilities/OliveTree.gd b/scenery/facilities/OliveTree.gd new file mode 100644 index 0000000..9c7aa39 --- /dev/null +++ b/scenery/facilities/OliveTree.gd @@ -0,0 +1,23 @@ +extends StaticBody2D + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass + +func interact(_player): + # drop the olives! + for child in self.get_children(): + if child.has_method("drop_olive"): + if child.drop_olive(): + break diff --git a/scenery/facilities/OliveTree.tscn b/scenery/facilities/OliveTree.tscn new file mode 100644 index 0000000..c2845ff --- /dev/null +++ b/scenery/facilities/OliveTree.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://scenery/facilities/olivetree.png" type="Texture" id=1] +[ext_resource path="res://scenery/facilities/OliveTreeBud.tscn" type="PackedScene" id=2] +[ext_resource path="res://scenery/facilities/OliveTree.gd" type="Script" id=3] + +[sub_resource type="CapsuleShape2D" id=1] +radius = 28.0 +height = 34.0 + +[node name="OliveTree" type="StaticBody2D" groups=["interactable"]] +collision_layer = 3 +script = ExtResource( 3 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -66 ) +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( -7, -30 ) +shape = SubResource( 1 ) + +[node name="OliveTreeBud" parent="." instance=ExtResource( 2 )] +position = Vector2( 38, -105 ) + +[node name="OliveTreeBud2" parent="." instance=ExtResource( 2 )] +position = Vector2( -54, -75 ) +rotation = 1.53065 + +[node name="OliveTreeBud3" parent="." instance=ExtResource( 2 )] +position = Vector2( -42, -127 ) +rotation = 0.98262 + +[node name="OliveTreeBud4" parent="." instance=ExtResource( 2 )] +position = Vector2( 8, -72 ) +rotation = 0.546288 + +[node name="OliveTreeBud5" parent="." instance=ExtResource( 2 )] +position = Vector2( 2, -131 ) +rotation = 0.328122 diff --git a/scenery/facilities/OliveTreeBud.gd b/scenery/facilities/OliveTreeBud.gd new file mode 100644 index 0000000..89ac703 --- /dev/null +++ b/scenery/facilities/OliveTreeBud.gd @@ -0,0 +1,60 @@ +extends Node2D + +var progress: float = 0.0 +var growing: bool = false +export var grow_rate: float = 0.05 + +# TODO 50 is debug +const GROW_RATE = 50.05 + +func _ready(): + reset() + start_growing() + grow_rate = rand_range(0.03, 0.07) + +func set_progress(new_progress: float): + progress = new_progress + $SpriteOlive.scale = Vector2(1, 1) * max(progress, 0) + + if progress >= 1.0: + $Tween.interpolate_property($SpriteOlive, "modulate", $SpriteOlive.modulate, Color.white, 2.5, Tween.TRANS_QUAD, Tween.EASE_IN_OUT) + $Tween.start() + +func reset(): + set_progress(rand_range(-0.5, 0.0)) + $SpriteOlive.modulate = Color(0.4, 0.4, 0.4) + $Tween.remove_all() + +func start_growing(): + growing = true + +func _process(delta): + if growing and progress < 1.0: + set_progress(min(1.0, progress + GROW_RATE * delta)) + +func drop_olive(): + if progress < 1.0: + return false + + ## Calculate where the olive needs to go. + + # tree is my parent. + # world is the tree's parent. + var new_parent = self.get_parent().get_parent() + + # we want to be at ground level + var target_y = self.get_parent().position.y + rand_range(-8, 8) + var target_x = self.get_parent().position.x + (self.position.x * rand_range(1.25, 2.0)) + var target_pos = Vector2(target_x, target_y) + + var new_olive = preload("res://projectiles/OliveProjectile.tscn").instance() + new_olive.position = self.global_position + new_olive.rotation = self.global_rotation + + new_parent.add_child_below_node(self.get_parent(), new_olive) + + new_olive.shoot_to(target_pos, rand_range(0.5, 1.5)) + grow_rate = max(rand_range(0.9, 1.1) * grow_rate, 0.025) + self.reset() + + return true diff --git a/scenery/facilities/OliveTreeBud.tscn b/scenery/facilities/OliveTreeBud.tscn new file mode 100644 index 0000000..002b269 --- /dev/null +++ b/scenery/facilities/OliveTreeBud.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://items/olive.png" type="Texture" id=1] +[ext_resource path="res://scenery/facilities/OliveTreeBud.gd" type="Script" id=3] + +[node name="OliveTreeBud" type="Node2D"] +script = ExtResource( 3 ) + +[node name="SpriteOlive" type="Sprite" parent="."] +texture = ExtResource( 1 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="Tween" type="Tween" parent="."] diff --git a/scenery/facilities/Press.tscn b/scenery/facilities/Press.tscn new file mode 100644 index 0000000..70a32a6 --- /dev/null +++ b/scenery/facilities/Press.tscn @@ -0,0 +1,82 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://items/bottle_oliveoil.png" type="Texture" id=1] +[ext_resource path="res://items/bottle_oliveoil_bottle.png" type="Texture" id=2] +[ext_resource path="res://scenery/facilities/press_front.png" type="Texture" id=3] +[ext_resource path="res://items/bottle_oliveoil_label.png" type="Texture" id=4] +[ext_resource path="res://scenery/facilities/press_back.png" type="Texture" id=5] +[ext_resource path="res://items/bottle_oliveoil_oil.png" type="Texture" id=6] +[ext_resource path="res://items/bottle_oliveoil_lid.png" type="Texture" id=7] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 29.5128, 2.79108 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 104, 10 ) + +[node name="Press" type="StaticBody2D"] + +[node name="PressB" type="Sprite" parent="."] +z_index = -1 +texture = ExtResource( 5 ) +centered = false + +[node name="PressF" type="Sprite" parent="."] +texture = ExtResource( 3 ) +centered = false + +[node name="FillingBottle" type="Node2D" parent="."] +position = Vector2( 32, 136 ) + +[node name="BottleOliveoilOil" type="Sprite" parent="FillingBottle"] +texture = ExtResource( 6 ) +region_enabled = true +region_rect = Rect2( 0, 0, 32, 48 ) + +[node name="BottleOliveoilBottle" type="Sprite" parent="FillingBottle"] +texture = ExtResource( 2 ) + +[node name="BottleOliveoilLid" type="Sprite" parent="FillingBottle"] +texture = ExtResource( 7 ) + +[node name="BottleOliveoilLabel" type="Sprite" parent="FillingBottle"] +texture = ExtResource( 4 ) + +[node name="BottleOliveoil" type="Sprite" parent="."] +position = Vector2( 63, 166 ) +texture = ExtResource( 1 ) + +[node name="BottleOliveoil2" type="Sprite" parent="."] +position = Vector2( 92, 166 ) +texture = ExtResource( 1 ) + +[node name="BottleOliveoil3" type="Sprite" parent="."] +position = Vector2( 120, 166 ) +texture = ExtResource( 1 ) + +[node name="BottleOliveoil4" type="Sprite" parent="."] +position = Vector2( 147, 166 ) +texture = ExtResource( 1 ) + +[node name="BottleOliveoil5" type="Sprite" parent="."] +position = Vector2( 174, 166 ) +texture = ExtResource( 1 ) + +[node name="BottleOliveoil6" type="Sprite" parent="."] +position = Vector2( 201, 166 ) +texture = ExtResource( 1 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( 208, 27, 160, 7, 106, 7, 60, 24, 60, 48, 84, 32, 120, 26, 158, 26, 190, 39, 208, 56 ) + +[node name="CollisionPolygon2D2" type="CollisionPolygon2D" parent="."] +polygon = PoolVector2Array( 60, 47, 60, 136, 90, 151, 122, 155, 157, 155, 185, 146, 208, 129, 208, 125, 184, 143, 158, 151, 123, 151, 92, 147, 62, 134 ) + +[node name="CollisionShape2D2" type="CollisionShape2D" parent="."] +position = Vector2( 230, 134 ) +rotation = 0.628319 +shape = SubResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 118, 173 ) +shape = SubResource( 2 ) diff --git a/scenery/facilities/Wheelbarrow.gd b/scenery/facilities/Wheelbarrow.gd new file mode 100644 index 0000000..77ad4fb --- /dev/null +++ b/scenery/facilities/Wheelbarrow.gd @@ -0,0 +1,32 @@ +extends KinematicBody2D + +var free_slots = [] +var used_slots = [] + +func _ready(): + free_slots = [$Olive, $Olive2, $Olive3, $Olive4, $Olive5] + +# Something has entered the collection area. +# If it's an olive and we have space, pick it up! +func _on_CollectionArea_area_entered(area: Area2D): + if area.is_in_group("olive_collectible"): + var olive_slot = free_slots.pop_back() + if olive_slot == null: + return + + area.remove_from_group("olive_collectible") + + self.call_deferred("_collect_olive", area, olive_slot) + +func _collect_olive(olive: Area2D, olive_slot: Node2D): + # new olive found! + var olive_gpos = olive.global_position + olive.get_parent().remove_child(olive) + self.add_child_below_node(olive_slot, olive) + olive.global_position = olive_gpos + olive.harvest_into_wheelbarrow(olive_slot.position, olive_slot.rotation, self, olive_slot) + + +func slot_entry_complete(slot: Node2D): + used_slots.push_back(slot) + slot.visible = true diff --git a/scenery/facilities/Wheelbarrow.tscn b/scenery/facilities/Wheelbarrow.tscn new file mode 100644 index 0000000..a743160 --- /dev/null +++ b/scenery/facilities/Wheelbarrow.tscn @@ -0,0 +1,80 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://scenery/facilities/wheelbarrow_back.png" type="Texture" id=1] +[ext_resource path="res://scenery/facilities/wheelbarrow_fore.png" type="Texture" id=2] +[ext_resource path="res://scenery/facilities/Wheelbarrow.gd" type="Script" id=3] +[ext_resource path="res://items/olive.png" type="Texture" id=4] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 43.125, 19.5 ) + +[sub_resource type="CapsuleShape2D" id=2] +radius = 31.5 +height = 61.25 + +[node name="Wheelbarrow" type="KinematicBody2D" groups=["attachable"]] +position = Vector2( 0, -11 ) +collision_layer = 3 +script = ExtResource( 3 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 1.875, 6.5 ) +shape = SubResource( 1 ) + +[node name="CollectionArea" type="Area2D" parent="."] +position = Vector2( 1.875, 6.5 ) +collision_layer = 0 +collision_mask = 4 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="CollectionArea"] +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="SpriteB" type="Sprite" parent="."] +texture = ExtResource( 1 ) + +[node name="Olive" type="Sprite" parent="."] +visible = false +position = Vector2( -32, -19 ) +rotation = 0.460767 +texture = ExtResource( 4 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="Olive3" type="Sprite" parent="."] +visible = false +position = Vector2( 10, -21 ) +rotation = 0.218166 +texture = ExtResource( 4 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="Olive4" type="Sprite" parent="."] +visible = false +position = Vector2( -18, 3 ) +rotation = -2.29511 +texture = ExtResource( 4 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="Olive5" type="Sprite" parent="."] +visible = false +position = Vector2( 2, -25 ) +rotation = 0.546288 +texture = ExtResource( 4 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="Olive2" type="Sprite" parent="."] +visible = false +position = Vector2( -9, -26 ) +rotation = 0.656244 +scale = Vector2( 1, 1 ) +texture = ExtResource( 4 ) +centered = false +offset = Vector2( -5, -5 ) + +[node name="SpriteF" type="Sprite" parent="."] +texture = ExtResource( 2 ) + +[connection signal="area_entered" from="CollectionArea" to="." method="_on_CollectionArea_area_entered"] diff --git a/scenery/facilities/olivetree.kra b/scenery/facilities/olivetree.kra new file mode 100644 index 0000000..8869168 --- /dev/null +++ b/scenery/facilities/olivetree.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e28474e819e84faad84b7ead6a0a8b2b73c8eba1eb1cc39e9e251cf0f85d663b +size 453710 diff --git a/scenery/facilities/olivetree.png b/scenery/facilities/olivetree.png new file mode 100644 index 0000000..6eb3717 --- /dev/null +++ b/scenery/facilities/olivetree.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d97b33efa60aee112045568fb816a0a6de66bb87d10f357a7bdf6147761085fd +size 79334 diff --git a/scenery/facilities/olivetree.png.import b/scenery/facilities/olivetree.png.import new file mode 100644 index 0000000..9de8ab1 --- /dev/null +++ b/scenery/facilities/olivetree.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/olivetree.png-0924dba8dc020757ab0b35737dc1b108.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/facilities/olivetree.png" +dest_files=[ "res://.import/olivetree.png-0924dba8dc020757ab0b35737dc1b108.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/facilities/olivetreebud.kra b/scenery/facilities/olivetreebud.kra new file mode 100644 index 0000000..e49b966 --- /dev/null +++ b/scenery/facilities/olivetreebud.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fcbb0630164415a8ac9d6f8e05b024c602d978582a115fad67bd0b9ea17fc10 +size 58740 diff --git a/scenery/facilities/olivetreebud.png b/scenery/facilities/olivetreebud.png new file mode 100644 index 0000000..d32caff --- /dev/null +++ b/scenery/facilities/olivetreebud.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08b29b6537a8f6da3b68e2a795f77e80bb76fe3eef99728e339aed624bd3f1fa +size 3931 diff --git a/scenery/facilities/olivetreebud.png.import b/scenery/facilities/olivetreebud.png.import new file mode 100644 index 0000000..7872ebb --- /dev/null +++ b/scenery/facilities/olivetreebud.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/olivetreebud.png-3b362a873c4f5cb320092e567c0c91e2.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/facilities/olivetreebud.png" +dest_files=[ "res://.import/olivetreebud.png-3b362a873c4f5cb320092e567c0c91e2.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/facilities/press.kra b/scenery/facilities/press.kra new file mode 100644 index 0000000..60ee9b0 --- /dev/null +++ b/scenery/facilities/press.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ee850ad9618436873e22fb40bdf54f0f07d34427d719c758369cda793b77cfe +size 439083 diff --git a/scenery/facilities/press_back.png b/scenery/facilities/press_back.png new file mode 100644 index 0000000..36c1d02 --- /dev/null +++ b/scenery/facilities/press_back.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2510ec382e2ee89836c70b9627826c969c303cdc38a9c84a69d7bee03a8d2807 +size 44509 diff --git a/scenery/facilities/press_back.png.import b/scenery/facilities/press_back.png.import new file mode 100644 index 0000000..4b30998 --- /dev/null +++ b/scenery/facilities/press_back.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/press_back.png-ee6213facc0f2fe3e67dd7395f550f73.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/facilities/press_back.png" +dest_files=[ "res://.import/press_back.png-ee6213facc0f2fe3e67dd7395f550f73.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/facilities/press_front.png b/scenery/facilities/press_front.png new file mode 100644 index 0000000..1303d05 --- /dev/null +++ b/scenery/facilities/press_front.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0cfe36d3b0609aecacefd358c4cdb37ab62c39bc55ae16ed2c8da585939be84 +size 8671 diff --git a/scenery/facilities/press_front.png.import b/scenery/facilities/press_front.png.import new file mode 100644 index 0000000..b4206cc --- /dev/null +++ b/scenery/facilities/press_front.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/press_front.png-b3e7dd95c2f183aa8b8a24782f53c14a.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/facilities/press_front.png" +dest_files=[ "res://.import/press_front.png-b3e7dd95c2f183aa8b8a24782f53c14a.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/facilities/wheelbarrow.kra b/scenery/facilities/wheelbarrow.kra new file mode 100644 index 0000000..8a47537 --- /dev/null +++ b/scenery/facilities/wheelbarrow.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc5b7566575a0d797ac47b59459a398ae346acc1df23c62b928ec1b0eb057f76 +size 130994 diff --git a/scenery/facilities/wheelbarrow_back.png b/scenery/facilities/wheelbarrow_back.png new file mode 100644 index 0000000..5dcacbe --- /dev/null +++ b/scenery/facilities/wheelbarrow_back.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7a95cc8251fb946559482fd2272395d1f2ccc48095098548da0d9d42a05df71 +size 1348 diff --git a/scenery/facilities/wheelbarrow_back.png.import b/scenery/facilities/wheelbarrow_back.png.import new file mode 100644 index 0000000..a73ff99 --- /dev/null +++ b/scenery/facilities/wheelbarrow_back.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wheelbarrow_back.png-4196918e6f6b437135040ebf4919c2c9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/facilities/wheelbarrow_back.png" +dest_files=[ "res://.import/wheelbarrow_back.png-4196918e6f6b437135040ebf4919c2c9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/facilities/wheelbarrow_fore.png b/scenery/facilities/wheelbarrow_fore.png new file mode 100644 index 0000000..25038d6 --- /dev/null +++ b/scenery/facilities/wheelbarrow_fore.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ec11518e1baab4adbeb166011490eb9a6cf735704bcb0bceb95a5287d01f266 +size 3396 diff --git a/scenery/facilities/wheelbarrow_fore.png.import b/scenery/facilities/wheelbarrow_fore.png.import new file mode 100644 index 0000000..82abbee --- /dev/null +++ b/scenery/facilities/wheelbarrow_fore.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wheelbarrow_fore.png-ed11a923b3a9b8b2660c222599569660.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/facilities/wheelbarrow_fore.png" +dest_files=[ "res://.import/wheelbarrow_fore.png-ed11a923b3a9b8b2660c222599569660.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/tiles/brickwall_LMR.kra b/scenery/tiles/brickwall_LMR.kra new file mode 100644 index 0000000..08f0b85 --- /dev/null +++ b/scenery/tiles/brickwall_LMR.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7fa8aaa2d5b85cdc1b1502d43ebaf42710aeff721817ba937a9545b6e25829e +size 50845 diff --git a/scenery/tiles/brickwall_LR.kra b/scenery/tiles/brickwall_LR.kra new file mode 100644 index 0000000..634a396 --- /dev/null +++ b/scenery/tiles/brickwall_LR.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f10f0daf5ef0e248ea795f493fdbffa28a68d45c4e3521361da914c1e8e842a +size 31545 diff --git a/scenery/tiles/brickwall_set.kra b/scenery/tiles/brickwall_set.kra new file mode 100644 index 0000000..cba96cf --- /dev/null +++ b/scenery/tiles/brickwall_set.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bae152925481f61855f8130a06c86133a744af4f2ed6ad75454d0d2e2746c7f8 +size 66297 diff --git a/scenery/tiles/brickwall_set.png b/scenery/tiles/brickwall_set.png new file mode 100644 index 0000000..b567c1c --- /dev/null +++ b/scenery/tiles/brickwall_set.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b5f04596c334ecf14feef96af2e69079b76c379000b68f2afa6436d2939086e +size 8781 diff --git a/scenery/tiles/brickwall_set.png.import b/scenery/tiles/brickwall_set.png.import new file mode 100644 index 0000000..2040958 --- /dev/null +++ b/scenery/tiles/brickwall_set.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/brickwall_set.png-346545cf523751f7f8264a4671445c46.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/tiles/brickwall_set.png" +dest_files=[ "res://.import/brickwall_set.png-346545cf523751f7f8264a4671445c46.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/tiles/ceilstrip_LR.kra b/scenery/tiles/ceilstrip_LR.kra new file mode 100644 index 0000000..d0e6bd9 --- /dev/null +++ b/scenery/tiles/ceilstrip_LR.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc9a056075f50306e4c81db45b7f860b8e16c72772572699d6e6c67869b85093 +size 25102 diff --git a/scenery/tiles/concrete.kra b/scenery/tiles/concrete.kra new file mode 100644 index 0000000..087f4d0 --- /dev/null +++ b/scenery/tiles/concrete.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e728f68ea023027edb6d813f0fa898cc4aede7a1770efb84fccb8aecf9b6627d +size 46441 diff --git a/scenery/tiles/concrete.png b/scenery/tiles/concrete.png new file mode 100644 index 0000000..87f1b55 --- /dev/null +++ b/scenery/tiles/concrete.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:321b75cacc04ce0d15e2abdfc73ababf7011f24f43d636454b5d257cfa7c2e50 +size 6263 diff --git a/scenery/tiles/concrete.png.import b/scenery/tiles/concrete.png.import new file mode 100644 index 0000000..85c5373 --- /dev/null +++ b/scenery/tiles/concrete.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/concrete.png-3d2e5448bb2a4fe28d8554fe731e99da.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/tiles/concrete.png" +dest_files=[ "res://.import/concrete.png-3d2e5448bb2a4fe28d8554fe731e99da.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/tiles/grass.kra b/scenery/tiles/grass.kra new file mode 100644 index 0000000..da4282d --- /dev/null +++ b/scenery/tiles/grass.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0d54f0f9b292002a24481264128ad3b8b2e66ee2bafe66ed344f1c7a80f1d5 +size 45529 diff --git a/scenery/tiles/grass.png b/scenery/tiles/grass.png new file mode 100644 index 0000000..ef59a0e --- /dev/null +++ b/scenery/tiles/grass.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a03a85098df862698bd203d519cba7802ad0335eaf789d8709d3a83880a01ccd +size 6039 diff --git a/scenery/tiles/grass.png.import b/scenery/tiles/grass.png.import new file mode 100644 index 0000000..41d5e47 --- /dev/null +++ b/scenery/tiles/grass.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/grass.png-53030a0dfa97d02269c0aa54952e82ea.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/tiles/grass.png" +dest_files=[ "res://.import/grass.png-53030a0dfa97d02269c0aa54952e82ea.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/tiles/grasswallconcrete.kra b/scenery/tiles/grasswallconcrete.kra new file mode 100644 index 0000000..af34a75 --- /dev/null +++ b/scenery/tiles/grasswallconcrete.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d43b5b590e92d9110f0d5afd801fd4857c38907d3f21bf5f9729dd8cb5cc14c5 +size 112878 diff --git a/scenery/tiles/grasswallconcrete.png b/scenery/tiles/grasswallconcrete.png new file mode 100644 index 0000000..44d5ab6 --- /dev/null +++ b/scenery/tiles/grasswallconcrete.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fee7ed3989d5f293a9bcadc6788332b1ce929078b4cf9c52ba54a158112b9434 +size 11959 diff --git a/scenery/tiles/grasswallconcrete.png.import b/scenery/tiles/grasswallconcrete.png.import new file mode 100644 index 0000000..dbd791d --- /dev/null +++ b/scenery/tiles/grasswallconcrete.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/grasswallconcrete.png-ad116c1f7d869d8461690c1897959ded.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://scenery/tiles/grasswallconcrete.png" +dest_files=[ "res://.import/grasswallconcrete.png-ad116c1f7d869d8461690c1897959ded.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/scenery/tiles/ohld_tileset.kra b/scenery/tiles/ohld_tileset.kra new file mode 100644 index 0000000..ddb184d --- /dev/null +++ b/scenery/tiles/ohld_tileset.kra @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0c1c1f5a0cf216f43ea97983885b0498dd57a01492a6acee59eeacdf00b161d +size 78303 diff --git a/scenery/tiles/ohld_tileset.tres b/scenery/tiles/ohld_tileset.tres new file mode 100644 index 0000000..fda6fa6 --- /dev/null +++ b/scenery/tiles/ohld_tileset.tres @@ -0,0 +1,265 @@ +[gd_resource type="TileSet" load_steps=14 format=2] + +[ext_resource path="res://scenery/tiles/grass.png" type="Texture" id=1] +[ext_resource path="res://scenery/tiles/brickwall_set.png" type="Texture" id=2] +[ext_resource path="res://scenery/tiles/concrete.png" type="Texture" id=3] +[ext_resource path="res://scenery/tiles/grasswallconcrete.png" type="Texture" id=4] + +[sub_resource type="ConvexPolygonShape2D" id=1] +points = PoolVector2Array( 64, 52, 0, 51, 0, 0, 64, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] +points = PoolVector2Array( 5.0014, 53.8965, 0.647736, 53.8965, 0, 0, 5.0014, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=3] +points = PoolVector2Array( 57.6494, 0, 64, 0, 64, 53.5696, 57.6494, 53.5696 ) + +[sub_resource type="ConvexPolygonShape2D" id=4] +points = PoolVector2Array( 61.3984, 64, 57.9098, 64, 57.9098, 0, 61.6309, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=5] +points = PoolVector2Array( 64, 64, 57.5154, 64, 57.5154, 0, 64, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=6] +points = PoolVector2Array( 4.6665, 64, 0, 64, 0, 0, 4.6665, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=7] +points = PoolVector2Array( 5.3363, 64, 2.32224, 64, 2.1868, 0, 5.0939, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=8] +points = PoolVector2Array( 0, 0.381836, 4.701, 0.381836, 4.701, 54.9702, 0, 54.9702 ) + +[sub_resource type="ConvexPolygonShape2D" id=9] +points = PoolVector2Array( 64, 54.3004, 58.2847, 54.3004, 58.2847, 0.381836, 64, 0.381836 ) + +[resource] +0/name = "grass.png 0" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 64, 64 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "brickwall_set.png 1" +1/texture = ExtResource( 2 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 64, 128, 64, 64 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape = SubResource( 1 ) +1/shape_one_way = false +1/shape_one_way_margin = 1.0 +1/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 1 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +1/z_index = 0 +2/name = "brickwall_set.png 2" +2/texture = ExtResource( 2 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 128, 128, 64, 64 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape = SubResource( 2 ) +2/shape_one_way = false +2/shape_one_way_margin = 1.0 +2/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 2 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +2/z_index = 0 +3/name = "brickwall_set.png 3" +3/texture = ExtResource( 2 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 0, 128, 64, 64 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape = SubResource( 3 ) +3/shape_one_way = false +3/shape_one_way_margin = 1.0 +3/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 3 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +3/z_index = 0 +4/name = "brickwall_set.png 4" +4/texture = ExtResource( 2 ) +4/tex_offset = Vector2( 0, 0 ) +4/modulate = Color( 1, 1, 1, 1 ) +4/region = Rect2( 0, 64, 64, 64 ) +4/tile_mode = 0 +4/occluder_offset = Vector2( 0, 0 ) +4/navigation_offset = Vector2( 0, 0 ) +4/shape_offset = Vector2( 0, 0 ) +4/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +4/shape = SubResource( 4 ) +4/shape_one_way = false +4/shape_one_way_margin = 1.0 +4/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 4 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +4/z_index = 0 +5/name = "brickwall_set.png 5" +5/texture = ExtResource( 2 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 0, 0, 64, 64 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shape_offset = Vector2( 0, 0 ) +5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +5/shape = SubResource( 5 ) +5/shape_one_way = false +5/shape_one_way_margin = 1.0 +5/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 5 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +5/z_index = 0 +6/name = "brickwall_set.png 6" +6/texture = ExtResource( 2 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 128, 0, 64, 64 ) +6/tile_mode = 0 +6/occluder_offset = Vector2( 0, 0 ) +6/navigation_offset = Vector2( 0, 0 ) +6/shape_offset = Vector2( 0, 0 ) +6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +6/shape = SubResource( 6 ) +6/shape_one_way = false +6/shape_one_way_margin = 1.0 +6/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 6 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +6/z_index = 0 +7/name = "brickwall_set.png 7" +7/texture = ExtResource( 2 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 128, 64, 64, 64 ) +7/tile_mode = 0 +7/occluder_offset = Vector2( 0, 0 ) +7/navigation_offset = Vector2( 0, 0 ) +7/shape_offset = Vector2( 0, 0 ) +7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +7/shape = SubResource( 7 ) +7/shape_one_way = false +7/shape_one_way_margin = 1.0 +7/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 7 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +7/z_index = 0 +8/name = "concrete.png 8" +8/texture = ExtResource( 3 ) +8/tex_offset = Vector2( 0, 0 ) +8/modulate = Color( 1, 1, 1, 1 ) +8/region = Rect2( 0, 0, 64, 64 ) +8/tile_mode = 0 +8/occluder_offset = Vector2( 0, 0 ) +8/navigation_offset = Vector2( 0, 0 ) +8/shape_offset = Vector2( 0, 0 ) +8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +8/shape_one_way = false +8/shape_one_way_margin = 0.0 +8/shapes = [ ] +8/z_index = 0 +9/name = "brickwall_set.png 9" +9/texture = ExtResource( 2 ) +9/tex_offset = Vector2( 0, 0 ) +9/modulate = Color( 1, 1, 1, 1 ) +9/region = Rect2( 64, 0, 64, 64 ) +9/tile_mode = 0 +9/occluder_offset = Vector2( 0, 0 ) +9/navigation_offset = Vector2( 0, 0 ) +9/shape_offset = Vector2( 0, 0 ) +9/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +9/shape = SubResource( 8 ) +9/shape_one_way = false +9/shape_one_way_margin = 1.0 +9/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 8 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 9 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +9/z_index = 0 +10/name = "grasswallconcrete.png 10" +10/texture = ExtResource( 4 ) +10/tex_offset = Vector2( 0, 0 ) +10/modulate = Color( 1, 1, 1, 1 ) +10/region = Rect2( 0, 0, 64, 64 ) +10/tile_mode = 0 +10/occluder_offset = Vector2( 0, 0 ) +10/navigation_offset = Vector2( 0, 0 ) +10/shape_offset = Vector2( 0, 0 ) +10/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +10/shape_one_way = false +10/shape_one_way_margin = 0.0 +10/shapes = [ ] +10/z_index = 0 +11/name = "grasswallconcrete.png 11" +11/texture = ExtResource( 4 ) +11/tex_offset = Vector2( 0, 0 ) +11/modulate = Color( 1, 1, 1, 1 ) +11/region = Rect2( 64, 0, 64, 64 ) +11/tile_mode = 0 +11/occluder_offset = Vector2( 0, 0 ) +11/navigation_offset = Vector2( 0, 0 ) +11/shape_offset = Vector2( 0, 0 ) +11/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +11/shape_one_way = false +11/shape_one_way_margin = 0.0 +11/shapes = [ ] +11/z_index = 0