public void CreateData(DFBlock.RmbBlockPeopleRecord data, bool isExterior) { HideComponents(); type = DataType.Person; this.isExterior = isExterior; id = data.TextureArchive + "." + data.TextureRecord; factionID = data.FactionID; flags = data.Flags; }
/// <summary> /// Sets NPC data from RMB layout. /// </summary> public void SetLayoutData(DFBlock.RmbBlockPeopleRecord obj) { // Store common layout data npcData.hash = GetPositionHash(obj.XPos, obj.YPos, obj.ZPos); npcData.flags = obj.Flags; npcData.factionID = obj.FactionID; npcData.nameSeed = (int)obj.Position; npcData.gender = ((npcData.flags & 32) == 32) ? Genders.Female : Genders.Male; npcData.context = Context.Building; }
/// <summary> /// Sets extended data about people billboard from RMB resource data. /// </summary> /// <param name="person"></param> public void SetRMBPeopleData(DFBlock.RmbBlockPeopleRecord person) { // Add common data summary.FactionOrMobileID = person.FactionID; summary.FixedEnemyType = MobileTypes.None; summary.Flags = person.Flags; // TEMP: Add name seed summary.NameSeed = (int)person.Position; }
/// <summary> /// Sets NPC data from RMB layout. /// </summary> public void SetLayoutData(DFBlock.RmbBlockPeopleRecord obj, int buildingKey = 0) { SetLayoutData(ref npcData, obj.XPos, obj.YPos, obj.ZPos, obj.Flags, obj.FactionID, obj.TextureArchive, obj.TextureRecord, obj.Position, buildingKey); npcData.context = Context.Building; }
/// <summary> /// Sets NPC data from RMB layout. /// </summary> public void SetLayoutData(DFBlock.RmbBlockPeopleRecord obj, int buildingKey = 0) { // Store common layout data npcData.hash = GetPositionHash(obj.XPos, obj.YPos, obj.ZPos); npcData.flags = obj.Flags; npcData.factionID = obj.FactionID; npcData.nameSeed = (int)obj.Position ^ buildingKey; npcData.gender = ((npcData.flags & 32) == 32) ? Genders.Female : Genders.Male; npcData.context = Context.Building; npcData.billboardArchiveIndex = obj.TextureArchive; npcData.billboardRecordIndex = obj.TextureRecord; }
/// <summary> /// Sets NPC data from RMB layout. /// </summary> public void SetLayoutData(DFBlock.RmbBlockPeopleRecord obj, int buildingKey = 0) { PlayerGPS playerGPS = GameManager.Instance.PlayerGPS; SetLayoutData(ref npcData, obj.XPos, obj.YPos, obj.ZPos, obj.Flags, obj.FactionID, obj.TextureArchive, obj.TextureRecord, obj.Position, playerGPS.CurrentMapID, playerGPS.CurrentLocation.LocationIndex, buildingKey); npcData.context = Context.Building; }
public static GameObject AddPersonObject(DFBlock.RmbBlockPeopleRecord rmbBlock) { Vector3 billboardPosition = new Vector3(rmbBlock.XPos, -rmbBlock.YPos, rmbBlock.ZPos) * MeshReader.GlobalScale; // Spawn billboard gameobject GameObject go = DaggerfallWorkshop.Utility.GameObjectHelper.CreateDaggerfallBillboardGameObject(rmbBlock.TextureArchive, rmbBlock.TextureRecord, null); // Set position Billboard dfBillboard = go.GetComponent <Billboard>(); go.transform.position = billboardPosition; go.transform.position += new Vector3(0, dfBillboard.Summary.Size.y / 2, 0); // Add RMB data to billboard dfBillboard.SetRMBPeopleData(rmbBlock); return(go); }
/// <summary> /// Sets extended data about people billboard from RMB resource data. /// </summary> /// <param name="person"></param> public abstract void SetRMBPeopleData(DFBlock.RmbBlockPeopleRecord person);
/// <summary> /// Sets extended data about people billboard from RMB resource data. /// </summary> /// <param name="person"></param> public void SetRMBPeopleData(DFBlock.RmbBlockPeopleRecord person) { SetRMBPeopleData(person.FactionID, person.Flags, person.Position); }