updates
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 7 Mar 2022 19:13:51 +0000 (13:13 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 7 Mar 2022 19:13:51 +0000 (13:13 -0600)
run_tree/assets/images/kitchen-background.png [new file with mode: 0644]
run_tree/assets/images/spritesheet.png
run_tree/scenes/level1.scene
src/entity/components/player.onyx
src/entity/editor.onyx
src/entity/schematics/furniture.onyx
src/game.onyx
src/gfx/immediate.onyx
src/gfx/texture.onyx
src/utils/colors.onyx

diff --git a/run_tree/assets/images/kitchen-background.png b/run_tree/assets/images/kitchen-background.png
new file mode 100644 (file)
index 0000000..db48e9b
Binary files /dev/null and b/run_tree/assets/images/kitchen-background.png differ
index 5e02096d001d11fbe621dec2cf4c3ea1dbf43471..af1d3e9878bb74c59ff6ff321c4b42e46934283a 100644 (file)
Binary files a/run_tree/assets/images/spritesheet.png and b/run_tree/assets/images/spritesheet.png differ
index 0808b4a78084e16d851c2e6fd2b9052d9233333b..890018614f38093ad3fe648118c32a3ea58de921 100644 (file)
@@ -2,7 +2,7 @@
 id = 100
 flags = 0
 pos.x = 422.5000
-pos.y = 311.5000
+pos.y = 343.5000
 size.x = 941.0000
 size.y = 751.0000
 :BackgroundComponent
@@ -14,20 +14,6 @@ color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
-[Wall]
-id = 10
-flags = 2
-pos.x = 192.0000
-pos.y = 104.0000
-size.x = 352.0000
-size.y = 16.0000
-:RenderComponent
-layer = 0
-color.r = 0.2549
-color.g = 0.1720
-color.b = 0.0474
-color.a = 1.0000
-
 [Wall]
 id = 11
 flags = 3
@@ -42,66 +28,6 @@ color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
-[Door]
-id = 13
-flags = 3
-pos.x = 368.0000
-pos.y = 104.0000
-size.x = 160.0000
-size.y = 16.0000
-:DoorComponent
-max_openness = 0.8000
-target_openness = 0.8000
-openness = 0.8000
-:RenderComponent
-layer = 0
-color.r = 1.0000
-color.g = 1.0000
-color.b = 1.0000
-color.a = 1.0000
-
-[Wall]
-id = 25
-flags = 2
-pos.x = 408.0000
-pos.y = 8.0000
-size.x = 816.0000
-size.y = 16.0000
-:RenderComponent
-layer = 0
-color.r = 1.0000
-color.g = 1.0000
-color.b = 1.0000
-color.a = 1.0000
-
-[Wall]
-id = 27
-flags = 2
-pos.x = 8.0000
-pos.y = 312.0000
-size.x = 16.0000
-size.y = 592.0000
-:RenderComponent
-layer = 0
-color.r = 1.0000
-color.g = 1.0000
-color.b = 1.0000
-color.a = 1.0000
-
-[Wall]
-id = 28
-flags = 2
-pos.x = 792.0000
-pos.y = 312.0000
-size.x = 16.0000
-size.y = 592.0000
-:RenderComponent
-layer = 0
-color.r = 1.0000
-color.g = 1.0000
-color.b = 1.0000
-color.a = 1.0000
-
 [Furniture]
 id = 30
 flags = 2
@@ -426,6 +352,64 @@ color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
+[Wall]
+id = 37
+flags = 2
+pos.x = 140.0000
+pos.y = -142.0000
+size.x = 16.0000
+size.y = 16.0000
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Background]
+id = 196
+flags = 0
+pos.x = 233.0000
+pos.y = 48.0000
+size.x = 432.0000
+size.y = 128.0000
+:BackgroundComponent
+texture_path = "./assets/images/kitchen-background.png"
+:RenderComponent
+layer = 1
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 10
+flags = 2
+pos.x = 216.0000
+pos.y = 104.0000
+size.x = 304.0000
+size.y = 16.0000
+:RenderComponent
+layer = 2
+color.r = 0.2549
+color.g = 0.1720
+color.b = 0.0474
+color.a = 1.0000
+
+[Wall]
+id = 27
+flags = 2
+pos.x = 8.0000
+pos.y = 312.0000
+size.x = 16.0000
+size.y = 592.0000
+:RenderComponent
+layer = 2
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
 [Wall]
 id = 35
 flags = 2
@@ -434,7 +418,7 @@ pos.y = 592.0000
 size.x = 352.0000
 size.y = 32.0000
 :RenderComponent
-layer = 0
+layer = 2
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
@@ -448,57 +432,71 @@ pos.y = 592.0000
 size.x = 352.0000
 size.y = 32.0000
 :RenderComponent
-layer = 0
+layer = 2
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Wall]
-id = 37
+id = 28
 flags = 2
-pos.x = 140.0000
-pos.y = -142.0000
+pos.x = 792.0000
+pos.y = 312.0000
 size.x = 16.0000
+size.y = 592.0000
+:RenderComponent
+layer = 2
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 25
+flags = 2
+pos.x = 408.0000
+pos.y = 8.0000
+size.x = 816.0000
 size.y = 16.0000
 :RenderComponent
-layer = 0
+layer = 2
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
-[Custom]
-id = 14
-flags = 3
-pos.x = 240.0000
-pos.y = 32.0000
-size.x = 32.0000
+[Furniture]
+id = 277
+flags = 2
+pos.x = 696.0000
+pos.y = 96.0000
+size.x = 16.0000
 size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 0.0000
+sprite.pos.x = 48.0000
 sprite.pos.y = 32.0000
-sprite.size.x = 32.0000
+sprite.size.x = -16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
-:DispenserComponent
-item = "beer"
-max_timeout = 2.0000
 
 [Furniture]
-id = 164
+id = 278
 flags = 2
-pos.x = 536.0000
+pos.x = 696.0000
 pos.y = 176.0000
 size.x = 16.0000
 size.y = 32.0000
@@ -507,26 +505,26 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 32.0000
+sprite.pos.x = 48.0000
 sprite.pos.y = 32.0000
-sprite.size.x = 16.0000
+sprite.size.x = -16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 165
+id = 279
 flags = 2
-pos.x = 536.0000
-pos.y = 96.0000
+pos.x = 696.0000
+pos.y = 256.0000
 size.x = 16.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -534,26 +532,26 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 32.0000
+sprite.pos.x = 48.0000
 sprite.pos.y = 32.0000
-sprite.size.x = 16.0000
+sprite.size.x = -16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 167
+id = 280
 flags = 2
-pos.x = 136.0000
-pos.y = 416.0000
+pos.x = 696.0000
+pos.y = 336.0000
 size.x = 16.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -561,25 +559,25 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 32.0000
+sprite.pos.x = 48.0000
 sprite.pos.y = 32.0000
-sprite.size.x = 16.0000
+sprite.size.x = -16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 168
+id = 281
 flags = 2
-pos.x = 536.0000
+pos.x = 696.0000
 pos.y = 416.0000
 size.x = 16.0000
 size.y = 32.0000
@@ -588,25 +586,25 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 32.0000
+sprite.pos.x = 48.0000
 sprite.pos.y = 32.0000
-sprite.size.x = 16.0000
+sprite.size.x = -16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 169
+id = 273
 flags = 2
-pos.x = 560.0000
+pos.x = 672.0000
 pos.y = 96.0000
 size.x = 32.0000
 size.y = 32.0000
@@ -624,16 +622,16 @@ sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 170
+id = 272
 flags = 2
-pos.x = 560.0000
+pos.x = 672.0000
 pos.y = 176.0000
 size.x = 32.0000
 size.y = 32.0000
@@ -651,17 +649,17 @@ sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 171
+id = 275
 flags = 2
-pos.x = 560.0000
-pos.y = 416.0000
+pos.x = 672.0000
+pos.y = 256.0000
 size.x = 32.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -678,17 +676,17 @@ sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 172
+id = 276
 flags = 2
-pos.x = 160.0000
-pos.y = 416.0000
+pos.x = 672.0000
+pos.y = 336.0000
 size.x = 32.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -705,44 +703,44 @@ sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 173
+id = 274
 flags = 2
-pos.x = 584.0000
+pos.x = 672.0000
 pos.y = 416.0000
-size.x = 16.0000
+size.x = 32.0000
 size.y = 32.0000
 :FurnitureComponent
-furniture_type = 0
+furniture_type = 1
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
 sprite.pos.x = 48.0000
 sprite.pos.y = 32.0000
-sprite.size.x = -16.0000
+sprite.size.x = 32.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 174
+id = 267
 flags = 2
-pos.x = 584.0000
-pos.y = 176.0000
+pos.x = 648.0000
+pos.y = 96.0000
 size.x = 16.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -750,26 +748,26 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 48.0000
+sprite.pos.x = 32.0000
 sprite.pos.y = 32.0000
-sprite.size.x = -16.0000
+sprite.size.x = 16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 175
+id = 268
 flags = 2
-pos.x = 584.0000
-pos.y = 96.0000
+pos.x = 648.0000
+pos.y = 176.0000
 size.x = 16.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -777,26 +775,26 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 48.0000
+sprite.pos.x = 32.0000
 sprite.pos.y = 32.0000
-sprite.size.x = -16.0000
+sprite.size.x = 16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
 [Furniture]
-id = 176
+id = 269
 flags = 2
-pos.x = 184.0000
-pos.y = 416.0000
+pos.x = 648.0000
+pos.y = 256.0000
 size.x = 16.0000
 size.y = 32.0000
 :FurnitureComponent
@@ -804,29 +802,830 @@ furniture_type = 0
 taken = false
 :SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
-sprite.pos.x = 48.0000
+sprite.pos.x = 32.0000
 sprite.pos.y = 32.0000
-sprite.size.x = -16.0000
+sprite.size.x = 16.0000
 sprite.size.y = 32.0000
 sprite.color.r = 1.0000
 sprite.color.g = 1.0000
 sprite.color.b = 1.0000
 sprite.color.a = 1.0000
 :RenderComponent
-layer = 0
+layer = 5
 color.r = 1.0000
 color.g = 1.0000
 color.b = 1.0000
 color.a = 1.0000
 
-[Custom]
-id = 157
-flags = 3
-pos.x = 271.0000
-pos.y = 33.0000
-size.x = 32.0000
-size.y = 32.0000
-:SpriteRenderComponent
+[Furniture]
+id = 270
+flags = 2
+pos.x = 648.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 271
+flags = 2
+pos.x = 648.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 234
+flags = 2
+pos.x = 296.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 235
+flags = 2
+pos.x = 296.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 236
+flags = 2
+pos.x = 296.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 231
+flags = 2
+pos.x = 272.0000
+pos.y = 256.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 233
+flags = 2
+pos.x = 272.0000
+pos.y = 336.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 232
+flags = 2
+pos.x = 272.0000
+pos.y = 416.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 230
+flags = 2
+pos.x = 248.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 229
+flags = 2
+pos.x = 248.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 228
+flags = 2
+pos.x = 248.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 164
+flags = 2
+pos.x = 536.0000
+pos.y = 176.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 165
+flags = 2
+pos.x = 536.0000
+pos.y = 96.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 167
+flags = 2
+pos.x = 136.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 168
+flags = 2
+pos.x = 536.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 32.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 169
+flags = 2
+pos.x = 560.0000
+pos.y = 96.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 170
+flags = 2
+pos.x = 560.0000
+pos.y = 176.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 171
+flags = 2
+pos.x = 560.0000
+pos.y = 416.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 172
+flags = 2
+pos.x = 160.0000
+pos.y = 416.0000
+size.x = 32.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 1
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 173
+flags = 2
+pos.x = 584.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 174
+flags = 2
+pos.x = 584.0000
+pos.y = 176.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 175
+flags = 2
+pos.x = 584.0000
+pos.y = 96.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 176
+flags = 2
+pos.x = 184.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 48.0000
+sprite.pos.y = 32.0000
+sprite.size.x = -16.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 184
+flags = 2
+pos.x = 332.0000
+pos.y = 124.0000
+size.x = 24.0000
+size.y = 24.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 112.0000
+sprite.pos.y = 48.0000
+sprite.size.x = 16.0000
+sprite.size.y = 16.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 185
+flags = 2
+pos.x = 284.0000
+pos.y = 124.0000
+size.x = 24.0000
+size.y = 24.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 112.0000
+sprite.pos.y = 48.0000
+sprite.size.x = 16.0000
+sprite.size.y = 16.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 186
+flags = 2
+pos.x = 236.0000
+pos.y = 124.0000
+size.x = 24.0000
+size.y = 24.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 112.0000
+sprite.pos.y = 48.0000
+sprite.size.x = 16.0000
+sprite.size.y = 16.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 187
+flags = 2
+pos.x = 188.0000
+pos.y = 124.0000
+size.x = 24.0000
+size.y = 24.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 112.0000
+sprite.pos.y = 48.0000
+sprite.size.x = 16.0000
+sprite.size.y = 16.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 188
+flags = 2
+pos.x = 140.0000
+pos.y = 124.0000
+size.x = 24.0000
+size.y = 24.0000
+:FurnitureComponent
+furniture_type = 0
+taken = false
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 112.0000
+sprite.pos.y = 48.0000
+sprite.size.x = 16.0000
+sprite.size.y = 16.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Custom]
+id = 14
+flags = 3
+pos.x = 240.0000
+pos.y = 32.0000
+size.x = 32.0000
+size.y = 32.0000
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 0.0000
+sprite.pos.y = 32.0000
+sprite.size.x = 32.0000
+sprite.size.y = 32.0000
+sprite.color.r = 1.0000
+sprite.color.g = 1.0000
+sprite.color.b = 1.0000
+sprite.color.a = 1.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:DispenserComponent
+item = "beer"
+max_timeout = 2.0000
+
+[Door]
+id = 13
+flags = 3
+pos.x = 368.0000
+pos.y = 104.0000
+size.x = 160.0000
+size.y = 16.0000
+:DoorComponent
+max_openness = 0.8000
+target_openness = 0.8000
+openness = 0.8000
+:RenderComponent
+layer = 10
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Custom]
+id = 157
+flags = 3
+pos.x = 271.0000
+pos.y = 33.0000
+size.x = 32.0000
+size.y = 32.0000
+:SpriteRenderComponent
 sprite.sheet = "./assets/images/spritesheet.png"
 sprite.pos.x = 16.0000
 sprite.pos.y = 0.0000
@@ -849,8 +1648,8 @@ max_timeout = 4.0000
 [Player]
 id = 152
 flags = 2
-pos.x = 277.7525
-pos.y = 229.4651
+pos.x = 392.0000
+pos.y = 232.0000
 size.x = 16.0000
 size.y = 32.0000
 :MovementComponent
@@ -865,7 +1664,7 @@ velocity.x = 0.0000
 velocity.y = 0.0000
 speed = 800.0000
 :PlayerComponent
-holding = 155
+holding = 0
 :RenderComponent
 layer = 10
 color.r = 1.0000
@@ -876,8 +1675,8 @@ color.a = 1.0000
 [Player]
 id = 12
 flags = 2
-pos.x = 374.4024
-pos.y = 300.0931
+pos.x = 344.0000
+pos.y = 232.0000
 size.x = 16.0000
 size.y = 32.0000
 :MovementComponent
@@ -887,12 +1686,12 @@ controls.left = 65
 controls.right = 68
 controls.interact = 70
 controls.pick_up = 71
-facing = 4
-velocity.x = 0.0000
-velocity.y = 0.0000
+facing = 3
+velocity.x = -0.0015
+velocity.y = -0.0007
 speed = 800.0000
 :PlayerComponent
-holding = 150
+holding = 0
 :RenderComponent
 layer = 10
 color.r = 0.0000
@@ -900,38 +1699,6 @@ color.g = 1.0000
 color.b = 0.0000
 color.a = 1.0000
 
-[Item_Entity]
-id = 150
-flags = 2
-pos.x = 374.4024
-pos.y = 276.0931
-size.x = 16.0000
-size.y = 16.0000
-:RenderComponent
-layer = 10
-color.r = 1.0000
-color.g = 1.0000
-color.b = 1.0000
-color.a = 1.0000
-:ItemComponent
-item = "burger"
-
-[Item_Entity]
-id = 155
-flags = 0
-pos.x = 277.7524
-pos.y = 205.4651
-size.x = 16.0000
-size.y = 16.0000
-:RenderComponent
-layer = 10
-color.r = 1.0000
-color.g = 1.0000
-color.b = 1.0000
-color.a = 1.0000
-:ItemComponent
-item = "beer"
-
 [Entryway]
 id = 156
 flags = 0
@@ -962,7 +1729,7 @@ spawned_size.y = 32.0000
 enabled = true
 spawn_timeout_min = 5.0000
 spawn_timeout_max = 10.0000
-spawn_timeout = 5.5170
+spawn_timeout = 1.0598
 
 [Custom]
 id = 163
index dbf2a803d4954e70b151d189b83fe2dbbcf7c089..e5ac9214408a7593dca82a374325439491561feb 100644 (file)
@@ -99,16 +99,20 @@ PlayerComponent :: struct {
     post_render :: (use this: ^PlayerComponent, entity: ^Entity) {
         if nearby_interact != Entity_Nothing {
             it := scene->get(nearby_interact);
-            r := it->get_rect();
-            immediate_set_color(.{.2, .2, .8, .7});
-            immediate_rectangle(r.x, r.y, r.w, r.h);
+            if it != null {
+                r := it->get_rect();
+                immediate_set_color(.{.2, .2, .8, .7});
+                immediate_rectangle(r.x, r.y, r.w, r.h);
+            }
         }
 
         if nearby_holding != Entity_Nothing && holding == Entity_Nothing {
             it := scene->get(nearby_holding);
-            r := it->get_rect();
-            immediate_set_color(.{.2, .8, .2, .7});
-            immediate_rectangle(r.x, r.y, r.w, r.h);
+            if it != null {
+                r := it->get_rect();
+                immediate_set_color(.{.2, .8, .2, .7});
+                immediate_rectangle(r.x, r.y, r.w, r.h);
+            }
         }
     }
 }
index 7d123b3318d7bbdf8e33675ce19160014e88567a..ade6388254efc38b3142ca05002667e2d40d3a0a 100644 (file)
@@ -3,7 +3,7 @@
 // Editor features to be added:
 //
 // - [x] Create new entity
-// - [ ] Edit entity properties in UI
+// - [x] Edit entity properties in UI
 // - [x] Serialize / Deserialize a scene
 //
 
@@ -42,6 +42,7 @@ editor_update :: (dt: f32) {
     if is_key_just_up(GLFW_KEY_1) do clicked_tab = .File;
     if is_key_just_up(GLFW_KEY_2) do clicked_tab = .Edit;
     if is_key_just_up(GLFW_KEY_3) do clicked_tab = .Create;
+    if is_key_just_up(GLFW_KEY_4) do clicked_tab = .Actions;
     if is_key_just_up(GLFW_KEY_G) do editor_grid_shown = !editor_grid_shown;
 
     handle_clicking_tab(dt);
@@ -275,6 +276,12 @@ editor_draw :: () {
                     render_entity_list(x, y, w, h);
                 }
             }
+
+            case .Actions {
+                if draw_button(.{x, y, w, 40}, "Flush Textures") {
+                    texture_cache_clear();
+                }
+            }
         }
     }
 }
@@ -601,6 +608,7 @@ editor_draw :: () {
         File;
         Edit;
         Create;
+        Actions;
     }
 
     active_tab  := Tabs.Edit;
index 1a7af358344791f2bd93dbd11a8f854b28328073..06375a185c344e3607e348eeff8ba33fa1647136 100644 (file)
@@ -23,4 +23,4 @@ Furniture :: struct {
 
         return this;
     }
-}
\ No newline at end of file
+}
index 24a9a368208db0b9fd8ff85dc312bca5678f54b5..e11ab05c39decf97a4276a92aca14a4570b2fa07 100644 (file)
@@ -64,6 +64,9 @@ game_update :: (dt: f32) {
 }
 
 game_draw :: () {
+    @REMOVE @DEBUG
+    Spritesheet', _ := texture_lookup(#cstr "./assets/images/spritesheet.png");
+
     canvas_use(^scene_canvas);
     immediate_clear(.{0.15, 0.15, 0.2});
     scene->draw();
index 6756fbe140e97768b62b07bfc1d09b2e86af6c0b..8a96b18f05f0ae2805f1b672adefb80ab9028718 100644 (file)
@@ -162,11 +162,6 @@ immediate_set_scroll :: (scroll_x, scroll_y: f32) {
 
 immediate_get_scroll :: () => offset;
 
-Color :: struct {
-    r, g, b :  f32;
-    a       := 1.0f;
-}
-
 Immediate_Vertex :: struct {
     pos:   Vector2;
     tex:   Vector2;
index 0df03b8a17d59231de75580b318d24b779dc278b..289eb57c6660db7715c3f1b384ba1d214e7f16dd 100644 (file)
@@ -77,4 +77,12 @@ texture_wrap :: (use tex: ^Texture, wrap: Texture_Wrap) {
     glBindTexture(GL_TEXTURE_2D, texture);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, ~~ wrap);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, ~~ wrap);
+}
+
+texture_cache_clear :: () {
+    for^ texture_cache.entries {
+        glDeleteTextures(1, ^it.value.texture);
+    }
+
+    map.clear(^texture_cache);
 }
\ No newline at end of file
index 886387d647194fc85029f586a42d6d8986bf591d..ab6231dfeae2ea4530213d8c68e0eacd6a524614 100644 (file)
@@ -1,6 +1,11 @@
 
 use package core
 
+Color :: struct {
+    r, g, b :  f32;
+    a       := 1.0f;
+}
+
 color_to_hsl :: (c: Color) -> (h: f32, s: f32, l: f32) {
     r := c.r / 255;
     g := c.g / 255;
@@ -47,4 +52,4 @@ hsl_to_color :: (h, s, l: f32) -> Color {
     g = (g + m) * 255;
     b = (b + m) * 255;
     return .{ r, g, b, 1 };
-}
\ No newline at end of file
+}