public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 1: { for (int i = 0; i < m_DirectionalItemIDs.GetLength(0); i++) { for (int j = 0; j < m_DirectionalItemIDs.GetLength(1); j++) { m_DirectionalItemIDs[i, j] = reader.ReadInt(); } } m_ComponentType = (BoatComponentType)reader.ReadByte(); goto case 0; } case 0: { m_Boat = reader.ReadItem() as BaseBoat; m_Offset = reader.ReadPoint3D(); break; } } if (Boat == null) { Delete(); } }
public BoatComponent(BaseBoat boat, Point3D offset, int[,] directionalItemIDs) : base() { m_Boat = boat; Offset = offset; Movable = false; if (directionalItemIDs != null) // it is null for ship cannons { m_DirectionalItemIDs = directionalItemIDs; } if (m_Boat != null) { Point3D loc = m_Boat.GetRotatedLocation(offset.X, offset.Y); loc.Z = m_Boat.Z + offset.Z; MoveToWorld(loc, m_Boat.Map); SetFacing(m_Boat.Direction); } m_ComponentType = GetBoatComponentType(); if (m_ComponentType == BoatComponentType.SteeringWheel) { Name = "ship's wheel"; } else if (m_ComponentType == BoatComponentType.CannonSpot) { Name = "cannon holder"; } else if (m_ComponentType == BoatComponentType.Rope) { // don't need to change the name } /* * else if (m_ComponentType == BoatComponentType.Mast) * { * Name = "a mast"; * if (UberScriptFileName != null) * { * XmlScript script = new XmlScript(UberScriptFileName); * script.Name = "cannon"; * XmlAttach.AttachTo(this, script); * } * }*/ else if (m_ComponentType == BoatComponentType.Hold) { Name = "hold"; } }
public BoatComponent(BaseBoat boat, Point3D offset, int[,] directionalItemIDs) : base() { m_Boat = boat; Offset = offset; Movable = false; if (directionalItemIDs != null) // it is null for ship cannons { m_DirectionalItemIDs = directionalItemIDs; } if (m_Boat != null) { Point3D loc = m_Boat.GetRotatedLocation(offset.X, offset.Y); loc.Z = m_Boat.Z + offset.Z; MoveToWorld(loc, m_Boat.Map); SetFacing(m_Boat.Direction); } m_ComponentType = GetBoatComponentType(); if (m_ComponentType == BoatComponentType.SteeringWheel) { Name = "ship's wheel"; } else if (m_ComponentType == BoatComponentType.CannonSpot) { Name = "cannon holder"; } else if (m_ComponentType == BoatComponentType.Rope) { // don't need to change the name } /* else if (m_ComponentType == BoatComponentType.Mast) { Name = "a mast"; if (UberScriptFileName != null) { XmlScript script = new XmlScript(UberScriptFileName); script.Name = "cannon"; XmlAttach.AttachTo(this, script); } }*/ else if (m_ComponentType == BoatComponentType.Hold) { Name = "hold"; } }