From ba89ea8b4900fc881a5ea2adb9f7895151709732 Mon Sep 17 00:00:00 2001 From: Hamcha Date: Mon, 6 Jul 2020 14:38:05 +0200 Subject: [PATCH] First commit --- .gitignore | 2 + Actors/Player/Player.gd | 21 +++ Actors/Player/Player.tscn | 19 ++ Graphics/tgstation/1x1.tres | 233 +++++++++++++++++++++++++ Graphics/tgstation/2x2.tres | 48 +++++ Graphics/tgstation/floor.png | Bin 0 -> 1113 bytes Graphics/tgstation/floor.png.import | 34 ++++ Graphics/tgstation/player.png | Bin 0 -> 530 bytes Graphics/tgstation/player.png.import | 34 ++++ Graphics/tgstation/sprites/Player.tscn | 106 +++++++++++ Graphics/tgstation/wall.png | Bin 0 -> 569 bytes Graphics/tgstation/wall.png.import | 34 ++++ Graphics/tgstation/walls.png | Bin 0 -> 775 bytes Graphics/tgstation/walls.png.import | 34 ++++ Graphics/transparent.png | Bin 0 -> 156 bytes Graphics/transparent.png.import | 34 ++++ Graphics/white.png | Bin 0 -> 117 bytes Graphics/white.png.import | 34 ++++ Scenes/Map.gd | 6 + Scenes/Maps/odyssey.tscn | 31 ++++ Scenes/Rendering/MapTiles.gd | 64 +++++++ Scenes/Rendering/Occluder.gd | 43 +++++ Scenes/Test.tscn | 20 +++ Scenes/World.gd | 10 ++ Scenes/clown-dir1.png | Bin 0 -> 1130 bytes Scenes/clown-dir1.png.import | 34 ++++ default_env.tres | 8 + icon.png | Bin 0 -> 3305 bytes icon.png.import | 34 ++++ project.godot | 77 ++++++++ 30 files changed, 960 insertions(+) create mode 100644 .gitignore create mode 100755 Actors/Player/Player.gd create mode 100755 Actors/Player/Player.tscn create mode 100644 Graphics/tgstation/1x1.tres create mode 100644 Graphics/tgstation/2x2.tres create mode 100755 Graphics/tgstation/floor.png create mode 100755 Graphics/tgstation/floor.png.import create mode 100755 Graphics/tgstation/player.png create mode 100755 Graphics/tgstation/player.png.import create mode 100755 Graphics/tgstation/sprites/Player.tscn create mode 100755 Graphics/tgstation/wall.png create mode 100755 Graphics/tgstation/wall.png.import create mode 100755 Graphics/tgstation/walls.png create mode 100755 Graphics/tgstation/walls.png.import create mode 100755 Graphics/transparent.png create mode 100755 Graphics/transparent.png.import create mode 100755 Graphics/white.png create mode 100755 Graphics/white.png.import create mode 100755 Scenes/Map.gd create mode 100644 Scenes/Maps/odyssey.tscn create mode 100644 Scenes/Rendering/MapTiles.gd create mode 100644 Scenes/Rendering/Occluder.gd create mode 100644 Scenes/Test.tscn create mode 100755 Scenes/World.gd create mode 100755 Scenes/clown-dir1.png create mode 100755 Scenes/clown-dir1.png.import create mode 100644 default_env.tres create mode 100755 icon.png create mode 100755 icon.png.import create mode 100644 project.godot diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e694a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.import +export \ No newline at end of file diff --git a/Actors/Player/Player.gd b/Actors/Player/Player.gd new file mode 100755 index 0000000..d20db1f --- /dev/null +++ b/Actors/Player/Player.gd @@ -0,0 +1,21 @@ +extends KinematicBody2D + +const SPEED = 320.0 +const EPSILON = 0.1 + +export var is_controlled = false setget set_is_controlled + +func _ready(): + $Camera.current = is_controlled + +func _physics_process(_delta): + var motion = Vector2( + Input.get_action_strength("ui_right")-Input.get_action_strength("ui_left"), + Input.get_action_strength("ui_down")-Input.get_action_strength("ui_up")) + if motion.length() > EPSILON: + $Sprite/AnimationTree.set("parameters/direction/blend_position", motion) + move_and_slide(motion.clamped(1.0) * SPEED) + +func set_is_controlled(val): + is_controlled = val + $Camera.current = val diff --git a/Actors/Player/Player.tscn b/Actors/Player/Player.tscn new file mode 100755 index 0000000..d046691 --- /dev/null +++ b/Actors/Player/Player.tscn @@ -0,0 +1,19 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Graphics/tgstation/sprites/Player.tscn" type="PackedScene" id=1] +[ext_resource path="res://Actors/Player/Player.gd" type="Script" id=2] + +[sub_resource type="CapsuleShape2D" id=1] +radius = 10.4436 +height = 5.44386 + +[node name="Player" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="Camera" type="Camera2D" parent="."] + +[node name="Sprite" parent="." instance=ExtResource( 1 )] +position = Vector2( 0, -3 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource( 1 ) diff --git a/Graphics/tgstation/1x1.tres b/Graphics/tgstation/1x1.tres new file mode 100644 index 0000000..e6ed898 --- /dev/null +++ b/Graphics/tgstation/1x1.tres @@ -0,0 +1,233 @@ +[gd_resource type="TileSet" load_steps=36 format=2] + +[ext_resource path="res://Graphics/tgstation/walls.png" type="Texture" id=1] + +[sub_resource type="OccluderPolygon2D" id=1] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=2] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=3] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=4] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=5] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=6] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=7] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=8] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=9] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=10] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=11] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=12] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=13] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=14] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=15] +polygon = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="OccluderPolygon2D" id=16] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="OccluderPolygon2D" id=17] +polygon = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=18] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=19] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=20] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=21] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=22] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=23] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=24] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=25] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=26] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="ConvexPolygonShape2D" id=27] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=28] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=29] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=30] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=31] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=32] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=33] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=34] +points = PoolVector2Array( 16, 16, 0, 16, 0, 0, 16, 0 ) + +[resource] +0/name = "Wall" +0/texture = ExtResource( 1 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 64, 80 ) +0/tile_mode = 1 +0/autotile/bitmask_mode = 0 +0/autotile/bitmask_flags = [ Vector2( 0, 0 ), 69, Vector2( 0, 1 ), 65, Vector2( 0, 2 ), 1, Vector2( 0, 3 ), 5, Vector2( 0, 4 ), 5, Vector2( 1, 0 ), 261, Vector2( 1, 1 ), 260, Vector2( 1, 2 ), 4, Vector2( 1, 3 ), 325, Vector2( 1, 4 ), 65, Vector2( 2, 0 ), 64, Vector2( 2, 1 ), 320, Vector2( 2, 2 ), 320, Vector2( 2, 3 ), 324, Vector2( 2, 4 ), 260, Vector2( 3, 0 ), 256, Vector2( 3, 1 ), 321 ] +0/autotile/icon_coordinate = Vector2( 0, 0 ) +0/autotile/tile_size = Vector2( 16, 16 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ Vector2( 0, 0 ), SubResource( 1 ), Vector2( 0, 1 ), SubResource( 2 ), Vector2( 0, 2 ), SubResource( 3 ), Vector2( 0, 3 ), SubResource( 4 ), Vector2( 0, 4 ), SubResource( 5 ), Vector2( 1, 0 ), SubResource( 6 ), Vector2( 1, 1 ), SubResource( 7 ), Vector2( 1, 2 ), SubResource( 8 ), Vector2( 1, 3 ), SubResource( 9 ), Vector2( 1, 4 ), SubResource( 10 ), Vector2( 2, 0 ), SubResource( 11 ), Vector2( 2, 1 ), SubResource( 12 ), Vector2( 2, 2 ), SubResource( 13 ), Vector2( 2, 3 ), SubResource( 14 ), Vector2( 2, 4 ), SubResource( 15 ), Vector2( 3, 0 ), SubResource( 16 ), Vector2( 3, 1 ), SubResource( 17 ) ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape = SubResource( 18 ) +0/shape_one_way = false +0/shape_one_way_margin = 1.0 +0/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 18 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 19 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 20 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 21 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 3, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 22 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 23 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 24 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 25 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 2, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 26 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 27 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 4 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 28 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 29 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 3 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 30 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 31 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 2 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 32 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 0, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 33 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +}, { +"autotile_coord": Vector2( 1, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 34 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +0/z_index = 0 diff --git a/Graphics/tgstation/2x2.tres b/Graphics/tgstation/2x2.tres new file mode 100644 index 0000000..67c7803 --- /dev/null +++ b/Graphics/tgstation/2x2.tres @@ -0,0 +1,48 @@ +[gd_resource type="TileSet" load_steps=5 format=2] + +[ext_resource path="res://Graphics/tgstation/floor.png" type="Texture" id=1] +[ext_resource path="res://Graphics/tgstation/wall.png" type="Texture" id=2] + +[sub_resource type="OccluderPolygon2D" id=1] +polygon = PoolVector2Array( 32, 32, 0, 32, 0, 0, 32, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=2] +points = PoolVector2Array( 32, 32, 0, 32, 0, 0, 32, 0 ) + +[resource] +1/name = "Floor" +1/texture = ExtResource( 1 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 0, 32, 32 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 +2/name = "Wall" +2/texture = ExtResource( 2 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 0, 0, 32, 32 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/occluder = SubResource( 1 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape = SubResource( 2 ) +2/shape_one_way = false +2/shape_one_way_margin = 1.0 +2/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 2 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +2/z_index = 0 diff --git a/Graphics/tgstation/floor.png b/Graphics/tgstation/floor.png new file mode 100755 index 0000000000000000000000000000000000000000..87e19692bd3fdb264b8544525f3040f80ca077f0 GIT binary patch literal 1113 zcmV-f1g86mP)L!>4 z0g7zNmDG3>R;fnPG=YbQhabtG-@a8oaIV)Yzkm6{U*ErTxm-SCf|r*UGQjE6Cu*(K zS}CPqX8m)mkN8xC^ZCs6dgXGt@cQ!?gkiDMMTIs_vdf78>i#(4j`N_Ig?bWW>hnZD)|3udyv&^igI*z%DDpx z=t%@ksR2=CGb5$c@8&Tw0VJH=t+zk5_V;6?0l>^Kx1p+NGYn?bV6#?k>q^cUbw={+ zOAxk4ZX54-pHr)~Md7*BNQLKmUm5+gM^?;06#-Jth&!!jZ0kCKm>3AU zRHT6r=~SE3{;Vtm)aH3cgbY+wiW%yWr<7QhWePaMP)6a{odg(w(Cy}cXU>{~oO7c) zz?hMoxhUVgfO{2$Fvf-y(W?j*re;$IA;o>$HZ*6F0}e5kQjl6nk&1!EsSk(_x~cPXXT_jjfDkb)m?Z+jd+J<(Lg^V{do|M~ud zy+6Kw{m?iD`Z)fTlh5b#hc92RSAO+=1~{HhJ@=)Qr>%Lc6rh(Bz~8U0)Bi@HjjGQ% z-{(Oo?YljyF~1{#5ZbdPC8lYds34$=a0K+wh~k_MhqebqQ}WhY2IKGR`XIsp{`q+9 zd&9_>s*+PebME)UVh)tOv{VtF;b9;T11M&{4ok(jU`TtYy@vD^vo@Zcv8O4BmYQ;I zt<_l&K-`IJ+vE`FwSUOD%?^>iz(io;bEdfCDFq=w^JO9;2}bZ0O)G78s?l^Dji%kV=DzsiJVfKiVjFbDBE@i zFty&63lzE-2_XM+Vx7aMrNuDw(oXzj7zF@}a`KHxXiG&HkLaJxg7IEw)rA--!BhQE zhAE{!{{wk-)FOg7wXyL6(>@RZh^K1b#9~X1RF7w3KzxUnS}D--R4Z&-H?XHL?#D>( zRp3smrzG~tzR-*S!pQ6U`$Y5D(MIa)?w3)N@0;JB`hrIt;@h8TBN`ozjc30L=+4k# zS-5#G*fTTQ4-k`n0B-N^Z0kz#T8M_JMx@+wLv`k_(f?00000NkvXXu0mjf9mo-& literal 0 HcmV?d00001 diff --git a/Graphics/tgstation/floor.png.import b/Graphics/tgstation/floor.png.import new file mode 100755 index 0000000..3139dc1 --- /dev/null +++ b/Graphics/tgstation/floor.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/floor.png-3bcc52916d51a4ca8cbe3f63cd3f1ef7.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Graphics/tgstation/floor.png" +dest_files=[ "res://.import/floor.png-3bcc52916d51a4ca8cbe3f63cd3f1ef7.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=false +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/Graphics/tgstation/player.png b/Graphics/tgstation/player.png new file mode 100755 index 0000000000000000000000000000000000000000..4ac17d49ef6c4c49ba0ff6ae5018494475aa57ca GIT binary patch literal 530 zcmV+t0`2{YP)@RH&fOUyXqVVTlx|QUph70D1MX_4(Eq==sk+CzJ}Hiat*%fR*%l zKNiTIL?wORjsemQR+FY^0IJB-0BM$v6DKQKGBibQV{c?- Ua;OG>?f?J)07*qoM6N<$f<&_7CIA2c literal 0 HcmV?d00001 diff --git a/Graphics/tgstation/player.png.import b/Graphics/tgstation/player.png.import new file mode 100755 index 0000000..aff8804 --- /dev/null +++ b/Graphics/tgstation/player.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/player.png-2bc4dbaa0a130ff55afac0b8708317d4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Graphics/tgstation/player.png" +dest_files=[ "res://.import/player.png-2bc4dbaa0a130ff55afac0b8708317d4.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=false +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/Graphics/tgstation/sprites/Player.tscn b/Graphics/tgstation/sprites/Player.tscn new file mode 100755 index 0000000..798f76a --- /dev/null +++ b/Graphics/tgstation/sprites/Player.tscn @@ -0,0 +1,106 @@ +[gd_scene load_steps=12 format=2] + +[ext_resource path="res://Graphics/tgstation/player.png" type="Texture" id=1] + +[sub_resource type="AnimationNodeAnimation" id=11] +animation = "left" + +[sub_resource type="AnimationNodeAnimation" id=12] +animation = "right" + +[sub_resource type="AnimationNodeAnimation" id=13] +animation = "up" + +[sub_resource type="AnimationNodeAnimation" id=14] +animation = "down" + +[sub_resource type="AnimationNodeBlendSpace2D" id=15] +blend_point_0/node = SubResource( 11 ) +blend_point_0/pos = Vector2( -1, 0 ) +blend_point_1/node = SubResource( 12 ) +blend_point_1/pos = Vector2( 1, 0 ) +blend_point_2/node = SubResource( 13 ) +blend_point_2/pos = Vector2( 0, -1 ) +blend_point_3/node = SubResource( 14 ) +blend_point_3/pos = Vector2( 0, 1 ) +blend_mode = 1 + +[sub_resource type="AnimationNodeBlendTree" id=16] +graph_offset = Vector2( -794.59, 0 ) +nodes/direction/node = SubResource( 15 ) +nodes/direction/position = Vector2( -160, 140 ) +nodes/output/position = Vector2( 200, 140 ) +node_connections = [ "output", 0, "direction" ] + +[sub_resource type="Animation" id=7] +tracks/0/type = "value" +tracks/0/path = NodePath(".:region_rect") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Rect2( 0, 32, 32, 32 ) ] +} + +[sub_resource type="Animation" id=8] +tracks/0/type = "value" +tracks/0/path = NodePath(".:region_rect") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Rect2( 0, 0, 32, 32 ) ] +} + +[sub_resource type="Animation" id=9] +tracks/0/type = "value" +tracks/0/path = NodePath(".:region_rect") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Rect2( 32, 32, 32, 32 ) ] +} + +[sub_resource type="Animation" id=10] +tracks/0/type = "value" +tracks/0/path = NodePath(".:region_rect") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Rect2( 32, 0, 32, 32 ) ] +} + +[node name="Sprite" type="Sprite"] +texture = ExtResource( 1 ) +region_enabled = true +region_rect = Rect2( 0, 32, 32, 32 ) + +[node name="AnimationTree" type="AnimationTree" parent="."] +tree_root = SubResource( 16 ) +anim_player = NodePath("../AnimationPlayer") +active = true +parameters/direction/blend_position = Vector2( -0.00416231, 0.751938 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/down = SubResource( 7 ) +anims/left = SubResource( 8 ) +anims/right = SubResource( 9 ) +anims/up = SubResource( 10 ) diff --git a/Graphics/tgstation/wall.png b/Graphics/tgstation/wall.png new file mode 100755 index 0000000000000000000000000000000000000000..90a1dd54c362615dadcf74c1c15009590a7e3ff5 GIT binary patch literal 569 zcmV-90>=G`P)q$gGR9J=Wmrt&;FcigqMMN5k(GgP?;G4StJvW8CF( zauC;bkx~*x5lNCv@@aGUzE2PY7+u5HWou-Y zq=&=gN&pBU2JOmm0QlbRdQ~>NgI4P`09l@+9EY*hSri3QN{XVuIVZSD?i{ntQB~D# z0sw~bZ&n(hEXzRxhG9^arS9*+G)+CeuIqk`A=ajRi*tR{Ygi~Qz7Fm|* zN&w_%Y1Z3u6h+$j>Ixi>M{L{fRlxH+f*`m|K^(`Jrioz~2qBPCzODlEIeDJbG!1oK zQ&knK)e88nyooCs5Zlu2LjvIvDVObXD#iZb@-(4Mh9>LrEV&lBT#yUFFaO(j?()vmx5=AO8BO z2*YsvV&X2By>t6iO!4XF=n;7Kg4z0do~O0_5kKf`$M3=q%GB3KL^SEj00000NkvXX Hu0mjfo-q7Y literal 0 HcmV?d00001 diff --git a/Graphics/tgstation/wall.png.import b/Graphics/tgstation/wall.png.import new file mode 100755 index 0000000..7596577 --- /dev/null +++ b/Graphics/tgstation/wall.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/wall.png-e5c95676f513fa835a32b4600b4c3523.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Graphics/tgstation/wall.png" +dest_files=[ "res://.import/wall.png-e5c95676f513fa835a32b4600b4c3523.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=false +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/Graphics/tgstation/walls.png b/Graphics/tgstation/walls.png new file mode 100755 index 0000000000000000000000000000000000000000..fe673b5e46cd07dd58fe089d435b7add36215946 GIT binary patch literal 775 zcmV+i1Ni)jP)yE-85QTjo_qS2wEozkd0GfUO2kGu<7DLEFhf-jWX>w8%D21=wW*ipR>$NYb)oN8# z3l0FD&u6gghD<2~Dh}XyJodNSt>0`mBz-NH!`*~{-)0(BcrP0OyWMV7XyEtjHQa3g zW*Vg|h!ueSe(zPM)Ek1Y2Otmfj+F+qBEbu7g;by#0J?EwOUuUskRH%_ z4=@3k+sXBM{Z>-|Y@;G20Cm3)WkPz`*#NfN?U1JPsT=^z3Zw*}cZ%4$YT55M(~$Ra zxy%UQ?+f?<;0x$&Xb6BpGMD0Vx4Ywd1v70FeCwDFKAo@Be8kfFO?$ zWfsZBVn3^3x=p;z7+kFb{0k(<*Pz1Z(Cu;p&&ld+!S^_`-%;b`? z0jSn{fB+Bx0zd!=fKLJNcs%;k>GU>qAloiC(~wtX@&_zpuhJfwSbsnk02F_~)FBY- z56A)_A5cAjSbsqE0DOP0Qv3nc1BhP61VH2!5~30cfD)oo96(5rQs^>B2~uJM zU~IY3uH`WRkP3*>VgrD(=>P;*m>K{~2~(>IK#D-cssN-2RV@ynbg(iD03}t$Mkq(P zJnk44=Ca!a0CPw+3BViDO=WiC)oM=~@;Zewp`Wpbznf9?PP002ovPDHLk FV1gXxJ?;Pi literal 0 HcmV?d00001 diff --git a/Graphics/tgstation/walls.png.import b/Graphics/tgstation/walls.png.import new file mode 100755 index 0000000..be868ad --- /dev/null +++ b/Graphics/tgstation/walls.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/walls.png-e453136f1b46942ddc6ca86403dc6223.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Graphics/tgstation/walls.png" +dest_files=[ "res://.import/walls.png-e453136f1b46942ddc6ca86403dc6223.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=false +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/Graphics/transparent.png b/Graphics/transparent.png new file mode 100755 index 0000000000000000000000000000000000000000..a4ea80197a4c117f6ea998e3b412229428835a8e GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|!aQ9ZLn`LH qJ!r@X= 0, # Top + occluder_ids.find(get_cell(cell.x+1, cell.y)) >= 0, # Right + occluder_ids.find(get_cell(cell.x, cell.y+1)) >= 0, # Bottom + occluder_ids.find(get_cell(cell.x-1, cell.y)) >= 0 # Left + ] + occluder.transform.origin = map_to_world(cell) + add_child(occluder) + + +func set_occluder_origin(origin): + for child in get_children(): + if child is Occluder: + child.origin = origin diff --git a/Scenes/Rendering/Occluder.gd b/Scenes/Rendering/Occluder.gd new file mode 100644 index 0000000..826b489 --- /dev/null +++ b/Scenes/Rendering/Occluder.gd @@ -0,0 +1,43 @@ +extends Node2D + +class_name Occluder + +const MAX_LENGTH = 200 +const EPSILON = 0.1 + +var ignore_sides = [false, false, false, false] +var size = Vector2(32, 32) +var origin = null +var polygon: PoolVector2Array = [Vector2.ZERO, Vector2(size.x, 0), Vector2(size.x, size.y), Vector2(0, size.y)] + +func _draw(): + if polygon == null: + return + + if origin == null: + return + + var player_position = origin.global_position - global_position + + # Find what edges is the players looking at + var edges = [ + player_position.y < 0, # TOP + player_position.x > size.x*2, # RIGHT + player_position.y > size.y*2, # BOTTOM + player_position.x < 0 # LEFT + ] + + for current in range(0, polygon.size()): + var next = (current + 1) % polygon.size() + var previous = (current - 1) % polygon.size() + + if not ignore_sides[current] and not edges[current]: + draw_polygon([ + (polygon[current] * 2.1 - origin.global_position + global_position) * MAX_LENGTH, + polygon[current], polygon[next], + (polygon[next] * 2.1 - origin.global_position + global_position) * MAX_LENGTH + ], [Color.black]) + +func _process(_delta): + update() + z_index = 999 diff --git a/Scenes/Test.tscn b/Scenes/Test.tscn new file mode 100644 index 0000000..39187e7 --- /dev/null +++ b/Scenes/Test.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://Scenes/Maps/odyssey.tscn" type="PackedScene" id=1] +[ext_resource path="res://Actors/Player/Player.tscn" type="PackedScene" id=2] +[ext_resource path="res://Scenes/World.gd" type="Script" id=4] + +[node name="scene" type="Node2D"] + +[node name="world" type="Node2D" parent="."] +scale = Vector2( 2, 2 ) +script = ExtResource( 4 ) +player_path = NodePath("player") +map_path = NodePath("map") + +[node name="map" parent="world" instance=ExtResource( 1 )] + +[node name="player" parent="world" instance=ExtResource( 2 )] +position = Vector2( 281.46, 222.763 ) +z_index = 1 +is_controlled = true diff --git a/Scenes/World.gd b/Scenes/World.gd new file mode 100755 index 0000000..7eacbc7 --- /dev/null +++ b/Scenes/World.gd @@ -0,0 +1,10 @@ +extends Node2D + +export(NodePath) var player_path +export(NodePath) var map_path + +onready var player = get_node(player_path) as Node2D +onready var map = get_node(map_path) as Map + +func _ready(): + map.tilemap.set_occluder_origin(player) diff --git a/Scenes/clown-dir1.png b/Scenes/clown-dir1.png new file mode 100755 index 0000000000000000000000000000000000000000..5118f7384cf1ee5f4db024e3c7dc12266b19f2cb GIT binary patch literal 1130 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 literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100755 index 0000000..96cbf46 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.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/project.godot b/project.godot new file mode 100644 index 0000000..d26a01b --- /dev/null +++ b/project.godot @@ -0,0 +1,77 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "Node2D", +"class": "Map", +"language": "GDScript", +"path": "res://Scenes/Map.gd" +}, { +"base": "TileMap", +"class": "MapTiles", +"language": "GDScript", +"path": "res://Scenes/Rendering/MapTiles.gd" +}, { +"base": "Node2D", +"class": "Occluder", +"language": "GDScript", +"path": "res://Scenes/Rendering/Occluder.gd" +} ] +_global_script_class_icons={ +"Map": "", +"MapTiles": "", +"Occluder": "" +} + +[application] + +config/name="odyssey" +run/main_scene="res://Scenes/Test.tscn" +config/icon="res://icon.png" + +[display] + +window/size/width=1280 +window/size/height=800 + +[input] + +ui_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) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) + ] +} +ui_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) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) + ] +} +ui_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) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) + ] +} +ui_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) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) + ] +} + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_clear_color=Color( 0, 0, 0, 1 ) +environment/default_environment="res://default_env.tres"