Beispiel #1
0
        void OnElementLayout(SubData data)
        {
            var x = data.element;

            if (x.isComponent)
            {
                OnComponentLayout(x);
            }
            if (x.isMaterial)
            {
                OnMaterialLayout(x);
            }
        }
Beispiel #2
0
        private void ReadLiquid()
        {
            var chunk = SubData.GetChunkByName("MLIQ");

            if (chunk == null)
            {
                return;
            }

            HasLiquidData = true;
            var stream = chunk.GetStream();

            LiquidDataHeader   = LiquidHeader.Read(stream);
            LiquidDataGeometry = LiquidData.Read(stream, LiquidDataHeader);
        }
Beispiel #3
0
        private void ReadVertices()
        {
            var chunk = SubData.GetChunkByName("MOVT");

            if (chunk == null)
            {
                return;
            }

            var verticeCount = (int)(chunk.Length / 12);

            Vertices = new Vector3[verticeCount];
            var stream = chunk.GetStream();

            for (int i = 0; i < verticeCount; i++)
            {
                Vertices[i] = Vector3Helper.Read(stream);
            }
        }
Beispiel #4
0
        private void ReadNormals()
        {
            var chunk = SubData.GetChunkByName("MONR");

            if (chunk == null)
            {
                return;
            }

            var normalCount = (int)(chunk.Length / 12);

            Debug.Assert(normalCount == Vertices.Length);
            Normals = new Vector3[normalCount];
            var stream = chunk.GetStream();

            for (int i = 0; i < normalCount; i++)
            {
                Normals[i] = Vector3Helper.Read(stream);
            }
        }
Beispiel #5
0
        private void ReadMaterials()
        {
            var chunk = SubData.GetChunkByName("MOPY");

            if (chunk == null)
            {
                return;
            }

            var stream        = chunk.GetStream();
            var triangleCount = (int)(chunk.Length / 2);

            TriangleFlags     = new byte[triangleCount];
            TriangleMaterials = new byte[triangleCount];
            for (int i = 0; i < triangleCount; i++)
            {
                TriangleFlags[i]     = (byte)stream.ReadByte();
                TriangleMaterials[i] = (byte)stream.ReadByte();
            }
        }
Beispiel #6
0
        private void ReadTriangles()
        {
            var chunk = SubData.GetChunkByName("MOVI");

            if (chunk == null)
            {
                return;
            }

            var triangleCount = (int)(chunk.Length / 6);

            Debug.Assert(triangleCount == TriangleFlags.Length);
            var r = new BinaryReader(chunk.GetStream());

            Triangles = new Triangle <ushort> [triangleCount];
            for (int i = 0; i < triangleCount; i++)
            {
                Triangles[i] = new Triangle <ushort>(TriangleType.Wmo, r.ReadUInt16(), r.ReadUInt16(), r.ReadUInt16());
            }
        }
    void OnEnable()
    {
        _TableList.Clear();

        _FileList.Clear();
        jUtil.GetFiles(_FileList, "Assets/Resources/" + _PathName, "*.xml");
        _FileList.Insert(0, "none");

        if ((_SubData = jRes.LoadPrefs <SubData>("class_data")) == null)
        {
            _SubData = new SubData();
        }

        if ((_TablePathName != null) && (_TablePathName.Length > 0))
        {
            if (_TableList.ContainsKey(_TablePathName) == false)
            {
                LoadTable(_TablePathName);
            }
        }
    }
 void Start()
 {
     sd3 = target3.GetComponent <SubData> ();
     sd6 = target3.GetComponent <SubData> ();
 }
Beispiel #9
0
 public int GetAttribute(CharacterAttribute attribute) => SubData.GetAttribute(attribute) + attributeMods[(int)attribute];
Beispiel #10
0
 public int GetSkill(CharacterSkill skill) => SubData.GetSkill(skill) + skillMods[(int)skill];
    public static void DrawDataTable(float x, float y, float w, float h, object data, SubData sub_data, List <FieldInfo> fiList)
    {
        if (data == null)
        {
            return;
        }

        float ww  = 200;
        float add = 30;
        bool  isFocus;

        object temp = null, obj = null;

        obj = data;

        //string typeName = obj.GetType().BaseType.Name.ToString();
        //string typeName2 = "TableList`1";
        //if( typeName.CompareTo( typeName2 ) == 0 ) {
        if ((temp = GetDataList(obj)) != null)
        {
            //System.Type type = GetListType( temp );

            DrawDataList(x, y, ww, h - add, data.GetType().ToString(), temp, ref sub_data._vScroll1, ref sub_data._Index, ref sub_data._Count, out isFocus, sub_data._Flush);
            DrawDataAdd(x, y + h - add, ww, add, temp, ref sub_data._Index);

            IList lst = temp as IList;
            if ((sub_data._Index >= 0) && (sub_data._Index < lst.Count))
            {
                obj = lst[sub_data._Index];
            }
            else
            {
                obj = null;
            }

            x += ww;
            w -= ww;
        }
        //}

        DrawFieldList(x, y, w, h, obj, ref sub_data._vScroll2, fiList);
    }
Beispiel #12
0
 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
 {
     return(SubData.GetEnumerator());
 }
Beispiel #13
0
 public IEnumerator <LogData> GetEnumerator()
 {
     return(SubData.GetEnumerator());
 }
Beispiel #14
0
 public void Add(LogData log)
 {
     SubData.Add(log);
 }
Beispiel #15
0
        /// <see cref="EditorElementPatch.Init_"/>
        public void SetupEditorElement(EditorElement x)
        {
            var element   = x.element;
            var header    = x.header;
            var inspector = x.inspector;
            var footer    = x.footer;
            var data      = x.Get <SubData>().First();

            var cullingEnabled = prefs.useIMGUICulling;

            if (x.isGo)
            {
                // Tabs bar is injected inside GO editor
                gameObjectEditor = element;
            }

            element.AddClass("editor-element");
            header.AddClass("header");
            inspector.AddClass("inspector");
            footer.AddClass("footer");

            header.onAddChild    = e => e.AddToClassList("user-element");
            inspector.onAddChild = e => e.AddToClassList("user-element");

            SetupSubData();
            SetupEditorElement();
            SetupHeader();
            SetupInspectorElement();
            // Footer is manipulated by EditorElementPatch.Init_

            if (!editors.ContainsKey(element))
            {
                editors.Add(element, x);
            }

            try
            {
                Runtime.SmartInspector.OnSetupEditorElement?.Invoke(x);
            }
            catch (Exception ex) { Debug.LogException(ex); }


            void SetupSubData()
            {
                if (data == null)
                {
                    inspector.Add(data = new SubData());
                }

                data.smartInspector = this;
                data.element        = x;
            }

            void SetupEditorElement()
            {
                x.Register <GeometryChangedEvent>(evt => OnElementLayout(data));

                element.EnableClass("game-object", x.isGo);
                element.EnableClass("transform", x.isTransform);
                element.EnableClass("component", x.isComponent);
                element.EnableClass("material", x.isMaterial);

                #if !UNITY_2020_1_OR_NEWER
                if (x.isTransform)
                {
                    element.style.top = -2;
                }
                #endif
            }

            void SetupHeader()
            {
                #if UNITY_2020_1_OR_NEWER
                header.x.cullingEnabled = cullingEnabled;
                #endif

                if (x.isComponent)
                {
                    x.header.Direction(FlexDirection.RowReverse);

                    var width = 64;
                    if (!prefs.showHelp)
                    {
                        width -= 20;
                    }
                    if (!prefs.showPreset)
                    {
                        width -= 20;
                    }

                    // Temp solution for component header buttons spacing
                    if (!x.header.Has("#rightSpace", out Space space))
                    {
                        space = new Space {
                            name = "rightSpace"
                        };
                        x.header.x.Add(space);
                    }

                    space.style.width = width;
                }
            }

            void SetupInspectorElement()
            {
                var container = inspector.Get <IMGUIContainer>().First() ??
                                inspector.Get(".unity-inspector-element__custom-inspector-container").First();

                if (container != null)
                {
                    SetupInspectorContainer(container);
                }
            }

            void SetupInspectorContainer(VisualElement container)
            {
                if (container is IMGUIContainer imgui)
                {
                    #if UNITY_2020_1_OR_NEWER
                    imgui.cullingEnabled = cullingEnabled;
                    #endif
                }

                if (x.isComponent)
                {
                    // Dragging is calculated based on container layout (it ignores InspectorElement padding)
                    container.style.paddingBottom = ComponentPaddingBottom;
                    inspector.style.paddingBottom = 0;
                }
            }
        }