abrasion/hsvr/scene.lua

38 lines
942 B
Lua

local rm = resourcemanager
local cube_mesh = rm.get_mesh("cube")
local cube_material = rm.get_material("test-128px")
local Cube = {}
function Cube:init(x, y, z)
self.name = string.format("%d %d %d", x, y, z)
self.components.Transform = components.Transform.new(x, y, z)
end
function Cube:tick()
local xyzw = self.components.Transform:xyzw();
local x = xyzw[1];
local y = xyzw[2];
local dist = math.sqrt(x*x + y*y)
local z = math.sin(time*2+dist)*math.max(10-dist, 0)/10
local new = components.Transform.new(x, y, z);
--print(self.name, x, y, z, new:xyzw()[1], new:xyzw()[2], new:xyzw()[3])
self.components.Transform = new
end
sent.register({
name = "Cube",
cls = Cube,
components = {
components.Transform.new(0, 0, 0),
components.Renderable.new_mesh(cube_mesh, cube_material),
},
})
local z = 0
for x=-8,8 do
for y=-8,8 do
Cube.new(x, y, z)
end
end