Example #1
0
        /// <summary>
        /// Draw the body of the block.
        /// </summary>
        private static void DrawItems()
        {
            // exit early if there are no items
            if (items == null || items.Count == 0)
            {
                HeroKitCommon.DrawNoItemsInList(blockName);
                return;
            }

            SimpleLayout.BeginVertical(Box.StyleCanvasBox);

            // display items (move up, move down, int field,
            for (int i = 0; i < items.Count; i++)
            {
                SimpleLayout.BeginHorizontal();
                HeroKitCommon.DrawListArrows(moveItemUp, moveItemDown, i);

                items[i].value = SimpleLayout.BoolListField(items[i], i);
                items[i].name  = SimpleLayout.StringListField(items[i].name, HeroKitCommon.GetWidthForField(289));

                HeroKitCommon.DrawListButtons(addItem, copyItem, pasteItem, deleteItem, i);
                SimpleLayout.EndHorizontal();

                if (i != items.Count - 1)
                {
                    SimpleLayout.Line();
                }
            }

            SimpleLayout.EndVertical();

            SimpleLayout.Space(20);
        }
Example #2
0
        // --------------------------------------------------------------
        // Action Fields
        // --------------------------------------------------------------

        /// <summary>
        /// Get a hero object.
        /// </summary>
        /// <param name="title">Title for action field.</param>
        /// <param name="actionParams">Action field parameters.</param>
        /// <param name="actionField">Action field.</param>
        public static void BuildField(string title, HeroActionParams actionParams, HeroActionField actionField)
        {
            // create the fields
            HeroTypeFieldData data = CreateFieldData(title, actionField, actionParams.heroObject);

            //-----------------------------------------
            // Display this title above the field
            //-----------------------------------------
            if (data.title != "")
            {
                SimpleLayout.Label(data.title);
            }
            SimpleLayout.BeginHorizontal();

            //-----------------------------------------
            // Get the integer list you want to work with.
            // The integer list is in hero object editor > Variables
            //-----------------------------------------
            data.fieldValue = SimpleLayout.ObjectField(data.fieldValue, HeroKitCommon.GetWidthForField(65));

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            actionField.heroObjects[0] = data.fieldValue;

            //-----------------------------------------
            // Visual stuff
            //-----------------------------------------
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();
        }
Example #3
0
        /// <summary>
        /// Fields for the hero property (strings).
        /// </summary>
        private static void DrawStrings()
        {
            List <StringField> items = propertyBlock.itemProperties.strings.items;

            // exit early if there are no values
            if (items == null || items.Count == 0)
            {
                return;
            }

            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);
            for (int i = 0; i < items.Count; i++)
            {
                SimpleLayout.Label(items[i].name + ":");
                if (!items[i].useTextField)
                {
                    items[i].value = SimpleLayout.TextField(items[i].value, HeroKitCommon.GetWidthForField(60, 150));
                }
                else
                {
                    items[i].value = SimpleLayout.TextArea(items[i].value, HeroKitCommon.GetWidthForField(60, 150));
                }
            }
            SimpleLayout.EndVertical();
        }
Example #4
0
        // pass field into a drop down list [change first value in DropDownList]
        public static int SetValues(FieldInfo[] list, int selectedValue, int titleWidth)
        {
            PopulateField(list);
            int result = SimpleLayout.DropDownList(selectedValue, field, titleWidth, HeroKitCommon.GetWidthForField(62));

            result = (result == 0 && list != null && list.Length != 0) ? 1 : result;
            return(result);
        }
Example #5
0
        /// <summary>
        /// Draw the body of the block.
        /// </summary>
        private static void DrawBody()
        {
            SimpleLayout.BeginVertical(Box.StyleCanvasBox);

            // draw name of the block
            action.name = HeroKitCommon.DrawBlockName(action.name);

            SimpleLayout.Line();

            // get current action template on hero object
            HeroKitAction oldTemplate = action.actionTemplate;

            // draw action field for block
            SimpleLayout.Space(5);
            SimpleLayout.BeginHorizontal();
            SimpleLayout.Label("Action:");
            action.actionTemplate = SimpleLayout.ObjectField(action.actionTemplate, HeroKitCommon.GetWidthForField(85));

            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            // SHOW FIELDS FOR SPECIFIC ACTION
            if (action.actionTemplate != null)
            {
                SimpleLayout.Space(5);
                SimpleLayout.Line();
                SimpleLayout.Space(5);

                // build fields
                ActionBlockBuilder.BuildFields(heroObject, action, action.actionTemplate, oldTemplate);

                // build description for action
                SimpleLayout.Space(5);
                SimpleLayout.Line();
                SimpleLayout.Label("Description:");
                SimpleLayout.Label(action.actionTemplate.description, true);
            }


            SimpleLayout.EndVertical();
        }
Example #6
0
        // --------------------------------------------------------------
        // Action Fields
        // --------------------------------------------------------------

        /// <summary>
        /// Get an object.
        /// </summary>
        /// <typeparam name="T">The type of object.</typeparam>
        /// <param name="title">Title for action field.</param>
        /// <param name="actionParams">Action field parameters.</param>
        /// <param name="actionField">Action field.</param>
        /// <param name="titleToLeft">Show the title on the left?</param>
        /// <returns>The object.</returns>
        public static T BuildField <T>(string title, HeroActionParams actionParams, HeroActionField actionField, bool titleToLeft = false) where  T : Object
        {
            // create the fields
            GetObjectValueData data = CreateFieldData(title, actionField, actionParams.heroObject);

            //-----------------------------------------
            // Display this title above the field
            //-----------------------------------------
            if (data.title != "" && !titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }
            SimpleLayout.BeginHorizontal();
            if (data.title != "" && titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }

            //-----------------------------------------
            // Get the object you want to work with
            //-----------------------------------------
            data.fieldValue = SimpleLayout.ObjectField(data.fieldValue as T, HeroKitCommon.GetWidthForField(60));

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            actionField.component = data.fieldValue;

            //-----------------------------------------
            // Visual stuff
            //-----------------------------------------
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            return(actionField.component as T);
        }
Example #7
0
        public static void MenuSkins()
        {
            // exit early if we don't want to show the menu skins.
            if (!toggleMenuSkins)
            {
                return;
            }

            HeroKitSettings settings = HeroKitCommon.LoadHeroSettings();
            int             distance = 10;

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Dialog Box");
            settings.dialogBox = SimpleLayout.ObjectField(settings.dialogBox, HeroKitCommon.GetWidthForField(65));
            if (settings.dialogBox == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Fade Screen In and Out Window");
            settings.fadeInOutScreen = SimpleLayout.ObjectField(settings.fadeInOutScreen, HeroKitCommon.GetWidthForField(65));
            if (settings.fadeInOutScreen == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Game Over Menu");
            settings.gameoverMenu = SimpleLayout.ObjectField(settings.gameoverMenu, HeroKitCommon.GetWidthForField(65));
            if (settings.gameoverMenu == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Inventory Menu");
            settings.inventoryMenu = SimpleLayout.ObjectField(settings.inventoryMenu, HeroKitCommon.GetWidthForField(65));
            if (settings.inventoryMenu == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.Label("Inventory Item");
            settings.inventoryItem = SimpleLayout.ObjectField(settings.inventoryItem, HeroKitCommon.GetWidthForField(65));
            if (settings.inventoryItem == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.Label("Inventory Slot");
            settings.inventorySlot = SimpleLayout.ObjectField(settings.inventorySlot, HeroKitCommon.GetWidthForField(65));
            if (settings.inventorySlot == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Journal Menu");
            settings.journalMenu = SimpleLayout.ObjectField(settings.journalMenu, HeroKitCommon.GetWidthForField(65));
            if (settings.journalMenu == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.Label("Journal Item");
            settings.journalItem = SimpleLayout.ObjectField(settings.journalItem, HeroKitCommon.GetWidthForField(65));
            if (settings.journalItem == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.Label("Journal Slot");
            settings.journalSlot = SimpleLayout.ObjectField(settings.journalSlot, HeroKitCommon.GetWidthForField(65));
            if (settings.journalSlot == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Options Menu");
            settings.optionsMenu = SimpleLayout.ObjectField(settings.optionsMenu, HeroKitCommon.GetWidthForField(65));
            if (settings.optionsMenu == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Save Menu");
            settings.saveMenu = SimpleLayout.ObjectField(settings.saveMenu, HeroKitCommon.GetWidthForField(65));
            if (settings.saveMenu == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.Label("Save Slot");
            settings.saveSlot = SimpleLayout.ObjectField(settings.saveSlot, HeroKitCommon.GetWidthForField(65));
            if (settings.saveSlot == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);

            SimpleLayout.BeginVertical(Box.StyleB);
            SimpleLayout.Label("Start Menu");
            settings.startMenu = SimpleLayout.ObjectField(settings.startMenu, HeroKitCommon.GetWidthForField(65));
            if (settings.startMenu == null)
            {
                HeroKitCommon.RefreshHeroSettings();
            }
            SimpleLayout.EndVertical();
            SimpleLayout.Space(distance);
        }
Example #8
0
        // --------------------------------------------------------------
        // Action Fields
        // --------------------------------------------------------------


        /// <summary>
        /// Get a value from a game object field.
        /// This is for a field that contains Value, Variable, Property, Global.
        /// </summary>
        /// <param name="title">Title for action field.</param>
        /// <param name="actionParams">Action field parameters.</param>
        /// <param name="actionField">Action field.</param>
        /// <param name="titleToLeft">Show the title on the left?</param>
        /// <returns>A game object.</returns>
        public static GameObject BuildFieldA(string title, HeroActionParams actionParams, HeroActionField actionField, bool titleToLeft = false)
        {
            GameObjectFieldData data = CreateFieldData(title, actionField, actionParams.heroObject);

            //-----------------------------------------
            // Display this title above the field
            //-----------------------------------------
            if (data.title != "" && !titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }
            SimpleLayout.BeginHorizontal();
            if (data.title != "" && titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }
            else
            {
                SimpleLayout.Space(8);
            }

            //-----------------------------------------
            // Get the type of field you want to work with.
            //-----------------------------------------
            SimpleLayout.Space(-8);
            data.fieldType = new HeroField.ValueTypeFieldC().SetValues(data.fieldType, 0);

            //-----------------------------------------
            // Get the type of object we are working with
            // Option 1: This object (object that this hero object is attached to)
            // Option 2: Another object (another object in the scene that has a hero object attached to it)
            //-----------------------------------------
            if (data.fieldType == 2 || data.fieldType == 3 || data.fieldType == 4)
            {
                data = ActionCommon.GetTargetHeroObject(data);
            }

            //-----------------------------------------
            // Get the integer list you want to work with.
            // The integer list is in hero object editor > Variables
            //-----------------------------------------

            // if this is a field, draw field (1=value)
            if (data.fieldType == 1)
            {
                data.objectName = SimpleLayout.TextField(data.objectName, HeroKitCommon.GetWidthForField(133));
            }

            // if this is a list, draw items (2=variables, 3=properties, 5=globals)
            if (data.fieldType == 2 || data.fieldType == 3 || data.fieldType == 5)
            {
                data = SetPropertyID(data, -1);
                List <GameObjectField> items = GetItemsFromList(data, -1);
                data = BuildItemFieldList(data, items);
            }

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            actionField.heroObjects[0] = data.targetHeroObject;
            actionField.ints[0]        = data.objectType;
            actionField.ints[1]        = data.objectID;
            actionField.ints[2]        = data.fieldID;
            actionField.ints[3]        = data.fieldType;
            actionField.ints[4]        = data.heroGUID;
            actionField.ints[5]        = data.propertyID;
            actionField.strings[0]     = data.objectName;
            actionField.gameObjects[0] = data.gameObject;

            //-----------------------------------------
            // Visual stuff
            //-----------------------------------------
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            return(data.gameObject);
        }
Example #9
0
        /// <summary>
        /// Get the hero object template you want to work with.
        /// </summary>
        /// <typeparam name="T">The type of data for the action field.</typeparam>
        /// <param name="data">The data for the action field.</param>
        /// <returns>The data for the action field.</returns>
        public static T GetTargetHeroTemplate <T>(T data) where T : ITargetHeroObject
        {
            data.objectType = new HeroField.HeroObjectTypeFieldB().SetValues(data.objectType, -5);
            switch (data.objectType)
            {
            case 1:
                data.targetHeroObject = SimpleLayout.ObjectField(data.targetHeroObject, HeroKitCommon.GetWidthForField(213));
                break;

            case 2:
                data = GetThisHeroObject(data);
                break;

            case 3:
                data = GetHeroObjectInVariables(data);
                break;

            case 4:
                data = GetHeroObjectInScene(data);
                break;

            case 5:
                data = GetHeroObjectInProperties(data);
                break;

            case 6:
                data = GetHeroObjectInGlobals(data);
                break;
            }

            return(data);
        }
Example #10
0
        /// <summary>
        /// Fields for the hero property (unity objects).
        /// </summary>
        private static void DrawUnityObjects()
        {
            List <UnityObjectField> items = propertyBlock.itemProperties.unityObjects.items;

            // exit early if there are no values
            if (items == null || items.Count == 0)
            {
                return;
            }

            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);
            for (int i = 0; i < items.Count; i++)
            {
                SimpleLayout.Label(items[i].name + ":");

                switch (items[i].objectType)
                {
                case 1:     // audio
                    items[i].value = SimpleLayout.ObjectField(items[i].value as AudioClip, HeroKitCommon.GetWidthForField(60, 150));
                    break;

                case 2:     // sprite
                    items[i].value = SimpleLayout.ObjectField(items[i].value as Sprite, HeroKitCommon.GetWidthForField(60, 150));
                    break;

                case 3:     // scene
                    items[i].value = SimpleLayout.ObjectField(items[i].value as SceneAsset, HeroKitCommon.GetWidthForField(60, 150));
                    if (items[i].value != null)
                    {
                        // add the scene to the editor build settings if it doesn't already exist there.
                        HeroKitCommon.AddSceneToBuildSettings(items[i].value as SceneAsset);
                    }
                    break;

                case 4:     // particle system
                    items[i].value = SimpleLayout.ObjectField(items[i].value as ParticleSystem, HeroKitCommon.GetWidthForField(60, 150));
                    break;

                case 5:     // script
                    items[i].value = SimpleLayout.ObjectField(items[i].value as MonoScript, HeroKitCommon.GetWidthForField(60, 150));
                    break;
                }
            }
            SimpleLayout.EndVertical();
        }
Example #11
0
        // --------------------------------------------------------------
        // Methods (Fields)
        // --------------------------------------------------------------

        /// <summary>
        /// A field for a hero property file.
        /// </summary>
        private static void DrawItemType()
        {
            SimpleLayout.BeginHorizontal();
            SimpleLayout.Label("Item Type:");
            SimpleLayout.Space(13);
            propertyBlock.propertyTemplate = SimpleLayout.ObjectField(propertyBlock.propertyTemplate, HeroKitCommon.GetWidthForField(120));
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            // SHOW FIELDS FOR SPECIFIC HERO PROPERTY
            // if hero property has been removed, sanitize properties list
            if (propertyBlock.propertyTemplate != null)
            {
                SimpleLayout.Space(5);
                SimpleLayout.Line();
            }
            else
            {
                propertyBlock.itemProperties = new HeroList();
            }
        }
Example #12
0
        /// <summary>
        /// Draw the body of the block.
        /// </summary>
        private static void DrawItems()
        {
            // exit early if there are no items
            if (items == null || items.Count == 0)
            {
                HeroKitCommon.DrawNoItemsInList(blockName);
                return;
            }

            SimpleLayout.BeginVertical(Box.StyleCanvasBox);

            // display items (move up, move down, int field,
            for (int i = 0; i < items.Count; i++)
            {
                SimpleLayout.BeginHorizontal();
                HeroKitCommon.DrawListArrows(moveItemUp, moveItemDown, i);

                SimpleLayout.BeginVertical();
                items[i].objectType = new UnityObjectTypeField().SetValues(items[i].objectType, HeroKitCommon.GetWidthForField(270, 150));
                switch (items[i].objectType)
                {
                case 1:     // audio
                    items[i].value = SimpleLayout.ObjectField(items[i].value as AudioClip, HeroKitCommon.GetWidthForField(270, 150));
                    break;

                case 2:     // sprite
                    items[i].value = SimpleLayout.ObjectField(items[i].value as Sprite, HeroKitCommon.GetWidthForField(270, 150));
                    break;

                case 3:     // scene
                    items[i].value = SimpleLayout.ObjectField(items[i].value as SceneAsset, HeroKitCommon.GetWidthForField(270, 150));
                    if (items[i].value != null)
                    {
                        // add the scene to the editor build settings if it doesn't already exist there.
                        HeroKitCommon.AddSceneToBuildSettings(items[i].value as SceneAsset);
                    }
                    break;

                case 4:     // particle system
                    items[i].value = SimpleLayout.ObjectField(items[i].value as ParticleSystem, HeroKitCommon.GetWidthForField(270, 150));
                    break;

                case 5:     // mono script
                    items[i].value = SimpleLayout.ObjectField(items[i].value as MonoScript, HeroKitCommon.GetWidthForField(270, 150));
                    break;
                }
                items[i].name = SimpleLayout.StringListField(items[i].name, HeroKitCommon.GetWidthForField(270, 150));
                SimpleLayout.EndVertical();

                HeroKitCommon.DrawListButtons(addItem, copyItem, pasteItem, deleteItem, i);
                SimpleLayout.EndHorizontal();

                if (i != items.Count - 1)
                {
                    SimpleLayout.Line();
                }
            }

            SimpleLayout.EndVertical();

            SimpleLayout.Space(20);
        }