Пример #1
0
        public void ReverseMeshGroup()
        {
            var maxIndex = CollisionMeshGroupList.Count - 1;

            CollisionMeshGroupList.Reverse();

            short ReverseChildIndex(short child)
            {
                if (child != -1)
                {
                    child = Convert.ToInt16(maxIndex - child);
                }
                return(child);
            }

            foreach (var one in CollisionMeshGroupList)
            {
                one.Child1 = ReverseChildIndex(one.Child1);
                one.Child2 = ReverseChildIndex(one.Child2);
                one.Child3 = ReverseChildIndex(one.Child3);
                one.Child4 = ReverseChildIndex(one.Child4);
                one.Child5 = ReverseChildIndex(one.Child5);
                one.Child6 = ReverseChildIndex(one.Child6);
                one.Child7 = ReverseChildIndex(one.Child7);
                one.Child8 = ReverseChildIndex(one.Child8);
            }
        }
Пример #2
0
        public Coct CreateCoct()
        {
            var coct = new Coct();

            coct.CollisionMeshGroupList.AddRange(
                CollisionMeshGroupList.Select(Unmap1)
                );

            coct.VertexList.AddRange(
                VertexList
                .Select(UnmapVector)
                );

            return(coct);
        }
Пример #3
0
 public CollisionMeshGroup CompleteAndAdd(CollisionMeshGroup it)
 {
     buildHelper.CompleteBBox(it);
     CollisionMeshGroupList.Add(it);
     return(it);
 }
Пример #4
0
        public Coct CreateCoct()
        {
            var coct = new Coct();

            coct.CollisionMeshGroupList.AddRange(
                CollisionMeshGroupList
                .Select(
                    collision1 =>
            {
                var newCollision1 = Ummap1(collision1);

                newCollision1.CollisionMeshStart = Convert.ToUInt16(
                    coct.CollisionMeshList.Count
                    );

                coct.CollisionMeshList.AddRange(
                    collision1.Meshes
                    .Select(
                        collision2 =>
                {
                    var newCollision2 = Unmap2(collision2);

                    newCollision2.CollisionStart = Convert.ToUInt16(
                        coct.CollisionList.Count
                        );

                    coct.CollisionList.AddRange(
                        collision2.Items
                        .Select(
                            collision3 =>
                    {
                        var newCollision3 = Unmap3(collision3);

                        return(newCollision3);
                    }
                            )
                        );

                    newCollision2.CollisionEnd = Convert.ToUInt16(
                        coct.CollisionList.Count
                        );

                    return(newCollision2);
                }
                        )
                    );

                newCollision1.CollisionMeshEnd = Convert.ToUInt16(
                    coct.CollisionMeshList.Count
                    );

                return(newCollision1);
            }
                    )
                );

            coct.VertexList.AddRange(
                VertexList
                .Select(Unmap4)
                );

            coct.PlaneList.AddRange(
                PlaneList
                .Select(Unmap5)
                );

            coct.BoundingBoxList.AddRange(
                BoundingBoxList
                .Select(Unmap6)
                );

            coct.SurfaceFlagsList.AddRange(
                SurfaceFlagsList
                .Select(Unmap7)
                );

            return(coct);
        }