- 1 button for interacting
- 1 button for canelling
-
+* Spilling beer
+* Mopping spills
+* Throwing up people
--- /dev/null
+//
+// Most of the interesting parts of this code are taken from:
+// https://github.com/OpenXcom/OpenXcom/blob/master/bin/common/Shaders/CRT-simple.OpenGL.shader
+//
+
+
+precision mediump float;
+
+COMM vec4 v_col;
+COMM vec2 v_tex;
+COMM vec2 v_one;
+COMM float mod_factor;
+
+#ifdef VERTEX_SHADER
+
+layout(location = 0) in vec2 a_pos;
+layout(location = 1) in vec2 a_tex;
+layout(location = 2) in vec4 a_col;
+
+layout(std140) uniform u_window_matrix_block {
+ mat4 u_window;
+};
+
+layout(std140) uniform u_world_matrix_block {
+ mat4 u_world;
+ mat4 u_model;
+};
+
+uniform vec2 u_tex_size;
+uniform vec2 u_output_size;
+
+void main() {
+ gl_Position = u_window * u_world * u_model * vec4(a_pos, 0, 1);
+
+ v_tex = a_tex;
+ v_col = a_col;
+ v_one = 1.0 / u_tex_size;
+
+ mod_factor = v_tex.x * u_output_size.x * u_tex_size.x / 128.0f;
+}
+
+#endif
+
+#ifdef FRAGMENT_SHADER
+
+uniform sampler2D u_texture;
+
+out vec4 fragColor;
+
+uniform vec2 u_tex_size;
+uniform vec2 u_output_size;
+
+// Enable screen curvature.
+#define CURVATURE
+
+// Controls the intensity of the barrel distortion used to emulate the
+// curvature of a CRT. 0.0 is perfectly flat, 1.0 is annoyingly
+// distorted, higher values are increasingly ridiculous.
+#define distortion 0.1
+
+// Simulate a CRT gamma of 2.4.
+#define inputGamma 2.2
+
+// Compensate for the standard sRGB gamma of 2.2.
+#define outputGamma 2.2
+
+// Macros.
+#define TEX2D(c) pow(texture(u_texture, (c)), vec4(inputGamma))
+#define PI 3.141592653589
+
+// Apply radial distortion to the given coordinate.
+vec2 radialDistortion(vec2 coord)
+{
+ vec2 cc = coord - 0.5;
+ float dist = dot(cc, cc) * distortion;
+ return (coord + cc * (1.0 + dist) * dist);
+}
+
+// Calculate the influence of a scanline on the current pixel.
+//
+// 'distance' is the distance in texture coordinates from the current
+// pixel to the scanline in question.
+// 'color' is the colour of the scanline at the horizontal location of
+// the current pixel.
+vec4 scanlineWeights(float distance, vec4 color)
+{
+ // The "width" of the scanline beam is set as 2*(1 + x^4) for
+ // each RGB channel.
+ vec4 wid = 2.0 + 2.0 * pow(color, vec4(4.0));
+
+ // The "weights" lines basically specify the formula that gives
+ // you the profile of the beam, i.e. the intensity as
+ // a function of distance from the vertical center of the
+ // scanline. In this case, it is gaussian if width=2, and
+ // becomes nongaussian for larger widths. Ideally this should
+ // be normalized so that the integral across the beam is
+ // independent of its width. That is, for a narrower beam
+ // "weights" should have a higher peak at the center of the
+ // scanline than for a wider beam.
+ vec4 weights = vec4(distance / 0.3);
+ return 1.4 * exp(-pow(weights * inversesqrt(0.5 * wid), wid)) / (0.6 + 0.2 * wid);
+}
+
+void main()
+{
+ // Here's a helpful diagram to keep in mind while trying to
+ // understand the code:
+ //
+ // | | | | |
+ // -------------------------------
+ // | | | | |
+ // | 01 | 11 | 21 | 31 | <-- current scanline
+ // | | @ | | |
+ // -------------------------------
+ // | | | | |
+ // | 02 | 12 | 22 | 32 | <-- next scanline
+ // | | | | |
+ // -------------------------------
+ // | | | | |
+ //
+ // Each character-cell represents a pixel on the output
+ // surface, "@" represents the current pixel (always somewhere
+ // in the bottom half of the current scan-line, or the top-half
+ // of the next scanline). The grid of lines represents the
+ // edges of the texels of the underlying texture.
+
+ // Texture coordinates of the texel containing the active pixel.
+#ifdef CURVATURE
+ vec2 xy = radialDistortion(v_tex);
+#else
+ vec2 xy = v_tex;
+#endif
+
+ // Of all the pixels that are mapped onto the texel we are
+ // currently rendering, which pixel are we currently rendering?
+ vec2 ratio_scale = xy * u_tex_size - vec2(0.5);
+ vec2 uv_ratio = fract(ratio_scale);
+
+ // Snap to the center of the underlying texel.
+ xy.y = (floor(ratio_scale.y) + 0.5) / u_tex_size.y;
+
+ // Calculate the effective colour of the current and next
+ // scanlines at the horizontal location of the current pixel.
+ vec4 col = TEX2D(xy);
+ vec4 col2 = TEX2D(xy + vec2(0.0, v_one.y));
+
+ // Calculate the influence of the current and next scanlines on
+ // the current pixel.
+ vec4 weights = scanlineWeights(uv_ratio.y, col);
+ vec4 weights2 = scanlineWeights(1.0 - uv_ratio.y, col2);
+ vec3 mul_res = (col * weights + col2 * weights2).rgb;
+
+ // dot-mask emulation:
+ // Output pixels are alternately tinted green and magenta.
+ vec3 dotMaskWeights = mix(
+ vec3(1.0, 0.7, 1.0),
+ vec3(0.7, 1.0, 0.7),
+ floor(mod(mod_factor, 2.0))
+ );
+
+ mul_res *= dotMaskWeights;
+
+ fragColor = vec4(pow(mul_res, vec3(1.0 / outputGamma)), 1.0);
+}
+
+
+#endif
+[Background]
+id = 100
+flags = 0
+pos.x = 422.5000
+pos.y = 343.5000
+size.x = 941.0000
+size.y = 751.0000
+:BackgroundComponent
+texture_path = "./assets/images/background.png"
+:RenderComponent
+layer = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 11
+flags = 3
+pos.x = 456.0000
+pos.y = 64.0000
+size.x = 16.0000
+size.y = 96.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
+pos.x = 136.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 31
+flags = 2
+pos.x = 184.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 32
+flags = 2
+pos.x = 160.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 40
+flags = 2
+pos.x = 136.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 41
+flags = 2
+pos.x = 184.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 42
+flags = 2
+pos.x = 160.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 55
+flags = 2
+pos.x = 536.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 54
+flags = 2
+pos.x = 584.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 53
+flags = 2
+pos.x = 560.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 52
+flags = 2
+pos.x = 536.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 51
+flags = 2
+pos.x = 584.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 = 0
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Furniture]
+id = 50
+flags = 2
+pos.x = 560.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 = 0
+color.r = 1.0000
+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 = 232.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
+pos.x = 192.0000
+pos.y = 592.0000
+size.x = 352.0000
+size.y = 32.0000
+:RenderComponent
+layer = 2
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Wall]
+id = 36
+flags = 2
+pos.x = 608.0000
+pos.y = 592.0000
+size.x = 352.0000
+size.y = 32.0000
+:RenderComponent
+layer = 2
+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 = 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 = 2
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.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 = true
+: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 = 278
+flags = 2
+pos.x = 696.0000
+pos.y = 176.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 279
+flags = 2
+pos.x = 696.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 280
+flags = 2
+pos.x = 696.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 281
+flags = 2
+pos.x = 696.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 273
+flags = 2
+pos.x = 672.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 = 272
+flags = 2
+pos.x = 672.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 = 275
+flags = 2
+pos.x = 672.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 = 276
+flags = 2
+pos.x = 672.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 = 274
+flags = 2
+pos.x = 672.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 = 267
+flags = 2
+pos.x = 648.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 = 268
+flags = 2
+pos.x = 648.0000
+pos.y = 176.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 269
+flags = 2
+pos.x = 648.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:FurnitureComponent
+furniture_type = 0
+taken = true
+: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 = 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 = true
+: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 = true
+: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 = true
+: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 = true
+: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 = true
+: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
+
+[Patron]
+id = 330
+flags = 3
+pos.x = 696.0000
+pos.y = 176.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 278
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 341
+flags = 3
+pos.x = 696.0000
+pos.y = 96.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 277
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 344
+flags = 3
+pos.x = 696.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 281
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 346
+flags = 3
+pos.x = 696.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 280
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 347
+flags = 3
+pos.x = 284.0000
+pos.y = 124.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 185
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 350
+flags = 3
+pos.x = 184.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 31
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 351
+flags = 3
+pos.x = 236.0000
+pos.y = 124.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 186
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 352
+flags = 3
+pos.x = 248.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 230
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 354
+flags = 3
+pos.x = 648.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 269
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 356
+flags = 3
+pos.x = 648.0000
+pos.y = 176.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 268
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 358
+flags = 3
+pos.x = 136.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 40
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 360
+flags = 3
+pos.x = 140.0000
+pos.y = 124.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 188
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 362
+flags = 3
+pos.x = 184.0000
+pos.y = 256.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 41
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 363
+flags = 3
+pos.x = 136.0000
+pos.y = 336.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 30
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 364
+flags = 3
+pos.x = 584.0000
+pos.y = 416.0000
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 1
+target = 173
+order_item = "burger"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.0000
+
+[Patron]
+id = 365
+flags = 3
+pos.x = 496.9649
+pos.y = 481.9315
+size.x = 16.0000
+size.y = 32.0000
+:RenderComponent
+layer = 5
+color.r = 1.0000
+color.g = 0.0000
+color.b = 0.0000
+color.a = 1.0000
+:PatronComponent
+state = 0
+target = 279
+order_item = "beer"
+order_show_animation = 0.0000
+holding = 0
+consume_timeout = 0.0000
+annoy_timeout = 0.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
+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 = 10
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:DispenserComponent
+item = "burger"
+max_timeout = 4.0000
+
+[Player]
+id = 152
+flags = 2
+pos.x = 398.4127
+pos.y = 262.9740
+size.x = 16.0000
+size.y = 32.0000
+:MovementComponent
+controls.up = 265
+controls.down = 264
+controls.left = 263
+controls.right = 262
+controls.interact = 44
+controls.pick_up = 46
+facing = 2
+velocity.x = -0.0000
+velocity.y = 0.0000
+speed = 800.0000
+:PlayerComponent
+holding = 0
+:RenderComponent
+layer = 10
+color.r = 1.0000
+color.g = 0.0000
+color.b = 1.0000
+color.a = 1.0000
+
+[Player]
+id = 12
+flags = 2
+pos.x = 309.5813
+pos.y = 370.5432
+size.x = 16.0000
+size.y = 32.0000
+:MovementComponent
+controls.up = 87
+controls.down = 83
+controls.left = 65
+controls.right = 68
+controls.interact = 70
+controls.pick_up = 71
+facing = 1
+velocity.x = -0.6185
+velocity.y = -0.6127
+speed = 800.0000
+:PlayerComponent
+holding = 0
+:RenderComponent
+layer = 10
+color.r = 0.0000
+color.g = 1.0000
+color.b = 0.0000
+color.a = 1.0000
+
+[Entryway]
+id = 156
+flags = 0
+pos.x = 400.0000
+pos.y = 592.0000
+size.x = 64.0000
+size.y = 32.0000
+:SpriteRenderComponent
+sprite.sheet = "./assets/images/spritesheet.png"
+sprite.pos.x = 80.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 = 100
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+:EntrywayComponent
+schematic = "Patron"
+spawned_size.x = 16.0000
+spawned_size.y = 32.0000
+enabled = true
+spawn_timeout_min = 5.0000
+spawn_timeout_max = 10.0000
+spawn_timeout = 3.6412
+
+[Custom]
+id = 163
+flags = 0
+pos.x = 0.0000
+pos.y = 0.0000
+size.x = 16.0000
+size.y = 16.0000
+:MoneyComponent
+money = 152
+money_sprite.sheet = "./assets/images/spritesheet.png"
+money_sprite.pos.x = 0.0000
+money_sprite.pos.y = 240.0000
+money_sprite.size.x = 16.0000
+money_sprite.size.y = 16.0000
+money_sprite.color.r = 1.0000
+money_sprite.color.g = 1.0000
+money_sprite.color.b = 1.0000
+money_sprite.color.a = 1.0000
+:RenderComponent
+layer = 100000
+color.r = 1.0000
+color.g = 1.0000
+color.b = 1.0000
+color.a = 1.0000
+
if draw_button(.{x, y, w, 40}, "Flush Textures") {
texture_cache_clear();
}
+
+ if draw_button(.{x, y+40, w, 40}, "Toggle distortion") {
+ distortion_enabled = !distortion_enabled;
+ }
}
}
}
game_time: f32;
+distortion_enabled := true;
+distortion_shader: Shader;
+
game_init :: () {
Audio_Manager.init();
+ distortion_shader = shader_make("./assets/shaders/crt.glsl");
+ shader_link_window_matrix_block(distortion_shader);
+ shader_link_world_matrix_block(distortion_shader);
+
scene_canvas = canvas_make(800, 608);
// This process of queueing the asset bucket should
immediate_set_color(.{1, 1, 1});
texture := canvas_to_texture(^scene_canvas);
+ texture_wrap(^texture, .Clamp);
view_rect: Rect;
if !editor_shown() {
view_rect = Rect.{0, 0, ~~window_width, ~~window_height};
glDisable(GL_CULL_FACE);
immediate_image(^texture, view_rect.x, ~~window_height - view_rect.y, view_rect.w, -view_rect.h);
- immediate_flush();
+ if distortion_enabled {
+ shader_use(distortion_shader);
+ shader_set_uniform(distortion_shader, #cstr "u_texture", 0);
+ shader_set_uniform(distortion_shader, #cstr "u_tex_size", Vector2.{800, 608});
+ shader_set_uniform(distortion_shader, #cstr "u_output_size", Vector2.{~~window_width, ~~window_height});
+ immediate_flush(false);
+ } else {
+ immediate_flush();
+ }
glEnable(GL_CULL_FACE);
update_world_matrix();
immediate_color = .{0,0,0};
}
-immediate_flush :: () {
+immediate_flush :: (set_shader := true) {
if vertex_count == 0 do return;
- shader_use(imgui_shader);
- shader_set_uniform(imgui_shader, #cstr "u_texture_enabled", 1.0f if rendering_type == .Image else 0.0f);
+ if set_shader {
+ shader_use(imgui_shader);
+ shader_set_uniform(imgui_shader, #cstr "u_texture_enabled", 1.0f if rendering_type == .Image else 0.0f);
+ }
immediate_mesh.vertex_count = vertex_count;
mesh_update_verticies(immediate_mesh, vertex_data);
set_uniform_internal :: #match {
macro (location: GLint, value: u32) do glUniform1i(location, value); ,
macro (location: GLint, value: f32) do glUniform1f(location, value); ,
+ macro (location: GLint, value: Vector2) do glUniform2f(location, value.x, value.y); ,
macro (location: GLint, value: Vector3) do glUniform3f(location, value.x, value.y, value.z); ,
macro (location: GLint, value: Color) do glUniform4f(location, value.r, value.g, value.b, value.a); ,