コード例 #1
0
ファイル: Heads.cs プロジェクト: ddddeessse/Rbx2Source
 public Head(BevelType bevelType, double bevel, double roundness, double buldge)
 {
     Bevel     = bevel;
     Buldge    = buldge;
     BevelType = bevelType;
     Roundness = roundness;
 }
コード例 #2
0
ファイル: Heads.cs プロジェクト: NojusKa/Rbx2Source
        public static Asset ResolveHeadMeshAsset(DataModelMesh mesh)
        {
            Contract.Requires(mesh != null);
            string result = "Default";

            if (mesh is BevelMesh)
            {
                BevelMesh bevelMesh = mesh as BevelMesh;
                BevelType bevelType = BevelType.Unknown;

                if (mesh is BlockMesh)
                {
                    bevelType = BevelType.Block;
                }
                else if (mesh is CylinderMesh)
                {
                    bevelType = BevelType.Cylinder;
                }

                Head match = Lookup.Keys
                             .Where((head) => bevelType == head.BevelType)
                             .Where((head) => head.FieldsMatchWith(bevelMesh))
                             .First();

                if (match != null)
                {
                    result = Lookup[match];
                }

                mesh.Scale = new Vector3(1, 1, 1);
            }

            else if (mesh is SpecialMesh)
            {
                SpecialMesh specialMesh = mesh as SpecialMesh;

                if (specialMesh.MeshType == MeshType.Sphere)
                {
                    result            = "Perfection";
                    specialMesh.Scale = new Vector3(1, 1, 1);
                }
            }

            if (result == "Default")
            {
                mesh.Scale /= new Vector3(1.25f, 1.25f, 1.25f);
            }

            return(Asset.FromResource("Meshes/Heads/" + result + ".mesh"));
        }