From b49f0378da04733069baf32dab16c3e7ad3d5fd9 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 7 Apr 2023 15:33:54 +0200 Subject: [PATCH 01/13] - Adding Cave Generation - Placeholder Art - Setting Physics Layer --- Assets/Sprites/PlaceHolderA.png | Bin 0 -> 78 bytes Assets/Sprites/PlaceHolderA.png.import | 34 ++++ Assets/Sprites/PlaceHolderB.png | Bin 0 -> 79 bytes Assets/Sprites/PlaceHolderB.png.import | 34 ++++ Assets/Test_Tileset.tres | 25 +++ Scenes/Cave.tscn | 13 ++ Scripts/MapGenerator.gd | 216 +++++++++++++++++++++++++ project.godot | 4 + 8 files changed, 326 insertions(+) create mode 100644 Assets/Sprites/PlaceHolderA.png create mode 100644 Assets/Sprites/PlaceHolderA.png.import create mode 100644 Assets/Sprites/PlaceHolderB.png create mode 100644 Assets/Sprites/PlaceHolderB.png.import create mode 100644 Assets/Test_Tileset.tres create mode 100644 Scenes/Cave.tscn create mode 100644 Scripts/MapGenerator.gd diff --git a/Assets/Sprites/PlaceHolderA.png b/Assets/Sprites/PlaceHolderA.png new file mode 100644 index 0000000000000000000000000000000000000000..9bac8579af0ad86dc1ad39e6387b3d21af11cfbd GIT binary patch literal 78 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqqMj~}Are!QeZH;xd%l6);NfH$ bJ1z!0FD9$m*^@p26)0boFyt=akR{0K*y;y#N3J literal 0 HcmV?d00001 diff --git a/Assets/Sprites/PlaceHolderB.png.import b/Assets/Sprites/PlaceHolderB.png.import new file mode 100644 index 0000000..62f9ec7 --- /dev/null +++ b/Assets/Sprites/PlaceHolderB.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cbtiuvqgnulmf" +path="res://.godot/imported/PlaceHolderB.png-e4349525f46542a37c6106a7ccfeea94.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/PlaceHolderB.png" +dest_files=["res://.godot/imported/PlaceHolderB.png-e4349525f46542a37c6106a7ccfeea94.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/Assets/Test_Tileset.tres b/Assets/Test_Tileset.tres new file mode 100644 index 0000000..bdce79f --- /dev/null +++ b/Assets/Test_Tileset.tres @@ -0,0 +1,25 @@ +[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://b7cqbf6xdbeal"] + +[ext_resource type="Texture2D" uid="uid://bjyry6vvtr8h5" path="res://Assets/Sprites/PlaceHolderA.png" id="1_nuhua"] +[ext_resource type="Texture2D" uid="uid://cbtiuvqgnulmf" path="res://Assets/Sprites/PlaceHolderB.png" id="2_jl0te"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_urqd5"] +texture = ExtResource("1_nuhua") +texture_region_size = Vector2i(8, 8) +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -4, 4, -4, 4, 4, -4, 4) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7bjb0"] +texture = ExtResource("2_jl0te") +texture_region_size = Vector2i(8, 8) +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 + +[resource] +tile_size = Vector2i(8, 8) +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_urqd5") +sources/1 = SubResource("TileSetAtlasSource_7bjb0") diff --git a/Scenes/Cave.tscn b/Scenes/Cave.tscn new file mode 100644 index 0000000..ff0ce79 --- /dev/null +++ b/Scenes/Cave.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://chfp8mm3vwh2e"] + +[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="1_8lepy"] +[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_qvwn8"] + +[node name="Node2D" type="Node2D"] + +[node name="TileMap" type="TileMap" parent="."] +tile_set = ExtResource("1_8lepy") +cell_quadrant_size = 8 +collision_visibility_mode = 1 +format = 2 +script = ExtResource("2_qvwn8") diff --git a/Scripts/MapGenerator.gd b/Scripts/MapGenerator.gd new file mode 100644 index 0000000..7267c96 --- /dev/null +++ b/Scripts/MapGenerator.gd @@ -0,0 +1,216 @@ +extends TileMap + +@export var width := 128 +@export var height := 75 +@export var fill_percentage := 0.65 + +@export var solid_id := 0 +@export var non_solid_id := 1 + +@export var solid_threshold := 7 +@export var nonsolid_threshold := 4 + +@export var start_area_size := 5 +@export var start_area_corner_size := 2 + +@export var cave_gen_iterations := 3 +@export var cave_mine_size_threshold := 80 + +func _ready(): + var start_time = Time.get_unix_time_from_system() + randomize() + random_fill() + make_cave_areas() + make_borders() + prepare_player_start_area() + connect_caves(get_caves()) + make_cave_areas() + make_borders() + print(Time.get_unix_time_from_system() - start_time) + +func random_fill(): + for x in width: + for y in height: + if randf() < fill_percentage: + self.set_cell(0, Vector2i(x,y),solid_id, Vector2i(0, 0)) + else: + self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + pass + +func make_borders(): + for x in width: + self.set_cell(0, Vector2i(x,0),solid_id, Vector2i(0, 0)) + self.set_cell(0, Vector2i(x,height-1),solid_id, Vector2i(0, 0)) + for y in height: + self.set_cell(0, Vector2i(0,y),solid_id, Vector2i(0, 0)) + self.set_cell(0, Vector2i(width-1,y),solid_id, Vector2i(0, 0)) + +func prepare_player_start_area(): + var center = Vector2i(width/2, height/2) + for x in range(center.x - start_area_size, center.x + start_area_size): + + # Getting a P factor for the corner "radius" Decission + var p := 0 + if x <= center.x - start_area_size + start_area_corner_size: + p = center.x - start_area_size + start_area_corner_size - x + if x >= center.x + start_area_size - start_area_corner_size: + p = x - ( center.x + start_area_size) + start_area_corner_size + 1 + var p2 = p + + for y in range(center.y - start_area_size, center.y + start_area_size): + # Decide if the tile is part of the Corner or not + if !(p2 > 0 or p2 <= - (start_area_size*2 - p*2)): + self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + p2 -= 1 + +func make_cave_areas(): + for i in cave_gen_iterations: + for x in range(1, width): + for y in range(1, height): + # Count Solid Neighbor Cells + var count := 0 + #y-1 + if self.get_cell_source_id(0, Vector2i(x-1, y-1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x, y-1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x+1, y-1)) == solid_id: count +=1 + #y + if self.get_cell_source_id(0, Vector2i(x-1, y)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x+1, y)) == solid_id: count +=1 + #y+1 + if self.get_cell_source_id(0, Vector2i(x-1, y+1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x, y+1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x+1, y+1)) == solid_id: count +=1 + + # Check Wether to Change the Cell or Not + if count < nonsolid_threshold: + self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + + if count >= solid_threshold: + self.set_cell(0, Vector2i(x,y),solid_id, Vector2i(0, 0)) + pass + +func get_caves() -> Array: + # get caves + var caves := [] + + for x in range (2, width-2): + for y in range (2, height-2): + if self.get_cell_source_id(0, Vector2i(x, y)) == non_solid_id: + flood_fill(x,y, caves) + + for cave in caves: + for tile in cave: + self.set_cell(0, Vector2i(tile.x,tile.y),non_solid_id, Vector2i(0, 0)) + return caves + +func flood_fill(tilex, tiley, caves) -> Array: + var cave := [] + var to_fill := [Vector2i(tilex, tiley)] + while to_fill: + var tile = to_fill.pop_back() + + if !cave.has(tile): + cave.append(tile) + self.set_cell(0, Vector2i(tile.x,tile.y),solid_id, Vector2i(0, 0)) + + #check adjacent cells + var north = Vector2i(tile.x, tile.y+1) + var south = Vector2i(tile.x, tile.y-1) + var east = Vector2i(tile.x+1, tile.y) + var west = Vector2i(tile.x-1, tile.y) + + for dir in [north,south,east,west]: + if self.get_cell_source_id(0, dir) == non_solid_id: + if !to_fill.has(dir) and !cave.has(dir): + to_fill.append(dir) + if cave.size() >= cave_mine_size_threshold: + caves.append(cave) + return caves + +func choose(choices): + randomize() + + var rand_index = randi() % choices.size() + return choices[rand_index] + +func connect_caves(caves): + var prev_cave = null + var tunnel_caves = caves.duplicate() + + for cave in tunnel_caves: + if prev_cave: + var new_point = choose(cave) + var prev_point = choose(prev_cave) + + # ensure not the same point + if new_point != prev_point: + create_tunnel(new_point, prev_point, cave) + + prev_cave = cave + pass + +func create_tunnel(point1, point2, cave): + randomize() # for randf + var max_steps = 500 # so editor won't hang if walk fails + var steps = 0 + var drunk_x = point2[0] + var drunk_y = point2[1] + + while steps < max_steps and !cave.has(Vector2i(drunk_x, drunk_y)): + steps += 1 + + # set initial dir weights + var n = 1.0 + var s = 1.0 + var e = 1.0 + var w = 1.0 + var weight = 1 + + # weight the random walk against edges + if drunk_x < point1.x: # drunkard is left of point1 + e += weight + elif drunk_x > point1.x: # drunkard is right of point1 + w += weight + if drunk_y < point1.y: # drunkard is above point1 + s += weight + elif drunk_y > point1.y: # drunkard is below point1 + n += weight + + # normalize probabilities so they form a range from 0 to 1 + var total = n + s + e + w + n /= total + s /= total + e /= total + w /= total + + var dx + var dy + + # choose the direction + var choice = randf() + + if 0 <= choice and choice < n: + dx = 0 + dy = -1 + elif n <= choice and choice < (n+s): + dx = 0 + dy = 1 + elif (n+s) <= choice and choice < (n+s+e): + dx = 1 + dy = 0 + else: + dx = -1 + dy = 0 + + # ensure not to walk past edge of map + if (2 < drunk_x + dx and drunk_x + dx < width-2) and \ + (2 < drunk_y + dy and drunk_y + dy < height-2): + drunk_x += dx + drunk_y += dy + + + if self.get_cell_source_id(0, Vector2i(drunk_x, drunk_y)) == solid_id: + self.set_cell(0, Vector2i(drunk_x, drunk_y),non_solid_id, Vector2i(0, 0)) + #make tunnel wider + self.set_cell(0, Vector2i(drunk_x+1, drunk_y),non_solid_id, Vector2i(0, 0)) + self.set_cell(0, Vector2i(drunk_x+1, drunk_y+1),non_solid_id, Vector2i(0, 0)) diff --git a/project.godot b/project.godot index 7d4e427..5e401af 100644 --- a/project.godot +++ b/project.godot @@ -15,6 +15,10 @@ run/main_scene="res://Scenes/Test.tscn" config/features=PackedStringArray("4.0", "GL Compatibility") config/icon="res://icon.svg" +[layer_names] + +2d_physics/layer_1="Map" + [rendering] renderer/rendering_method="gl_compatibility" -- 2.45.2 From 4b2d83a4c58d539133261a5c507eee5db7a1dd8a Mon Sep 17 00:00:00 2001 From: AXVIII3 <76608488+AXVIII3@users.noreply.github.com> Date: Fri, 7 Apr 2023 19:28:30 +0530 Subject: [PATCH 02/13] Basic Movement --- Player/player.gd | 59 ++++++++++++++++++++++++++++++++++++++++++++ Player/player.tscn | 16 ++++++++++++ Scenes/Movement.tscn | 16 ++++++++++++ project.godot | 33 ++++++++++++++++++++++++- 4 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 Player/player.gd create mode 100644 Player/player.tscn create mode 100644 Scenes/Movement.tscn diff --git a/Player/player.gd b/Player/player.gd new file mode 100644 index 0000000..99cc78b --- /dev/null +++ b/Player/player.gd @@ -0,0 +1,59 @@ +extends CharacterBody2D + +# Serialized Variables ------------------ +@export var MAX_SPEED = 300 +@export var ACCELERATION = 1500 +@export var FRICTION = 1200 +# --------------------------------------- + + + +# Calculation Variables ----------------- +@onready var axis = Vector2.ZERO +# --------------------------------------- + + + +# Engine Callbacks ---------------------- +func _physics_process(delta): + move(delta) +# --------------------------------------- + + + +# Input --------------------------------- +func get_input(): + # Makes the function equivalent to unity's Input.GetAxis("Horizontal") + axis.x = int(Input.is_action_pressed("move_right")) - int(Input.is_action_pressed("move_left")) + # Makes the function equivalent to unity's Input.GetAxis("Vertical") + axis.y = int(Input.is_action_pressed("move_down")) - int(Input.is_action_pressed("move-up")) + + return axis.normalized() +# --------------------------------------- + + + +# Movement ------------------------------ +func move(delta): + axis = get_input() # Get the input + + # If player is not moving + if axis == Vector2.ZERO: + apply_friction(FRICTION * delta) + else : + apply_movement(axis * ACCELERATION * delta) + + move_and_slide() + + +func apply_movement(accel): + velocity += accel + velocity = velocity.limit_length(MAX_SPEED) + + +func apply_friction(amount): + if velocity.length() > amount : + velocity -= velocity.normalized() * amount + else : + velocity = Vector2.ZERO +# ---------------------------------------- diff --git a/Player/player.tscn b/Player/player.tscn new file mode 100644 index 0000000..4b2714d --- /dev/null +++ b/Player/player.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=4 format=3 uid="uid://btiw3mdue2ien"] + +[ext_resource type="Texture2D" uid="uid://futvep428rf0" path="res://icon.svg" id="1_1j8gw"] +[ext_resource type="Script" path="res://Player/player.gd" id="1_dl5xi"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_rcutd"] +radius = 67.0 + +[node name="Player" type="CharacterBody2D"] +script = ExtResource("1_dl5xi") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture = ExtResource("1_1j8gw") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_rcutd") diff --git a/Scenes/Movement.tscn b/Scenes/Movement.tscn new file mode 100644 index 0000000..4529cb2 --- /dev/null +++ b/Scenes/Movement.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=3 uid="uid://bu6iwskde5hn6"] + +[ext_resource type="PackedScene" uid="uid://btiw3mdue2ien" path="res://Player/player.tscn" id="1_62wcj"] + +[node name="Movement" type="Node2D"] + +[node name="Player" parent="." instance=ExtResource("1_62wcj")] +position = Vector2(561, 312) +MAX_SPEED = 350 +ACCELERATION = 2500 +FRICTION = 1500 + +[node name="StaticBody2D" type="StaticBody2D" parent="."] + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"] +polygon = PackedVector2Array(90, 68, 776, 70, 1086, 236, 924, 566, 704, 220, 262, 154, 174, 494, 34, 316) diff --git a/project.godot b/project.godot index 7d4e427..b9f6a67 100644 --- a/project.godot +++ b/project.godot @@ -11,10 +11,41 @@ config_version=5 [application] config/name="HoppyEaster" -run/main_scene="res://Scenes/Test.tscn" +run/main_scene="res://Scenes/Movement.tscn" config/features=PackedStringArray("4.0", "GL Compatibility") config/icon="res://icon.svg" +[dotnet] + +project/assembly_name="HoppyEaster" + +[input] + +move_left={ +"deadzone": 0.5, +"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":65,"key_label":0,"unicode":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":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +move_right={ +"deadzone": 0.5, +"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":68,"key_label":0,"unicode":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":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +move-up={ +"deadzone": 0.5, +"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":87,"key_label":0,"unicode":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":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +move_down={ +"deadzone": 0.5, +"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":83,"key_label":0,"unicode":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":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} + [rendering] renderer/rendering_method="gl_compatibility" -- 2.45.2 From ef60fdd59f6edd55681bc6ecad5746a206dd3171 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 7 Apr 2023 16:11:07 +0200 Subject: [PATCH 03/13] Fixing Strucuter and Cleaning Up --- Assets/Sprites/Jesus_Left_Idle.png | Bin 0 -> 641 bytes Assets/Sprites/Jesus_Left_Idle.png.import | 34 +++++++++++++ Player/player.gd | 59 ---------------------- Player/player.tscn | 16 ------ Scenes/Movement.tscn | 16 ------ Scenes/PlayerMovement.tscn | 22 ++++++++ Scripts/PlayerController.gd | 24 +++++++++ project.godot | 6 ++- 8 files changed, 85 insertions(+), 92 deletions(-) create mode 100644 Assets/Sprites/Jesus_Left_Idle.png create mode 100644 Assets/Sprites/Jesus_Left_Idle.png.import delete mode 100644 Player/player.gd delete mode 100644 Player/player.tscn delete mode 100644 Scenes/Movement.tscn create mode 100644 Scenes/PlayerMovement.tscn create mode 100644 Scripts/PlayerController.gd diff --git a/Assets/Sprites/Jesus_Left_Idle.png b/Assets/Sprites/Jesus_Left_Idle.png new file mode 100644 index 0000000000000000000000000000000000000000..4082dd7546dc404958a4d14a2c48f6658d2894b6 GIT binary patch literal 641 zcmV-{0)G98P)q+JLb0HuLPZfpq;o-(x=KeW)KNi1M<*Qw z7dID`%0Em=(t$c}^n?xXJ zQ5!OSHWN}|BHk4OCUm6)BII%;Y!=QfrM0o;vl@v|P<(zD7&GmC96E(EAaOIft{BOAd*PtgHJ?z7k3_9 zLxTg_$*|`<3Y>feqCu~|rdhpSZ^EUD?J%LL_97-0H~ss=`4(#NAowN}Jpg4e4G=R? zk>CVPNTpJ(HGBnl-G5`oh1yTYt7X_@rHUTcV#1Z6C@`MQXyY&>Knaowbw;uU%oq7y zfF_{I-Xt@W$5bLR0atKNAV>)m0h9SCpPV%TmuPFnr9zgK3e3+I(?-KUOM&&(Wv2`2 zd|-Vd5^*>+f{Ife+*<^8j!&7~io@=FfVuu#H32NRl%o67`2$qbVGwgtY>0NJRX bZDYRybItKwhRaT>00000NkvXXu0mjf7-bZy literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Jesus_Left_Idle.png.import b/Assets/Sprites/Jesus_Left_Idle.png.import new file mode 100644 index 0000000..7e997b4 --- /dev/null +++ b/Assets/Sprites/Jesus_Left_Idle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c6n0go8l4gaak" +path="res://.godot/imported/Jesus_Left_Idle.png-591d029c8d8b8b573a2665b70cf0e031.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Jesus_Left_Idle.png" +dest_files=["res://.godot/imported/Jesus_Left_Idle.png-591d029c8d8b8b573a2665b70cf0e031.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/Player/player.gd b/Player/player.gd deleted file mode 100644 index 99cc78b..0000000 --- a/Player/player.gd +++ /dev/null @@ -1,59 +0,0 @@ -extends CharacterBody2D - -# Serialized Variables ------------------ -@export var MAX_SPEED = 300 -@export var ACCELERATION = 1500 -@export var FRICTION = 1200 -# --------------------------------------- - - - -# Calculation Variables ----------------- -@onready var axis = Vector2.ZERO -# --------------------------------------- - - - -# Engine Callbacks ---------------------- -func _physics_process(delta): - move(delta) -# --------------------------------------- - - - -# Input --------------------------------- -func get_input(): - # Makes the function equivalent to unity's Input.GetAxis("Horizontal") - axis.x = int(Input.is_action_pressed("move_right")) - int(Input.is_action_pressed("move_left")) - # Makes the function equivalent to unity's Input.GetAxis("Vertical") - axis.y = int(Input.is_action_pressed("move_down")) - int(Input.is_action_pressed("move-up")) - - return axis.normalized() -# --------------------------------------- - - - -# Movement ------------------------------ -func move(delta): - axis = get_input() # Get the input - - # If player is not moving - if axis == Vector2.ZERO: - apply_friction(FRICTION * delta) - else : - apply_movement(axis * ACCELERATION * delta) - - move_and_slide() - - -func apply_movement(accel): - velocity += accel - velocity = velocity.limit_length(MAX_SPEED) - - -func apply_friction(amount): - if velocity.length() > amount : - velocity -= velocity.normalized() * amount - else : - velocity = Vector2.ZERO -# ---------------------------------------- diff --git a/Player/player.tscn b/Player/player.tscn deleted file mode 100644 index 4b2714d..0000000 --- a/Player/player.tscn +++ /dev/null @@ -1,16 +0,0 @@ -[gd_scene load_steps=4 format=3 uid="uid://btiw3mdue2ien"] - -[ext_resource type="Texture2D" uid="uid://futvep428rf0" path="res://icon.svg" id="1_1j8gw"] -[ext_resource type="Script" path="res://Player/player.gd" id="1_dl5xi"] - -[sub_resource type="CircleShape2D" id="CircleShape2D_rcutd"] -radius = 67.0 - -[node name="Player" type="CharacterBody2D"] -script = ExtResource("1_dl5xi") - -[node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("1_1j8gw") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("CircleShape2D_rcutd") diff --git a/Scenes/Movement.tscn b/Scenes/Movement.tscn deleted file mode 100644 index 4529cb2..0000000 --- a/Scenes/Movement.tscn +++ /dev/null @@ -1,16 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://bu6iwskde5hn6"] - -[ext_resource type="PackedScene" uid="uid://btiw3mdue2ien" path="res://Player/player.tscn" id="1_62wcj"] - -[node name="Movement" type="Node2D"] - -[node name="Player" parent="." instance=ExtResource("1_62wcj")] -position = Vector2(561, 312) -MAX_SPEED = 350 -ACCELERATION = 2500 -FRICTION = 1500 - -[node name="StaticBody2D" type="StaticBody2D" parent="."] - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="StaticBody2D"] -polygon = PackedVector2Array(90, 68, 776, 70, 1086, 236, 924, 566, 704, 220, 262, 154, 174, 494, 34, 316) diff --git a/Scenes/PlayerMovement.tscn b/Scenes/PlayerMovement.tscn new file mode 100644 index 0000000..73f741f --- /dev/null +++ b/Scenes/PlayerMovement.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=3 uid="uid://ccgpsim5nfxd6"] + +[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"] +[ext_resource type="Texture2D" uid="uid://c6n0go8l4gaak" path="res://Assets/Sprites/Jesus_Left_Idle.png" id="2_48vut"] + +[node name="Node2D" type="Node2D"] + +[node name="CharacterBody2D" type="CharacterBody2D" parent="."] +script = ExtResource("1_x3102") + +[node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"] +texture = ExtResource("2_48vut") + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CharacterBody2D"] +polygon = PackedVector2Array(16, 32, -14, 32, -14, -22, 16, -22) + +[node name="Camera2D" type="Camera2D" parent="CharacterBody2D"] +position_smoothing_enabled = true +drag_horizontal_enabled = true +drag_vertical_enabled = true +editor_draw_limits = true +editor_draw_drag_margin = true diff --git a/Scripts/PlayerController.gd b/Scripts/PlayerController.gd new file mode 100644 index 0000000..f167eb8 --- /dev/null +++ b/Scripts/PlayerController.gd @@ -0,0 +1,24 @@ +extends CharacterBody2D + +@export var speed = 100 +@export_range(0, 1) var damping_factor := 0.6 + +func get_move_vector(): + var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized() + return input_direction + +func move_player(delta : float): + if get_move_vector() == Vector2.ZERO: + # Damp Players Velocity if no Input + self.velocity = self.velocity * (1 - min(1, damping_factor * 60 * delta)) + else: + # Set Players Velocity to the Input Direction in the Players Speed + self.velocity = get_move_vector() * speed * delta * 60 + + # Update The Players Physics Calculations + self.move_and_slide() + pass + +func _physics_process(delta : float): + move_player(delta) + pass diff --git a/project.godot b/project.godot index b9f6a67..56d2078 100644 --- a/project.godot +++ b/project.godot @@ -25,24 +25,28 @@ move_left={ "deadzone": 0.5, "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":65,"key_label":0,"unicode":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":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ "deadzone": 0.5, "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":68,"key_label":0,"unicode":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":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) ] } -move-up={ +move_up={ "deadzone": 0.5, "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":87,"key_label":0,"unicode":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":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) ] } move_down={ "deadzone": 0.5, "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":83,"key_label":0,"unicode":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":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) ] } -- 2.45.2 From 537589e30ba817ff3cbbc73934a6336a866866dd Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 7 Apr 2023 16:22:55 +0200 Subject: [PATCH 04/13] Putting Generated Map into PlayerMovement Scene For testing --- Scenes/PlayerMovement.tscn | 15 ++++++++++++++- project.godot | 1 - 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Scenes/PlayerMovement.tscn b/Scenes/PlayerMovement.tscn index 73f741f..ac57954 100644 --- a/Scenes/PlayerMovement.tscn +++ b/Scenes/PlayerMovement.tscn @@ -1,12 +1,24 @@ -[gd_scene load_steps=3 format=3 uid="uid://ccgpsim5nfxd6"] +[gd_scene load_steps=5 format=3 uid="uid://ccgpsim5nfxd6"] [ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"] [ext_resource type="Texture2D" uid="uid://c6n0go8l4gaak" path="res://Assets/Sprites/Jesus_Left_Idle.png" id="2_48vut"] +[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="3_0at2g"] +[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"] [node name="Node2D" type="Node2D"] +[node name="TileMap" type="TileMap" parent="."] +tile_set = ExtResource("3_0at2g") +cell_quadrant_size = 8 +collision_visibility_mode = 1 +format = 2 +script = ExtResource("4_8st0q") + [node name="CharacterBody2D" type="CharacterBody2D" parent="."] +position = Vector2(512, 300) +scale = Vector2(0.25, 0.25) script = ExtResource("1_x3102") +speed = 80 [node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"] texture = ExtResource("2_48vut") @@ -15,6 +27,7 @@ texture = ExtResource("2_48vut") polygon = PackedVector2Array(16, 32, -14, 32, -14, -22, 16, -22) [node name="Camera2D" type="Camera2D" parent="CharacterBody2D"] +zoom = Vector2(10, 10) position_smoothing_enabled = true drag_horizontal_enabled = true drag_vertical_enabled = true diff --git a/project.godot b/project.godot index 8bb1ac3..148a2ef 100644 --- a/project.godot +++ b/project.godot @@ -59,4 +59,3 @@ move_down={ renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" textures/canvas_textures/default_texture_filter=0 - -- 2.45.2 From f731170b15d7a9a98561acc4a76e23fcf05ec9d5 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 7 Apr 2023 16:53:54 +0200 Subject: [PATCH 05/13] Improve and Speedup MapGeneration Code --- Scripts/MapGenerator.gd | 117 ++++++++++++++++++++++------------------ 1 file changed, 66 insertions(+), 51 deletions(-) diff --git a/Scripts/MapGenerator.gd b/Scripts/MapGenerator.gd index 7267c96..9b066e6 100644 --- a/Scripts/MapGenerator.gd +++ b/Scripts/MapGenerator.gd @@ -17,18 +17,33 @@ extends TileMap @export var cave_mine_size_threshold := 80 func _ready(): + var time = generate() + print("time for generation: " + str(time)) + + pass + + +func generate() -> float: var start_time = Time.get_unix_time_from_system() + randomize() - random_fill() - make_cave_areas() - make_borders() + fill_random_noise() + + for i in cave_gen_iterations: + change_cells_by_neighbor_thresholds() + + set_borders_solid() prepare_player_start_area() connect_caves(get_caves()) - make_cave_areas() - make_borders() - print(Time.get_unix_time_from_system() - start_time) - -func random_fill(): + + for i in cave_gen_iterations: + change_cells_by_neighbor_thresholds() + + set_borders_solid() + + return Time.get_unix_time_from_system() - start_time + +func fill_random_noise(): for x in width: for y in height: if randf() < fill_percentage: @@ -36,15 +51,16 @@ func random_fill(): else: self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) pass - -func make_borders(): + +func set_borders_solid(): for x in width: self.set_cell(0, Vector2i(x,0),solid_id, Vector2i(0, 0)) self.set_cell(0, Vector2i(x,height-1),solid_id, Vector2i(0, 0)) for y in height: self.set_cell(0, Vector2i(0,y),solid_id, Vector2i(0, 0)) self.set_cell(0, Vector2i(width-1,y),solid_id, Vector2i(0, 0)) - + pass + func prepare_player_start_area(): var center = Vector2i(width/2, height/2) for x in range(center.x - start_area_size, center.x + start_area_size): @@ -58,37 +74,36 @@ func prepare_player_start_area(): var p2 = p for y in range(center.y - start_area_size, center.y + start_area_size): - # Decide if the tile is part of the Corner or not - if !(p2 > 0 or p2 <= - (start_area_size*2 - p*2)): - self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) - p2 -= 1 - -func make_cave_areas(): - for i in cave_gen_iterations: - for x in range(1, width): - for y in range(1, height): - # Count Solid Neighbor Cells - var count := 0 - #y-1 - if self.get_cell_source_id(0, Vector2i(x-1, y-1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x, y-1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x+1, y-1)) == solid_id: count +=1 - #y - if self.get_cell_source_id(0, Vector2i(x-1, y)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x+1, y)) == solid_id: count +=1 - #y+1 - if self.get_cell_source_id(0, Vector2i(x-1, y+1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x, y+1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x+1, y+1)) == solid_id: count +=1 - - # Check Wether to Change the Cell or Not - if count < nonsolid_threshold: - self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) - - if count >= solid_threshold: - self.set_cell(0, Vector2i(x,y),solid_id, Vector2i(0, 0)) + # Decide if the tile is part of the Corner or not + if !(p2 > 0 or p2 <= - (start_area_size*2 - p*2)): + self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + p2 -= 1 pass - + +func change_cells_by_neighbor_thresholds(): + for x in range(1, width): + for y in range(1, height): + # Count Solid Neighbor Cells + var count := 0 + #y-1 + if self.get_cell_source_id(0, Vector2i(x-1, y-1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x, y-1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x+1, y-1)) == solid_id: count +=1 + #y + if self.get_cell_source_id(0, Vector2i(x-1, y)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x+1, y)) == solid_id: count +=1 + #y+1 + if self.get_cell_source_id(0, Vector2i(x-1, y+1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x, y+1)) == solid_id: count +=1 + if self.get_cell_source_id(0, Vector2i(x+1, y+1)) == solid_id: count +=1 + + # Check Threshold + if count < nonsolid_threshold: + self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + if count >= solid_threshold: + self.set_cell(0, Vector2i(x,y),solid_id, Vector2i(0, 0)) + pass + func get_caves() -> Array: # get caves var caves := [] @@ -127,7 +142,7 @@ func flood_fill(tilex, tiley, caves) -> Array: caves.append(cave) return caves -func choose(choices): +func choose_rand(choices): randomize() var rand_index = randi() % choices.size() @@ -139,8 +154,8 @@ func connect_caves(caves): for cave in tunnel_caves: if prev_cave: - var new_point = choose(cave) - var prev_point = choose(prev_cave) + var new_point = choose_rand(cave) + var prev_point = choose_rand(prev_cave) # ensure not the same point if new_point != prev_point: @@ -151,7 +166,7 @@ func connect_caves(caves): func create_tunnel(point1, point2, cave): randomize() # for randf - var max_steps = 500 # so editor won't hang if walk fails + var max_steps = 500 # so game won't hang if walk fails var steps = 0 var drunk_x = point2[0] var drunk_y = point2[1] @@ -167,13 +182,13 @@ func create_tunnel(point1, point2, cave): var weight = 1 # weight the random walk against edges - if drunk_x < point1.x: # drunkard is left of point1 + if drunk_x < point1.x: e += weight - elif drunk_x > point1.x: # drunkard is right of point1 + elif drunk_x > point1.x: w += weight - if drunk_y < point1.y: # drunkard is above point1 + if drunk_y < point1.y: s += weight - elif drunk_y > point1.y: # drunkard is below point1 + elif drunk_y > point1.y: n += weight # normalize probabilities so they form a range from 0 to 1 @@ -186,7 +201,7 @@ func create_tunnel(point1, point2, cave): var dx var dy - # choose the direction + # choose_rand the direction var choice = randf() if 0 <= choice and choice < n: @@ -208,9 +223,9 @@ func create_tunnel(point1, point2, cave): drunk_x += dx drunk_y += dy - if self.get_cell_source_id(0, Vector2i(drunk_x, drunk_y)) == solid_id: self.set_cell(0, Vector2i(drunk_x, drunk_y),non_solid_id, Vector2i(0, 0)) #make tunnel wider self.set_cell(0, Vector2i(drunk_x+1, drunk_y),non_solid_id, Vector2i(0, 0)) self.set_cell(0, Vector2i(drunk_x+1, drunk_y+1),non_solid_id, Vector2i(0, 0)) + pass -- 2.45.2 From 080401b9a3f44048f40923e1e8b9cb3c2a4ee4a7 Mon Sep 17 00:00:00 2001 From: AXVIII3 <76608488+AXVIII3@users.noreply.github.com> Date: Fri, 7 Apr 2023 22:56:18 +0530 Subject: [PATCH 06/13] Final Player Movement \w Animations --- Assets/Sprites/Jesus/Jesus Back.png | Bin 0 -> 597 bytes Assets/Sprites/Jesus/Jesus Back.png.import | 34 +++++ Assets/Sprites/Jesus/Jesus Front.png | Bin 0 -> 714 bytes Assets/Sprites/Jesus/Jesus Front.png.import | 34 +++++ Assets/Sprites/Jesus/Jesus Left.png | Bin 0 -> 665 bytes Assets/Sprites/Jesus/Jesus Left.png.import | 34 +++++ Assets/Sprites/Jesus/Jesus Spritesheet.png | Bin 0 -> 7347 bytes .../Jesus/Jesus Spritesheet.png.import | 34 +++++ Assets/Sprites/Jesus/Shadow.png | Bin 0 -> 145 bytes Assets/Sprites/Jesus/Shadow.png.import | 34 +++++ Scenes/PlayerMovement.tscn | 138 ++++++++++++++++-- Scripts/PlayerController.gd | 48 ++++-- project.godot | 2 +- 13 files changed, 335 insertions(+), 23 deletions(-) create mode 100644 Assets/Sprites/Jesus/Jesus Back.png create mode 100644 Assets/Sprites/Jesus/Jesus Back.png.import create mode 100644 Assets/Sprites/Jesus/Jesus Front.png create mode 100644 Assets/Sprites/Jesus/Jesus Front.png.import create mode 100644 Assets/Sprites/Jesus/Jesus Left.png create mode 100644 Assets/Sprites/Jesus/Jesus Left.png.import create mode 100644 Assets/Sprites/Jesus/Jesus Spritesheet.png create mode 100644 Assets/Sprites/Jesus/Jesus Spritesheet.png.import create mode 100644 Assets/Sprites/Jesus/Shadow.png create mode 100644 Assets/Sprites/Jesus/Shadow.png.import diff --git a/Assets/Sprites/Jesus/Jesus Back.png b/Assets/Sprites/Jesus/Jesus Back.png new file mode 100644 index 0000000000000000000000000000000000000000..51840ac9422391d0688f8bd0417d9afd7f565161 GIT binary patch literal 597 zcmV-b0;>IqP)Px%4@pEpRA@u(m_10uFcg4$=&T?j2>vXNf(TB6LU9yVZxLN}5ae)ha8wYKLvU~w zTyzyjDd^xRf}_(p2rh0eDwS7wlBUUfFKv&OBVCSO)4VTVUSHBSf{Kqu#qk3V;0<^K z-hh*Vv#q6=D_q;>cTRnZ8cPD}U{a9!1LPS!+K^Zv4HOA3h4290fH&X`^tOS*r5MU- zk#g(|aM+y7toH*$gWMLtdOa7w=ht_p!^yE>X9!7f=romtU;qG4Zl06>@w{>X0HShX zdUZcB^m2WW{7Og98c@AQQIyIL2!?^xc2gV8n>{!hONpQHYFaQQulQC~_?2EHtROAYvjvV!u0fL$jlV{+_&S0-&ryNsnJsg zL;&3Ax!|=2&@E)9fHEK%Jyi=#kE8K1v_agqcSOYr8c|hLElOelm*8CiaMACQh++d} z0xa}B1^tVyB(?~^H8^LW{s6EcQJ3Sg4X{sv3Xmr_R|`CVHy}1pBmt#6BXUnzDZu(; zN4)Y;4Y@74)j-bz=r1U&0esJg%_^vVUpx9YZh8fOn;3~lFZWWjf-9eCs@RuPylHo3 jCiQ_r{dS;t?9%oRlFpn^sg!$G00000NkvXXu0mjfcGvmr literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Jesus/Jesus Back.png.import b/Assets/Sprites/Jesus/Jesus Back.png.import new file mode 100644 index 0000000..b6bde28 --- /dev/null +++ b/Assets/Sprites/Jesus/Jesus Back.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ct2del6b6jorm" +path="res://.godot/imported/Jesus Back.png-6132a4979edf4d1442fefae322c4ce7c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Jesus/Jesus Back.png" +dest_files=["res://.godot/imported/Jesus Back.png-6132a4979edf4d1442fefae322c4ce7c.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/Assets/Sprites/Jesus/Jesus Front.png b/Assets/Sprites/Jesus/Jesus Front.png new file mode 100644 index 0000000000000000000000000000000000000000..2f4f5ffb46945897a9fc9a68d043ab8fde1ad7c4 GIT binary patch literal 714 zcmV;*0yX`KP)Px%gh@m}RA@u(m_10tP!PvcbXJfe2%?LlB7&m+@7|*uIwoSo1>&|LV(PD{V4kiT|et;z2qZ$$wViibZTnb?gP}?j==3(oyqkLyl zK@1RQm|LYFP5^9-BMd^M2H?hVWBOe83_##{4v<;_kkTY~Tv(g~m}Y_VB;*QY4xno` z2*pEXk{{kP4kKvCx*X6cks9Erx~$Cmv59fTmaZ`+X~T*F0Pz0tsTiD{E=ofmtdqze z32<`T^FxC`nF9cj&1jZ-Z&ZNl{yH-`xG66fLovT`;IAo_O2z~?<^YBQ76Jf##zCNQ zq?AB}C}|ZyG9o~?+a1hpRRix|+E?E5^< zND7e(pjl96vPPtZ20iKq&O&1fdaq=R0XjDE&yN;Qy7#GK@(&a0LLyS4N&f5TmPg-}bKpP!$pZ=&AtSunj}z091c*61q@8m&E@AAZae}gNbz` z;%(428FPTl6rk1MqzY`4FjD|N%n~WUTPYsbbX72Q(Fhd_J=z(MWbh{aZHPPJVHNLj wn(0m_HfxPPPSL>L`eNu0Ec)L8hp<`u1AIzHUvk$q!vFvP07*qoM6N<$f^x_$LjV8( literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Jesus/Jesus Front.png.import b/Assets/Sprites/Jesus/Jesus Front.png.import new file mode 100644 index 0000000..f35491f --- /dev/null +++ b/Assets/Sprites/Jesus/Jesus Front.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c03lntytfivr1" +path="res://.godot/imported/Jesus Front.png-b78bfa6c3ed674009555f7ab3f93e778.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Jesus/Jesus Front.png" +dest_files=["res://.godot/imported/Jesus Front.png-b78bfa6c3ed674009555f7ab3f93e778.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/Assets/Sprites/Jesus/Jesus Left.png b/Assets/Sprites/Jesus/Jesus Left.png new file mode 100644 index 0000000000000000000000000000000000000000..fba652ff02c4ec1a41ac63f83d84a9e677ab9b9c GIT binary patch literal 665 zcmV;K0%rY*P)Px%Q%OWYRA@u(nK4TPK@f%S&_7|JRXPmF@kpimsmCYhse~s(5@qkS? zfNAIIwmBtYDS!aDI0aHaGg(0)oN6F30Fd|Rz8*|IsRH@sd2cp1DJ8a&9OF=OAf(C09;MyJPVoDw1h zxZO)_Fj+BL00-M!L0{7uZX0d3LKG=L@BQ#VzX3Riz=Ajc?fR}wr0(~{>O~~ZSOd1= z!_`~>RwkZ85Y7PTx7t>cI)KbmS2a0+=>Qrk00oJwfLe^AIiOQQS9MYwsCrHSkknL| zsR5uiB%;8;09+0ygy^dRsRNjP|L_x4!1+>YYeQEH#v1_q?@0l82<{HGv!-{tUk*)V z-Oq4ataB0K#YF-jiFF3pTU%iNtWtkjOJe^4{OyQ-dp8co00000NkvXXu0mjf$}|)k literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Jesus/Jesus Left.png.import b/Assets/Sprites/Jesus/Jesus Left.png.import new file mode 100644 index 0000000..34a5751 --- /dev/null +++ b/Assets/Sprites/Jesus/Jesus Left.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cn4kqa1p845wl" +path="res://.godot/imported/Jesus Left.png-2949c2879ed5f5e8def57f2eb1498de4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Jesus/Jesus Left.png" +dest_files=["res://.godot/imported/Jesus Left.png-2949c2879ed5f5e8def57f2eb1498de4.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/Assets/Sprites/Jesus/Jesus Spritesheet.png b/Assets/Sprites/Jesus/Jesus Spritesheet.png new file mode 100644 index 0000000000000000000000000000000000000000..3d67761e0ea3f162fe9265323c092315313bd96b GIT binary patch literal 7347 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 literal 0 HcmV?d00001 diff --git a/Assets/Sprites/Jesus/Shadow.png.import b/Assets/Sprites/Jesus/Shadow.png.import new file mode 100644 index 0000000..dbfe369 --- /dev/null +++ b/Assets/Sprites/Jesus/Shadow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cubc3m81pdyvq" +path="res://.godot/imported/Shadow.png-e182ddfbb5e0bd7753fe3ec1e6b362c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/Jesus/Shadow.png" +dest_files=["res://.godot/imported/Shadow.png-e182ddfbb5e0bd7753fe3ec1e6b362c7.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/Scenes/PlayerMovement.tscn b/Scenes/PlayerMovement.tscn index ac57954..d13fce9 100644 --- a/Scenes/PlayerMovement.tscn +++ b/Scenes/PlayerMovement.tscn @@ -1,35 +1,151 @@ -[gd_scene load_steps=5 format=3 uid="uid://ccgpsim5nfxd6"] +[gd_scene load_steps=12 format=3 uid="uid://ccgpsim5nfxd6"] [ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"] -[ext_resource type="Texture2D" uid="uid://c6n0go8l4gaak" path="res://Assets/Sprites/Jesus_Left_Idle.png" id="2_48vut"] [ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="3_0at2g"] [ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"] +[ext_resource type="Texture2D" uid="uid://bl7vfn05ul1vu" path="res://Assets/Sprites/Jesus/Jesus Spritesheet.png" id="4_e5cec"] -[node name="Node2D" type="Node2D"] +[sub_resource type="Animation" id="Animation_kdxam"] +resource_name = "Idle" +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} -[node name="TileMap" type="TileMap" parent="."] +[sub_resource type="Animation" id="Animation_dwpep"] +resource_name = "MoveDown" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = false +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [0, 1, 2, 3] +} + +[sub_resource type="Animation" id="Animation_2jvl5"] +resource_name = "MoveLeft" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [12, 13, 14, 15] +} + +[sub_resource type="Animation" id="Animation_4ig1u"] +resource_name = "MoveRight" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [4, 5, 6, 7] +} + +[sub_resource type="Animation" id="Animation_pswkh"] +resource_name = "MoveUp" +length = 0.8 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.4, 0.6), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 1, +"values": [8, 9, 10, 11] +} + +[sub_resource type="Animation" id="Animation_o3hln"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Player Sprite:frame") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_bi1h3"] +_data = { +"Idle": SubResource("Animation_kdxam"), +"MoveDown": SubResource("Animation_dwpep"), +"MoveLeft": SubResource("Animation_2jvl5"), +"MoveRight": SubResource("Animation_4ig1u"), +"MoveUp": SubResource("Animation_pswkh"), +"RESET": SubResource("Animation_o3hln") +} + +[node name="Player Movement" type="Node2D"] + +[node name="Map Generator" type="TileMap" parent="."] tile_set = ExtResource("3_0at2g") cell_quadrant_size = 8 collision_visibility_mode = 1 format = 2 script = ExtResource("4_8st0q") -[node name="CharacterBody2D" type="CharacterBody2D" parent="."] +[node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")] position = Vector2(512, 300) scale = Vector2(0.25, 0.25) script = ExtResource("1_x3102") -speed = 80 +animation_player = NodePath("Player Animator") -[node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"] -texture = ExtResource("2_48vut") +[node name="Player Sprite" type="Sprite2D" parent="Player"] +position = Vector2(0, -20) +texture = ExtResource("4_e5cec") +hframes = 4 +vframes = 4 -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CharacterBody2D"] -polygon = PackedVector2Array(16, 32, -14, 32, -14, -22, 16, -22) +[node name="Player Collider" type="CollisionPolygon2D" parent="Player"] +polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24) -[node name="Camera2D" type="Camera2D" parent="CharacterBody2D"] +[node name="Player Camera" type="Camera2D" parent="Player"] zoom = Vector2(10, 10) position_smoothing_enabled = true drag_horizontal_enabled = true drag_vertical_enabled = true editor_draw_limits = true editor_draw_drag_margin = true + +[node name="Player Animator" type="AnimationPlayer" parent="Player"] +libraries = { +"": SubResource("AnimationLibrary_bi1h3") +} diff --git a/Scripts/PlayerController.gd b/Scripts/PlayerController.gd index f167eb8..9706185 100644 --- a/Scripts/PlayerController.gd +++ b/Scripts/PlayerController.gd @@ -1,24 +1,50 @@ extends CharacterBody2D -@export var speed = 100 -@export_range(0, 1) var damping_factor := 0.6 +# Serialized Variables +@export var speed = 20 +@export_range(0, 1) var dampning_function = 0.6 +@export var animation_player : AnimationPlayer + +# Engine Callbacks +func _physics_process(delta : float): + move_player(delta) + pass + + + +# Getting player input into a vector func get_move_vector(): var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized() return input_direction + + +# Calculates the players velocity based on input and moves it func move_player(delta : float): + # Damp Players Velocity if no Input if get_move_vector() == Vector2.ZERO: - # Damp Players Velocity if no Input - self.velocity = self.velocity * (1 - min(1, damping_factor * 60 * delta)) + self.velocity = self.velocity * (1 - min(1, dampning_function * 60 * delta)) + + # Set Player's velocity to the Input direction with a magnitude of Speed synced with frame rate else: - # Set Players Velocity to the Input Direction in the Players Speed - self.velocity = get_move_vector() * speed * delta * 60 - - # Update The Players Physics Calculations + self.velocity = get_move_vector().normalized() * speed * delta * 60 + + # Animate the player + animate_player_movement() + + # Finally, update the Player's physics calculations self.move_and_slide() pass -func _physics_process(delta : float): - move_player(delta) - pass + + +func animate_player_movement(): + var move_vector = get_move_vector() + match move_vector: + Vector2.ZERO: animation_player.play("Idle") + Vector2.LEFT: animation_player.play("MoveLeft") + Vector2.RIGHT: animation_player.play("MoveRight") + Vector2.UP: animation_player.play("MoveUp") + Vector2.DOWN: animation_player.play("MoveDown") + _: animation_player.play("Idle") diff --git a/project.godot b/project.godot index 148a2ef..5397ca5 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="HoppyEaster" -run/main_scene="res://Scenes/Movement.tscn" +run/main_scene="res://Scenes/PlayerMovement.tscn" config/features=PackedStringArray("4.0", "GL Compatibility") config/icon="res://icon.svg" -- 2.45.2 From e833b82dd4036dee73f945da20dc8ee0cba9cad9 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 7 Apr 2023 19:52:50 +0200 Subject: [PATCH 07/13] Cleanup of Code --- Scripts/PlayerController.gd | 39 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/Scripts/PlayerController.gd b/Scripts/PlayerController.gd index 9706185..310a71a 100644 --- a/Scripts/PlayerController.gd +++ b/Scripts/PlayerController.gd @@ -1,46 +1,32 @@ extends CharacterBody2D -# Serialized Variables @export var speed = 20 -@export_range(0, 1) var dampning_function = 0.6 +@export_range(0, 1) var damping_factor = 0.6 @export var animation_player : AnimationPlayer - -# Engine Callbacks func _physics_process(delta : float): - move_player(delta) + update_player_movement(delta) pass - - -# Getting player input into a vector -func get_move_vector(): +func get_move_input_vector() -> Vector2: var input_direction = Input.get_vector("move_left", "move_right", "move_up", "move_down").normalized() return input_direction - - -# Calculates the players velocity based on input and moves it -func move_player(delta : float): - # Damp Players Velocity if no Input - if get_move_vector() == Vector2.ZERO: - self.velocity = self.velocity * (1 - min(1, dampning_function * 60 * delta)) +func update_player_movement(delta : float): + var input = get_move_input_vector() - # Set Player's velocity to the Input direction with a magnitude of Speed synced with frame rate - else: - self.velocity = get_move_vector().normalized() * speed * delta * 60 + # Damp Movement if not moving, Accelerate if Moving + var is_moving = input != Vector2.ZERO + self.velocity = input * speed * delta * 60 if is_moving else self.velocity * (1 - min(1, damping_factor * 60 * delta)) - # Animate the player - animate_player_movement() + update_player_animation() - # Finally, update the Player's physics calculations + # Update Objects Physics calculations self.move_and_slide() pass - - -func animate_player_movement(): - var move_vector = get_move_vector() +func update_player_animation(): + var move_vector = get_move_input_vector() match move_vector: Vector2.ZERO: animation_player.play("Idle") Vector2.LEFT: animation_player.play("MoveLeft") @@ -48,3 +34,4 @@ func animate_player_movement(): Vector2.UP: animation_player.play("MoveUp") Vector2.DOWN: animation_player.play("MoveDown") _: animation_player.play("Idle") + pass -- 2.45.2 From b1e63481fe1a3f8d809a4d6f66cf19f530821f50 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Fri, 7 Apr 2023 19:55:29 +0200 Subject: [PATCH 08/13] Remove no longer needed file --- Assets/Sprites/Jesus_Left_Idle.png | Bin 641 -> 0 bytes Assets/Sprites/Jesus_Left_Idle.png.import | 34 ---------------------- 2 files changed, 34 deletions(-) delete mode 100644 Assets/Sprites/Jesus_Left_Idle.png delete mode 100644 Assets/Sprites/Jesus_Left_Idle.png.import diff --git a/Assets/Sprites/Jesus_Left_Idle.png b/Assets/Sprites/Jesus_Left_Idle.png deleted file mode 100644 index 4082dd7546dc404958a4d14a2c48f6658d2894b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 641 zcmV-{0)G98P)q+JLb0HuLPZfpq;o-(x=KeW)KNi1M<*Qw z7dID`%0Em=(t$c}^n?xXJ zQ5!OSHWN}|BHk4OCUm6)BII%;Y!=QfrM0o;vl@v|P<(zD7&GmC96E(EAaOIft{BOAd*PtgHJ?z7k3_9 zLxTg_$*|`<3Y>feqCu~|rdhpSZ^EUD?J%LL_97-0H~ss=`4(#NAowN}Jpg4e4G=R? zk>CVPNTpJ(HGBnl-G5`oh1yTYt7X_@rHUTcV#1Z6C@`MQXyY&>Knaowbw;uU%oq7y zfF_{I-Xt@W$5bLR0atKNAV>)m0h9SCpPV%TmuPFnr9zgK3e3+I(?-KUOM&&(Wv2`2 zd|-Vd5^*>+f{Ife+*<^8j!&7~io@=FfVuu#H32NRl%o67`2$qbVGwgtY>0NJRX bZDYRybItKwhRaT>00000NkvXXu0mjf7-bZy diff --git a/Assets/Sprites/Jesus_Left_Idle.png.import b/Assets/Sprites/Jesus_Left_Idle.png.import deleted file mode 100644 index 7e997b4..0000000 --- a/Assets/Sprites/Jesus_Left_Idle.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://c6n0go8l4gaak" -path="res://.godot/imported/Jesus_Left_Idle.png-591d029c8d8b8b573a2665b70cf0e031.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://Assets/Sprites/Jesus_Left_Idle.png" -dest_files=["res://.godot/imported/Jesus_Left_Idle.png-591d029c8d8b8b573a2665b70cf0e031.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 -- 2.45.2 From 8e03e10593322f75997399a1149600b84368b43b Mon Sep 17 00:00:00 2001 From: AXVIII3 <76608488+AXVIII3@users.noreply.github.com> Date: Sat, 8 Apr 2023 01:02:56 +0530 Subject: [PATCH 09/13] Diagonal Movement Fix and Textures --- Scripts/PlayerController.gd | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Scripts/PlayerController.gd b/Scripts/PlayerController.gd index 310a71a..584f977 100644 --- a/Scripts/PlayerController.gd +++ b/Scripts/PlayerController.gd @@ -33,5 +33,11 @@ func update_player_animation(): Vector2.RIGHT: animation_player.play("MoveRight") Vector2.UP: animation_player.play("MoveUp") Vector2.DOWN: animation_player.play("MoveDown") - _: animation_player.play("Idle") + _: handle_diagonal_animations(move_vector) + pass + +func handle_diagonal_animations(dir : Vector2): + if (dir.y > 0 and dir.x < 0) or (dir.y < 0 and dir.x < 0): animation_player.play("MoveLeft") + elif (dir.y > 0 and dir.x > 0) or (dir.y < 0 and dir.x > 0): animation_player.play("MoveRight") + else: animation_player.play("Idle") pass -- 2.45.2 From 5e5c94272985dc45efa448337d826949aa174158 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 8 Apr 2023 00:59:28 +0200 Subject: [PATCH 10/13] Adding Bunnys, Tileset & Colorpallte - Removing Placeholers - Setting Up Rule Tile --- Assets/ColorPallet.ase | Bin 0 -> 333 bytes Assets/ColorPallet.png | Bin 0 -> 177 bytes ...derA.png.import => ColorPallet.png.import} | 8 +- Assets/Sprites/{ => EvilBunny}/bunny_down.png | Bin .../Sprites/EvilBunny/bunny_down.png.import | 34 ++ Assets/Sprites/{ => EvilBunny}/bunny_left.png | Bin .../Sprites/EvilBunny/bunny_left.png.import | 34 ++ Assets/Sprites/{ => EvilBunny}/bunny_righ.png | Bin .../Sprites/EvilBunny/bunny_righ.png.import | 34 ++ Assets/Sprites/{ => EvilBunny}/bunny_up.png | Bin .../bunny_up.png.import} | 8 +- Assets/Sprites/GoodBunny/bunny_down.png | Bin 0 -> 1311 bytes .../Sprites/GoodBunny/bunny_down.png.import | 34 ++ Assets/Sprites/GoodBunny/bunny_left.png | Bin 0 -> 1179 bytes .../Sprites/GoodBunny/bunny_left.png.import | 34 ++ Assets/Sprites/GoodBunny/bunny_righ.png | Bin 0 -> 1182 bytes .../{ => GoodBunny}/bunny_righ.png.import | 10 +- Assets/Sprites/GoodBunny/bunny_up.png | Bin 0 -> 1212 bytes .../bunny_up.png.import} | 10 +- Assets/Sprites/PlaceHolderA.png | Bin 78 -> 0 bytes Assets/Sprites/PlaceHolderB.png | Bin 79 -> 0 bytes Assets/Sprites/TileMap.png | Bin 0 -> 1509 bytes ...bunny_up.png.import => TileMap.png.import} | 10 +- Assets/Sprites/bunny_down.png.import | 34 -- Assets/Tileset.tres | 343 ++++++++++++++++++ 25 files changed, 536 insertions(+), 57 deletions(-) create mode 100644 Assets/ColorPallet.ase create mode 100644 Assets/ColorPallet.png rename Assets/{Sprites/PlaceHolderA.png.import => ColorPallet.png.import} (67%) rename Assets/Sprites/{ => EvilBunny}/bunny_down.png (100%) create mode 100644 Assets/Sprites/EvilBunny/bunny_down.png.import rename Assets/Sprites/{ => EvilBunny}/bunny_left.png (100%) create mode 100644 Assets/Sprites/EvilBunny/bunny_left.png.import rename Assets/Sprites/{ => EvilBunny}/bunny_righ.png (100%) create mode 100644 Assets/Sprites/EvilBunny/bunny_righ.png.import rename Assets/Sprites/{ => EvilBunny}/bunny_up.png (100%) rename Assets/Sprites/{PlaceHolderB.png.import => EvilBunny/bunny_up.png.import} (67%) create mode 100644 Assets/Sprites/GoodBunny/bunny_down.png create mode 100644 Assets/Sprites/GoodBunny/bunny_down.png.import create mode 100644 Assets/Sprites/GoodBunny/bunny_left.png create mode 100644 Assets/Sprites/GoodBunny/bunny_left.png.import create mode 100644 Assets/Sprites/GoodBunny/bunny_righ.png rename Assets/Sprites/{ => GoodBunny}/bunny_righ.png.import (64%) create mode 100644 Assets/Sprites/GoodBunny/bunny_up.png rename Assets/Sprites/{bunny_left.png.import => GoodBunny/bunny_up.png.import} (64%) delete mode 100644 Assets/Sprites/PlaceHolderA.png delete mode 100644 Assets/Sprites/PlaceHolderB.png create mode 100644 Assets/Sprites/TileMap.png rename Assets/Sprites/{bunny_up.png.import => TileMap.png.import} (65%) delete mode 100644 Assets/Sprites/bunny_down.png.import create mode 100644 Assets/Tileset.tres diff --git a/Assets/ColorPallet.ase b/Assets/ColorPallet.ase new file mode 100644 index 0000000000000000000000000000000000000000..f96909cf151c267a74730f9afe6a44c509bebf6c GIT binary patch literal 333 zcmeZeWMFu(l#xMzfsug&h#44CfEWQd5KNk|&H_#S^^pZ`s~3JJ~ zV0b)h4Ujw%J0D0Ud)ETVl*B_oQhVhVAUXNURv`J|+l&87K)oy=A8`Qn0W|@20F?vP z0u=&P0hP#uR46bb*#Xqbz|P>4SeaU+U}yy7uqr@g|1&{o25>-C%t=m2NlHshO@991 R$)jfvpFU=1VA{b@2>|yWKFI(8 literal 0 HcmV?d00001 diff --git a/Assets/ColorPallet.png b/Assets/ColorPallet.png new file mode 100644 index 0000000000000000000000000000000000000000..d81afb619922901fc436dbabb6b87cec445c99da GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K56j+#nB!Bzv>p)5(z$e7@!>x^vXRSFBJ3raG zHYM?p_R1}juWbGB?L}_cq@zGJoCO|{#S9F5M?jcysy3fAP|)7f#W5tJ_3b%B#sdlr z2Ml!1Fo|t2;NIN8`sQ=^fpu3LjNPg(`DpKb>1{ptiak&R5;*X_ftzQ~4!whXCbA%5 MPgg&ebxsLQ02dQDPyhe` literal 0 HcmV?d00001 diff --git a/Assets/Sprites/PlaceHolderA.png.import b/Assets/ColorPallet.png.import similarity index 67% rename from Assets/Sprites/PlaceHolderA.png.import rename to Assets/ColorPallet.png.import index b23dd9c..fa16fe8 100644 --- a/Assets/Sprites/PlaceHolderA.png.import +++ b/Assets/ColorPallet.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bjyry6vvtr8h5" -path="res://.godot/imported/PlaceHolderA.png-e2c024c9601592007fcae5cbf8aa801d.ctex" +uid="uid://dwkjfno8mjrdp" +path="res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Assets/Sprites/PlaceHolderA.png" -dest_files=["res://.godot/imported/PlaceHolderA.png-e2c024c9601592007fcae5cbf8aa801d.ctex"] +source_file="res://Assets/ColorPallet.png" +dest_files=["res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex"] [params] diff --git a/Assets/Sprites/bunny_down.png b/Assets/Sprites/EvilBunny/bunny_down.png similarity index 100% rename from Assets/Sprites/bunny_down.png rename to Assets/Sprites/EvilBunny/bunny_down.png diff --git a/Assets/Sprites/EvilBunny/bunny_down.png.import b/Assets/Sprites/EvilBunny/bunny_down.png.import new file mode 100644 index 0000000..35c0d3c --- /dev/null +++ b/Assets/Sprites/EvilBunny/bunny_down.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://tv804qpxy44n" +path="res://.godot/imported/bunny_down.png-65e2d347963ef39987488ab06970e3b7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/EvilBunny/bunny_down.png" +dest_files=["res://.godot/imported/bunny_down.png-65e2d347963ef39987488ab06970e3b7.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/Assets/Sprites/bunny_left.png b/Assets/Sprites/EvilBunny/bunny_left.png similarity index 100% rename from Assets/Sprites/bunny_left.png rename to Assets/Sprites/EvilBunny/bunny_left.png diff --git a/Assets/Sprites/EvilBunny/bunny_left.png.import b/Assets/Sprites/EvilBunny/bunny_left.png.import new file mode 100644 index 0000000..61153c5 --- /dev/null +++ b/Assets/Sprites/EvilBunny/bunny_left.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dbelgiv204e2b" +path="res://.godot/imported/bunny_left.png-78242bd12e7c1e446aa544882eb0c11c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/EvilBunny/bunny_left.png" +dest_files=["res://.godot/imported/bunny_left.png-78242bd12e7c1e446aa544882eb0c11c.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/Assets/Sprites/bunny_righ.png b/Assets/Sprites/EvilBunny/bunny_righ.png similarity index 100% rename from Assets/Sprites/bunny_righ.png rename to Assets/Sprites/EvilBunny/bunny_righ.png diff --git a/Assets/Sprites/EvilBunny/bunny_righ.png.import b/Assets/Sprites/EvilBunny/bunny_righ.png.import new file mode 100644 index 0000000..ee53c8d --- /dev/null +++ b/Assets/Sprites/EvilBunny/bunny_righ.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cvji70p68eae8" +path="res://.godot/imported/bunny_righ.png-087dbfde3e26335391f6eb0d1a0f9a4a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/EvilBunny/bunny_righ.png" +dest_files=["res://.godot/imported/bunny_righ.png-087dbfde3e26335391f6eb0d1a0f9a4a.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/Assets/Sprites/bunny_up.png b/Assets/Sprites/EvilBunny/bunny_up.png similarity index 100% rename from Assets/Sprites/bunny_up.png rename to Assets/Sprites/EvilBunny/bunny_up.png diff --git a/Assets/Sprites/PlaceHolderB.png.import b/Assets/Sprites/EvilBunny/bunny_up.png.import similarity index 67% rename from Assets/Sprites/PlaceHolderB.png.import rename to Assets/Sprites/EvilBunny/bunny_up.png.import index 62f9ec7..2bbcfab 100644 --- a/Assets/Sprites/PlaceHolderB.png.import +++ b/Assets/Sprites/EvilBunny/bunny_up.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cbtiuvqgnulmf" -path="res://.godot/imported/PlaceHolderB.png-e4349525f46542a37c6106a7ccfeea94.ctex" +uid="uid://coyib2evn5o61" +path="res://.godot/imported/bunny_up.png-9db830aab18c79505e343895a04cf789.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Assets/Sprites/PlaceHolderB.png" -dest_files=["res://.godot/imported/PlaceHolderB.png-e4349525f46542a37c6106a7ccfeea94.ctex"] +source_file="res://Assets/Sprites/EvilBunny/bunny_up.png" +dest_files=["res://.godot/imported/bunny_up.png-9db830aab18c79505e343895a04cf789.ctex"] [params] diff --git a/Assets/Sprites/GoodBunny/bunny_down.png b/Assets/Sprites/GoodBunny/bunny_down.png new file mode 100644 index 0000000000000000000000000000000000000000..452b30036031f4b2d6d332d9a70793b5ba8f99c8 GIT binary patch literal 1311 zcmV+)1>pLLP)Z|hMyiJ=aqU7~02u|BU4EqTqSrhEtsE7V_v>Bj1w?B$eJ*$i%>4+s0b5>Y5~_9BBm61W_g#og~AQYP9@nr*s{xsb&yCW zjyB?wHmII;tH1$`#Doe(0`XHNu+vRNflM5&dP<@m85ase!4nXv$x$VX$NPrOq9RG8 z8wRGWxFsCR6e25RtVqe7EPSNmU<|6sq7EaoIVzV8QY!qFN0vbot5S+ zI3P#tUNRRSCkOhfA3K;P5+W$QWrl6qJ=;RrPR5Clb5i)bGe~6FC)`Qh&+TwD$q%ZN zIcwss16oZ?7b-;vSAGYrxW%0ZsXs~%%*4^kwds{TM&>XNpHNp2AHRLMe0cSyLB0LH zQ>i-y2TalkACBN~F2;$&#YX~;tu3>j)=@@gtS)w;0`aMYti9=0ii}{yz<^$}jC%-< zBGf1!2?D8vdKMfY=4xEf8phHZhJ-5hE8Dfi1r-+<7mfshR0}(<{Sg)q<&w28OYI9` zPwngv&tM>Np*{uv=i{$!4$t2`t3S@zOQ=>HqlIe0kt7f?VRpn3+7Y4_p@xcU+eanJ z?)818=fLigDAKAAD&sOc3s+3k-W_-@&CSZ5sO5Wy zg%v1PC@5PpWv1MOO0orj zHXrJGv)aTrC7$nd_}HEqa{;&-!N<`!s^e3KffSmooS215+Wg=iNEC@>we2V^-3fz} z7vZx8w%Qd=2IEloQI+1* zb8^`&)Fm4@5nD3F8=$i!%vNEhQ2&My@8trMP``dNtR>7stpc;Ei~HjW%jFRwCEE|= znz$V8ih~Q-Kxb!nASmGsz(JOOgFc3pey{V5ynin-N^_`Ag`lf)2OtL5h;Vim91-lE zXIzfz8Tj7s<(y<|g$M#hxcgafjE?sdY6ruTv+wEpXTi}yrTXX;s!Gwk;S3D?0sJ_f VZYFng#Q*>R07*qoM6N<$f&k9vSn&V= literal 0 HcmV?d00001 diff --git a/Assets/Sprites/GoodBunny/bunny_down.png.import b/Assets/Sprites/GoodBunny/bunny_down.png.import new file mode 100644 index 0000000..810354b --- /dev/null +++ b/Assets/Sprites/GoodBunny/bunny_down.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ep63wy3imw2d" +path="res://.godot/imported/bunny_down.png-ea09ce83bcf9875fa961a56145d1a045.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/GoodBunny/bunny_down.png" +dest_files=["res://.godot/imported/bunny_down.png-ea09ce83bcf9875fa961a56145d1a045.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/Assets/Sprites/GoodBunny/bunny_left.png b/Assets/Sprites/GoodBunny/bunny_left.png new file mode 100644 index 0000000000000000000000000000000000000000..47dd716d57d19b9fbd9d47a7c37b7c27ef8f2d77 GIT binary patch literal 1179 zcmV;M1Z4Y(P)1a1(4ryFQo5?2Hs3)BU{Eh4Z$y+xXq$OYc}LeQ0~Fp01dALUe6%Upuuy0vwe3JsH2l~7ReUPXDEk(8j542hQZb+0PQ_p z>p>lqq^L*&sI;3N$AWM5=nT_n7;JqaNS(EqK^>i>sGE)iHL)6z^>8kh(G!gp|5aM* zKpmYV+RZQSrsv&-ff{D8K3O+)wqb3cZrO9>{ zppFD38~M(G;k@mX8ZK@Y8K@UcR~XchNn+RLKy|z=HG_s3Y=;P{bHPBMj!aTE>PnaK z;WiPuWz*xT->Sjuj>E`_md5dFEh?ziB&8c_O?jN;ke{%>u;|NR$=r6Ikk{9YX|}w zVquwRC0J@>Q1qpAe}G@D%|{W`Zb>@)q$N^mrO5K@;VoA>Boxc)Cus#?I=Z#c&-_1hqRT#wsdyb?%2CXdxLotD6R; zv${+)V>b_{duu@&hwf1~wOnVd1;tQB+tSf(kmH9BdjMOy{R|qE&gyDAY8pmMyh{xP z%msGU9~SBe3Q|RMe;Kf7_ms{vbk(f0v=&NgN0=XbyV{Omm%tdfY5|Kz1+{yUj6up^ z?NQm48m=CJSJ)1;VYq1la{+@I0ow@{G)Qh<$h9h)0eSL)G$j@||; zy~sLD@u@-jVKD$n8l()G^idtNQO#48#>{!eE#0H7*n{fzmG2Z|AWf7cCdFbgbW;vs zNLwQheL+oOO+h|BNBodF@&SJrb^p|^6p|Bx%KTl;M1ZD)0IQ}4jVF7{tD)$i9C3w| zG#W&|8PsCXq^?S!vL?AlClI@<0ISx)k-%!B6Ycm&ye)b-OJn(acG{J0TT)O3Z;!0s z2CDEc7(FXj^ooG5i7LJ!NK^w7R1MN%r%$F%(S|gRY(%Ga4x+CI4`xuaAd{WYB=)Xc tEnwQ`v*|(OXgN=df!F6!GwI30e+MUnU!v-a?*IS*07*qoM6N<$f&d@`A$R}) literal 0 HcmV?d00001 diff --git a/Assets/Sprites/GoodBunny/bunny_left.png.import b/Assets/Sprites/GoodBunny/bunny_left.png.import new file mode 100644 index 0000000..432e875 --- /dev/null +++ b/Assets/Sprites/GoodBunny/bunny_left.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b0x834s5l1qot" +path="res://.godot/imported/bunny_left.png-91e2fa49ed65451bd7003fe4ee0265af.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Sprites/GoodBunny/bunny_left.png" +dest_files=["res://.godot/imported/bunny_left.png-91e2fa49ed65451bd7003fe4ee0265af.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/Assets/Sprites/GoodBunny/bunny_righ.png b/Assets/Sprites/GoodBunny/bunny_righ.png new file mode 100644 index 0000000000000000000000000000000000000000..0c14cabfa0a0e28310c74b22aee6af670b5d90f7 GIT binary patch literal 1182 zcmV;P1Y!G$P)Iqt;UZv0Vj1Ajqz!e*6Jc|W& zRx?1`>uHDxjDcFjdODwQvY-kodn~B%GLc~M$deniz0`UJX_`rk2-eP^MrbgBO3pqf zfB`Rklr#NS1_;`WH-XR!f*o{#mRUw4??@yDbq7QaItFHKNGCIjp88@xqUrOmAGc3$ z-aRV|svu}g(kl6K&_FFP>>{s{FC9Bzv<4Q`X2rrbdyiNzFiLfx5(Uwdw4~P#RObjF zs^WvRkboi(?!Y9x^WGp)@uJYs1eI-JgUw*|XnMAx(xX*evnKUfgO>VGY-}hf0y|(& z4J4@SqFRHTW`yfeR@H8h<~TaW5wW(89Z>9#Q3DF9c;g0GEtiMXdK%T^@0V{y^~(=0 zMAr|+CQv6##4K;oqOPRy3!OTk${(W!8dS-N5~v2$8MoIAGbHdSDo1-$nZUGmG)9h2 z6QV6(95H*u6*>@`1E}WB2Z4c}9B7h;fD%6Tmp&q??BNC=k0465V4jBSLt@9p$;=A} zX*Ckzpq>PVtF5&*o&ga8nh#Y#ke-N0f^XD9#>S#8a5OR}i&Dc5)G%WL%m~xsI9V~9 zzya%M_lG3n*6KKpxII#IVH{NJ<{eOUtETC|4lu%D1xcLu%(Yi^97=C`Iv?=r@gsO< zRXUD@#YQj^#e?dA;$Vox2*mgjcmSydiu4_J2BX%8o53!=BgKFNb_WJrS8#W(S$m8f zFa%U#;@VH9uo)u=(p`JwDhF7TgsO)T!ebUq^*#u|Td=aNwmv5D>;-n~v|A#>%1tCJ zm!RnoGEgCuSSD8ik}NEpF37AUk^+U*ppQF_WslA3oMU|dR|G2zAdxh?B&h>l{i#kU zs2zBbT}Q>TAN$MCZMPN^F>nu%YN{C1Zdn)_70|Q4W&&(;qFUQF;z)IoaTTnu^{IT` z$&2pJ6g3yYSx4pXd(u8AdQA-|2V(A>+w%dRlA10 zfj__A{vLzBeEabV@3;@_-TydV?>xQxv*(>Lo(^`#LD@Na1KYcQ0m#?y|3Ciz`NF{Z zp&_`hj#tlIJ^QkG%N+kWpazqinV4cO0jpjJ=I29y0P-fNH|od)(VMFYYOfRZ?r%C7 zk?0y&UQlY=FZ1nMKE{iMRQxWt9TSso?1Flyj$Is6T_P=v59*3e2EbZ_DiY93V3j*k zpuR)8{d^i7llZ_v1>op)z^0RFXKEz;baDfz9zZq;uB&dkw&U*lPIpam(`t;ht4`1n ztyq!$I8XstM>v@ah()-B6wr;f1Lh)-kjRM)4ZUvKboa?RBDs$2vz?X?>Pk+gwM4=tVokZo02e#s zafq`@ycYh6L7l}11nMeIRzR`>Ac%$o+5wA(TC@Xo%-{nCl@c?+NohzQJTa|qMs72E z#L2CYdktY!7`6q1L8Vsj0QY!;YSXt0sH6GdKqX5ZyJ|cap@K2PQOS#`?0C?N_kj%r z0(BKYPWL#Tx_D%Zr!(1*P%#+<$P-ir0F{)1PPQbdo~sVJ;xGC_a6m-rHn*&)&Oe-FQsWak+JgUf4-}d(gd@_@!TG4{?)#5D${&0kQ6O z41CMK8jp!OE{>`}tu2`2d*TlReNff?uHwDZL?INYG8wJJsBzw^^)ytStX6HT??+ac z$vR9>We}~u*0r_+G2uZSB!q&*D{Xo^5D4V>CaB(GHC$%Mg1J-2`#EmsI(G6_F4zZo8jkIk$A-v`#N$F_x?<57tyXo80Xp=tst*Eo zpwaV_<6Ka!Nk<6r#JgptHUZHGc^Yb=^-8BpHgJRX%!t_-m0boFyt=akR{0K*y;y#N3J diff --git a/Assets/Sprites/TileMap.png b/Assets/Sprites/TileMap.png new file mode 100644 index 0000000000000000000000000000000000000000..33988e175dc93dd9eb56a9b2f915a180f8ac8c2a GIT binary patch literal 1509 zcmbtU{Z~?V82>72s5DzU2eizWcARZHYRoLBL#-@lZeeA1)D)9Bmy$FsDGA|Z*;+4j z%3P^QtPHgT%Rmj~dTQa?DPJ;WY6@kWY0}jc&%a?0EXg0zv3X z>%LX1xQ?IIR5$b$75VcT3GQAayFOq2!A<7ky89C??28WrA)gqeF4BYU)KyWzIL+)S z-Q$v8pF~&Jn0yo4ceGj4LK0gvjBt3YfYeto3}1mV8361j0zs^;plh7ceXCryaUcij zKG|Z;Wfx^blcp_j!JqPFdHRa7rFoZBsOJ<(_nm@vGWm@#mN^NB5?pi9Q$6U_NzEE8 zlz;Hfq-LmiTLwRfn7utbnSp7D;C0jvaDgurvr*2FB}qFYD{qyAJGqFjWA+gW1z3rB z&@~p016VY+9+1wXzj(CHOjAhdZgMX%_YAXHL*(TBSdy3?nTOd`&JfrMcH8fW1}+N4dqqIUx~6(V$#fQ z@k*VTds~7;H4*=^N-*Wk$ zrL~G@6ZBAVtXBk6x_?5>j1OAOwCf!2^Q#6tDWG02X63z#9)L^I_q*qRC{6Y}d#MBB z7r>{3WErdxy|CXFVNLo~7C*|SjUxL{qQN^sYvJzOqZi_GpTqfM28g(Z-=KmV02?hB zZy8LyyvOu|w_y^#c~S@u0ZR z7`s|&xC(0*ZVw-P$^%x0@k+5jBppe;bkikt!56n3B0gn1 zt9N^&QrQ2ih8odp4+<*vQx(@i65|?~PbF6NctGn0eC3og{f4I6j`rpFbq`HPA7Ja* zDKYCXQ4AXj1RJ|Ki>xmhpwVR1NEu0KX8U;;)R;&>w}nQ7n$2e)sCtjaJ$L+<`WbCb z*tkY#Jh3~WU5QDVFA;f9HlM+JGhJb`Gc;9d^?+=+xS`ob*!2WlK-F7@RZ%GxdS(OG ztb*zv^tu7b(P#Z@4=!Obmi>Sum&&lLX*NQu9Yi?>jzL<8BocHb!e1p=MnZgB%z9l{ zgROe{?b5*nfO8LukZIniO)(w2w-*r0r{0<1KYKXLuJ!wd3S5tj~XM{+*PYK*O_g-9(9^@L+ZB- rb7_PUlF-)WRHl-E$2W-HusKq?F7@y~VxO#i literal 0 HcmV?d00001 diff --git a/Assets/Sprites/bunny_up.png.import b/Assets/Sprites/TileMap.png.import similarity index 65% rename from Assets/Sprites/bunny_up.png.import rename to Assets/Sprites/TileMap.png.import index 52a2089..b55c6da 100644 --- a/Assets/Sprites/bunny_up.png.import +++ b/Assets/Sprites/TileMap.png.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://xbx6qrjbu5h7" -path="res://.godot/imported/bunny_up.png-d9c6d22cb180401f29d7e9a4fd388bb1.ctex" +uid="uid://bqi3ddjrcj2bh" +path="res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://Assets/Sprites/bunny_up.png" -dest_files=["res://.godot/imported/bunny_up.png-d9c6d22cb180401f29d7e9a4fd388bb1.ctex"] +source_file="res://Assets/Sprites/TileMap.png" +dest_files=["res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex"] [params] @@ -31,4 +31,4 @@ process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 -detect_3d/compress_to=0 +detect_3d/compress_to=1 diff --git a/Assets/Sprites/bunny_down.png.import b/Assets/Sprites/bunny_down.png.import deleted file mode 100644 index 9d6d91d..0000000 --- a/Assets/Sprites/bunny_down.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://dyibsqvmfitux" -path="res://.godot/imported/bunny_down.png-6511b38862324c280c3e08af22b07ee9.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://Assets/Sprites/bunny_down.png" -dest_files=["res://.godot/imported/bunny_down.png-6511b38862324c280c3e08af22b07ee9.ctex"] - -[params] - -compress/mode=4 -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=0 diff --git a/Assets/Tileset.tres b/Assets/Tileset.tres new file mode 100644 index 0000000..c815918 --- /dev/null +++ b/Assets/Tileset.tres @@ -0,0 +1,343 @@ +[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://bj7uu2180mie3"] + +[ext_resource type="Texture2D" uid="uid://bqi3ddjrcj2bh" path="res://Assets/Sprites/TileMap.png" id="1_cl3se"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_mgef5"] +texture = ExtResource("1_cl3se") +texture_region_size = Vector2i(32, 32) +0:0/0 = 0 +0:0/0/terrain_set = 0 +0:0/0/terrain = 0 +0:0/0/terrains_peering_bit/bottom_side = 0 +1:0/0 = 0 +1:0/0/terrain_set = 0 +1:0/0/terrain = 0 +1:0/0/terrains_peering_bit/right_side = 0 +1:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0 = 0 +2:0/0/terrain_set = 0 +2:0/0/terrain = 0 +2:0/0/terrains_peering_bit/right_side = 0 +2:0/0/terrains_peering_bit/bottom_side = 0 +2:0/0/terrains_peering_bit/left_side = 0 +3:0/0 = 0 +3:0/0/terrain_set = 0 +3:0/0/terrain = 0 +3:0/0/terrains_peering_bit/bottom_side = 0 +3:0/0/terrains_peering_bit/left_side = 0 +4:0/0 = 0 +4:0/0/terrain_set = 0 +4:0/0/terrain = 0 +4:0/0/terrains_peering_bit/right_side = 0 +4:0/0/terrains_peering_bit/bottom_side = 0 +4:0/0/terrains_peering_bit/left_side = 0 +4:0/0/terrains_peering_bit/top_left_corner = 0 +4:0/0/terrains_peering_bit/top_side = 0 +5:0/0 = 0 +5:0/0/terrain_set = 0 +5:0/0/terrain = 0 +5:0/0/terrains_peering_bit/right_side = 0 +5:0/0/terrains_peering_bit/bottom_right_corner = 0 +5:0/0/terrains_peering_bit/bottom_side = 0 +5:0/0/terrains_peering_bit/left_side = 0 +6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/bottom_left_corner = 0 +6:0/0/terrains_peering_bit/left_side = 0 +7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 +7:0/0/terrains_peering_bit/right_side = 0 +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +7:0/0/terrains_peering_bit/top_side = 0 +7:0/0/terrains_peering_bit/top_right_corner = 0 +8:0/0 = 0 +8:0/0/terrain_set = 0 +8:0/0/terrain = 0 +8:0/0/terrains_peering_bit/right_side = 0 +8:0/0/terrains_peering_bit/bottom_right_corner = 0 +8:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/bottom_left_corner = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_side = 0 +10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 0 +10:0/0/terrains_peering_bit/right_side = 0 +10:0/0/terrains_peering_bit/bottom_right_corner = 0 +10:0/0/terrains_peering_bit/bottom_side = 0 +10:0/0/terrains_peering_bit/bottom_left_corner = 0 +10:0/0/terrains_peering_bit/left_side = 0 +11:0/0 = 0 +11:0/0/terrain_set = 0 +11:0/0/terrain = 0 +11:0/0/terrains_peering_bit/bottom_side = 0 +11:0/0/terrains_peering_bit/bottom_left_corner = 0 +11:0/0/terrains_peering_bit/left_side = 0 +0:1/0 = 0 +0:1/0/terrain_set = 0 +0:1/0/terrain = 0 +0:1/0/terrains_peering_bit/bottom_side = 0 +0:1/0/terrains_peering_bit/top_side = 0 +1:1/0 = 0 +1:1/0/terrain_set = 0 +1:1/0/terrain = 0 +1:1/0/terrains_peering_bit/right_side = 0 +1:1/0/terrains_peering_bit/bottom_side = 0 +1:1/0/terrains_peering_bit/top_side = 0 +2:1/0 = 0 +2:1/0/terrain_set = 0 +2:1/0/terrain = 0 +2:1/0/terrains_peering_bit/right_side = 0 +2:1/0/terrains_peering_bit/bottom_side = 0 +2:1/0/terrains_peering_bit/left_side = 0 +2:1/0/terrains_peering_bit/top_side = 0 +3:1/0 = 0 +3:1/0/terrain_set = 0 +3:1/0/terrain = 0 +3:1/0/terrains_peering_bit/bottom_side = 0 +3:1/0/terrains_peering_bit/left_side = 0 +3:1/0/terrains_peering_bit/top_side = 0 +4:1/0 = 0 +4:1/0/terrain_set = 0 +4:1/0/terrain = 0 +4:1/0/terrains_peering_bit/right_side = 0 +4:1/0/terrains_peering_bit/bottom_right_corner = 0 +4:1/0/terrains_peering_bit/bottom_side = 0 +4:1/0/terrains_peering_bit/top_side = 0 +5:1/0 = 0 +5:1/0/terrain_set = 0 +5:1/0/terrain = 0 +5:1/0/terrains_peering_bit/right_side = 0 +5:1/0/terrains_peering_bit/bottom_right_corner = 0 +5:1/0/terrains_peering_bit/bottom_side = 0 +5:1/0/terrains_peering_bit/bottom_left_corner = 0 +5:1/0/terrains_peering_bit/left_side = 0 +5:1/0/terrains_peering_bit/top_side = 0 +5:1/0/terrains_peering_bit/top_right_corner = 0 +6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/bottom_left_corner = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 +7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/bottom_left_corner = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_side = 0 +8:1/0 = 0 +8:1/0/terrain_set = 0 +8:1/0/terrain = 0 +8:1/0/terrains_peering_bit/right_side = 0 +8:1/0/terrains_peering_bit/bottom_right_corner = 0 +8:1/0/terrains_peering_bit/bottom_side = 0 +8:1/0/terrains_peering_bit/top_side = 0 +8:1/0/terrains_peering_bit/top_right_corner = 0 +9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/bottom_left_corner = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 +11:1/0 = 0 +11:1/0/terrain_set = 0 +11:1/0/terrain = 0 +11:1/0/terrains_peering_bit/right_side = 0 +11:1/0/terrains_peering_bit/bottom_side = 0 +11:1/0/terrains_peering_bit/bottom_left_corner = 0 +11:1/0/terrains_peering_bit/left_side = 0 +11:1/0/terrains_peering_bit/top_left_corner = 0 +11:1/0/terrains_peering_bit/top_side = 0 +0:2/0 = 0 +0:2/0/terrain_set = 0 +0:2/0/terrain = 0 +0:2/0/terrains_peering_bit/top_side = 0 +1:2/0 = 0 +1:2/0/terrain_set = 0 +1:2/0/terrain = 0 +1:2/0/terrains_peering_bit/right_side = 0 +1:2/0/terrains_peering_bit/top_side = 0 +2:2/0 = 0 +2:2/0/terrain_set = 0 +2:2/0/terrain = 0 +2:2/0/terrains_peering_bit/right_side = 0 +2:2/0/terrains_peering_bit/left_side = 0 +2:2/0/terrains_peering_bit/top_side = 0 +3:2/0 = 0 +3:2/0/terrain_set = 0 +3:2/0/terrain = 0 +3:2/0/terrains_peering_bit/left_side = 0 +3:2/0/terrains_peering_bit/top_side = 0 +4:2/0 = 0 +4:2/0/terrain_set = 0 +4:2/0/terrain = 0 +4:2/0/terrains_peering_bit/right_side = 0 +4:2/0/terrains_peering_bit/bottom_side = 0 +4:2/0/terrains_peering_bit/top_side = 0 +4:2/0/terrains_peering_bit/top_right_corner = 0 +5:2/0 = 0 +5:2/0/terrain_set = 0 +5:2/0/terrain = 0 +5:2/0/terrains_peering_bit/right_side = 0 +5:2/0/terrains_peering_bit/bottom_right_corner = 0 +5:2/0/terrains_peering_bit/bottom_side = 0 +5:2/0/terrains_peering_bit/left_side = 0 +5:2/0/terrains_peering_bit/top_left_corner = 0 +5:2/0/terrains_peering_bit/top_side = 0 +5:2/0/terrains_peering_bit/top_right_corner = 0 +6:2/0 = 0 +6:2/0/terrain_set = 0 +6:2/0/terrain = 0 +6:2/0/terrains_peering_bit/right_side = 0 +6:2/0/terrains_peering_bit/bottom_side = 0 +6:2/0/terrains_peering_bit/bottom_left_corner = 0 +6:2/0/terrains_peering_bit/left_side = 0 +6:2/0/terrains_peering_bit/top_left_corner = 0 +6:2/0/terrains_peering_bit/top_side = 0 +6:2/0/terrains_peering_bit/top_right_corner = 0 +7:2/0 = 0 +7:2/0/terrain_set = 0 +7:2/0/terrain = 0 +7:2/0/terrains_peering_bit/bottom_side = 0 +7:2/0/terrains_peering_bit/left_side = 0 +7:2/0/terrains_peering_bit/top_left_corner = 0 +7:2/0/terrains_peering_bit/top_side = 0 +8:2/0 = 0 +8:2/0/terrain_set = 0 +8:2/0/terrain = 0 +8:2/0/terrains_peering_bit/right_side = 0 +8:2/0/terrains_peering_bit/bottom_right_corner = 0 +8:2/0/terrains_peering_bit/bottom_side = 0 +8:2/0/terrains_peering_bit/left_side = 0 +8:2/0/terrains_peering_bit/top_side = 0 +8:2/0/terrains_peering_bit/top_right_corner = 0 +9:2/0 = 0 +9:2/0/terrain_set = 0 +9:2/0/terrain = 0 +9:2/0/terrains_peering_bit/right_side = 0 +9:2/0/terrains_peering_bit/bottom_right_corner = 0 +9:2/0/terrains_peering_bit/bottom_side = 0 +9:2/0/terrains_peering_bit/bottom_left_corner = 0 +9:2/0/terrains_peering_bit/left_side = 0 +9:2/0/terrains_peering_bit/top_left_corner = 0 +9:2/0/terrains_peering_bit/top_side = 0 +9:2/0/terrains_peering_bit/top_right_corner = 0 +10:2/0 = 0 +10:2/0/terrain_set = 0 +10:2/0/terrain = 0 +10:2/0/terrains_peering_bit/right_side = 0 +10:2/0/terrains_peering_bit/bottom_right_corner = 0 +10:2/0/terrains_peering_bit/bottom_side = 0 +10:2/0/terrains_peering_bit/left_side = 0 +10:2/0/terrains_peering_bit/top_left_corner = 0 +10:2/0/terrains_peering_bit/top_side = 0 +11:2/0 = 0 +11:2/0/terrain_set = 0 +11:2/0/terrain = 0 +11:2/0/terrains_peering_bit/bottom_side = 0 +11:2/0/terrains_peering_bit/bottom_left_corner = 0 +11:2/0/terrains_peering_bit/left_side = 0 +11:2/0/terrains_peering_bit/top_left_corner = 0 +11:2/0/terrains_peering_bit/top_side = 0 +0:3/0 = 0 +0:3/0/terrain_set = 0 +0:3/0/terrain = 0 +1:3/0 = 0 +1:3/0/terrain_set = 0 +1:3/0/terrain = 0 +1:3/0/terrains_peering_bit/right_side = 0 +2:3/0 = 0 +2:3/0/terrain_set = 0 +2:3/0/terrain = 0 +2:3/0/terrains_peering_bit/right_side = 0 +2:3/0/terrains_peering_bit/left_side = 0 +3:3/0 = 0 +3:3/0/terrain_set = 0 +3:3/0/terrain = 0 +3:3/0/terrains_peering_bit/left_side = 0 +4:3/0 = 0 +4:3/0/terrain_set = 0 +4:3/0/terrain = 0 +4:3/0/terrains_peering_bit/right_side = 0 +4:3/0/terrains_peering_bit/bottom_side = 0 +4:3/0/terrains_peering_bit/bottom_left_corner = 0 +4:3/0/terrains_peering_bit/left_side = 0 +4:3/0/terrains_peering_bit/top_side = 0 +5:3/0 = 0 +5:3/0/terrain_set = 0 +5:3/0/terrain = 0 +5:3/0/terrains_peering_bit/right_side = 0 +5:3/0/terrains_peering_bit/left_side = 0 +5:3/0/terrains_peering_bit/top_side = 0 +5:3/0/terrains_peering_bit/top_right_corner = 0 +6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/left_side = 0 +6:3/0/terrains_peering_bit/top_left_corner = 0 +6:3/0/terrains_peering_bit/top_side = 0 +7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 +7:3/0/terrains_peering_bit/right_side = 0 +7:3/0/terrains_peering_bit/bottom_right_corner = 0 +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_side = 0 +8:3/0 = 0 +8:3/0/terrain_set = 0 +8:3/0/terrain = 0 +8:3/0/terrains_peering_bit/right_side = 0 +8:3/0/terrains_peering_bit/top_side = 0 +8:3/0/terrains_peering_bit/top_right_corner = 0 +9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/left_side = 0 +9:3/0/terrains_peering_bit/top_left_corner = 0 +9:3/0/terrains_peering_bit/top_side = 0 +9:3/0/terrains_peering_bit/top_right_corner = 0 +10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 +10:3/0/terrains_peering_bit/top_left_corner = 0 +10:3/0/terrains_peering_bit/top_side = 0 +10:3/0/terrains_peering_bit/top_right_corner = 0 +11:3/0 = 0 +11:3/0/terrain_set = 0 +11:3/0/terrain = 0 +11:3/0/terrains_peering_bit/left_side = 0 +11:3/0/terrains_peering_bit/top_left_corner = 0 +11:3/0/terrains_peering_bit/top_side = 0 + +[resource] +tile_size = Vector2i(32, 32) +terrain_set_0/mode = 0 +terrain_set_0/terrain_0/name = "Walls" +terrain_set_0/terrain_0/color = Color(1, 0.301961, 0.329412, 1) +sources/1 = SubResource("TileSetAtlasSource_mgef5") -- 2.45.2 From 27d1606d080cecb89692587219e7668496ecb2e3 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 8 Apr 2023 01:52:25 +0200 Subject: [PATCH 11/13] Setting Up new Tileset --- Assets/Test_Tileset.tres | 25 ------- Assets/Tileset.tres | 152 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 25 deletions(-) delete mode 100644 Assets/Test_Tileset.tres diff --git a/Assets/Test_Tileset.tres b/Assets/Test_Tileset.tres deleted file mode 100644 index bdce79f..0000000 --- a/Assets/Test_Tileset.tres +++ /dev/null @@ -1,25 +0,0 @@ -[gd_resource type="TileSet" load_steps=5 format=3 uid="uid://b7cqbf6xdbeal"] - -[ext_resource type="Texture2D" uid="uid://bjyry6vvtr8h5" path="res://Assets/Sprites/PlaceHolderA.png" id="1_nuhua"] -[ext_resource type="Texture2D" uid="uid://cbtiuvqgnulmf" path="res://Assets/Sprites/PlaceHolderB.png" id="2_jl0te"] - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_urqd5"] -texture = ExtResource("1_nuhua") -texture_region_size = Vector2i(8, 8) -0:0/0 = 0 -0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:0/0/physics_layer_0/angular_velocity = 0.0 -0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-4, -4, 4, -4, 4, 4, -4, 4) - -[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7bjb0"] -texture = ExtResource("2_jl0te") -texture_region_size = Vector2i(8, 8) -0:0/0 = 0 -0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) -0:0/0/physics_layer_0/angular_velocity = 0.0 - -[resource] -tile_size = Vector2i(8, 8) -physics_layer_0/collision_layer = 1 -sources/0 = SubResource("TileSetAtlasSource_urqd5") -sources/1 = SubResource("TileSetAtlasSource_7bjb0") diff --git a/Assets/Tileset.tres b/Assets/Tileset.tres index c815918..5ea9e42 100644 --- a/Assets/Tileset.tres +++ b/Assets/Tileset.tres @@ -8,26 +8,42 @@ texture_region_size = Vector2i(32, 32) 0:0/0 = 0 0:0/0/terrain_set = 0 0:0/0/terrain = 0 +0:0/0/probability = 2.0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(12, 16, -12, 16, -12, -8, -8.5, -12, 8.5, -12, 12, -8) 0:0/0/terrains_peering_bit/bottom_side = 0 1:0/0 = 0 1:0/0/terrain_set = 0 1:0/0/terrain = 0 +1:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:0/0/physics_layer_0/angular_velocity = 0.0 +1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, 12.5, 12, 16, -12, 16, -12, -8, -8, -12, 16, -12, 16, 12) 1:0/0/terrains_peering_bit/right_side = 0 1:0/0/terrains_peering_bit/bottom_side = 0 2:0/0 = 0 2:0/0/terrain_set = 0 2:0/0/terrain = 0 +2:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:0/0/physics_layer_0/angular_velocity = 0.0 +2:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, -16, -12, 16, -12, 16, 12, 12.5, 12.5, 12, 16, -12, 16, -12.5, 12.5) 2:0/0/terrains_peering_bit/right_side = 0 2:0/0/terrains_peering_bit/bottom_side = 0 2:0/0/terrains_peering_bit/left_side = 0 3:0/0 = 0 3:0/0/terrain_set = 0 3:0/0/terrain = 0 +3:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:0/0/physics_layer_0/angular_velocity = 0.0 +3:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, 12.5, -16, 12, -16, -12, 8, -12, 12, -8, 12, 16, -12, 16) 3:0/0/terrains_peering_bit/bottom_side = 0 3:0/0/terrains_peering_bit/left_side = 0 4:0/0 = 0 4:0/0/terrain_set = 0 4:0/0/terrain = 0 +4:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:0/0/physics_layer_0/angular_velocity = 0.0 +4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(12, 16, -12, 16, -12.5, 12.5, -16, 12, -16, -16, 12, -16, 12.5, -12.5, 16, -12, 16, 12, 12.5, 12.5) 4:0/0/terrains_peering_bit/right_side = 0 4:0/0/terrains_peering_bit/bottom_side = 0 4:0/0/terrains_peering_bit/left_side = 0 @@ -36,6 +52,9 @@ texture_region_size = Vector2i(32, 32) 5:0/0 = 0 5:0/0/terrain_set = 0 5:0/0/terrain = 0 +5:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:0/0/physics_layer_0/angular_velocity = 0.0 +5:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, 12.5, -16, 12, -16, -12, 16, -12, 16, 16, -12, 16) 5:0/0/terrains_peering_bit/right_side = 0 5:0/0/terrains_peering_bit/bottom_right_corner = 0 5:0/0/terrains_peering_bit/bottom_side = 0 @@ -43,6 +62,9 @@ texture_region_size = Vector2i(32, 32) 6:0/0 = 0 6:0/0/terrain_set = 0 6:0/0/terrain = 0 +6:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:0/0/physics_layer_0/angular_velocity = 0.0 +6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, 12.5, 16, 12, 16, -12, -16, -12, -16, 16, 12, 16) 6:0/0/terrains_peering_bit/right_side = 0 6:0/0/terrains_peering_bit/bottom_side = 0 6:0/0/terrains_peering_bit/bottom_left_corner = 0 @@ -50,6 +72,9 @@ texture_region_size = Vector2i(32, 32) 7:0/0 = 0 7:0/0/terrain_set = 0 7:0/0/terrain = 0 +7:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:0/0/physics_layer_0/angular_velocity = 0.0 +7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, -16, -12, -12.5, -12.5, -12, -16, 16, -16, 16, 12, 12.5, 12.5, 12, 16, -12, 16, -12.5, 12.5) 7:0/0/terrains_peering_bit/right_side = 0 7:0/0/terrains_peering_bit/bottom_side = 0 7:0/0/terrains_peering_bit/left_side = 0 @@ -58,12 +83,19 @@ texture_region_size = Vector2i(32, 32) 8:0/0 = 0 8:0/0/terrain_set = 0 8:0/0/terrain = 0 +8:0/0/probability = 2.0 +8:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:0/0/physics_layer_0/angular_velocity = 0.0 +8:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, 16, -12, 16, -12, -8, -8, -12, 16, -12) 8:0/0/terrains_peering_bit/right_side = 0 8:0/0/terrains_peering_bit/bottom_right_corner = 0 8:0/0/terrains_peering_bit/bottom_side = 0 9:0/0 = 0 9:0/0/terrain_set = 0 9:0/0/terrain = 0 +9:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:0/0/physics_layer_0/angular_velocity = 0.0 +9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, -12.5, 16, -12, 16, 16, -16, 16, -16, -12, -12.5, -12.5, -12, -16, 12, -16) 9:0/0/terrains_peering_bit/right_side = 0 9:0/0/terrains_peering_bit/bottom_right_corner = 0 9:0/0/terrains_peering_bit/bottom_side = 0 @@ -73,6 +105,9 @@ texture_region_size = Vector2i(32, 32) 10:0/0 = 0 10:0/0/terrain_set = 0 10:0/0/terrain = 0 +10:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:0/0/physics_layer_0/angular_velocity = 0.0 +10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, 16, 16, -16, 16, -16, -12) 10:0/0/terrains_peering_bit/right_side = 0 10:0/0/terrains_peering_bit/bottom_right_corner = 0 10:0/0/terrains_peering_bit/bottom_side = 0 @@ -81,23 +116,36 @@ texture_region_size = Vector2i(32, 32) 11:0/0 = 0 11:0/0/terrain_set = 0 11:0/0/terrain = 0 +11:0/0/probability = 2.0 +11:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:0/0/physics_layer_0/angular_velocity = 0.0 +11:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 16, -16, -12, 8, -12, 12, -8, 12, 16) 11:0/0/terrains_peering_bit/bottom_side = 0 11:0/0/terrains_peering_bit/bottom_left_corner = 0 11:0/0/terrains_peering_bit/left_side = 0 0:1/0 = 0 0:1/0/terrain_set = 0 0:1/0/terrain = 0 +0:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:1/0/physics_layer_0/angular_velocity = 0.0 +0:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, -16, 12, -16, 12, 16, -12, 16) 0:1/0/terrains_peering_bit/bottom_side = 0 0:1/0/terrains_peering_bit/top_side = 0 1:1/0 = 0 1:1/0/terrain_set = 0 1:1/0/terrain = 0 +1:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:1/0/physics_layer_0/angular_velocity = 0.0 +1:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(12, 16, -12, 16, -12, -16, 12, -16, 12.5, -12.5, 16, -12, 16, 12, 12.5, 12.5) 1:1/0/terrains_peering_bit/right_side = 0 1:1/0/terrains_peering_bit/bottom_side = 0 1:1/0/terrains_peering_bit/top_side = 0 2:1/0 = 0 2:1/0/terrain_set = 0 2:1/0/terrain = 0 +2:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:1/0/physics_layer_0/angular_velocity = 0.0 +2:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, -16, -12, -12.5, -12.5, -12, -16, 12, -16, 12.5, -12.5, 16, -12, 16, 12, 12.5, 12.5, 12, 16, -12, 16, -12.5, 12.5) 2:1/0/terrains_peering_bit/right_side = 0 2:1/0/terrains_peering_bit/bottom_side = 0 2:1/0/terrains_peering_bit/left_side = 0 @@ -105,12 +153,18 @@ texture_region_size = Vector2i(32, 32) 3:1/0 = 0 3:1/0/terrain_set = 0 3:1/0/terrain = 0 +3:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:1/0/physics_layer_0/angular_velocity = 0.0 +3:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, -16, 12, -16, 12, 16, -12, 16, -12.5, 12.5, -16, 12, -16, -12, -12.5, -12.5) 3:1/0/terrains_peering_bit/bottom_side = 0 3:1/0/terrains_peering_bit/left_side = 0 3:1/0/terrains_peering_bit/top_side = 0 4:1/0 = 0 4:1/0/terrain_set = 0 4:1/0/terrain = 0 +4:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:1/0/physics_layer_0/angular_velocity = 0.0 +4:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, -12.5, 12, -16, -12, -16, -12, 16, 16, 16, 16, -12) 4:1/0/terrains_peering_bit/right_side = 0 4:1/0/terrains_peering_bit/bottom_right_corner = 0 4:1/0/terrains_peering_bit/bottom_side = 0 @@ -118,6 +172,9 @@ texture_region_size = Vector2i(32, 32) 5:1/0 = 0 5:1/0/terrain_set = 0 5:1/0/terrain = 0 +5:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:1/0/physics_layer_0/angular_velocity = 0.0 +5:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, -12.5, -12, -16, 16, -16, 16, 16, -16, 16, -16, -12) 5:1/0/terrains_peering_bit/right_side = 0 5:1/0/terrains_peering_bit/bottom_right_corner = 0 5:1/0/terrains_peering_bit/bottom_side = 0 @@ -128,6 +185,9 @@ texture_region_size = Vector2i(32, 32) 6:1/0 = 0 6:1/0/terrain_set = 0 6:1/0/terrain = 0 +6:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:1/0/physics_layer_0/angular_velocity = 0.0 +6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, -12.5, 16, -12, 16, 16, -16, 16, -16, -16, 12, -16) 6:1/0/terrains_peering_bit/right_side = 0 6:1/0/terrains_peering_bit/bottom_right_corner = 0 6:1/0/terrains_peering_bit/bottom_side = 0 @@ -138,6 +198,9 @@ texture_region_size = Vector2i(32, 32) 7:1/0 = 0 7:1/0/terrain_set = 0 7:1/0/terrain = 0 +7:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:1/0/physics_layer_0/angular_velocity = 0.0 +7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, -12.5, -12, -16, 12, -16, 12, 16, -16, 16, -16, -12) 7:1/0/terrains_peering_bit/bottom_side = 0 7:1/0/terrains_peering_bit/bottom_left_corner = 0 7:1/0/terrains_peering_bit/left_side = 0 @@ -145,6 +208,9 @@ texture_region_size = Vector2i(32, 32) 8:1/0 = 0 8:1/0/terrain_set = 0 8:1/0/terrain = 0 +8:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:1/0/physics_layer_0/angular_velocity = 0.0 +8:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, -16, 16, -16, 16, 16, -12, 16) 8:1/0/terrains_peering_bit/right_side = 0 8:1/0/terrains_peering_bit/bottom_right_corner = 0 8:1/0/terrains_peering_bit/bottom_side = 0 @@ -153,6 +219,9 @@ texture_region_size = Vector2i(32, 32) 9:1/0 = 0 9:1/0/terrain_set = 0 9:1/0/terrain = 0 +9:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:1/0/physics_layer_0/angular_velocity = 0.0 +9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, 12.5, 12.5, 12, 16, -16, 16, -16, -12, -12.5, -12.5, -12, -16) 9:1/0/terrains_peering_bit/right_side = 0 9:1/0/terrains_peering_bit/bottom_side = 0 9:1/0/terrains_peering_bit/bottom_left_corner = 0 @@ -162,6 +231,9 @@ texture_region_size = Vector2i(32, 32) 11:1/0 = 0 11:1/0/terrain_set = 0 11:1/0/terrain = 0 +11:1/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:1/0/physics_layer_0/angular_velocity = 0.0 +11:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, 12.5, 12, 16, -16, 16, -16, -16, 12, -16, 12.5, -12.5, 16, -12, 16, 12) 11:1/0/terrains_peering_bit/right_side = 0 11:1/0/terrains_peering_bit/bottom_side = 0 11:1/0/terrains_peering_bit/bottom_left_corner = 0 @@ -171,26 +243,42 @@ texture_region_size = Vector2i(32, 32) 0:2/0 = 0 0:2/0/terrain_set = 0 0:2/0/terrain = 0 +0:2/0/probability = 2.0 +0:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:2/0/physics_layer_0/angular_velocity = 0.0 +0:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, -16, 12, -16, 12, 8, 8.5, 12, -8.5, 12, -12, 8) 0:2/0/terrains_peering_bit/top_side = 0 1:2/0 = 0 1:2/0/terrain_set = 0 1:2/0/terrain = 0 +1:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:2/0/physics_layer_0/angular_velocity = 0.0 +1:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, -12.5, 16, -12, 16, 12, -8, 12, -12, 8, -12, -16, 12, -16) 1:2/0/terrains_peering_bit/right_side = 0 1:2/0/terrains_peering_bit/top_side = 0 2:2/0 = 0 2:2/0/terrain_set = 0 2:2/0/terrain = 0 +2:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:2/0/physics_layer_0/angular_velocity = 0.0 +2:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, 16, 12, -16, 12, -16, -12, -12.5, -12.5, -12, -16, 12, -16, 12.5, -12.5) 2:2/0/terrains_peering_bit/right_side = 0 2:2/0/terrains_peering_bit/left_side = 0 2:2/0/terrains_peering_bit/top_side = 0 3:2/0 = 0 3:2/0/terrain_set = 0 3:2/0/terrain = 0 +3:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:2/0/physics_layer_0/angular_velocity = 0.0 +3:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, -12.5, -12, -16, 12, -16, 12, 8, 8, 12, -16, 12, -16, -12) 3:2/0/terrains_peering_bit/left_side = 0 3:2/0/terrains_peering_bit/top_side = 0 4:2/0 = 0 4:2/0/terrain_set = 0 4:2/0/terrain = 0 +4:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:2/0/physics_layer_0/angular_velocity = 0.0 +4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, 12.5, 12, 16, -12, 16, -12, -16, 16, -16, 16, 12) 4:2/0/terrains_peering_bit/right_side = 0 4:2/0/terrains_peering_bit/bottom_side = 0 4:2/0/terrains_peering_bit/top_side = 0 @@ -198,6 +286,9 @@ texture_region_size = Vector2i(32, 32) 5:2/0 = 0 5:2/0/terrain_set = 0 5:2/0/terrain = 0 +5:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:2/0/physics_layer_0/angular_velocity = 0.0 +5:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, 12.5, -16, 12, -16, -16, 16, -16, 16, 16, -12, 16) 5:2/0/terrains_peering_bit/right_side = 0 5:2/0/terrains_peering_bit/bottom_right_corner = 0 5:2/0/terrains_peering_bit/bottom_side = 0 @@ -208,6 +299,9 @@ texture_region_size = Vector2i(32, 32) 6:2/0 = 0 6:2/0/terrain_set = 0 6:2/0/terrain = 0 +6:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:2/0/physics_layer_0/angular_velocity = 0.0 +6:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, 12.5, 12, 16, -16, 16, -16, -16, 16, -16, 16, 12) 6:2/0/terrains_peering_bit/right_side = 0 6:2/0/terrains_peering_bit/bottom_side = 0 6:2/0/terrains_peering_bit/bottom_left_corner = 0 @@ -218,6 +312,9 @@ texture_region_size = Vector2i(32, 32) 7:2/0 = 0 7:2/0/terrain_set = 0 7:2/0/terrain = 0 +7:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:2/0/physics_layer_0/angular_velocity = 0.0 +7:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, 12.5, -12, 16, 12, 16, 12, -16, -16, -16, -16, 12) 7:2/0/terrains_peering_bit/bottom_side = 0 7:2/0/terrains_peering_bit/left_side = 0 7:2/0/terrains_peering_bit/top_left_corner = 0 @@ -225,6 +322,9 @@ texture_region_size = Vector2i(32, 32) 8:2/0 = 0 8:2/0/terrain_set = 0 8:2/0/terrain = 0 +8:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:2/0/physics_layer_0/angular_velocity = 0.0 +8:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, -12.5, -12, -16, 16, -16, 16, 16, -12, 16, -12.5, 12.5, -16, 12, -16, -12) 8:2/0/terrains_peering_bit/right_side = 0 8:2/0/terrains_peering_bit/bottom_right_corner = 0 8:2/0/terrains_peering_bit/bottom_side = 0 @@ -234,6 +334,10 @@ texture_region_size = Vector2i(32, 32) 9:2/0 = 0 9:2/0/terrain_set = 0 9:2/0/terrain = 0 +9:2/0/probability = 2.0 +9:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:2/0/physics_layer_0/angular_velocity = 0.0 +9:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 9:2/0/terrains_peering_bit/right_side = 0 9:2/0/terrains_peering_bit/bottom_right_corner = 0 9:2/0/terrains_peering_bit/bottom_side = 0 @@ -245,6 +349,9 @@ texture_region_size = Vector2i(32, 32) 10:2/0 = 0 10:2/0/terrain_set = 0 10:2/0/terrain = 0 +10:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:2/0/physics_layer_0/angular_velocity = 0.0 +10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 12, -16, 12.5, -12.5, 16, -12, 16, 16, -12, 16, -12.5, 12.5, -16, 12) 10:2/0/terrains_peering_bit/right_side = 0 10:2/0/terrains_peering_bit/bottom_right_corner = 0 10:2/0/terrains_peering_bit/bottom_side = 0 @@ -254,6 +361,9 @@ texture_region_size = Vector2i(32, 32) 11:2/0 = 0 11:2/0/terrain_set = 0 11:2/0/terrain = 0 +11:2/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:2/0/physics_layer_0/angular_velocity = 0.0 +11:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(12, 16, -16, 16, -16, -16, 12, -16) 11:2/0/terrains_peering_bit/bottom_side = 0 11:2/0/terrains_peering_bit/bottom_left_corner = 0 11:2/0/terrains_peering_bit/left_side = 0 @@ -262,22 +372,40 @@ texture_region_size = Vector2i(32, 32) 0:3/0 = 0 0:3/0/terrain_set = 0 0:3/0/terrain = 0 +0:3/0/probability = 2.0 +0:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:3/0/physics_layer_0/angular_velocity = 0.0 +0:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, 12, -12, 8, -12, -8, -8, -12, 8, -12, 12, -8.5, 12, 8.5, 8, 12) 1:3/0 = 0 1:3/0/terrain_set = 0 1:3/0/terrain = 0 +1:3/0/probability = 2.0 +1:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +1:3/0/physics_layer_0/angular_velocity = 0.0 +1:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, 16, 12, -8, 12, -12, 8.5, -12, -8.5, -8, -12) 1:3/0/terrains_peering_bit/right_side = 0 2:3/0 = 0 2:3/0/terrain_set = 0 2:3/0/terrain = 0 +2:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +2:3/0/physics_layer_0/angular_velocity = 0.0 +2:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, 16, 12, -16, 12, -16, -12) 2:3/0/terrains_peering_bit/right_side = 0 2:3/0/terrains_peering_bit/left_side = 0 3:3/0 = 0 3:3/0/terrain_set = 0 3:3/0/terrain = 0 +3:3/0/probability = 2.0 +3:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +3:3/0/physics_layer_0/angular_velocity = 0.0 +3:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, -16, -12, 8, -12, 12, -8.5, 12, 8.5, 8, 12) 3:3/0/terrains_peering_bit/left_side = 0 4:3/0 = 0 4:3/0/terrain_set = 0 4:3/0/terrain = 0 +4:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +4:3/0/physics_layer_0/angular_velocity = 0.0 +4:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -12, 16, 12, 12.5, 12.5, 12, 16, -16, 16, -16, -12, -12.5, -12.5, -12, -16, 12, -16, 12.5, -12.5) 4:3/0/terrains_peering_bit/right_side = 0 4:3/0/terrains_peering_bit/bottom_side = 0 4:3/0/terrains_peering_bit/bottom_left_corner = 0 @@ -286,6 +414,9 @@ texture_region_size = Vector2i(32, 32) 5:3/0 = 0 5:3/0/terrain_set = 0 5:3/0/terrain = 0 +5:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +5:3/0/physics_layer_0/angular_velocity = 0.0 +5:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, -12.5, -16, -12, -16, 12, 16, 12, 16, -16, -12, -16) 5:3/0/terrains_peering_bit/right_side = 0 5:3/0/terrains_peering_bit/left_side = 0 5:3/0/terrains_peering_bit/top_side = 0 @@ -293,6 +424,9 @@ texture_region_size = Vector2i(32, 32) 6:3/0 = 0 6:3/0/terrain_set = 0 6:3/0/terrain = 0 +6:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +6:3/0/physics_layer_0/angular_velocity = 0.0 +6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(12.5, -12.5, 16, -12, 16, 12, -16, 12, -16, -16, 12, -16) 6:3/0/terrains_peering_bit/right_side = 0 6:3/0/terrains_peering_bit/left_side = 0 6:3/0/terrains_peering_bit/top_left_corner = 0 @@ -300,6 +434,9 @@ texture_region_size = Vector2i(32, 32) 7:3/0 = 0 7:3/0/terrain_set = 0 7:3/0/terrain = 0 +7:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +7:3/0/physics_layer_0/angular_velocity = 0.0 +7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12, -16, 12, -16, 12.5, -12.5, 16, -12, 16, 16, -12, 16, -12.5, 12.5, -16, 12, -16, -12, -12.5, -12.5) 7:3/0/terrains_peering_bit/right_side = 0 7:3/0/terrains_peering_bit/bottom_right_corner = 0 7:3/0/terrains_peering_bit/bottom_side = 0 @@ -308,12 +445,19 @@ texture_region_size = Vector2i(32, 32) 8:3/0 = 0 8:3/0/terrain_set = 0 8:3/0/terrain = 0 +8:3/0/probability = 2.0 +8:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +8:3/0/physics_layer_0/angular_velocity = 0.0 +8:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(16, -16, 16, 12, -8, 12, -12, 8, -12, -16) 8:3/0/terrains_peering_bit/right_side = 0 8:3/0/terrains_peering_bit/top_side = 0 8:3/0/terrains_peering_bit/top_right_corner = 0 9:3/0 = 0 9:3/0/terrain_set = 0 9:3/0/terrain = 0 +9:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +9:3/0/physics_layer_0/angular_velocity = 0.0 +9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, 12, -16, -16, 16, -16, 16, 12) 9:3/0/terrains_peering_bit/right_side = 0 9:3/0/terrains_peering_bit/left_side = 0 9:3/0/terrains_peering_bit/top_left_corner = 0 @@ -322,6 +466,9 @@ texture_region_size = Vector2i(32, 32) 10:3/0 = 0 10:3/0/terrain_set = 0 10:3/0/terrain = 0 +10:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +10:3/0/physics_layer_0/angular_velocity = 0.0 +10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-12.5, 12.5, -16, 12, -16, -16, 16, -16, 16, 12, 12.5, 12.5, 12, 16, -12, 16) 10:3/0/terrains_peering_bit/right_side = 0 10:3/0/terrains_peering_bit/bottom_side = 0 10:3/0/terrains_peering_bit/left_side = 0 @@ -331,12 +478,17 @@ texture_region_size = Vector2i(32, 32) 11:3/0 = 0 11:3/0/terrain_set = 0 11:3/0/terrain = 0 +11:3/0/probability = 2.0 +11:3/0/physics_layer_0/linear_velocity = Vector2(0, 0) +11:3/0/physics_layer_0/angular_velocity = 0.0 +11:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 12, -16, 12, 8, 8, 12, -16, 12) 11:3/0/terrains_peering_bit/left_side = 0 11:3/0/terrains_peering_bit/top_left_corner = 0 11:3/0/terrains_peering_bit/top_side = 0 [resource] tile_size = Vector2i(32, 32) +physics_layer_0/collision_layer = 0 terrain_set_0/mode = 0 terrain_set_0/terrain_0/name = "Walls" terrain_set_0/terrain_0/color = Color(1, 0.301961, 0.329412, 1) -- 2.45.2 From 579faa06dfb296519d652b402f7da2e12dc4a134 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 8 Apr 2023 01:52:42 +0200 Subject: [PATCH 12/13] Implementing Tileset for Map Generation --- Scenes/Cave.tscn | 5 +- Scripts/MapGenerator.gd | 114 ++++++++++++++++++++++++++-------------- 2 files changed, 79 insertions(+), 40 deletions(-) diff --git a/Scenes/Cave.tscn b/Scenes/Cave.tscn index ff0ce79..d3e9115 100644 --- a/Scenes/Cave.tscn +++ b/Scenes/Cave.tscn @@ -1,13 +1,14 @@ [gd_scene load_steps=3 format=3 uid="uid://chfp8mm3vwh2e"] -[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="1_8lepy"] +[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_a2htf"] [ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="2_qvwn8"] [node name="Node2D" type="Node2D"] [node name="TileMap" type="TileMap" parent="."] -tile_set = ExtResource("1_8lepy") +tile_set = ExtResource("1_a2htf") cell_quadrant_size = 8 collision_visibility_mode = 1 format = 2 script = ExtResource("2_qvwn8") +height = 33 diff --git a/Scripts/MapGenerator.gd b/Scripts/MapGenerator.gd index 9b066e6..d93c357 100644 --- a/Scripts/MapGenerator.gd +++ b/Scripts/MapGenerator.gd @@ -1,12 +1,9 @@ extends TileMap -@export var width := 128 -@export var height := 75 +@export var width := 60 +@export var height := 32 @export var fill_percentage := 0.65 -@export var solid_id := 0 -@export var non_solid_id := 1 - @export var solid_threshold := 7 @export var nonsolid_threshold := 4 @@ -16,6 +13,8 @@ extends TileMap @export var cave_gen_iterations := 3 @export var cave_mine_size_threshold := 80 +var tile_array : Array + func _ready(): var time = generate() print("time for generation: " + str(time)) @@ -25,40 +24,47 @@ func _ready(): func generate() -> float: var start_time = Time.get_unix_time_from_system() - + randomize() + setup_tile_data_array() fill_random_noise() - + for i in cave_gen_iterations: change_cells_by_neighbor_thresholds() - set_borders_solid() prepare_player_start_area() connect_caves(get_caves()) - for i in cave_gen_iterations: change_cells_by_neighbor_thresholds() - set_borders_solid() - + + tile_array_to_terrain() return Time.get_unix_time_from_system() - start_time +func setup_tile_data_array(): + tile_array.clear() + tile_array = [] + for x in width: + tile_array.append([]) + for y in height: + tile_array[x].append([]) + func fill_random_noise(): for x in width: for y in height: if randf() < fill_percentage: - self.set_cell(0, Vector2i(x,y),solid_id, Vector2i(0, 0)) + set_tile_solid(x,y) else: - self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + set_tile_non_solid(x,y) pass func set_borders_solid(): for x in width: - self.set_cell(0, Vector2i(x,0),solid_id, Vector2i(0, 0)) - self.set_cell(0, Vector2i(x,height-1),solid_id, Vector2i(0, 0)) + set_tile_solid(x,0) + set_tile_solid(x,height-1) for y in height: - self.set_cell(0, Vector2i(0,y),solid_id, Vector2i(0, 0)) - self.set_cell(0, Vector2i(width-1,y),solid_id, Vector2i(0, 0)) + set_tile_solid(0,y) + set_tile_solid(width-1,y) pass func prepare_player_start_area(): @@ -76,32 +82,32 @@ func prepare_player_start_area(): for y in range(center.y - start_area_size, center.y + start_area_size): # Decide if the tile is part of the Corner or not if !(p2 > 0 or p2 <= - (start_area_size*2 - p*2)): - self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + set_tile_non_solid(x,y) p2 -= 1 pass func change_cells_by_neighbor_thresholds(): - for x in range(1, width): - for y in range(1, height): + for x in range(1, width-1): + for y in range(1, height-1): # Count Solid Neighbor Cells var count := 0 #y-1 - if self.get_cell_source_id(0, Vector2i(x-1, y-1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x, y-1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x+1, y-1)) == solid_id: count +=1 + if get_tile_solid(x-1, y-1): count +=1 + if get_tile_solid(x, y-1): count +=1 + if get_tile_solid(x+1, y-1): count +=1 #y - if self.get_cell_source_id(0, Vector2i(x-1, y)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x+1, y)) == solid_id: count +=1 + if get_tile_solid(x-1, y): count +=1 + if get_tile_solid(x+1, y): count +=1 #y+1 - if self.get_cell_source_id(0, Vector2i(x-1, y+1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x, y+1)) == solid_id: count +=1 - if self.get_cell_source_id(0, Vector2i(x+1, y+1)) == solid_id: count +=1 + if get_tile_solid(x-1, y+1): count +=1 + if get_tile_solid(x, y+1): count +=1 + if get_tile_solid(x+1, y+1): count +=1 # Check Threshold if count < nonsolid_threshold: - self.set_cell(0, Vector2i(x,y),non_solid_id, Vector2i(0, 0)) + set_tile_non_solid(x,y) if count >= solid_threshold: - self.set_cell(0, Vector2i(x,y),solid_id, Vector2i(0, 0)) + set_tile_solid(x,y) pass func get_caves() -> Array: @@ -110,12 +116,12 @@ func get_caves() -> Array: for x in range (2, width-2): for y in range (2, height-2): - if self.get_cell_source_id(0, Vector2i(x, y)) == non_solid_id: + if get_tile_non_solid(x, y): flood_fill(x,y, caves) for cave in caves: for tile in cave: - self.set_cell(0, Vector2i(tile.x,tile.y),non_solid_id, Vector2i(0, 0)) + set_tile_non_solid(tile.x,tile.y) return caves func flood_fill(tilex, tiley, caves) -> Array: @@ -126,7 +132,7 @@ func flood_fill(tilex, tiley, caves) -> Array: if !cave.has(tile): cave.append(tile) - self.set_cell(0, Vector2i(tile.x,tile.y),solid_id, Vector2i(0, 0)) + set_tile_solid(tile.x,tile.y) #check adjacent cells var north = Vector2i(tile.x, tile.y+1) @@ -135,7 +141,7 @@ func flood_fill(tilex, tiley, caves) -> Array: var west = Vector2i(tile.x-1, tile.y) for dir in [north,south,east,west]: - if self.get_cell_source_id(0, dir) == non_solid_id: + if get_tile_non_solid(dir.x, dir.y): if !to_fill.has(dir) and !cave.has(dir): to_fill.append(dir) if cave.size() >= cave_mine_size_threshold: @@ -223,9 +229,41 @@ func create_tunnel(point1, point2, cave): drunk_x += dx drunk_y += dy - if self.get_cell_source_id(0, Vector2i(drunk_x, drunk_y)) == solid_id: - self.set_cell(0, Vector2i(drunk_x, drunk_y),non_solid_id, Vector2i(0, 0)) + if get_tile_solid(drunk_x, drunk_y): + set_tile_non_solid(drunk_x, drunk_y) #make tunnel wider - self.set_cell(0, Vector2i(drunk_x+1, drunk_y),non_solid_id, Vector2i(0, 0)) - self.set_cell(0, Vector2i(drunk_x+1, drunk_y+1),non_solid_id, Vector2i(0, 0)) + set_tile_non_solid(drunk_x+1, drunk_y) + set_tile_non_solid(drunk_x+1, drunk_y+1) + pass + +func tile_array_to_terrain(): + for x in width: + for y in height: + match tile_array[x][y]: + 0: set_terrain_tile_non_solid(x,y) + 1: set_terrain_tile_solid(x,y) + pass + +# Getter +func get_tile_solid(x : int, y : int) -> bool: + return tile_array[x][y] == 1 + +func get_tile_non_solid(x : int, y : int) -> bool: + return tile_array[x][y] == 0 + +# Setter +func set_tile_solid(x : int, y : int): + tile_array[x][y] = 1 + pass + +func set_tile_non_solid(x : int, y : int): + tile_array[x][y] = 0 + pass + +func set_terrain_tile_solid(x : int, y : int): + self.set_cells_terrain_connect(0, [Vector2i(x,y)], 0, 0, false) + pass + +func set_terrain_tile_non_solid(x : int, y : int): + self.set_cell(0, Vector2i(x,y), -1) pass -- 2.45.2 From fa686fb55a8fc35ab3a0a9a2862c9da6e3c2ca1d Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 8 Apr 2023 02:17:24 +0200 Subject: [PATCH 13/13] Merge Stuff Together, Setuped Cave in PlayerMovement Scene --- Assets/Tileset.tres | 3 ++- Scenes/PlayerMovement.tscn | 17 ++++++++++------- project.godot | 1 + 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Assets/Tileset.tres b/Assets/Tileset.tres index 5ea9e42..571b83b 100644 --- a/Assets/Tileset.tres +++ b/Assets/Tileset.tres @@ -488,7 +488,8 @@ texture_region_size = Vector2i(32, 32) [resource] tile_size = Vector2i(32, 32) -physics_layer_0/collision_layer = 0 +physics_layer_0/collision_layer = 1 +physics_layer_0/collision_mask = 0 terrain_set_0/mode = 0 terrain_set_0/terrain_0/name = "Walls" terrain_set_0/terrain_0/color = Color(1, 0.301961, 0.329412, 1) diff --git a/Scenes/PlayerMovement.tscn b/Scenes/PlayerMovement.tscn index d13fce9..47d5733 100644 --- a/Scenes/PlayerMovement.tscn +++ b/Scenes/PlayerMovement.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=12 format=3 uid="uid://ccgpsim5nfxd6"] +[ext_resource type="TileSet" uid="uid://bj7uu2180mie3" path="res://Assets/Tileset.tres" id="1_wkp62"] [ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"] -[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="3_0at2g"] [ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"] [ext_resource type="Texture2D" uid="uid://bl7vfn05ul1vu" path="res://Assets/Sprites/Jesus/Jesus Spritesheet.png" id="4_e5cec"] @@ -116,16 +116,20 @@ _data = { [node name="Player Movement" type="Node2D"] [node name="Map Generator" type="TileMap" parent="."] -tile_set = ExtResource("3_0at2g") -cell_quadrant_size = 8 +tile_set = ExtResource("1_wkp62") +cell_quadrant_size = 32 collision_visibility_mode = 1 format = 2 script = ExtResource("4_8st0q") +start_area_size = 3 +start_area_corner_size = 1 [node name="Player" type="CharacterBody2D" parent="." node_paths=PackedStringArray("animation_player")] -position = Vector2(512, 300) -scale = Vector2(0.25, 0.25) +position = Vector2(960, 512) +scale = Vector2(0.5, 0.5) +collision_layer = 0 script = ExtResource("1_x3102") +speed = 60 animation_player = NodePath("Player Animator") [node name="Player Sprite" type="Sprite2D" parent="Player"] @@ -138,11 +142,10 @@ vframes = 4 polygon = PackedVector2Array(12, 32, -16, 32, -16, -24, 12, -24) [node name="Player Camera" type="Camera2D" parent="Player"] -zoom = Vector2(10, 10) +zoom = Vector2(3, 3) position_smoothing_enabled = true drag_horizontal_enabled = true drag_vertical_enabled = true -editor_draw_limits = true editor_draw_drag_margin = true [node name="Player Animator" type="AnimationPlayer" parent="Player"] diff --git a/project.godot b/project.godot index 5397ca5..4d58277 100644 --- a/project.godot +++ b/project.godot @@ -53,6 +53,7 @@ move_down={ [layer_names] 2d_physics/layer_1="Map" +2d_physics/layer_2="Player" [rendering] -- 2.45.2