{
const world = bitECS.createWorld();
world.name = "TempestWorld";
addToConsole(world);
const entity001 = bitECS.addEntity(world)
addToConsole(entity001);
const Vector3 = {
x: bitECS.Types.f32,
y: bitECS.Types.f32,
z: bitECS.Types.f32
}
addToConsole(Vector3)
const Position = bitECS.defineComponent(Vector3)
const Velocity = bitECS.defineComponent(Vector3)
addToConsole(Position);
addToConsole(Velocity);
const List = bitECS.defineComponent({
values: [bitECS.Types.f32, 3]
})
const Tag = bitECS.defineComponent()
addToConsole(Tag)
bitECS.addComponent(world, Position, entity001)
bitECS.addComponent(world, Velocity, entity001)
bitECS.addComponent(world, List, entity001)
bitECS.addComponent(world, Tag, entity001)
Velocity.x[entity001] = 1;
Velocity.y[entity001] = 1;
addToConsole(Velocity.x)
const movementQuery = bitECS.defineQuery([Position, Velocity])
const ents = movementQuery(world)
addToConsole(ents);
world.time = { delta: 0, elapsed: 0, then: performance.now() }
addToConsole(world)
const movementSystem = (world) => {
const ents = movementQuery(world)
for (let i = 0; i < ents.length; i++) {
const eid = ents[i]
Position.x[eid] += Velocity.x[eid]
Position.y[eid] += Velocity.y[eid]
Position.z[eid] += Velocity.z[eid]
}
return world
}
const timeSystem = world => {
const { time } = world
const now = performance.now()
const delta = now - time.then
time.delta = delta
time.elapsed += delta
time.then = now
return world
}
const pipeline = bitECS.pipe(movementSystem, timeSystem)
setInterval(() => {
pipeline(world);
console.log("Position", Position.x[entity001])
scanner.querySelector("#xpos").innerHTML = Position.x[entity001]
console.log("tobj", JSON.stringify(world.time))
timeview.querySelector("#tobj").innerHTML = JSON.stringify(world.time);
}, 1000)
}