def run(): # entities entity_manager = entity.EntityManager() entity_manager.generate_random(10000) entity_manager.set_dimension_values([(2, 0)]) # tasks task_manager = sim.taskmanager.TaskManager(entity_manager.get_ids()) tasks = [ sim.taskmanager.Task("Hunt", sim.taskmanager.TaskType.GATHER), sim.taskmanager.Task("Cook", sim.taskmanager.TaskType.ACTIVITY), sim.taskmanager.Task("Clean", sim.taskmanager.TaskType.ACTIVITY), sim.taskmanager.Task("Gather Water", sim.taskmanager.TaskType.GATHER), ] task_manager.randomly_assign(tasks) # terrain terrain = sim.world.Terrain([ sim.world.Resource("Hunt", 2, entity.Point(-55, -33, 0)), sim.world.Resource("Cook", 4, entity.Point(15, 25, 0)), sim.world.Resource("Clean", 2, entity.Point(0, 0, 0)), sim.world.Resource("Gather Water", 100, entity.Point(5, 5, 0)), ]) # renderer renderer = Renderer() event_processor = EventProcessor() # run sim world = sim.world.World(terrain, entity_manager, task_manager) while True: sim.world.run(world, renderer, event_processor) time.sleep(0.16)
def generate(self): return [ LSW_NC(), entity.Line(start=entity.Point(*LSW_NC_LINE_INTERSECT), end=entity.Point(30, -15)), entity.Arc.from_crse(center=entity.Point(30, -25), radius=10, start=0, end=180), entity.Line(start=entity.Point(20, -25), end=entity.Point(40, -25)) ]
def generate(self): return [ ITERM(right=False), entity.Line(start=entity.Point(10, -5), end=entity.Point(50, -5)), entity.Line(start=entity.Point(30, -5), end=entity.Point(30, 10)), ITERM(left=False).translate(xoff=40, yoff=0) ]
def generate(self): return [ entity.PolyLine( points=[entity.Point(0, 10), entity.Point(20, 10), entity.Point(20, -10), entity.Point(0, -10)], closed=True), entity.Circle(center=entity.Point(10, 0), radius=10) ]
def generate(self): return [ entity.Line(entity.Point(0, 0), entity.Point(0, -12)), entity.Line(entity.Point(-6, -12), entity.Point(6, -12)), entity.Line(entity.Point(-6, -12), entity.Point(-9, -17)), entity.Line(entity.Point(0, -12), entity.Point(-3, -17)), entity.Line(entity.Point(6, -12), entity.Point(3, -17)), ]
def generate_multipole(self, poles=1): entities = self.generate_multipole_basic(poles=poles) entities.append( entity.Line(start=entity.Point(30, 20), end=entity.Point(30, 20 + (cfg.POLE_OFFSET * (poles - 1))), linetype='PHANTOM')) return entities
def generate(self): return [ entity.PolyLine(points=[ entity.Point(0, 0), entity.Point(10, 10), entity.Point(10, -10), entity.Point(20, 0) ], closed=False) ]
def generate(self): return [ entity.Line(entity.Point(0, 0), entity.Point(0, -12)), entity.PolyLine(points=[ entity.Point(-6, -12), entity.Point(6, -12), entity.Point(0, -18) ], closed=True) ]
def generate(self): return [ LSW_NC(), entity.PolyLine(points=[ entity.Point(*LSW_NC_LINE_INTERSECT), entity.Point(30, -20), entity.Point(40, -20), entity.Point(30, -10), ], closed=False) ]
def generate(self): base: List[entity.Entity] = [entity.Circle(entity.Point(10, 0), 5)] if self.left: base.append(entity.Line(entity.Point(0, 0), entity.Point(5, 0))) if self.right: base.append(entity.Line(entity.Point(15, 0), entity.Point(20, 0))) return base
def generate(self): return [ ETERM(), entity.Rect(points=[ entity.Point(-10, 20), entity.Point(110, 20), entity.Point(110, -20), entity.Point(-10, -20), ], linetype='PHANTOM'), ETERM().translate(xoff=80, yoff=0) ]
def generate(self): return [ entity.Line(entity.Point(0, 0), entity.Point(0, -12)), entity.Line(entity.Point(-6, -12), entity.Point(6, -12)), entity.Line(entity.Point(-4, -14), entity.Point(4, -14)), entity.Line(entity.Point(-2, -16), entity.Point(2, -16)), ]
def generate(self): return [ entity.Line(entity.Point(0, 0), entity.Point(5, 0)), entity.Line(entity.Point(15, 0), entity.Point(20, 0)), entity.Line(entity.Point(5, 10), entity.Point(5, -10)), entity.Line(entity.Point(15, 10), entity.Point(15, -10)), ]
def generate_multipole(self, poles=1): entities = self.generate_multipole_basic(poles=poles) entities.append( entity.PolyLine(points=[ entity.Point(30, 20), entity.Point( LSW_NO_LINE_INTERSECT[0], LSW_NO_LINE_INTERSECT[1] + cfg.POLE_OFFSET * (poles - 0.5)), entity.Point( LSW_NO_LINE_END[0], LSW_NO_LINE_END[1] + cfg.POLE_OFFSET * (poles - 0.5)), ], closed=False, linetype='PHANTOM')) return entities
def generate(self): return [ ITERM(left=True, right=False), entity.Arc.from_crse(center=entity.Point(30, -5), radius=25, start=37, end=143), ITERM(left=False, right=True).translate(xoff=40, yoff=0) ]
def generate(self): return [ ETERM(), entity.Line(start=entity.Point(20, 0), end=entity.Point(40, 0)), NC().translate(xoff=40, yoff=0), entity.Line(start=entity.Point(60, 0), end=entity.Point(80, 0)), entity.Rect(points=[ entity.Point(-10, 20), entity.Point(110, 20), entity.Point(110, -20), entity.Point(-10, -20), ], linetype='PHANTOM'), ETERM().translate(xoff=80, yoff=0) ]
def generate(self): return [ LSW_NO(), entity.PolyLine(points=[ entity.Point(*LSW_NO_LINE_INTERSECT), entity.Point(30, -10), entity.Point(35, -10), entity.Point(35, -15), entity.Point(25, -15), entity.Point(25, -20), entity.Point(30, -20), entity.Point(30, -25) ], closed=False) ]
def generate(self): return [ ITERM(right=False), entity.Line(entity.Point(15, 0), entity.Point(*LSW_NC_LINE_END)), ITERM(left=False).translate(xoff=40, yoff=0) ]
def generate(self): return [ NO(), entity.Line(entity.Point(0, 10), entity.Point(20, -10)), ]
def generate(self): return [ entity.Arc.from_crse(center=entity.Point(10, 0), radius=10, start=270, end=180), entity.Arc.from_crse(center=entity.Point(30, 0), radius=10, start=90, end=0) ]
def generate(self): return [ LSW_NC(), entity.Line(start=entity.Point(*LSW_NC_LINE_INTERSECT), end=entity.Point(30, -15)), entity.Circle(center=entity.Point(30, -25), radius=10) ]