def __init__( self, simulation_manager: SimulationStateManager, entity_component_manager: EntityComponentManager, status_effect_manager: StatusEffectManager, being_factory, human_behavior_factory, ai_behavior_factory, being_fsm_factory, being_component_factory, ): super(CharacterCreator, self).__init__() # TODO: configuration for different aspects of the character creator. # e.g. # - rules on what skills, advantages, items, etc are allowed. # - contextual rules on what selections can be made together (exclusivity, etc) # - costs for different stats, skills, adv/dis, etc. self.simulation_manager = simulation_manager self.entity_component_manager = entity_component_manager self.status_effect_manager = status_effect_manager self.being_factory = being_factory self.human_behavior_factory = human_behavior_factory self.ai_behavior_factory = ai_behavior_factory self.being_fsm_factory = being_fsm_factory self.being_component_factory = being_component_factory Event.register("generate_random_character", self, self.generate_random_character)
def __init__(self, event_types): super(InteractionEventManager, self).__init__() self.event_instances = dict() # Bind to each event type and save an entry in the event dictionary for event in event_types: self.event_instances[event] = 0 lmb = partial(self.on_event, event) Event.register(event, self, lmb)
def __init__(self, parent, data_model: DatabaseBackedGridModel, entity_component_manager): PandaNode.__init__(self, "grid_%s" % id(self)) DirectObject.__init__(self) self.parent = parent self.path = parent.attachNewNode(self) self.data_model = data_model self.entity_component_manager = entity_component_manager self._hex_model = None self.cubic_spiral = cubic_spiral(np.array([0, 0, 0]), radius=data_model.chunk_radius + 1) self._instantiate_grid_() # Register for messages about each location. Event.register("notify_grid_update", self, self.update_grid)
def __init__(self, being_model_manager: BeingModelManager, status_effect_manager: StatusEffectManager, logger): super(ConsciousnessHandler, self).__init__() self.being_model_manager = being_model_manager self.status_effect_manager = status_effect_manager self.logger = logger.newCategory(__name__) # Register event that watches for damage to occur. Event.register("actor_damaged", self, self.assess_damage) Event.register("actor_retain_consciousness", self, self.maintain_consciousness) Event.register("actor_regain_consciousness", self, self.regain_consciousness)
def register(id, source: DirectObject, callback): Event.register("refresh_stats_%s" % id, source, callback)