Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 /// <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;
 }
Esempio n. 3
0
        /// <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;
        }
Esempio n. 4
0
 /// <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;
 }
Esempio n. 5
0
 /// <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;
 }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 8
0
 /// <summary>
 /// Sets extended data about people billboard from RMB resource data.
 /// </summary>
 /// <param name="person"></param>
 public abstract void SetRMBPeopleData(DFBlock.RmbBlockPeopleRecord person);
Esempio n. 9
0
 /// <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);
 }