コード例 #1
0
        public static HUDObject LoadFromStorage(Storage.HUDObject storageHudObject, Storage.HUD storageHud)
        {
            // Build collisionboxes, hitboxes and events from storageCharacter
            // No worries with performance here, get a copy to everything
            HUDObject hudObj = new HUDObject();

            hudObj.name     = storageHudObject.name;
            hudObj.teamId   = storageHudObject.teamId;
            hudObj.playerId = storageHudObject.playerId;
            hudObj.attackAndGrabDelegation = storageHudObject.attackAndGrabDelegation;

            // Populate events
            if (storageHudObject.events != null)
            {
                hudObj.events = new List <ConditionalEvent>(storageHudObject.events.Length);
                foreach (Storage.GenericEvent e in storageHudObject.events)
                {
                    hudObj.events.Add(ConditionalEvent.LoadFromStorage(e, storageHud));
                }
            }
            else
            {
                hudObj.events = new List <ConditionalEvent>();
            }

            return(hudObj);
        }
コード例 #2
0
        public Storage.HUD SaveToStorage()
        {
            Storage.HUD storageHud = new Storage.HUD();
            storageHud.mainPrefabName = rootCanvas;


            // Generate generic parameters, and imediately construct the rest of the data
            // Tricky step
            List <GenericParameter> genericParams = new List <GenericParameter>();

            if (objects != null)
            {
                foreach (HUDObject hudObj in objects)
                {
                    hudObj.BuildStorage(genericParams);
                }
            }

            // Populate generic params
            if (genericParams != null)
            {
                storageHud.genericParameters = new Storage.GenericParameter[genericParams.Count];
                for (int i = 0; i < genericParams.Count; ++i)
                {
                    storageHud.genericParameters[i] = genericParams[i].SaveToStorage();
                }
            }


            // Populate objects
            if (objects != null)
            {
                storageHud.objects = new Storage.HUDObject[objects.Count];
                for (int i = 0; i < objects.Count; ++i)
                {
                    storageHud.objects[i] = objects[i].SaveToStorage();
                }
            }

            return(storageHud);
        }
コード例 #3
0
        public static HUD LoadFromStorage(string bundleName, Storage.HUD storageHud)
        {
            HUD hud = new HUD(bundleName);

            hud.rootCanvas = storageHud.mainPrefabName;

            // Populate objects
            if (storageHud.objects != null)
            {
                hud.objects = new List <HUDObject>(storageHud.objects.Length);
                foreach (Storage.HUDObject storageObject in storageHud.objects)
                {
                    hud.objects.Add(HUDObject.LoadFromStorage(storageObject, storageHud));
                }
            }
            else
            {
                hud.objects = new List <HUDObject>();
            }

            return(hud);
        }
コード例 #4
0
        public static ConditionalEvent LoadFromStorage(Storage.GenericEvent storageEvent, Storage.HUD storageHud)
        {
            ConditionalEvent newEvent = new ConditionalEvent();

            // Populate conditions
            newEvent.conditions = new List <GenericParameter>(storageEvent.conditionIds.Length);
            foreach (int conditionId in storageEvent.conditionIds)
            {
                newEvent.conditions.Add(GenericParameter.LoadFromStorage(storageHud.genericParameters[conditionId]));
            }

            // Populate events
            newEvent.events = new List <GenericParameter>(storageEvent.eventIds.Length);
            foreach (int eventId in storageEvent.eventIds)
            {
                newEvent.events.Add(GenericParameter.LoadFromStorage(storageHud.genericParameters[eventId]));
            }

            return(newEvent);
        }