| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- --[[
- Just a small test
- ]]--
- local class = require("class")
- local Component = require("Component")
- local World = require("ECSWorld")
- local SystemFilter = require("SystemFilter")
- local System = require("System")
- local world = ECSWorld:new()
- local LifeComponent = Component()
- LifeComponent.__name = "LifeComponent"
- function LifeComponent:init(life, life_max)
- self.life = life
- self.life_max = life_max
- end
- local ManaComponent = Component()
- ManaComponent.__name = "ManaComponent"
- function ManaComponent:init(mana, mana_max)
- self.mana = mana
- self.mana_max = mana_max
- end
- local CreatureSystem = System()
- function CreatureSystem.update(dt, entities)
- for i,entity in ipairs(entities) do
- print(string.format(
- [[HP : %d/%d
- MP : %d/%d]],
- entity:getComponent(LifeComponent).life,
- entity:getComponent(LifeComponent).life_max,
- entity:getComponent(ManaComponent).mana,
- entity:getComponent(ManaComponent).mana_max))
- end
- end
- local e = world:createEntity()
- world:registerSystem(CreatureSystem, LifeComponent, ManaComponent)
- print(LifeComponent)
- e:addComponent(LifeComponent, 10, 20)
- e:addComponent(ManaComponent, 10, 20)
- world:update(0)
- e:removeComponent(ManaComponent)
- world:update(0)
|