From 095ab00e2a2feea10e1387b7f3b0a061b458e962 Mon Sep 17 00:00:00 2001 From: Remwrath Date: Fri, 24 Apr 2020 00:42:28 +0200 Subject: [PATCH 1/3] simple movement, switch camera and robot --- controller.gd | 58 ++++++++++++++++++++++++++++++++++++++++++++ controller.tscn | 6 +++++ default_env.tres | 2 ++ project.godot | 33 +++++++++++++++++++++++++ robot.gd | 17 +++++++++++++ robot.tscn | 26 ++++++++++++++++++++ sandbox.tscn | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 205 insertions(+) create mode 100644 controller.gd create mode 100644 controller.tscn create mode 100644 robot.gd create mode 100644 robot.tscn create mode 100644 sandbox.tscn diff --git a/controller.gd b/controller.gd new file mode 100644 index 0000000..cac3df0 --- /dev/null +++ b/controller.gd @@ -0,0 +1,58 @@ +extends Node + +var robot : KinematicBody2D +var camera : Camera2D +var MAX_SPEED = 2 +var ACCELERATION = 100 +var motion = Vector2.ZERO +var rotation_dir = 0 + +func _physics_process(delta): + var axis = get_input_axis() + if robot != null: + robot.rotation += rotation_dir * 1.5 * delta + if axis == Vector2.ZERO: + apply_friction(ACCELERATION * delta) + else: + apply_movement(axis * ACCELERATION * delta) + robot.move_and_collide(motion) + +func get_input_axis(): + var axis = Vector2.ZERO + rotation_dir = int(Input.is_action_pressed("robo_right")) - int(Input.is_action_pressed("robo_left")) + axis.y = int(Input.is_action_pressed("robo_down")) - int(Input.is_action_pressed("robo_up")) + return axis.normalized().rotated(robot.rotation) + +func apply_friction(amount): + if motion.length() > amount: + motion -= motion.normalized() * amount + else: + motion = Vector2.ZERO + +func apply_movement(amount): + motion += amount + motion = motion.clamped(MAX_SPEED) + +# Called when the node enters the scene tree for the first time. +func _ready(): + robot = $"/root/sandbox/robot" + camera = $"/root/sandbox/Camera2D" + camera.get_parent().remove_child(camera) + robot.add_child(camera) + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass + +func _input(event): + if event.is_action_pressed("robo_action"): + if robot.myname == "robot1": + robot.remove_child(camera) + robot = $"/root/sandbox/robot2" + robot.add_child(camera) + else: + robot.remove_child(camera) + robot = $"/root/sandbox/robot" + robot.add_child(camera) diff --git a/controller.tscn b/controller.tscn new file mode 100644 index 0000000..bfe4ed3 --- /dev/null +++ b/controller.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://controller.gd" type="Script" id=1] + +[node name="controller" type="Node"] +script = ExtResource( 1 ) diff --git a/default_env.tres b/default_env.tres index 98f26a7..20207a4 100644 --- a/default_env.tres +++ b/default_env.tres @@ -1,5 +1,7 @@ [gd_resource type="Environment" load_steps=2 format=2] + [sub_resource type="ProceduralSky" id=1] + [resource] background_mode = 2 background_sky = SubResource( 1 ) diff --git a/project.godot b/project.godot index 3e6c616..104b29d 100644 --- a/project.godot +++ b/project.godot @@ -16,8 +16,41 @@ _global_script_class_icons={ [application] config/name="Project- Proxy" +run/main_scene="res://sandbox.tscn" config/icon="res://icon.png" +[autoload] + +Controller="*res://controller.tscn" + +[input] + +robo_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":87,"unicode":0,"echo":false,"script":null) + ] +} +robo_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":83,"unicode":0,"echo":false,"script":null) + ] +} +robo_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) + ] +} +robo_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null) + ] +} +robo_action={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) + ] +} + [rendering] environment/default_environment="res://default_env.tres" diff --git a/robot.gd b/robot.gd new file mode 100644 index 0000000..360b0cc --- /dev/null +++ b/robot.gd @@ -0,0 +1,17 @@ +extends KinematicBody2D + +export var myname = "" +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" + + +# Called when the node enters the scene tree for the first time. +func _ready(): + $Label.text = myname + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +#func _process(delta): +# pass diff --git a/robot.tscn b/robot.tscn new file mode 100644 index 0000000..1c35dbf --- /dev/null +++ b/robot.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://icon.png" type="Texture" id=1] +[ext_resource path="res://robot.gd" type="Script" id=2] + +[sub_resource type="CircleShape2D" id=1] +radius = 30.0 + +[node name="robot" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) + +[node name="Label" type="Label" parent="."] +margin_left = -22.238 +margin_top = 32.0 +margin_right = 23.762 +margin_bottom = 46.0 +text = "ROBOT" +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/sandbox.tscn b/sandbox.tscn new file mode 100644 index 0000000..dcf0f2d --- /dev/null +++ b/sandbox.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://robot.tscn" type="PackedScene" id=1] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 40, 40 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 80, 80 ) + +[node name="sandbox" type="Node2D"] + +[node name="robot" parent="." instance=ExtResource( 1 )] +position = Vector2( 215.775, 360.402 ) +myname = "robot1" + +[node name="robot2" parent="." instance=ExtResource( 1 )] +position = Vector2( 681.091, 382.563 ) +myname = "robot2" + +[node name="RigidBody2D" type="RigidBody2D" parent="."] +mass = 10.2041 +gravity_scale = 0.0 +linear_damp = 10.0 +angular_damp = 10.0 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"] +position = Vector2( 193, 179 ) +shape = SubResource( 1 ) + +[node name="Polygon2D" type="Polygon2D" parent="RigidBody2D"] +polygon = PoolVector2Array( 153.106, 140.18, 232.139, 140.18, 232.738, 218.016, 153.705, 217.417 ) + +[node name="StaticBody2D" type="StaticBody2D" parent="."] +position = Vector2( 452.544, 267.094 ) + +[node name="Polygon2D" type="Polygon2D" parent="StaticBody2D"] +polygon = PoolVector2Array( -86.2895, -80.1853, 76.9996, -77.8526, 75.8333, 76.1057, -79.2914, 74.9394 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +shape = SubResource( 2 ) + +[node name="Camera2D" type="Camera2D" parent="."] +current = true +smoothing_enabled = true + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="UI" type="Control" parent="CanvasLayer"] +margin_right = 40.0 +margin_bottom = 40.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label" type="Label" parent="CanvasLayer/UI"] +margin_right = 40.0 +margin_bottom = 14.0 +text = "WASD = move +E = switch robots" +__meta__ = { +"_edit_use_anchors_": false +} From 322455ee9ffbbe9330dd3568f4167e639d782269 Mon Sep 17 00:00:00 2001 From: zwometer Date: Fri, 15 May 2020 18:43:05 +0200 Subject: [PATCH 2/3] added a duck and a stone and the option to combine the two --- controller.gd | 4 ++++ project.godot | 14 ++++++++++++-- sandbox.tscn | 45 +++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 59 insertions(+), 4 deletions(-) diff --git a/controller.gd b/controller.gd index cac3df0..9790695 100644 --- a/controller.gd +++ b/controller.gd @@ -56,3 +56,7 @@ func _input(event): robot.remove_child(camera) robot = $"/root/sandbox/robot" robot.add_child(camera) + if event.is_action_pressed("robo_combine"): + get_node("/root/sandbox/Interaction").combine( + get_node("/root/sandbox/Interaction/Stone"), + get_node("/root/sandbox/Interaction/Duck")); diff --git a/project.godot b/project.godot index 104b29d..2f60ab0 100644 --- a/project.godot +++ b/project.godot @@ -8,9 +8,14 @@ config_version=4 -_global_script_classes=[ ] +_global_script_classes=[ { +"base": "RigidBody2D", +"class": "Thing", +"language": "GDScript", +"path": "res://Thing.gd" +} ] _global_script_class_icons={ - +"Thing": "" } [application] @@ -50,6 +55,11 @@ robo_action={ "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":69,"unicode":0,"echo":false,"script":null) ] } +robo_combine={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":70,"unicode":0,"echo":false,"script":null) + ] +} [rendering] diff --git a/sandbox.tscn b/sandbox.tscn index dcf0f2d..ab70c6c 100644 --- a/sandbox.tscn +++ b/sandbox.tscn @@ -1,6 +1,11 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://robot.tscn" type="PackedScene" id=1] +[ext_resource path="res://Interaction.gd" type="Script" id=2] +[ext_resource path="res://Stone.gd" type="Script" id=3] +[ext_resource path="res://Duck.gd" type="Script" id=4] +[ext_resource path="res://Visuals/Duck.png" type="Texture" id=5] +[ext_resource path="res://Visuals/Stone.png" type="Texture" id=6] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 40, 40 ) @@ -8,6 +13,12 @@ extents = Vector2( 40, 40 ) [sub_resource type="RectangleShape2D" id=2] extents = Vector2( 80, 80 ) +[sub_resource type="RectangleShape2D" id=4] +extents = Vector2( 32, 32 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 32, 32 ) + [node name="sandbox" type="Node2D"] [node name="robot" parent="." instance=ExtResource( 1 )] @@ -57,7 +68,37 @@ __meta__ = { margin_right = 40.0 margin_bottom = 14.0 text = "WASD = move -E = switch robots" +E = switch robots +F = combine Stone and Duck" __meta__ = { "_edit_use_anchors_": false } + +[node name="Interaction" type="Node" parent="."] +script = ExtResource( 2 ) + +[node name="Stone" type="RigidBody2D" parent="Interaction"] +position = Vector2( 238.668, 469.723 ) +script = ExtResource( 3 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Sprite" type="Sprite" parent="Interaction/Stone"] +texture = ExtResource( 6 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Interaction/Stone"] +shape = SubResource( 4 ) + +[node name="Duck" type="RigidBody2D" parent="Interaction"] +position = Vector2( 395.124, 450.939 ) +script = ExtResource( 4 ) +__meta__ = { +"_edit_group_": true +} + +[node name="Sprite" type="Sprite" parent="Interaction/Duck"] +texture = ExtResource( 5 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Interaction/Duck"] +shape = SubResource( 3 ) From d91584bcbb65bb4a22e018f95a259a994a08d6a3 Mon Sep 17 00:00:00 2001 From: zwometer Date: Fri, 15 May 2020 18:45:40 +0200 Subject: [PATCH 3/3] some files were missing in the last commit so let's try that again... still learning git --- ...k.png-09368b9ecb7440ffc80609345a04c943.md5 | 3 ++ ....png-09368b9ecb7440ffc80609345a04c943.stex | Bin 0 -> 980 bytes ...l.png-4b57200a9b5d4d6f89cce1bdbbdb2eec.md5 | 3 ++ ....png-4b57200a9b5d4d6f89cce1bdbbdb2eec.stex | Bin 0 -> 192 bytes ...l.png-c94dd3d76cd11d1bdd359e599bb14365.md5 | 3 ++ ...e.png-72d924ca1fd7a477c205cb72a1d6337b.md5 | 3 ++ ....png-72d924ca1fd7a477c205cb72a1d6337b.stex | Bin 0 -> 4431 bytes Duck.gd | 14 ++++++ Interaction.gd | 43 ++++++++++++++++++ Stone.gd | 14 ++++++ Thing.gd | 17 +++++++ Visuals/Duck.png | Bin 0 -> 876 bytes Visuals/Duck.png.import | 34 ++++++++++++++ Visuals/Stone.png | Bin 0 -> 3646 bytes Visuals/Stone.png.import | 34 ++++++++++++++ 15 files changed, 168 insertions(+) create mode 100644 .import/Duck.png-09368b9ecb7440ffc80609345a04c943.md5 create mode 100644 .import/Duck.png-09368b9ecb7440ffc80609345a04c943.stex create mode 100644 .import/New Piskel.png-4b57200a9b5d4d6f89cce1bdbbdb2eec.md5 create mode 100644 .import/New Piskel.png-4b57200a9b5d4d6f89cce1bdbbdb2eec.stex create mode 100644 .import/New Piskel.png-c94dd3d76cd11d1bdd359e599bb14365.md5 create mode 100644 .import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.md5 create mode 100644 .import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.stex create mode 100644 Duck.gd create mode 100644 Interaction.gd create mode 100644 Stone.gd create mode 100644 Thing.gd create mode 100644 Visuals/Duck.png create mode 100644 Visuals/Duck.png.import create mode 100644 Visuals/Stone.png create mode 100644 Visuals/Stone.png.import diff --git a/.import/Duck.png-09368b9ecb7440ffc80609345a04c943.md5 b/.import/Duck.png-09368b9ecb7440ffc80609345a04c943.md5 new file mode 100644 index 0000000..f68f7c5 --- /dev/null +++ b/.import/Duck.png-09368b9ecb7440ffc80609345a04c943.md5 @@ -0,0 +1,3 @@ +source_md5="ca2d599ef54a2643f218531e12c042f1" +dest_md5="b0901b03b2b8bb064742c4c46eb82b06" + diff --git a/.import/Duck.png-09368b9ecb7440ffc80609345a04c943.stex b/.import/Duck.png-09368b9ecb7440ffc80609345a04c943.stex new file mode 100644 index 0000000000000000000000000000000000000000..139bc1e757fc083cced8ad9e66b05d872cc15c30 GIT binary patch literal 980 zcmV;_11tPTL{n5i0000$000040000001yWO0002E0{{R}PDdb#P)Px&Zb?KzRCt`_n>%jfFc5}E zfyNf8j>>h0|Eq)MeF}Le2vB(2pEPz z^092jaV*+CMaO-hw0NYI2?wKgoZvI8*)1R+is}7T^!*Rrd)M3A4*7j8qTuO)6yfdw zc;P;t2`}I4Q`>|tV~i)o&)?Jf|LJ&+-poZqZ38}XZlc7WzfN%eI>G!sJsCpX>r-pe zMYIM;COZIFjIe5}B%A>*_)GR6hWvDy*S{2A8_iAVhG8Hd;{Lfj?Dg*wnwp7^<7Yl- zIu{%OenoOviuZ8PaF6f-@Y}l-Qj;_kGE~I@7WbXR1h~{yFQZEQDbQUvdcqHiV_CA6^GpQmfNykZ$tC&mXI9*<2X{AmA4rNRtXVv zwj7FL9g}KrlK~bdH_eJ6Me|(QL%{gh+IB0fMIgTUDNl-e2uQ_CRsco#bB5+bkONQ} zU@6|C14dxq_sMII$7B6oqJ1AnT})yvKJ0x;WC&)PsH6+PYR(IN-{ZAT6aj^L9`K%6 z?hv6;Yt*&rGK)-Q4Ja)>M374q5o>3<%y2rMpE6P8Do{gwm`%=w8xAS9Y=pAKOVNnp z%uBVEYk-M(zxQKU3}5@k0ae6XfZ~1OVJ2E@K=H7T!3~AbM6TC;)Dd7Io?7-o zrpv5~l31@(?DjZ}NX2V<-Dmd(aD>By5+6HzG%?_GJg>t*8{&9RtW6!xZZaxS2f>Nu))?W5_IsK{)D4Fgy6e>oW5__9;w+~f^ z@ZY}~$}*rtD!UY16-v$|$ma0&fV7ixYlWK}ilj&?Q}OLl?lQPkmF(yRXr#wQ6ZY0> zadEw{1%j{^iT2+eif+)n39>MP5xRLPE@1%jG&yc4rUodm=ZL*EwtO)XqFyQPpCgv+ zRS~cLqC$nt&aXkVG(b}QqFM#8!P*tw6kAJbvzEaYMwF@@HXCaj%y2Arur~#6m56bYPb5h9&dYgnuDHB>HMR$`=XkoyT zONjphrTXs%Y8&8EKfUqx0vH`tjHn&~irKzOH2eeXrf#=l)J)s}0000F2@c_4U|;}Y79eI|5MXBnl1qR%z|UQw6G-rKNpS(Wyq+E|K|mU;oP!O>I>NuN z8%Qx02e~^jtUD+363B`2ba4!km>S!Ek(WV{!&!d%Z8qWW7gze;S^m9H=;FVvQ=EK- zI30Cb)OlGF($ueaz1YiaaEu}0+)m*nj(}{|1yeThZY-Vs?=kl~z4GvEU(ac4#rw24 dzunuKR}*Dus3c!@!WU=@gQu&X%Q~loCIFA#I6(ja literal 0 HcmV?d00001 diff --git a/.import/New Piskel.png-c94dd3d76cd11d1bdd359e599bb14365.md5 b/.import/New Piskel.png-c94dd3d76cd11d1bdd359e599bb14365.md5 new file mode 100644 index 0000000..5722afc --- /dev/null +++ b/.import/New Piskel.png-c94dd3d76cd11d1bdd359e599bb14365.md5 @@ -0,0 +1,3 @@ +source_md5="a33962dbd961bfd22b29d62f4bd7d75a" +dest_md5="f4249c44be2ea010745f0021faed38e2" + diff --git a/.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.md5 b/.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.md5 new file mode 100644 index 0000000..1e7aa05 --- /dev/null +++ b/.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.md5 @@ -0,0 +1,3 @@ +source_md5="4a950cf8deae6b98bd20401e41475f5a" +dest_md5="5738966f09649ceafc4f38ccdd982e27" + diff --git a/.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.stex b/.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.stex new file mode 100644 index 0000000000000000000000000000000000000000..93180a7553eb5b0d1ed5a1805bbcb6bfbc3a9690 GIT binary patch literal 4431 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 Cg@IH6 literal 0 HcmV?d00001 diff --git a/Visuals/Duck.png.import b/Visuals/Duck.png.import new file mode 100644 index 0000000..a9411e5 --- /dev/null +++ b/Visuals/Duck.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Duck.png-09368b9ecb7440ffc80609345a04c943.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Visuals/Duck.png" +dest_files=[ "res://.import/Duck.png-09368b9ecb7440ffc80609345a04c943.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Visuals/Stone.png b/Visuals/Stone.png new file mode 100644 index 0000000000000000000000000000000000000000..9341cdefd65b0d2b473d3a3db5853be11b6533dc GIT binary patch literal 3646 zcmV-E4#Dw>P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D4bw?PK~#8N?VCw# zRNE1T58YsljhWkkjWJ-vV8#~=Mj&Q`K$wR>L1B|cM1-;fMFN2o1Sk)^1!9j_WW_40 zaV}*)VXbXxGs<# zJ9fH8(fAj~_q!7Kub$-@bj_hYuf4_Uzg7x4U=mz7Y)RGU*Zkwr$%s zqeqV(`*U(~JOEi)S#H390Z#W^Lqmgm`SRuE&!0d4C_rla_wVoCy?fXA{Q2{n2M!$g z7)+5di3Ha!k*{CBIx)e;VllUL=~B07(IS_fo$cPfeOoL>YzHLu*{|zX0TBy^WmKZU zHKQ_b-n>{e8eJvh3m-pz?E3ZV=Zzmee7Jk@;)Uzgt5;TGVPS0W;K2nlzTnN9H!-oK zZtmQ*|TzXVftx^xKx^78VU6yskS8ynrFOP73m{ra`f0ZW!FaqHKwcdJ&d za>Kia!@@0fsyX>8q`Idd|`gp2~Pc=6(4^5hN~v0m3=8I(l`D8aew*RQ*C=gzrn z*RGNDTv1Vx-x0WyBkte74;a}3qEsLiD@>|RoH+3&n7Y%XQvooKuUxsZxT2z>K(wDD zZ~k8KT%t_hVmz521NjUCWTejv2uYGq0T|_iXl`z9?9-=DG4;s^6FLWgQpXId?GTOa=|K4wXPoF;ZiBBx>-nQ7+ST}j{WH)f& zKo1Q46(;^Ub%F{fr`^K?M0hBN)a&~W<&cw|RVRGYE)ZnstyFn3e7`)kRm$d*$Sz#C z;N&S+RaNEbOya|MJdXfO;9XxBVIcSF>gs%>Qd9_e766WF1^VWzZ>R1KX)$2u&Yd|@ zrdS@!;d^@?C&n=XFVf6-;+#eZj2=DOGXQz^?3t%OGH%>BH+1MwY6RbyClgFaD+eeE zmB@(gQs{SyVjSfkJb2&%01ON^!|^uFgwKG0XX#IZggG#U@K6HejNn5-CA4P(_XFm1 zT24p{fQ1Ve7HRQKQfR6a^c9;jcJ$GsNABj$n?7+7!zhjK~y@#)IX*?Q8#<`><;e^X#t?EEl)~(FNF)t<7DqtJRTN|z&IE{|M)R9 zzVn=l5kLtSg_<85uz+#d3XM_$Q7lk8#DtUpAok14%f|}snOb-e72TC9S3KSE9-c$m zGv1UZrZEU=0|fNOSj5H~0LBD%1ilj*gbht|MO8h<^t{7NNC^O9Ur28k%D>T~#Zn>* z&!e0rxnxF%1>-RWH0r;#>0VNQ!HLg@lNt+2N z0icsxiO~O}64E#skVPd20K_iC_!eNh;XSqxL~ zZ~`O*MvWTfS-`o0?UjTHP>F=Ocm|u858xQ9VkzaEkP-lg42vn*fB*_ws&$wx1bNxI*5EK~F1w;yu%znCDQK9R(&(6Tk#04+y*% zq2JlFXZ@CE2{4h^e2JJKHc>GG#NUq`Ir1nN(jslTF36;0)%}`$zYN~4tXs^R92P>M zbd3)Sy8+4q1apxSD6q)vuq#~w1VYJnhl>|4dWH$qw*usC(5;oU(mvVwUWLX86oU2` z&nb_E@JdGn!|@i|AnyctDZ=RwFmK2L8q9w)&O=e!ZFtgQ3^Ft=#x-ybkP zv47*n4Q~wJS+_kwCs+lW2&w%1d_pQm<8kH~%~7Ld*pdsP{A{&g!GZ$b;R$8`4o?Fo z$m1=iJ@$NzCo`i2p7<8(<9$HD`;^2ZM~?K{AopPz0xK|tmm{erTbq}+%M&L~^m9{j zYMafH&N0o?M}7Wz^ytz1!4ManH*elgG6ru~3Z-_>_q1;@9$`ElWlp?JZBNpJ5xgLo zF=K|CG-;CW$8(O^sW1TQ!=ecjCb-R;H@mfK*Se`wr}{Gob0~4&Q$qadmz3L%E$o831r(D-c6!eRhe();=6pWUfbr##@? zV;7(v;I{+%5iS@9BNELQFZ5x3LI5Ul&XA3aZ`NG@J-P-G)i$?_WJAUT?RbwH@?o#X zE5S1w_faxzd|Qm+K8n#7z*VyP96&itPT)S@@7%f5(!VVx@SN}@XRv(|y0C#Q7I3x3 zJ=yhFJ$n%haZyoi7xbX?go=0o#Qnp##Y}^byvQk%cMmki+B_yUA31{`URa;qgz<#50C}y?cXaQgny(DiKe~&> z!`a=u7G3~v@{CDo7z^4I96Uo=7W&n9-}zVF#fs@ZLY}!{n6V}iBlymJ=7hEY02`?_ zFhCV3Kd}0Y4jTwd`qL7LF_4oczd}=5pFVw>JdmUCnj&3Vc7q6%hjI+UpfCV!2?o)J z{ssn(v3+C&2b_@tf#gOU(#Z5idB$5qY#zWR{GcrP!M4Em^a%?(Fc;&PpYP<8l9G~K zmD#0Qf3`sOKSf1Ft6gSDTZ`B;l*dER&?YzKk(a8x8Wl!)N@Rq=K+%?Mjtq|{pfnUk z;@7k9Tn#9~f&{6DrrnW{usbzhCTf&RGyqd*>@QT+iLY+=oCGZyigP#~;e0=onaMv$XYWd!=7 z8~p(QClIpI{gdYQhDLN$^u+>-p==@m;)TUAg1#^Tn$iHEmki)~Lxs~R#a)#Yr!MC? zhOrJzATuXxgn=1oV9-#Wbvr7F?2AATj-4!&i~%Ob1Z(sSGlIrFJV){)qu-;6##D6B z7jQ7b3~Wp26J`pZQyFJMUjq#0aE4+1aL7hbI#tgn6I+NmU<5k~R}Y9l1+MxsNhL=6COMmokOk}v?&8R4^xNrZ*0r3(TJgj<*qVNfv^?^~T=eeg!2W@ByM zWP;Aj1E7f-^VoP2FA13WTQPutSd59h$I=8Lk;E$w;+EjT=v%+|mWt310Fp6@oWnEv zAQ+t}c}BQF(y?tKm0XZa%z#7N6E~nMGRy#p6I|4Md815(&G9~DOUTle+4LCA$?q?ehHx59&3!o4p zq2f?%vJk*7oQ^~nE?js`U~MGWo%G2wMvelXVTTc zm=V4LvVZ7f01q6Ml zOH>QI7VH1Ut1%D2p+kqha5Su_sCc5pF-iv{ks!Oj7!W1l5IY=odDli_NyH4UnQDLz z{c#B1w^(P#dMuhlYeIt-t^@dvjsl|jRYSuy0dQCILI1NF`!8&6^;TGuzL$Zu^6Xuq zR4$|YVK{6cq41iDMiNTIj7&8Q!4c@Oa^*_D)$!5=Bk?Ts?h$OU`lp4R+{0Nqoj%k& zKj_|HWcVR{{43f{+9 zo##COoazV#JWmdgGnxewKioD3L%hIT0FX0l#DqWX-MhEtWvEF)&EtO{G0`He{w$7! zlxgD;3k6P+6l*XLP-uu8Q7_|nsMYuzfe<1z0g&`RV5FseGG=sz05k>@3dA)<8jWhO zEf2RRX#tRo8C@mh0;taw!MgzfUG`sWx}{sXrCYkCTe_uNx}{tGFT}b301{1MAN`_k Q+W-In07*qoM6N<$g52=Bl>h($ literal 0 HcmV?d00001 diff --git a/Visuals/Stone.png.import b/Visuals/Stone.png.import new file mode 100644 index 0000000..3219396 --- /dev/null +++ b/Visuals/Stone.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Visuals/Stone.png" +dest_files=[ "res://.import/Stone.png-72d924ca1fd7a477c205cb72a1d6337b.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0