Ejemplo n.º 1
0
        public EffectGeneratorData GetEffectGeneratorData(int id)
        {
            EffectGeneratorData generator_data = null;

            if (!m_effect_generator_data.TryGetValue(id, out generator_data))
            {
                return(null);
            }
            return(generator_data);
        }
Ejemplo n.º 2
0
 public void Construct(LogicWorld logic_world, int id, EffectGeneratorData data)
 {
     m_logic_world = logic_world;
     m_id          = id;
     m_data        = data;
     for (int i = 0; i < m_data.m_entries.Count; ++i)
     {
         EffectGeneratorEntry entry = RecyclableObject.Create <EffectGeneratorEntry>();
         entry.Construct(this, m_data.m_entries[i], i);
         m_entries.Add(entry);
     }
 }
Ejemplo n.º 3
0
 public void Reset()
 {
     m_logic_world = null;
     m_id          = 0;
     m_data        = null;
     for (int i = 0; i < m_entries.Count; ++i)
     {
         RecyclableObject.Recycle(m_entries[i]);
     }
     m_entries.Clear();
     m_remove_self_when_idle = false;
     m_is_active             = false;
 }
Ejemplo n.º 4
0
        public EffectGenerator CreateGenerator(int generator_id, Entity owner)
        {
            IConfigProvider     config_provider = m_logic_world.GetConfigProvider();
            EffectGeneratorData data            = config_provider.GetEffectGeneratorData(generator_id);

            if (data == null)
            {
                return(null);
            }
            int             id        = m_generator_id_generator.GenID();
            EffectGenerator generator = RecyclableObject.Create <EffectGenerator>();

            generator.Construct(m_logic_world, id, data);
            m_generators[id] = generator;
            EffectGeneratorRegistry registry = EntityUtil.GetEffectGeneratorRegistry(owner);

            if (registry != null)
            {
                registry.AddGenerator(generator);
            }
            return(generator);
        }