public override void SetPart(MSB3.Part bpart) { var part = (MSB3.Part.Collision)bpart; setBasePart(part); GParamConfig = gameObject.AddComponent <MSB3GParamConfig>(); GParamConfig.setStruct(part.Gparam); UnkStruct4 = gameObject.AddComponent <MSB3UnkStruct4>(); UnkStruct4.setStruct(part.Unk4); HitFilterID = part.HitFilterID; SoundSpaceType = part.SoundSpaceType; EnvLightMapSpotIndex = part.EnvLightMapSpotIndex; ReflectPlaneHeight = part.ReflectPlaneHeight; MapNameID = part.MapNameID; DisableStart = part.DisableStart; DisableBonfireEntityID = part.DisableBonfireEntityID; PlayRegionID = part.PlayRegionID; LockCamID1 = part.LockCamID1; LockCamID2 = part.LockCamID2; UnkHitName = part.UnkHitName; UnkT2C = part.UnkT2C; UnkT34 = part.UnkT34; UnkT35 = part.UnkT35; UnkT36 = part.UnkT36; MapVisType = part.MapVisType; }
public override void SetPart(MSB3.Part bpart) { var part = (MSB3.Part.MapPiece)bpart; setBasePart(part); GParamConfig = gameObject.AddComponent <MSB3GParamConfig>(); GParamConfig.setStruct(part.Gparam); }
public void setBasePart(MSB3.Part part) { Placeholder = part.Placeholder; ID = part.ID; ModelName = part.ModelName; OldDrawGroup1 = part.OldDrawGroup1; MapStudioLayer = part.MapStudioLayer; DrawGroup1 = part.DrawGroups[0]; DrawGroup2 = part.DrawGroups[1]; DrawGroup3 = part.DrawGroups[2]; DrawGroup4 = part.DrawGroups[3]; DrawGroup5 = part.DrawGroups[4]; DrawGroup6 = part.DrawGroups[5]; DrawGroup7 = part.DrawGroups[6]; DrawGroup8 = part.DrawGroups[7]; DispGroup1 = part.DispGroups[0]; DispGroup2 = part.DispGroups[1]; DispGroup3 = part.DispGroups[2]; DispGroup4 = part.DispGroups[3]; DispGroup5 = part.DispGroups[4]; DispGroup6 = part.DispGroups[5]; DispGroup7 = part.DispGroups[6]; DispGroup8 = part.DispGroups[7]; Rotation = new UnityEngine.Vector3(part.Rotation.X, part.Rotation.Y, part.Rotation.Z); BackreadGroup1 = part.BackreadGroups[0]; BackreadGroup2 = part.BackreadGroups[1]; BackreadGroup3 = part.BackreadGroups[2]; BackreadGroup4 = part.BackreadGroups[3]; BackreadGroup5 = part.BackreadGroups[4]; BackreadGroup6 = part.BackreadGroups[5]; BackreadGroup7 = part.BackreadGroups[6]; BackreadGroup8 = part.BackreadGroups[7]; EventEntityID = part.EventEntityID; OldLightID = part.OldLightID; OldFogID = part.OldFogID; OldScatterID = part.OldScatterID; OldLensFlareID = part.OldLensFlareID; LanternID = part.LanternID; LodParamID = part.LodParamID; UnkB0E = part.UnkB0E; PointLightShadowSource = part.PointLightShadowSource; ShadowSource = part.ShadowSource; ShadowDest = part.ShadowDest; IsShadowOnly = part.IsShadowOnly; DrawByReflectCam = part.DrawByReflectCam; DrawOnlyReflectCam = part.DrawOnlyReflectCam; UseDepthBiasFloat = part.UseDepthBiasFloat; DisablePointLightEffect = part.DisablePointLightEffect; UnkB17 = part.UnkB17; UnkB18 = part.UnkB18; EventEntityGroups = part.EventEntityGroups; }
public override void SetPart(MSB3.Part bpart) { var part = (MSB3.Part.ConnectCollision)bpart; setBasePart(part); CollisionName = part.CollisionName; MapID1 = part.MapID1; MapID2 = part.MapID2; MapID3 = part.MapID3; MapID4 = part.MapID4; }
public override void SetPart(MSB3.Part bpart) { var part = (MSB3.Part.Enemy)bpart; setBasePart(part); GParamConfig = gameObject.AddComponent <MSB3GParamConfig>(); GParamConfig.setStruct(part.Gparam); CollisionName = part.CollisionName; ThinkParamID = part.ThinkParamID; NPCParamID = part.NPCParamID; TalkID = part.TalkID; CharaInitID = part.CharaInitID; UnkT04 = part.UnkT04; ChrManipulatorAllocationParameter = part.ChrManipulatorAllocationParameter; WalkRouteName = part.WalkRouteName; BackupEventAnimID = part.BackupEventAnimID; UnkT78 = part.UnkT78; UnkT84 = part.UnkT84; }
public override void SetPart(MSB3.Part bpart) { var part = (MSB3.Part.Object)bpart; setBasePart(part); GParamConfig = gameObject.AddComponent <MSB3GParamConfig>(); GParamConfig.setStruct(part.Gparam); CollisionName = part.CollisionName; UnkT0C = part.UnkT0C; UnkT0E = part.UnkT0E; StartAnimID = part.UnkT10; UnkT12 = part.UnkT12; UnkT14 = part.UnkT14; UnkT16 = part.UnkT16; UnkT18 = part.UnkT18; UnkT1A = part.UnkT1A; UnkT1C = part.UnkT1C; UnkT1E = part.UnkT1E; }
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); }
public override void SetPart(MSB3.Part part) { setBasePart(part); }
public abstract void SetPart(MSB3.Part part);
internal void _Serialize(MSB3.Part part, GameObject parent) { part.Name = parent.name; part.Placeholder = Placeholder; part.Position.X = parent.transform.position.x; part.Position.Y = parent.transform.position.y; part.Position.Z = parent.transform.position.z; // :trashcat: //part.Rotation.X = parent.transform.rotation.eulerAngles.x; //part.Rotation.Y = parent.transform.rotation.eulerAngles.z; //part.Rotation.Z = -parent.transform.rotation.eulerAngles.y; //part.Rotation = ConvertEuler(parent.transform.eulerAngles); part.Rotation = EulerUtils.quaternion2EulerDeg(parent.transform.rotation.normalized, EulerUtils.RotSeq.yzx); //part.Rotation = ConvertQuatEuler(parent.transform.rotation); //part.Rotation = new System.Numerics.Vector3(Rotation.x, Rotation.y, Rotation.z); //print($@"{part.Name}: {Rotation}, {parent.transform.eulerAngles} -> {part.Rotation}"); part.Scale.X = parent.transform.localScale.x; part.Scale.Y = parent.transform.localScale.y; part.Scale.Z = parent.transform.localScale.z; //part.Scale = new System.Numerics.Vector3(Scale.x, Scale.y, Scale.z); part.ModelName = ModelName; part.MapStudioLayer = MapStudioLayer; part.DrawGroups[0] = DrawGroup1; part.DrawGroups[1] = DrawGroup2; part.DrawGroups[2] = DrawGroup3; part.DrawGroups[3] = DrawGroup4; part.DrawGroups[4] = DrawGroup5; part.DrawGroups[5] = DrawGroup6; part.DrawGroups[6] = DrawGroup7; part.DrawGroups[7] = DrawGroup8; part.DispGroups[0] = DispGroup1; part.DispGroups[1] = DispGroup2; part.DispGroups[2] = DispGroup3; part.DispGroups[3] = DispGroup4; part.DispGroups[4] = DispGroup5; part.DispGroups[5] = DispGroup6; part.DispGroups[6] = DispGroup7; part.DispGroups[7] = DispGroup8; part.BackreadGroups[0] = BackreadGroup1; part.BackreadGroups[1] = BackreadGroup2; part.BackreadGroups[2] = BackreadGroup3; part.BackreadGroups[3] = BackreadGroup4; part.BackreadGroups[4] = BackreadGroup5; part.BackreadGroups[5] = BackreadGroup6; part.BackreadGroups[6] = BackreadGroup7; part.BackreadGroups[7] = BackreadGroup8; part.EventEntityID = EventEntityID; part.OldLightID = OldLightID; part.OldFogID = OldFogID; part.OldScatterID = OldScatterID; part.OldLensFlareID = OldLensFlareID; part.LanternID = LanternID; part.LodParamID = LodParamID; part.UnkB0E = UnkB0E; part.PointLightShadowSource = PointLightShadowSource; part.ShadowSource = ShadowSource; part.ShadowDest = ShadowDest; part.IsShadowOnly = IsShadowOnly; part.DrawByReflectCam = DrawByReflectCam; part.DrawOnlyReflectCam = DrawOnlyReflectCam; part.UseDepthBiasFloat = UseDepthBiasFloat; part.DisablePointLightEffect = DisablePointLightEffect; part.UnkB17 = UnkB17; part.UnkB18 = UnkB18; for (int i = 0; i < 8; i++) { if (i >= EventEntityGroups.Length) { part.EventEntityGroups[i] = -1; continue; } part.EventEntityGroups[i] = EventEntityGroups[i]; } }