Ejemplo n.º 1
0
        public void Awake(long id)
        {
            Object obj;

            if (!objects.TryGetValue(id, out obj))
            {
                return;
            }
            IObjectEvent objectEvent;

            if (!objectEvents.TryGetValue(obj.GetType(), out objectEvent))
            {
                return;
            }
            IAwake iAwake = objectEvent as IAwake;

            if (iAwake == null)
            {
                return;
            }
            objectEvent.SetValue(obj);
            iAwake.Awake();
        }
Ejemplo n.º 2
0
        public void Awake <P1, P2, P3>(long id, P1 p1, P2 p2, P3 p3)
        {
            Object obj;

            if (!objects.TryGetValue(id, out obj))
            {
                return;
            }
            IObjectEvent objectEvent;

            if (!objectEvents.TryGetValue(obj.GetType(), out objectEvent))
            {
                return;
            }
            IAwake <P1, P2, P3> iAwake = objectEvent as IAwake <P1, P2, P3>;

            if (iAwake == null)
            {
                return;
            }
            objectEvent.SetValue(obj);
            iAwake.Awake(p1, p2, p3);
        }
Ejemplo n.º 3
0
        public K AddComponent <K, P1, P2>(P1 p1, P2 p2) where K : Component, new()
        {
            K component = (K)Activator.CreateInstance(typeof(K));

            component.Owner = this;

            if (this.componentDict.ContainsKey(component.GetType()))
            {
                throw new Exception($"AddComponent, component already exist, id: {this.Id}, component: {typeof (K).Name}");
            }

            if (this.components == null)
            {
                this.components = new HashSet <Component>();
            }

            this.components.Add(component);
            this.componentDict.Add(component.GetType(), component);
            IAwake <P1, P2> awake = component as IAwake <P1, P2>;

            awake?.Awake(p1, p2);
            return(component);
        }