Exemple #1
0
        public override void PostLoad()
        {
            Transform.LocalScale = new Vector3(Transform.LocalScale.X, Transform.LocalScale.Y, Transform.LocalScale.X);
            m_objRender          = WResourceManager.LoadObjResource("resources/editor/EditorCylinder.obj", new OpenTK.Vector4(1f, 1f, 0f, 1f), true);

            m_MessageReference = new MessageReference((ushort)MessageID);
        }
Exemple #2
0
        public override void PostLoad()
        {
            m_RegionAreaModel = WResourceManager.LoadObjResource("resources/editor/EditorCylinder.obj", new Vector4(1f, 1f, 0f, 1f), true, false);
            m_objRender       = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new Vector4(1f, 1f, 0f, 1f));

            m_MessageReference = new MessageReference((ushort)MessageID);
        }
Exemple #3
0
        private void UpdateActorMeshFromNameProperty()
        {
            TStringPropertyValue stringProperty = m_namePropertyValueCache as TStringPropertyValue;

            if (stringProperty != null)
            {
                //m_actorMesh = WResourceManager.LoadActorByName((string)stringProperty.GetValue());
                if (m_actorMesh != null)
                {
                    // Create and set up some initial lighting options so character's aren't drawn super brightly
                    // until we support actually loading room environment lighting and apply it (see below).
                    var lightPos       = new Vector4(250, 200, 250, 0);
                    var mainLight      = new JStudio.OpenGL.GXLight(lightPos, -lightPos.Normalized(), new Vector4(1, 0, 1, 1), new Vector4(1.075f, 0, 0, 0), new Vector4(1.075f, 0, 0, 0));
                    var secondaryLight = new JStudio.OpenGL.GXLight(lightPos, -lightPos.Normalized(), new Vector4(0, 0, 1, 1), new Vector4(1.075f, 0, 0, 0), new Vector4(1.075f, 0, 0, 0));

                    Quaternion lightRot    = Quaternion.FromAxisAngle(Vector3.UnitY, (float)Math.PI / 2f);
                    Vector3    newLightPos = Vector3.Transform(new Vector3(-500, 0, 0), lightRot) + new Vector3(0, 50, 0);

                    secondaryLight.Position = new Vector4(newLightPos, 0);

                    m_actorMesh.SetHardwareLight(0, mainLight);
                    m_actorMesh.SetHardwareLight(1, secondaryLight);
                    m_actorMesh.SetTextureOverride("ZBtoonEX", "resources/textures/ZBtoonEX.png");
                    m_actorMesh.SetTextureOverride("ZAtoon", "resources/textures/ZAtoon.png");

                    m_objRender = null;
                }
            }

            if (m_actorMesh == null)
            {
                m_objRender = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new Vector4(1, 1, 1, 1));
            }
        }
Exemple #4
0
        private void UpdateModel()
        {
            switch (ColorType)
            {
            case ColorTypeEnum.Green:
            case ColorTypeEnum.Green_and_attacks_instantly:
                m_actorMeshes = WResourceManager.LoadActorResource("Green ChuChu");
                break;

            case ColorTypeEnum.Red:
            case ColorTypeEnum.Red_and_attacks_instantly:
            case ColorTypeEnum.Red_and_attacks_instantly_and_more_vulnerabilities:
                m_actorMeshes = WResourceManager.LoadActorResource("Red ChuChu");
                break;

            case ColorTypeEnum.Blue:
            case ColorTypeEnum.Blue_and_attacks_instantly:
                m_actorMeshes = WResourceManager.LoadActorResource("Blue ChuChu");
                break;

            case ColorTypeEnum.Dark:
            case ColorTypeEnum.Dark_and_attacks_instantly:
                m_actorMeshes = WResourceManager.LoadActorResource("Dark ChuChu");
                break;

            default:
                m_actorMeshes = WResourceManager.LoadActorResource("Yellow ChuChu");
                break;
            }
        }
Exemple #5
0
        private void UpdateModel()
        {
            VisualScaleMultiplier = new Vector3(1f, 1f, 1f);
            switch (Type)
            {
            case TypeEnum.Small_pot:
                m_actorMeshes = WResourceManager.LoadActorResource("Small Pot");
                break;

            case TypeEnum.Large_pot:
                m_actorMeshes = WResourceManager.LoadActorResource("Large Pot");
                break;

            case TypeEnum.Water_pot:
                m_actorMeshes = WResourceManager.LoadActorResource("Water Pot");
                break;

            case TypeEnum.Barrel:
                m_actorMeshes = WResourceManager.LoadActorResource("Barrel 1");
                break;

            case TypeEnum.Stool:
                m_actorMeshes = WResourceManager.LoadActorResource("Stool");
                break;

            case TypeEnum.Skull:
                m_actorMeshes = WResourceManager.LoadActorResource("Skull");
                break;

            case TypeEnum.Bucket:
                m_actorMeshes = WResourceManager.LoadActorResource("Bucket");
                break;

            case TypeEnum.Nut:
                m_actorMeshes = WResourceManager.LoadActorResource("Nut");
                break;

            case TypeEnum.Golden_crate:
                VisualScaleMultiplier = new Vector3(0.4f, 0.4f, 0.4f);
                m_actorMeshes         = WResourceManager.LoadActorResource("Golden Crate");
                break;

            case TypeEnum.Seed:
                m_actorMeshes = WResourceManager.LoadActorResource("Seed");
                break;

            case TypeEnum.Fancy_pot:
                m_actorMeshes = WResourceManager.LoadActorResource("Fancy Pot");
                break;

            case TypeEnum.Wooden_crate:
                VisualScaleMultiplier = new Vector3(0.5f, 0.5f, 0.5f);
                m_actorMeshes         = WResourceManager.LoadActorResource("Wooden Crate");
                break;

            default:
                m_actorMeshes = WResourceManager.LoadActorResource("Blue Tower of the Gods Pillar Statue");
                break;
            }
        }
Exemple #6
0
 public override void PostLoad()
 {
     base.PostLoad();
     m_RegionAreaModel     = WResourceManager.LoadObjResource("resources/editor/EditorSphere_Trigger.obj", new OpenTK.Vector4(1f, 0.7f, 0.4f, 1f), true, false);
     VisualScaleMultiplier = new Vector3(1.5f, 1.5f, 1.5f);
     UpdateModel();
 }
Exemple #7
0
        private void UpdateModel()
        {
            m_actorMeshes.Clear();
            m_objRender = null;
            switch (Type)
            {
            case TypeEnum.Small_Rock:
                m_actorMeshes = WResourceManager.LoadActorResource("Small Rock");
                break;

            case TypeEnum.Small_Black_Rock:
                m_actorMeshes = WResourceManager.LoadActorResource("Small Black Rock");
                break;

            case TypeEnum.Boulder:
                m_actorMeshes = WResourceManager.LoadActorResource("Boulder");
                break;

            case TypeEnum.Head_Boulder:
                m_actorMeshes = WResourceManager.LoadActorResource("Head Boulder");
                break;

            case TypeEnum.Small_Boulder:
                m_actorMeshes = WResourceManager.LoadActorResource("Small Boulder");
                break;

            default:
                m_objRender = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new OpenTK.Vector4(1f, 1f, 1f, 1f));
                break;
            }
        }
Exemple #8
0
        private void UpdateModel()
        {
            m_actorMeshes.Clear();
            m_objRender = null;
            switch (BehaviorType)
            {
            case BehaviorTypeEnum.Shoots_Fireballs:
                m_actorMeshes = WResourceManager.LoadActorResource("Fireball-Shooting Wizzrobe");
                break;

            case BehaviorTypeEnum.Spawns_Enemies_and_Shoots_Fireballs:
                m_actorMeshes = WResourceManager.LoadActorResource("Spawner Wizzrobe");
                break;

            case BehaviorTypeEnum.Miniboss:
                m_actorMeshes = WResourceManager.LoadActorResource("Mini-boss Wizzrobe");
                break;

            case BehaviorTypeEnum.Shoots_Fireballs_Alt_Color:
                m_actorMeshes = WResourceManager.LoadActorResource("Alt Color Fireball Wizzrobe");
                break;

            default:
                m_objRender = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new OpenTK.Vector4(1f, 1f, 1f, 1f));
                break;
            }
        }
Exemple #9
0
        private void UpdateModel()
        {
            m_actorMeshes.Clear();
            m_objRender = null;
            switch (Length)
            {
            case LengthEnum.Short:
                m_actorMeshes = WResourceManager.LoadActorResource("Ladder 0");
                break;

            case LengthEnum.Medium:
                m_actorMeshes = WResourceManager.LoadActorResource("Ladder 1");
                break;

            case LengthEnum.Long:
                m_actorMeshes = WResourceManager.LoadActorResource("Ladder 2");
                break;

            case LengthEnum.Very_Long:
                m_actorMeshes = WResourceManager.LoadActorResource("Ladder 3");
                break;

            case LengthEnum.Very_Short:
                m_actorMeshes = WResourceManager.LoadActorResource("Ladder 4");
                break;

            default:
                m_objRender = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new OpenTK.Vector4(1f, 1f, 1f, 1f));
                break;
            }
        }
Exemple #10
0
        public override void PostLoad()
        {
            base.PostLoad();
            string model_path = "resources/models/foliage/bush.obj";

            m_objRender = WResourceManager.LoadObjResource(model_path, new OpenTK.Vector4(1, 1, 1, 1), true, false, TextureWrapMode.MirroredRepeat);
        }
Exemple #11
0
        private void UpdateModel()
        {
            m_actorMeshes.Clear();
            m_objRender = null;
            switch (Type)
            {
            case TypeEnum.Raft:
                m_actorMeshes = WResourceManager.LoadActorResource("Raft");
                break;

            case TypeEnum.Beedles_Shop_Ship:
                m_actorMeshes = WResourceManager.LoadActorResource("Beedle's Shop Ship");
                break;

            case TypeEnum.Submarine:
                m_actorMeshes = WResourceManager.LoadActorResource("Submarine");
                break;

            case TypeEnum.Beedles_Special_Shop_Ship:
                m_actorMeshes = WResourceManager.LoadActorResource("Beedle's Special Shop Ship");
                break;

            case TypeEnum.Salvage_Corp_Ship:
                m_actorMeshes = WResourceManager.LoadActorResource("Salvage Corp Ship");
                break;

            default:
                m_objRender = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new OpenTK.Vector4(1f, 1f, 1f, 1f));
                break;
            }
        }
Exemple #12
0
        public void LoadSkyboxModelsFromFixedModelList(string rootFolder)
        {
            string[] fileNames = new[] { "vr_sky", "vr_kasumi_mae", "vr_uso_umi", "vr_back_cloud" };
            string[] extNames  = new[] { ".bmd", ".bdl" };

            foreach (var model in fileNames)
            {
                foreach (var ext in extNames)
                {
                    string fullPath = Path.Combine(rootFolder, model + ext);
                    if (File.Exists(fullPath))
                    {
                        J3D     j3dModel  = WResourceManager.LoadResource(fullPath);
                        J3DNode modelNode = new J3DNode(j3dModel, m_world, fullPath);

                        switch (model)
                        {
                        case "vr_sky": m_vrSky = modelNode; break;

                        case "vr_kasumi_mae": m_vrKasumiMae = modelNode; break;

                        case "vr_uso_umi": m_vrUsoUmi = modelNode; break;

                        case "vr_back_cloud": m_vrBackCloud = modelNode; break;
                        }
                    }
                }
            }
        }
Exemple #13
0
        protected virtual J3D LoadModel(string rootFolder, string modelName)
        {
            string[] extNames = new[] { ".bmd", ".bdl" };
            foreach (var ext in extNames)
            {
                string fullPath = Path.Combine(rootFolder, modelName + ext);
                if (File.Exists(fullPath))
                {
                    J3D j3dMesh = WResourceManager.LoadResource(fullPath);

                    // Now that we've loaded a j3dMesh, we're going to try loading btk anims too.
                    string btkFolder = rootFolder + "\\..\\btk\\";
                    string btkFile   = btkFolder + modelName + ".btk";

                    if (File.Exists(btkFile))
                    {
                        j3dMesh.LoadMaterialAnim(btkFile);
                        j3dMesh.SetMaterialAnimation(modelName);
                    }

                    return(j3dMesh);
                }
            }

            return(null);
        }
Exemple #14
0
        private void ImportVisualMeshToCategory(View.VisualMeshImportWindow importWindow, CategoryDOMNode category, string meshName)
        {
            List <J3DNode> meshList = category.GetChildrenOfType <J3DNode>();

            bool isBDL = true;

            J3DNode oldMeshNode = meshList.Find(x => x.Name == meshName);

            if (oldMeshNode != null)
            {
                category.Children.Remove(oldMeshNode);
                isBDL = oldMeshNode.Model.StudioType == "bdl4";
            }

            string fileExt      = Path.GetExtension(importWindow.FileName);
            string loadFilename = "";

            if (fileExt == ".bmd" || fileExt == ".bdl")
            {
                loadFilename = importWindow.FileName;
            }
            else
            {
                loadFilename = ImportVisualMesh(importWindow, isBDL);
            }

            JStudio.J3D.J3D newMesh = WResourceManager.LoadResource(loadFilename);
            newMesh.Name = meshName;
            J3DNode newNode = new J3DNode(newMesh, MainWorld, loadFilename);

            category.Children.Add(newNode);
        }
Exemple #15
0
 public override void PostLoad()
 {
     m_actorMeshes = WResourceManager.LoadActorResource("Jabun's Bombable Stone Wall");
     // TODO: Models 1-5 need to have their textures copied from model 0 to look correct.
     // Winditor's code doesn't seem to support copying textures between models without crashing.
     base.PostLoad();
 }
Exemple #16
0
 private void UpdateModel()
 {
     if (Strength == StrengthEnum.Weak_Boarded_Up_Wall)
     {
         if (Height == HeightEnum.Single)
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Weak Wooden Barrier 1x");
         }
         else
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Weak Wooden Barrier 2x");
         }
     }
     else
     {
         if (Height == HeightEnum.Single)
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Strong Wooden Barrier 1x");
         }
         else
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Strong Wooden Barrier 2x");
         }
     }
 }
Exemple #17
0
        private void UpdateModel()
        {
            VisualScaleMultiplier = new Vector3(1f, 1f, 1f);
            switch (Type)
            {
            case TypeEnum.Small_Jet:
                m_actorMeshes         = WResourceManager.LoadActorResource("Medium Magma Jet");
                VisualScaleMultiplier = new Vector3(0.5f, 0.5f, 0.5f);
                break;

            case TypeEnum.Medium_Jet:
            default:
                m_actorMeshes = WResourceManager.LoadActorResource("Medium Magma Jet");
                break;

            case TypeEnum.Large_Jet:
                m_actorMeshes         = WResourceManager.LoadActorResource("Large Magma Jet");
                VisualScaleMultiplier = new Vector3(1f, 0.815f, 1f);
                break;

            case TypeEnum.Very_Large_Jet:
                m_actorMeshes = WResourceManager.LoadActorResource("Large Magma Jet");
                break;
            }
        }
Exemple #18
0
        public void UpdateModel()
        {
            m_brazierModel = null;
            m_objRender    = null;
            m_actorMeshes  = null;
            if (HasBrazier())
            {
                if (IsWooden)
                {
                    m_actorMeshes = WResourceManager.LoadActorResource("Wooden Torch");
                }
                else
                {
                    m_actorMeshes = WResourceManager.LoadActorResource("Golden Torch");
                }
            }
            if (m_actorMeshes == null)
            {
                m_actorMeshes = new List <J3D>();
            }

            if (m_actorMeshes.Count > 0)
            {
                m_brazierModel = m_actorMeshes[0];
            }
            else
            {
                m_objRender = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new OpenTK.Vector4(1, 1, 1, 1));
            }
        }
Exemple #19
0
        private void UpdateModel()
        {
            // NOTE: BTP animations are not implemented currently, so this code won't actually change the color the Poe appears as yet.
            switch (Color)
            {
            case ColorEnum.Blue:
                m_actorMeshes = WResourceManager.LoadActorResource("Blue Poe");
                break;

            case ColorEnum.Purple:
                m_actorMeshes = WResourceManager.LoadActorResource("Purple Poe");
                break;

            case ColorEnum.Orange:
                m_actorMeshes = WResourceManager.LoadActorResource("Orange Poe");
                break;

            case ColorEnum.Yellow:
                m_actorMeshes = WResourceManager.LoadActorResource("Yellow Poe");
                break;

            case ColorEnum.Red:
                m_actorMeshes = WResourceManager.LoadActorResource("Red Poe");
                break;

            case ColorEnum.Green:
                m_actorMeshes = WResourceManager.LoadActorResource("Green Poe");
                break;

            default:
                m_actorMeshes = WResourceManager.LoadActorResource("Blue Poe");
                break;
            }
        }
Exemple #20
0
        public override void PostLoad()
        {
            m_actorMeshes         = WResourceManager.LoadActorResource("Sign");
            VisualScaleMultiplier = new OpenTK.Vector3(0.8f);

            MessageReference = new MessageReference((ushort)MessageID);
        }
Exemple #21
0
 private void UpdateModel()
 {
     if (IsFireKeese)
     {
         if (BehaviorType == BehaviorTypeEnum.Hanging_from_ceiling || BehaviorType == BehaviorTypeEnum.Hanging_from_ceiling_passive)
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Hanging Fire Keese");
         }
         else
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Flying Fire Keese");
         }
     }
     else
     {
         if (BehaviorType == BehaviorTypeEnum.Hanging_from_ceiling || BehaviorType == BehaviorTypeEnum.Hanging_from_ceiling_passive)
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Hanging Keese");
         }
         else
         {
             m_actorMeshes = WResourceManager.LoadActorResource("Flying Keese");
         }
     }
 }
Exemple #22
0
        public void ShutdownWorld()
        {
            System.Console.WriteLine("Shutdown World");

            // Unload any loaded resources and free all associated memory.
            WResourceManager.UnloadAllResources();

            // Free collision mesh resources.
            if (Map != null)
            {
                foreach (var scene in Map.SceneList)
                {
                    foreach (var collisionMesh in scene.GetChildrenOfType <WCollisionMesh>())
                    {
                        collisionMesh.ReleaseResources();
                    }
                }
            }

            foreach (var view in m_sceneViews)
            {
                view.Dispose();
            }

            m_ActorMode.Dispose();
            m_EventMode.Dispose();

            m_persistentLines.Dispose();
            m_persistentQuads.Dispose();
        }
Exemple #23
0
        public void UnloadMap()
        {
            // Clear our Undo/Redo Stack
            m_undoStack.Clear();

            // Clear our array of currently selected objects as well.
            m_CurrentMode.ClearSelection();

            // Unload any loaded resources and free all associated memory.
            WResourceManager.UnloadAllResources();

            // Free collision mesh resources.
            if (Map != null)
            {
                foreach (var scene in Map.SceneList)
                {
                    foreach (var collisionMesh in scene.GetChildrenOfType <WCollisionMesh>())
                    {
                        collisionMesh.ReleaseResources();
                    }
                }
            }

            m_ActorMode.DetailsViewModel.Categories = new System.Collections.Specialized.OrderedDictionary();
            m_CollisionMode.Shutdown();

            // Clear persistent lines from the last map as well.
            m_persistentLines.Clear();
            m_persistentQuads.Clear();

            m_currentMap = null;
            PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Map"));
        }
Exemple #24
0
        public override void PostLoad()
        {
            base.PostLoad();

            m_RegionAreaModel = WResourceManager.LoadObjResource("resources/editor/EditorCube.obj", new OpenTK.Vector4(1f, 1f, 1f, 1f), true, false);

            MessageReference = new MessageReference((ushort)MessageID);
        }
Exemple #25
0
        private List <J3D> GetModelsFromObjectArc()
        {
            List <J3D> model_list = new List <J3D>();

            switch (AppearanceType)
            {
            case AppearanceTypeEnum.Earth_Temple_Normal:
                model_list.AddRange(WResourceManager.LoadActorResource("Earth Temple Door"));
                break;

            case AppearanceTypeEnum.Earth_Temple_Miniboss:
                model_list.AddRange(WResourceManager.LoadActorResource("Earth Temple Miniboss Door"));
                break;

            case AppearanceTypeEnum.Earth_Temple_Boss:
                model_list.AddRange(WResourceManager.LoadActorResource("Earth Temple Boss Door"));
                break;

            case AppearanceTypeEnum.Wind_Temple_Normal:
                model_list.AddRange(WResourceManager.LoadActorResource("Wind Temple Door"));
                break;

            case AppearanceTypeEnum.Wind_Temple_Miniboss:
                model_list.AddRange(WResourceManager.LoadActorResource("Wind Temple Miniboss Door"));
                break;

            case AppearanceTypeEnum.Wind_Temple_Boss:
                model_list.AddRange(WResourceManager.LoadActorResource("Wind Temple Boss Door"));
                break;
            }

            bool isLocked = false;

            if (BehaviorType == BehaviorTypeEnum.Boss_Locked || AppearanceType == AppearanceTypeEnum.Earth_Temple_Boss || AppearanceType == AppearanceTypeEnum.Wind_Temple_Boss)
            {
                model_list.AddRange(WResourceManager.LoadActorResource("Boss Key Lock"));
                isLocked = true;
            }
            else if (BehaviorType == BehaviorTypeEnum.Locked)
            {
                model_list.AddRange(WResourceManager.LoadActorResource("Small Key Lock"));
                isLocked = true;
            }

            WStage stage = World.Map.SceneList.First(x => x.GetType() == typeof(WStage)) as WStage;
            VirtualFilesystemDirectory stage_dir = stage.SourceDirectory;

            if (Switch2 != 255 || (!isLocked && Switch1 != 255))
            {
                if (stage_dir.GetFileAtPath("bdl/stop10.bdl") != null)
                {
                    model_list.Add(WResourceManager.LoadModelFromVFS(stage_dir, "bdl/stop10.bdl"));
                }
            }

            return(model_list);
        }
Exemple #26
0
        public override void PostLoad()
        {
            if (string.IsNullOrEmpty(Name))
            {
                Name = "Link";
            }

            m_actorMeshes = WResourceManager.LoadActorResource("Link");
        }
Exemple #27
0
 private void UpdateModel()
 {
     if (HasLadder)
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Lookout Platform With Ladder");
     } else
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Lookout Platform Without Ladder");
     }
 }
Exemple #28
0
 private void UpdateModel()
 {
     if (IdleAnimation == IdleAnimationEnum.Standing)
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Standing ReDead");
     }
     else
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Sitting ReDead");
     }
 }
Exemple #29
0
 private void UpdateModel()
 {
     if (Unknown_1 == 0)
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Windmill 1");
     }
     else
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Windmill 2");
     }
 }
Exemple #30
0
 private void UpdateModel()
 {
     if (Type == TypeEnum.Blocks_Chest)
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Eye-Vine Chest Blocker");
     }
     else
     {
         m_actorMeshes = WResourceManager.LoadActorResource("Eye-Vine Door Blocker");
     }
 }