Пример #1
0
        public virtual void Initialize(IOutsideWorld outside_world, int world_seed, bool need_render_message)
        {
#if ALLOW_UPDATE
            AddComponent <LogicWorldEveryFrameUpdater>(true);
#endif
            m_outside_world        = outside_world;
            m_random_generator_int = new RandomGeneratorI(world_seed);
            m_random_generator_fp  = new RandomGeneratorFP(world_seed);

            m_need_render_message = need_render_message;
            if (m_need_render_message)
            {
                m_render_messages = new List <RenderMessage>();
            }

            m_scheduler = new TaskScheduler <LogicWorld>(this);

            m_signal_listener_id_generator    = new IDGenerator(IDGenerator.SIGNAL_LISTENER_FIRST_ID);
            m_attribute_modifier_id_generator = new IDGenerator(IDGenerator.ATTRIBUTE_MODIFIER_FIRST_ID);
            m_damage_modifier_id_generator    = new IDGenerator(IDGenerator.DAMAGE_MODIFIER_FIRST_ID);
            m_behavior_tree_id_generator      = new IDGenerator(IDGenerator.BEHAVIOR_TREE_FIRST_ID);

            m_player_manager  = new PlayerManager(this);
            m_entity_manager  = new EntityManager(this);
            m_skill_manager   = new SkillManager(this);
            m_effect_manager  = new EffectManager(this);
            m_faction_manager = new FactionManager(this);

            m_target_gathering_manager = new TargetGatheringManager(this);
            m_region_callback_manager  = new RegionCallbackManager(this);

            m_command_handler = CreateCommandHandler();

            PostInitialize();
        }
        public void Reset()
        {
            m_manager = null;
            m_id      = 0;

            m_callback       = null;
            m_binding_object = null;
            m_fixed_position.MakeZero();
            m_fixed_facing.MakeZero();
            m_target_gathering_param = null;

            m_active = false;
            m_previous_entered_entities.Clear();
            m_current_entered_entities.Clear();
        }
Пример #3
0
        public virtual void Destruct()
        {
            m_collapsing = true;

            m_scheduler.Destruct();
            m_scheduler = null;
            m_random_generator_int.Destruct();
            m_random_generator_int = null;
            m_random_generator_fp.Destruct();
            m_random_generator_fp = null;
            m_signal_listener_id_generator.Destruct();
            m_signal_listener_id_generator = null;
            m_attribute_modifier_id_generator.Destruct();
            m_attribute_modifier_id_generator = null;
            m_damage_modifier_id_generator.Destruct();
            m_damage_modifier_id_generator = null;
            m_behavior_tree_id_generator.Destruct();
            m_behavior_tree_id_generator = null;

            m_entity_manager.Destruct();
            m_entity_manager = null;
            m_player_manager.Destruct();
            m_player_manager = null;

            m_skill_manager.Destruct();
            m_skill_manager = null;
            m_effect_manager.Destruct();
            m_effect_manager = null;
            m_faction_manager.Destruct();
            m_faction_manager = null;

            m_target_gathering_manager.Destruct();
            m_target_gathering_manager = null;
            m_region_callback_manager.Destruct();
            m_region_callback_manager = null;

            m_command_handler.Destruct();
            m_command_handler = null;

            m_active_behavior_trees.Clear();

            DestroyAllGeneralComponent();
        }
 public ActiveRegionBundles(RegionCallbackManager manager, int update_interval)
 {
     m_manager         = manager;
     m_update_interval = update_interval;
 }
 public void PreConstruct(RegionCallbackManager manager)
 {
     m_manager = manager;
     m_id      = manager.GenerateID();
 }