Esempio n. 1
0
	def test_step_max_dt(self):
		from bGrease import World
		world = World()
		sys1 = world.systems.sys = TestSystem()
		comp1 = world.components.foo = TestComponent()
		world.step(10000)
		self.assertEqual(comp1.runtime, 10.0 / world.step_rate)
		self.assertEqual(sys1.runtime, 10.0 / world.step_rate)
Esempio n. 2
0
	def test_step_components(self):
		from bGrease import World, Entity
		world = World()
		comp1 = world.components.one = TestComponent()
		comp2 = world.components.two = TestComponent()
		entity = Entity(world)
		self.assertTrue(comp1.runtime == comp2.runtime == 0, comp1.runtime)
		world.step(0.05)
		self.assertEqual(comp1.runtime, 0.05)
		self.assertEqual(comp2.runtime, 0.05)
		world.step(0.06)
		self.assertEqual(comp1.runtime, 0.11)
		self.assertEqual(comp2.runtime, 0.11)
Esempio n. 3
0
	def test_system_step_order(self):
		from bGrease import World
		world = World()
		sys1 = world.systems.one = TestSystem()
		sys3 = world.systems.three = TestSystem()
		sys2 = TestSystem()
		world.systems.insert('two', sys2, index=1)
		self.assertEqual(len(world.systems), 3)
		self.assertTrue(sys1.runtime == sys2.runtime == sys3.runtime == 0)
		self.assertTrue(sys1.order == sys2.order == sys3.order == TestSystem.order)
		world.step(0.13)
		self.assertTrue(sys1.runtime == sys2.runtime == sys3.runtime == 0.13)
		start = sys1.order
		self.assertEqual(sys2.order, start + 1)
		self.assertEqual(sys3.order, start + 2)
Esempio n. 4
0
	def test_add_system_during_run(self):
		from bGrease import World
		world = World()
		sys1 = world.systems.sys1 = TestSystem()
		to_inject = TestSystem()
		injector = world.systems.injector = TestSystemInjector('injected', to_inject)
		self.assertEqual(len(world.systems), 2)
		self.assertTrue(sys1.runtime == to_inject.runtime == injector.runtime == 0)
		self.assertFalse(injector.injected)
		world.step(0.1)
		self.assertEqual(len(world.systems), 3)
		self.assertEqual(sys1.runtime, 0.1)
		self.assertEqual(injector.runtime, 0.1)
		self.assertEqual(to_inject.runtime, 0)
		self.assertTrue(injector.injected)
		world.step(0.1)
		self.assertEqual(len(world.systems), 3)
		self.assertEqual(sys1.runtime, 0.2)
		self.assertEqual(injector.runtime, 0.2)
		self.assertEqual(to_inject.runtime, 0.1)