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); } } }
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); } } }
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; }
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); }
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; }