Example #1
0
        public void SetNose(int partID)
        {
            NoseID = partID;

            PartData part = PartData.Noses[partID].Copy();

            if (Nose != null)
            {
                if (Nose.WeaponSlots != null)
                {
                    foreach (Vector3 pos in Nose.WeaponSlots)
                    {
                        if (Weapons[pos] != null)
                        {
                            weaponWeight -= Weapons[pos].Weight;
                        }
                        Weapons.Remove(pos);
                    }
                }
            }
            Nose = part;
            if (part.WeaponSlots != null)
            {
                foreach (Vector3 pos in part.WeaponSlots)
                {
                    Weapons.Add(pos, null);
                }
            }
        }
Example #2
0
        public void SetEngine(int partID)
        {
            EngineID = partID;
            PartData part = PartData.Engines[partID].Copy();

            if (Engine != null)
            {
                if (Engine.WeaponSlots != null)
                {
                    foreach (Vector3 pos in Engine.WeaponSlots)
                    {
                        if (Weapons[pos] != null)
                        {
                            weaponWeight -= Weapons[pos].Weight;
                        }
                        Weapons.Remove(pos);
                    }
                }
            }
            Engine = part;
            if (part.WeaponSlots != null)
            {
                foreach (Vector3 pos in part.WeaponSlots)
                {
                    Weapons.Add(pos, null);
                }
            }
        }
Example #3
0
 Vector3? FreeSlot(PartData part)
 {
     if (part.WeaponSlots == null) return null;
     foreach (Vector3 offset in part.WeaponSlots)
     {
         if (GeneratedData.Weapons[offset] == null) return offset;
     }
     return null;
 }
Example #4
0
        public PartData Copy()
        {
            PartData copy = new PartData(Name, Description, resourceID, Weight, Armor, EquipmentSlots, null, Turn, Thrust, Strafe);

            if (WeaponSlots != null)
            {
                copy.WeaponSlots = new Vector3[WeaponSlots.Length];
                for (int i = 0; i < WeaponSlots.Length; i++)
                {
                    copy.WeaponSlots[i] = WeaponSlots[i];
                }
            }
            copy.Hitbox = Resources.GetEntity(Vector3.Zero, resourceID);
            return(copy);
        }
Example #5
0
 public PartData Copy()
 {
     PartData copy = new PartData(Name, Description, resourceID, Weight, Armor, EquipmentSlots, null, Turn, Thrust, Strafe);
     if (WeaponSlots != null)
     {
         copy.WeaponSlots = new Vector3[WeaponSlots.Length];
         for (int i = 0; i < WeaponSlots.Length; i++)
             copy.WeaponSlots[i] = WeaponSlots[i];
     }
     copy.Hitbox = Resources.GetEntity(Vector3.Zero, resourceID);
     return copy;
 }