summaryrefslogtreecommitdiff
path: root/src/world_test.moon
diff options
context:
space:
mode:
authorAlexander M Pickering <alex@cogarr.net>2025-01-19 15:23:06 -0600
committerAlexander M Pickering <alex@cogarr.net>2025-01-19 15:23:06 -0600
commitda9dd31f504d30f33922cdf362a7c01673a6b927 (patch)
tree6e3247dc8f57c16fd02d7ac07246d82c8ab65ccb /src/world_test.moon
parent90ee66a3a6aae10fd84f3f43844db55229933e37 (diff)
downloadggj25-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.moon77
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"})
+})
+
+