summaryrefslogtreecommitdiff
path: root/src/bobber.moon
diff options
context:
space:
mode:
Diffstat (limited to 'src/bobber.moon')
-rw-r--r--src/bobber.moon39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/bobber.moon b/src/bobber.moon
index 6f52c6b..cee0f14 100644
--- a/src/bobber.moon
+++ b/src/bobber.moon
@@ -1,6 +1,8 @@
world = require("world")
sprites = require("world.sprites")
ecs = require("ecs")
+win = require("window")
+colors = require("color")
class BobberGraphicsComponent extends world.GraphicsComponent
@loctbl = {
@@ -16,7 +18,7 @@ class BobberGraphicsComponent extends world.GraphicsComponent
populate_buf: (geom_view, normal_view, offset) =>
@buf = geom_view
h = 0.1
- uv = sprites.player_normal
+ uv = sprites.bobber_normal
utbl = {
[-1]: {uv.s1, uv.t1}
[1]: {uv.s2, uv.t2}
@@ -27,6 +29,22 @@ class BobberGraphicsComponent extends world.GraphicsComponent
loctbl = @@loctbl[i]
geom_view[i] = vec3(@@loctbl[i][1] * h, @@loctbl[i][2] * h, z) + vec3(@properties.pos.x, @properties.pos.y, z)
normal_view[i] = vec2(utbl[@@loctbl[i][1]][1], utbl[@@loctbl[i][2]][2])
+ join: (entity) =>
+ super(entity)
+ aspect = win.width / win.height
+ program = @.node("use_program")
+ graphic = entity\get("bobber")
+ @node\remove(program)
+ @node\append(am.blend("alpha")\append(program))
+ bind = @.node("bind")
+ [[
+ for name, color in pairs(colors.am_lake_color)
+ bind[name] = color
+ ]]
+ bind.water = 1
+ @ent = entity
+ @last_bubble = am.current_time!
+ comp = @
class BobberPhysicsComponent extends world.PhysicsComponent
new: (name, properties, shape, args) =>
@@ -55,24 +73,5 @@ class Bobber extends ecs.Entity
return false
-class BubblesGraphicsComponent extends world.GraphicsComponent
- buf_size: () =>
- 6
- populate_buf: (geom_view, normal_view, offset) =>
- h = 1
- geom_view[1] = vec3(-h,-h,1)
- geom_view[2] = vec3(-h,h,1)
- geom_view[3] = vec3(-h,-h,1)
- geom_view[4] = vec3(h,h,1)
- geom_view[5] = vec3(h,-h,1)
- geom_view[6] = vec3(-h,-h,1)
- uv = sprites.player_normal
- normal_view[1] = vec2(uv.s1,uv.t1)
- normal_view[2] = vec2(uv.s1,uv.t2)
- normal_view[3] = vec2(uv.s2,uv.t2)
- normal_view[4] = vec2(uv.s2,uv.t2)
- normal_view[5] = vec2(uv.s2,uv.t1)
- normal_view[6] = vec2(uv.s1,uv.t1)
- bind = @.node("bind")
{:BobberGraphicsComponent, :BobberPhysicsComponent, :Bobber}