Пример #1
0
    int BuildTextures(Tex[] textures, string prefix, int startDepth, ref List<MadSprite> sprites) {
        
        int counter = 0;
        foreach (var texture in textures) {
            if (texture.texture == null) {
                continue;
            }
        
            string name = string.Format("{0}{1:D2}", prefix, counter + 1);
            var sprite = MadTransform.CreateChild<MadSprite>(transform, name);
#if !MAD_DEBUG
            sprite.gameObject.hideFlags = HideFlags.HideInHierarchy;
#endif
            
            sprite.guiDepth = startDepth + counter;
            sprite.texture = texture.texture;
            sprite.tint = texture.color;
            
            sprites.Add(sprite);
            
            counter++;
        }
        
        return startDepth + counter;
    }
Пример #2
0
 public static RepeatedRenderer3D Create(MadPanel panel) {
     var bar = MadTransform.CreateChild<RepeatedRenderer3D>(panel.transform, "repeat progress bar");
     TryApplyExampleTextures(bar);
     Selection.activeObject = bar.gameObject;
     
     return bar;
 }
Пример #3
0
 protected T CreateChild<T>(string childName, Transform parent) where T : Component {
     var child = MadTransform.CreateChild<T>(parent, "generated_" + childName);
     createdChildren.Add(child.gameObject);
     SetAsLastGenerated(child.transform);
     ApplyDebugMode(child.gameObject, debugMode);
     return child;
 }
Пример #4
0
        protected void CreateAnchor()
        {
            MadUndo.LegacyRegisterSceneUndo("Create Anchor");

            if (IsAnchored())
            {
                EditorUtility.DisplayDialog("Anchor already exists", "Your bar object is already under the anchor", "Fine");
                return;
            }

            var anchor = MadTransform.CreateChild <MadAnchor>(energyBarBase.transform.parent, "Anchor");

            energyBarBase.transform.parent = anchor.transform;

            Selection.activeObject = energyBarBase.gameObject;
        }
Пример #5
0
 protected int RebuildLabel(int depth) {
     if (labelSprite != null) {
         MadGameObject.SafeDestroy(labelSprite.gameObject);
     }
     
     if (labelEnabled && labelFont != null) {
         labelSprite = MadTransform.CreateChild<MadText>(transform, "label");
         labelSprite.font = labelFont;
         labelSprite.guiDepth = depth++;
         
         #if !MAD_DEBUG
         labelSprite.gameObject.hideFlags = HideFlags.HideInHierarchy;
         #endif
     }
     
     // after build we must update label at least once to make it visible
     UpdateLabel();
     
     return depth;
 }
 // ===========================================================
 // Static Methods
 // ===========================================================
 
 public static FilledRenderer3D Create() {
     var panel = MadPanel.UniqueOrNull();
     
     if (panel == null) {
         if (EditorUtility.DisplayDialog(
             "Init Scene?",
             "Scene not initialized for 3D bars. You cannot place new bar without proper initialization. Do it now?",
             "Yes", "No")) {
             MadInitTool.ShowWindow();
             return null;
         }
         
         panel = MadPanel.UniqueOrNull();
     }
 
     var bar = MadTransform.CreateChild<FilledRenderer3D>(panel.transform, "fill progress bar");
     TryApplyExampleTextures(bar);
     Selection.activeObject = bar.gameObject;
     
     return bar;
 }
Пример #7
0
    protected T CreateHidden<T>(string name, Transform parent = null) where T : Component {
        if (container == null) {
            // create container
            container = new GameObject("_container").transform;

#if !MAD_DEBUG
            container.gameObject.hideFlags = HideFlags.HideAndDontSave;
#else
            container.gameObject.hideFlags = HideFlags.DontSave;
#endif
        }

        if (parent == null) {
            parent = container;
        }

        var obj = MadTransform.CreateChild<T>(parent, name, true);

        // if created object is mad sprite, then assign the panel
        if (obj is MadSprite) {
            var sprite = obj as MadSprite;
            sprite.panel = panel;

            if (obj.GetType() == typeof(MadSprite)) {
                sprite.hasPremultipliedAlpha = premultipliedAlpha;
            }
        }

        MadGameObject.SetActive(obj.gameObject, true);

        #if !MAD_DEBUG
        obj.gameObject.hideFlags = HideFlags.HideAndDontSave;
        #else
        obj.gameObject.hideFlags = HideFlags.DontSave;
        #endif

        hiddenObjects.Insert(0, obj.gameObject);

        return obj;
    }
Пример #8
0
 int BuildTextures(int depth) {
     for (int i = 0; i < repeatCount; ++i) {
     
         // creating slot
         if (textureSlot != null) {
             string name = string.Format("slot_{0:D2}", i + 1);
             var sprite = MadTransform.CreateChild<MadSprite>(transform, name);
             sprite.texture = textureSlot;
             sprite.transform.localPosition = repeatPositionDelta * i;
             sprite.transform.localPosition += (Vector3) LocalIconOffset(sprite.size);
             
             sprite.guiDepth = depth++;
             
             #if !MAD_DEBUG
             sprite.gameObject.hideFlags = HideFlags.HideInHierarchy;
             #endif
             
             slotSprites.Add(sprite);
         }
         
         // creating icon
         if (textureIcon != null) {
             string name = string.Format("icon_{0:D2}", i + 1);
             var sprite = MadTransform.CreateChild<MadSprite>(transform, name);
             sprite.texture = textureIcon;
             sprite.transform.localPosition = repeatPositionDelta * i;
             sprite.transform.localPosition += (Vector3) LocalIconOffset(sprite.size);
             sprite.guiDepth = depth++;
             
             #if !MAD_DEBUG
             sprite.gameObject.hideFlags = HideFlags.HideInHierarchy;
             #endif
             
             iconSprites.Add(sprite);
         }
     }
     
     return depth;
 }
Пример #9
0
    void Rebuild() {
#if MAD_DEBUG
        Debug.Log("rebuilding " + this, this);
#endif
    
        if (spriteObjectsBg.Count == 0 && spriteObjectsFg.Count == 0) {
            // in previous version sprites were created without reference in spriteObjects
            // is spriteObjects is empty it's better to assume, that references are not created yet
            // and background objects may exist
            var children = MadTransform.FindChildren<MadSprite>(transform,
                (s) => s.name.StartsWith("bg_") || s.name.StartsWith("fg_") || s.name == "label",
                0);
            foreach (var child in children) {
                MadGameObject.SafeDestroy(child.gameObject);
            }
        } else {
            foreach (var sprite in spriteObjectsBg) {
                if (sprite != null) {
                    MadGameObject.SafeDestroy(sprite.gameObject);
                }
            }
            
            foreach (var sprite in spriteObjectsFg) {
                if (sprite != null) {
                    MadGameObject.SafeDestroy(sprite.gameObject);
                }
            }
            
            spriteObjectsBg.Clear();
            spriteObjectsFg.Clear();
        }
        
        if (spriteBar != null) {
            MadGameObject.SafeDestroy(spriteBar.gameObject);
        }
        
        if (spriteBurnBar != null) {
            MadGameObject.SafeDestroy(spriteBurnBar.gameObject);
        }
        
        if (effectFollowSprite != null) {
            MadGameObject.SafeDestroy(effectFollowSprite.gameObject);
        }
        
        int nextDepth = BuildTextures(texturesBackground, "bg_", guiDepth * DepthSpace, ref spriteObjectsBg);
        
        if (textureBar != null) {
        
            if (effectBurn) {
                spriteBurnBar = MadTransform.CreateChild<MadSprite>(transform, "bar_effect_burn");
#if !MAD_DEBUG
                spriteBurnBar.gameObject.hideFlags = HideFlags.HideInHierarchy;
#endif
                spriteBurnBar.guiDepth = nextDepth++;
                spriteBurnBar.texture = textureBar;
                
                spriteBurnBar.fillType = ToFillType(growDirection);
            }
        
            spriteBar = MadTransform.CreateChild<MadSprite>(transform, "bar");
#if !MAD_DEBUG
            spriteBar.gameObject.hideFlags = HideFlags.HideInHierarchy;
#endif
            spriteBar.guiDepth = nextDepth++;
            spriteBar.texture = textureBar;
            
            spriteBar.fillType = ToFillType(growDirection);
        }
        
        nextDepth = BuildTextures(texturesForeground, "fg_", nextDepth, ref spriteObjectsFg);
        
        if (effectFollow) {
            if (effectFollowObject != null && effectFollowObject is Texture2D) {
                effectFollowSprite = MadTransform.CreateChild<MadSprite>(transform, "bar_effect_follow");
                effectFollowSprite.texture = effectFollowObject as Texture2D;
                effectFollowSprite.guiDepth = nextDepth++;
                #if !MAD_DEBUG
                effectFollowSprite.gameObject.hideFlags = HideFlags.HideInHierarchy;
                #endif
            }
        }
        
        nextDepth = RebuildLabel(nextDepth);
    }
Пример #10
0
 static T Create<T>(string name) where T : Component {
     var parent = Selection.activeTransform;
     var component = MadTransform.CreateChild<T>(parent, name);
     Selection.activeObject = component.gameObject;
     return component;
 }
Пример #11
0
 static void CreateAnchor() {
     var anchor = MadTransform.CreateChild<MadAnchor>(ActiveParentOrPanel(), "Anchor");
     Selection.activeGameObject = anchor.gameObject;
 }
Пример #12
0
 static void CreateText() {
     var text = MadTransform.CreateChild<MadText>(ActiveParentOrPanel(), "text");
     Selection.activeGameObject = text.gameObject;
 }
Пример #13
0
 static void CreateSprite() {
     var sprite = MadTransform.CreateChild<MadSprite>(ActiveParentOrPanel(), "sprite");
     Selection.activeGameObject = sprite.gameObject;
 }