diff options
| author | Alexander M Pickering <alex@cogarr.net> | 2025-01-19 15:23:06 -0600 |
|---|---|---|
| committer | Alexander M Pickering <alex@cogarr.net> | 2025-01-19 15:23:06 -0600 |
| commit | da9dd31f504d30f33922cdf362a7c01673a6b927 (patch) | |
| tree | 6e3247dc8f57c16fd02d7ac07246d82c8ab65ccb /src/world_test.moon | |
| parent | 90ee66a3a6aae10fd84f3f43844db55229933e37 (diff) | |
| download | ggj25-da9dd31f504d30f33922cdf362a7c01673a6b927.tar.gz ggj25-da9dd31f504d30f33922cdf362a7c01673a6b927.tar.bz2 ggj25-da9dd31f504d30f33922cdf362a7c01673a6b927.zip | |
Last commit before theme release
Diffstat (limited to 'src/world_test.moon')
| -rw-r--r-- | src/world_test.moon | 77 |
1 files changed, 75 insertions, 2 deletions
diff --git a/src/world_test.moon b/src/world_test.moon index 7ba6eb8..8fa9da5 100644 --- a/src/world_test.moon +++ b/src/world_test.moon @@ -1,7 +1,42 @@ shader = require("shaders.world") win = require("window") -hc = require("party.hardoncollider.init") +hc = require("party.hc.init") +ecs = require("ecs") world = require("world") +ss = require("shader_shim") +ui = require("ui") +peer = require("router") + +server = ui.button(-200,0,100,100, "Server") +co = nil +server.on = () => + if @co == nil + print("Setting co...") + @co = coroutine.create(() -> + router = peer.Router! + router\initalize! + router + ) + button = @ + @node\action(() => + if button.co and coroutine.status(button.co) ~= "dead" + succ, val = coroutine.resume(button.co) + if not succ + error(debug.traceback(button.co,val)) + if type(val) == "string" + button.text.text = val + else + router = val + + world.router = router + ) + +client.on = () => + +textbox = ui.textbox(200,100,100,32, "Serverid") +client = ui.button(200,0,100,100, "Client") +test_sprite = am.translate(0,0) ^ am.scale(20) ^ am.sprite("BRY\nYYY\nBBB") +ui.node\prepend(test_sprite) world_cache = { @@ -11,5 +46,43 @@ print("Before setting world level:", world) world.level = { graphics:{} entities:{} - graphic_world: hc\new(5) + graphic_world: hc.new(5) + physics_world: hc.new(1) } +world.level.entities[0] = ecs.Entity("World",{ + ecs.NetworkedComponent("net",{seed: "1234567"}), + ecs.GraphicsComponent("graphics",{ + node: ss.world\append( + am.depth_test("less")\append( + am.cull_face("front")\append( + am.bind({})\append( + am.draw("triangles") + )))) + }), + ecs.PhysicsComponent("physics",{ + shape: world.level.physics_world\rectangle(0,0,100,100) + }), + ecs.ScriptComponent("script",{script: "prefab.worldgen"}) +}) + +world.level.entities[1] = ecs.Entity("LocalPlayer",{ + ecs.NetworkedComponent({ + name: "" + position: {0,0} + velocity: {0,0} + acceleration: {0,0} + lasttime: 0 + }), + ecs.GraphicsComponent("graphics",{ + node: ss.world\append( + am.depth_test("less")\append( + am.cull_face("front")\append( + am.bind({})\append( + am.draw("triangles") + )))) + }), + ecs.PhysicsComponent("physics",{shape: world.level.physics_world\circle(0,0,0.5)}), + ecs.ScriptComponent("script",{script: "player"}) +}) + + |
