예제 #1
0
        public static bool conditional_enter_List <T>(this ListMetaData meta, bool canEnter, ref List <T> list, ref int enteredOne, int thisOne)
        {
            var changed = false;

            if (!canEnter && enteredOne == thisOne)
            {
                enteredOne = -1;
            }

            if (canEnter)
            {
                meta.enter_List(ref list, ref enteredOne, thisOne).changes(ref changed);
            }
            else
            {
                ef.isFoldedOutOrEntered = false;
            }

            return(changed);
        }
        public override bool Inspect()
        {
            var changed = false;

#if UNITY_EDITOR
            if (inspectedItems == -1)
            {
                "Atlas size:".editDelayed(ref _atlasSize, 80).nl(ref changed);
                _atlasSize = Mathf.ClosestPowerOfTwo(Mathf.Clamp(_atlasSize, 512, 4096));

                if ("Textures size:".editDelayed(ref _textureSize, 80).nl(ref changed))
                {
                    _textureSize = Mathf.ClosestPowerOfTwo(Mathf.Clamp(_textureSize, 32, _atlasSize / 2));
                }

                AdjustListSize();
            }

            _texturesMeta.enter_List(ref textures, ref inspectedItems, 11).nl(ref changed);

            if ("Textures:".foldout().nl())
            {
                AdjustListSize();
                var max = TextureCount;

                for (var i = 0; i < max; i++)
                {
                    var t = textures[i];

                    if (!t.used)
                    {
                        continue;
                    }

                    pegi.edit(ref t.texture);

                    if (!t.texture)
                    {
                        pegi.edit(ref t.color);
                    }

                    pegi.newLine();
                }
            }

            pegi.newLine();
            "Is Color Atlas:".toggleIcon(ref _sRgb).nl(ref changed);

            if ("Generate".Click().nl(ref changed))
            {
                ReconstructAsset();
            }

            if (aTexture)
            {
                ("Atlas At " + AssetDatabase.GetAssetPath(aTexture)).edit(ref aTexture, false).nl(ref changed);
            }
#endif

            return(changed);
        }
예제 #3
0
        protected override bool Inspect_AfterNamePart()
        {
            var changed = false;

            if (_inspectedItems == -1 && InspectingSubNode)
            {
                var node = coreNodes.TryGet(_coreNodesMeta);

                if (node == null)
                {
                    InspectingSubNode = false;
                }
                else if (!Application.isPlaying || (Shortcuts.CurrentNode == this || IsChildOrSubChildOf(Shortcuts.CurrentNode)))
                {
                    if (icon.Exit.Click("Exit {0}".F(name)))
                    {
                        InspectingSubNode = false;
                    }

                    if (this == Shortcuts.CurrentNode)
                    {
                        name.write(PEGI_Styles.EnterLabel);
                        if (parentNode != null && icon.Active.Click("Is Active. Click to exit."))
                        {
                            Shortcuts.CurrentNode = parentNode;
                        }
                    }
                    else
                    {
                        name.write();
                    }

                    pegi.nl();
                }

                if (InspectingSubNode)
                {
                    pegi.Try_Nested_Inspect(node).changes(ref changed);
                }
            }

            if (!InspectingSubNode)
            {
                if (_inspectedItems == -1)
                {
                    pegi.nl();
                    var newNode = _coreNodesMeta.edit_List(ref coreNodes, ref changed);

                    newNode?.CreatedFor(this);
                }

                _gamesNodesMeta.Inspecting = false;

                var ngn = _gamesNodesMeta.enter_List(ref gameNodes, ref _inspectedItems, 7, GameNodeBase.all, ref changed);

                pegi.nl_ifFoldedOut();

                ngn?.CreatedFor(this);

                pegi.nl();
            }

            return(changed);
        }