Esempio n. 1
0
    public void setBasePart(MSB1.Part part)
    {
        Placeholder = part.Placeholder;
        ModelName   = part.ModelName;
        DrawGroup1  = part.DrawGroups[0];
        DrawGroup2  = part.DrawGroups[1];
        DrawGroup3  = part.DrawGroups[2];
        DrawGroup4  = part.DrawGroups[3];
        DispGroup1  = part.DispGroups[0];
        DispGroup2  = part.DispGroups[1];
        DispGroup3  = part.DispGroups[2];
        DispGroup4  = part.DispGroups[3];

        Rotation = new UnityEngine.Vector3(part.Rotation.X, part.Rotation.Y, part.Rotation.Z);

        EventEntityID           = part.EntityID;
        LightID                 = part.LightID;
        FogID                   = part.FogID;
        ScatterID               = part.ScatterID;
        LensFlareID             = part.LensFlareID;
        ShadowID                = part.ShadowID;
        DepthOfFieldID          = part.DofID;
        ToneMapID               = part.ToneMapID;
        ToneCorrectID           = part.ToneCorrectID;
        LanternID               = part.LanternID;
        LodParamID              = part.LodParamID;
        IsShadowSrc             = part.IsShadowSrc;
        IsShadowDest            = part.IsShadowDest >= 1;
        IsShadowOnly            = part.IsShadowOnly >= 1;
        DrawByReflectCam        = part.DrawByReflectCam >= 1;
        DrawOnlyReflectCam      = part.DrawOnlyReflectCam >= 1;
        UseDepthBiasFloat       = part.UseDepthBiasFloat >= 1;
        DisablePointLightEffect = part.DisablePointLightEffect >= 1;
    }
Esempio n. 2
0
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.Collision)bpart;

        setBasePart(part);
        HitFilterID          = part.HitFilterID;
        SoundSpace           = part.SoundSpaceType;
        EnvLightMapSpotIndex = part.EnvLightMapSpotIndex;
        ReflectPlaneHeight   = part.ReflectPlaneHeight;

        NvmGroup1 = part.NvmGroups[0];
        NvmGroup2 = part.NvmGroups[1];
        NvmGroup3 = part.NvmGroups[2];
        NvmGroup4 = part.NvmGroups[3];

        VagrantID1 = part.VagrantEntityIDs[0];
        VagrantID2 = part.VagrantEntityIDs[1];
        VagrantID3 = part.VagrantEntityIDs[2];

        MapNameID              = part.MapNameID;
        DisableStart           = (part.DisableStart > 0);
        DisableBonfireEntityID = part.DisableBonfireEntityID;

        PlayRegionID = part.PlayRegionID;

        LockCamID1 = part.LockCamParamID1;
        LockCamID2 = part.LockCamParamID2;
    }
Esempio n. 3
0
    internal void _Serialize(MSB1.Part part, GameObject parent)
    {
        part.Name        = parent.name;
        part.Placeholder = Placeholder;

        var pos = new System.Numerics.Vector3();

        pos.X         = parent.transform.position.x;
        pos.Y         = parent.transform.position.y;
        pos.Z         = parent.transform.position.z;
        part.Position = pos;

        var rot = new System.Numerics.Vector3();

        rot.X = Rotation.x;
        rot.Y = Rotation.y;
        rot.Z = Rotation.z;
        //part.Rotation = rot;
        part.Rotation = EulerUtils.quaternion2EulerDeg(parent.transform.rotation.normalized, EulerUtils.RotSeq.yzx);

        var scale = new System.Numerics.Vector3();

        scale.X    = parent.transform.localScale.x;
        scale.Y    = parent.transform.localScale.y;
        scale.Z    = parent.transform.localScale.z;
        part.Scale = scale;

        part.ModelName     = (ModelName == "") ? null : ModelName;
        part.DrawGroups[0] = DrawGroup1;
        part.DrawGroups[1] = DrawGroup2;
        part.DrawGroups[2] = DrawGroup3;
        part.DrawGroups[3] = DrawGroup4;
        part.DispGroups[0] = DispGroup1;
        part.DispGroups[1] = DispGroup2;
        part.DispGroups[2] = DispGroup3;
        part.DispGroups[3] = DispGroup4;

        part.EntityID                = EventEntityID;
        part.LightID                 = LightID;
        part.FogID                   = FogID;
        part.ScatterID               = ScatterID;
        part.LensFlareID             = LensFlareID;
        part.ShadowID                = ShadowID;
        part.DofID                   = DepthOfFieldID;
        part.ToneMapID               = ToneMapID;
        part.ToneCorrectID           = ToneCorrectID;
        part.LanternID               = LanternID;
        part.LodParamID              = LodParamID;
        part.IsShadowSrc             = IsShadowSrc;
        part.IsShadowDest            = (byte)(IsShadowDest ? 1 : 0);
        part.IsShadowOnly            = (byte)(IsShadowOnly ? 1 : 0);
        part.DrawByReflectCam        = (byte)(DrawByReflectCam ? 1 : 0);
        part.DrawOnlyReflectCam      = (byte)(DrawOnlyReflectCam ? 1 : 0);
        part.UseDepthBiasFloat       = (byte)(UseDepthBiasFloat ? 1 : 0);
        part.DisablePointLightEffect = (byte)(DisablePointLightEffect ? 1 : 0);
    }
Esempio n. 4
0
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.Navmesh)bpart;

        setBasePart(part);
        NavimeshGroup1 = part.NvmGroups[0];
        NavimeshGroup2 = part.NvmGroups[1];
        NavimeshGroup3 = part.NvmGroups[2];
        NavimeshGroup4 = part.NvmGroups[3];
    }
Esempio n. 5
0
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.Object)bpart;

        setBasePart(part);
        CollisionName = part.CollisionName;
        UnkT08        = part.UnkT08;
        UnkT0C        = part.UnkT0C;
        UnkT0E        = part.UnkT0E;
        UnkT10        = part.UnkT10;
    }
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.ConnectCollision)bpart;

        setBasePart(part);
        CollisionName = part.CollisionName;
        MapID1        = part.MapID[0];
        MapID2        = part.MapID[1];
        MapID3        = part.MapID[2];
        MapID4        = part.MapID[3];
    }
Esempio n. 7
0
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.Enemy)bpart;

        setBasePart(part);
        CollisionName    = part.CollisionName;
        ThinkParamID     = part.ThinkParamID;
        NPCParamID       = part.NPCParamID;
        TalkID           = part.TalkID;
        UnkT14           = part.UnkT14;
        CharaInitID      = part.CharaInitID;
        MovePoint1       = part.MovePointNames[0];
        MovePoint2       = part.MovePointNames[1];
        MovePoint3       = part.MovePointNames[2];
        MovePoint4       = part.MovePointNames[3];
        InitAnimID       = part.UnkT38;
        ButterflyAnimUnk = part.UnkT3C;
    }
Esempio n. 8
0
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.MapPiece)bpart;

        setBasePart(part);
    }
Esempio n. 9
0
 public bool ScrapeMaps(Universe u)
 {
     if (spec.MsbDir == null)
     {
         return(false);
     }
     if (spec.Game == FromGame.SDT)
     {
         Dictionary <string, MSBS> maps = editor.Load(spec.MsbDir, path => MSBS.Read(path));
         foreach (KeyValuePair <string, MSBS> entry in maps)
         {
             string location      = entry.Key;
             MSBS   msb           = entry.Value;
             Obj    map           = Obj.Map(location);
             int    treasureIndex = 0;
             foreach (MSBS.Event.Treasure treasure in msb.Events.Treasures)
             {
                 if (treasure.TreasurePartName != null && treasure.ItemLotID != -1)
                 {
                     Obj treasureObj = Obj.Treasure(location, treasureIndex);
                     Obj part        = Obj.Part(location, treasure.TreasurePartName);
                     u.Add(Verb.PRODUCES, part, treasureObj);
                     u.Add(Verb.PRODUCES, treasureObj, Obj.Lot(treasure.ItemLotID));
                 }
                 treasureIndex++;
             }
             foreach (MSBS.Event.Talk talk in msb.Events.Talks)
             {
                 for (int i = 0; i < 2; i++)
                 {
                     string enemyName = talk.EnemyNames[i];
                     int    esdId     = talk.TalkIDs[i];
                     if (enemyName == null || esdId < 0)
                     {
                         continue;
                     }
                     Obj part = Obj.Part(location, enemyName);
                     u.Add(Verb.CONTAINS, part, Obj.Esd(esdId));
                 }
             }
             foreach (MSBS.Entry obj in msb.Parts.GetEntries())
             {
                 MSBS.Part part = obj as MSBS.Part;
                 if (part == null)
                 {
                     continue;
                 }
                 Obj partObj = Obj.Part(location, part.Name);
                 if (part.EntityID != -1)
                 {
                     u.Add(Verb.CONTAINS, Obj.Entity(part.EntityID), partObj);
                 }
                 foreach (int groupId in part.EntityGroupIDs.Where(groupID => groupID > 0))
                 {
                     u.Add(Verb.CONTAINS, Obj.Entity(groupId), partObj);
                 }
                 if (part is MSBS.Part.Enemy enemy)
                 {
                     string model = part.Name.Split('_')[0];
                     u.Add(Verb.CONTAINS, partObj, Obj.ChrModel(model));
                     if (enemy.NPCParamID != -1)
                     {
                         u.Add(Verb.CONTAINS, partObj, Obj.Npc(enemy.NPCParamID));
                     }
                 }
                 else if (part is MSBS.Part.Object)
                 {
                     string model = part.Name.Split('_')[0];
                     u.Add(Verb.CONTAINS, partObj, Obj.ObjModel(model));
                 }
                 // This gets a bit noisy, so don't add part to map unless it's already in universe
                 if (u.Nodes.ContainsKey(partObj))
                 {
                     u.Add(Verb.CONTAINS, map, partObj);
                 }
             }
         }
     }
     else if (spec.Game == FromGame.DS1 || spec.Game == FromGame.DS1R)
     {
         Dictionary <string, MSB1> maps = editor.Load(spec.MsbDir, path => path.Contains("m99") ? null : MSB1.Read(path), "*.msb");
         foreach (KeyValuePair <string, MSB1> entry in maps)
         {
             string location = entry.Key;
             Obj    map      = Obj.Map(location);
             MSB1   msb      = entry.Value;
             if (msb == null)
             {
                 continue;
             }
             // For now, just load talk data
             foreach (MSB1.Entry obj in msb.Parts.GetEntries())
             {
                 MSB1.Part part = obj as MSB1.Part;
                 if (part == null)
                 {
                     continue;
                 }
                 Obj partObj = Obj.Part(location, part.Name);
                 if (part.EntityID != -1)
                 {
                     u.Add(Verb.CONTAINS, Obj.Entity(part.EntityID), partObj);
                 }
                 if (part is MSB1.Part.Enemy enemy)
                 {
                     string model = part.Name.Split('_')[0];
                     u.Add(Verb.CONTAINS, partObj, Obj.ChrModel(model));
                     if (enemy.NPCParamID != -1 && model == "c0000")
                     {
                         u.Add(Verb.CONTAINS, partObj, Obj.Human(enemy.NPCParamID));
                     }
                     if (enemy.TalkID != -1)
                     {
                         u.Add(Verb.CONTAINS, partObj, Obj.Esd(enemy.TalkID));
                     }
                 }
                 else if (part is MSB1.Part.Object)
                 {
                     string model = part.Name.Split('_')[0];
                     u.Add(Verb.CONTAINS, partObj, Obj.ObjModel(model));
                 }
                 // This gets a bit noisy, so don't add part to map unless it's already in universe
                 if (u.Nodes.ContainsKey(partObj))
                 {
                     u.Add(Verb.CONTAINS, map, partObj);
                 }
             }
         }
     }
     else if (spec.Game == FromGame.DS3)
     {
         Dictionary <string, MSB3> maps = editor.Load(spec.MsbDir, path => path.Contains("m99") ? null : MSB3.Read(path));
         foreach (KeyValuePair <string, MSB3> entry in maps)
         {
             string location = entry.Key;
             Obj    map      = Obj.Map(location);
             MSB3   msb      = entry.Value;
             if (msb == null)
             {
                 continue;
             }
             // For now, just load talk data
             foreach (MSB3.Entry obj in msb.Parts.GetEntries())
             {
                 MSB3.Part part = obj as MSB3.Part;
                 if (part == null)
                 {
                     continue;
                 }
                 Obj partObj = Obj.Part(location, part.Name);
                 if (part.EventEntityID != -1)
                 {
                     u.Add(Verb.CONTAINS, Obj.Entity(part.EventEntityID), partObj);
                 }
                 if (part is MSB3.Part.Enemy enemy)
                 {
                     string model = part.Name.Split('_')[0];
                     u.Add(Verb.CONTAINS, partObj, Obj.ChrModel(model));
                     if (enemy.CharaInitID > 0)
                     {
                         u.Add(Verb.CONTAINS, partObj, Obj.Human(enemy.CharaInitID));
                     }
                     if (enemy.TalkID != -1)
                     {
                         u.Add(Verb.CONTAINS, partObj, Obj.Esd(enemy.TalkID));
                     }
                 }
                 else if (part is MSB3.Part.Object)
                 {
                     string model = part.Name.Split('_')[0];
                     u.Add(Verb.CONTAINS, partObj, Obj.ObjModel(model));
                 }
                 // This gets a bit noisy, so don't add part to map unless it's already in universe
                 if (u.Nodes.ContainsKey(partObj))
                 {
                     u.Add(Verb.CONTAINS, map, partObj);
                 }
             }
         }
     }
     else
     {
         return(false);
     }
     return(true);
 }
Esempio n. 10
0
    public override void SetPart(MSB1.Part bpart)
    {
        var part = (MSB1.Part.Player)bpart;

        setBasePart(part);
    }
Esempio n. 11
0
 public abstract void SetPart(MSB1.Part part);