Пример #1
0
        public static AbstractMesh Create(IMeshLoader loader, MeshTypeBone meshType, Config config)
        {
            var anchor = Helper.FindTransform(config.GetCharacter().transform, meshType.boneName);

            switch (meshType.mesh)
            {
            case MeshType.Beard:
                return(new Beard(loader, anchor, config.folderName));

            case MeshType.FaceFeature:
                return(new FaceFeature(loader, anchor, config.folderName));

            case MeshType.Hair:
                return(new Hair(loader, anchor, config.folderName));

            case MeshType.Helm:
                return(new Helm(loader, anchor, config.folderName));

            case MeshType.Torso:
                return(new Torso(loader, anchor, config.folderName));

            case MeshType.TorsoAdd:
                return(new TorsoAdd(loader, anchor, config.folderName));

            case MeshType.LegLeft:
                return(new Leg(loader, anchor, config.folderName, MeshType.LegLeft));

            case MeshType.LegRight:
                return(new Leg(loader, anchor, config.folderName, MeshType.LegRight));

            case MeshType.ShoulderLeft:
                return(new Shoulder(loader, anchor, config.folderName, MeshType.ShoulderLeft));

            case MeshType.ShoulderRight:
                return(new Shoulder(loader, anchor, config.folderName, MeshType.ShoulderRight));

            case MeshType.ArmLeft:
                return(new Arm(loader, anchor, config.folderName, MeshType.ArmLeft));

            case MeshType.ArmRight:
                return(new Arm(loader, anchor, config.folderName, MeshType.ArmRight));

            case MeshType.Belt:
                return(new Belt(loader, anchor, config.folderName));

            case MeshType.BeltAdd:
                return(new BeltAdd(loader, anchor, config.folderName));

            case MeshType.HandLeft:
                return(new Hand(loader, anchor, config.folderName, MeshType.HandLeft));

            case MeshType.HandRight:
                return(new Hand(loader, anchor, config.folderName, MeshType.HandRight));
            }
            return(null);
        }
Пример #2
0
        public static AbstractFXMesh Create(IMeshLoader loader, FxMeshTypeBone meshType, Config config)
        {
            var anchor = Helper.FindTransform(config.GetCharacter().transform, meshType.boneName);

            switch (meshType.mesh)
            {
            case FXType.Eye:
                return(new EyeFX(loader, anchor, config.folderName));

            case FXType.Torso:
                return(new TorsoFX(loader, anchor, config.folderName));
            }
            return(null);
        }
Пример #3
0
            protected AbstractFXMesh(IMeshLoader loader, Transform anchor, string characterRace, FXType type)
            {
                this.anchor        = anchor;
                this.CharacterRace = characterRace;
                this.FxType        = type;

                parent = GameObject.Find("ModularMesh");
                if (parent == null)
                {
                    parent = new GameObject("ModularMesh");
                }

                loadCallback = (meshes) => LoadingMeshes(meshes);
                loader.ParseMeshes(this, loadCallback);
            }
Пример #4
0
            protected AbstractMesh(IMeshLoader loader, Transform anchor, string characterRace, MeshType type, int order)
            {
                this.anchor        = anchor;
                this.CharacterRace = characterRace;
                this.MeshType      = type;
                this.MergeOrder    = order;

                parent = GameObject.Find("ModularMesh");
                if (parent == null)
                {
                    parent = new GameObject("ModularMesh");
                }

                IsReady      = false;
                loadCallback = (meshes, texures) => LoadingMeshes(meshes, texures);

                loader.ParseMeshes(this, loadCallback);
            }
Пример #5
0
 public EyeFX(IMeshLoader loader, Transform anchor, string characterRace) : base(loader, anchor, characterRace, FXType.Eye)
 {
 }
Пример #6
0
 public FaceFeature(IMeshLoader loader, Transform anchor, string characterRace) : base(loader, anchor, characterRace, MeshType.FaceFeature, GetMerheOrder())
 {
 }
Пример #7
0
 public void Resolve(Dictionary<string,Material> materialDictionary)
 {
     if(this.filename == null || this.loader != null) {
         return;
     }
     else {
         foreach(IMeshLoader iml in loaderPrototypes) {
             if(iml.CanParse(filename)) {
                 this.loader = iml.Clone();
                 break;
             }
         }
     }
     if(this.loader != null) {
         Material mat = null;
         if(this.material != null && this.material != string.Empty) {
             materialDictionary.TryGetValue(this.material, out mat);
         }
         if(mat != null) {
             this.loader.DefaultMaterial = mat;
         }
         this.loader.Load(this.environment, this.filename);
     }
 }
Пример #8
0
 public Hand(IMeshLoader loader, Transform anchor, string characterRace, MeshType type) : base(loader, anchor, characterRace, type, GetMerheOrder(type))
 {
 }
Пример #9
0
 public BeltAdd(IMeshLoader loader, Transform anchor, string characterRace) : base(loader, anchor, characterRace, MeshType.BeltAdd, GetMerheOrder())
 {
 }
Пример #10
0
 public Shoulder(IMeshLoader loader, Transform anchor, string characterRace, MeshType meshType) : base(loader, anchor, characterRace, meshType, GetMerheOrder(meshType))
 {
 }
Пример #11
0
 public MeshManager(IMeshLoader meshLoader, IConfiguration configuration, ILogger logger)
 {
     _meshLoader    = meshLoader;
     _configuration = configuration;
     _logger        = logger;
 }
 public Mesh(IMeshLoader meshLoader, string name = "default")
 {
     _meshLoader = meshLoader;
     _name       = name;
 }
Пример #13
0
 public Hair(IMeshLoader loader, Transform anchor, string characterRace) : base(loader, anchor, characterRace, MeshType.Hair, GetMerheOrder())
 {
 }
Пример #14
0
 public TorsoFX(IMeshLoader loader, Transform anchor, string characterRace) : base(loader, anchor, characterRace, FXType.Torso)
 {
 }
Пример #15
0
 public Mesh(IMeshLoader meshLoader, string name="default")
 {
   _meshLoader = meshLoader;
   _name = name;
 }