public void ChangeDest(SHTeleComponent dest) { if (m_Changing) { return; } m_Changing = true; if (dest == null || !(dest.Addon is SHTeleporter)) { m_UpTele.TeleDest = dest; m_RightTele.TeleDest = dest; m_DownTele.TeleDest = dest; m_LeftTele.TeleDest = dest; } else { SHTeleporter destAddon = (SHTeleporter)dest.Addon; m_UpTele.TeleDest = destAddon.UpTele; m_RightTele.TeleDest = destAddon.RightTele; m_DownTele.TeleDest = destAddon.DownTele; m_LeftTele.TeleDest = destAddon.LeftTele; } m_Changing = false; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Active = reader.ReadBool(); m_TeleDest = reader.ReadItem() as SHTeleComponent; m_TeleOffset = reader.ReadPoint3D(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_External = reader.ReadBool(); m_UpTele = (SHTeleComponent)reader.ReadItem(); m_RightTele = (SHTeleComponent)reader.ReadItem(); m_DownTele = (SHTeleComponent)reader.ReadItem(); m_LeftTele = (SHTeleComponent)reader.ReadItem(); }
public SHTeleporter(bool external) { m_Changing = false; m_External = external; if (external) { AddComponent(new AddonComponent(0x549), -1, -1, 0); AddComponent(new AddonComponent(0x54D), 0, -1, 0); AddComponent(new AddonComponent(0x54E), 1, -1, 0); AddComponent(new AddonComponent(0x548), 2, -1, 0); AddComponent(new AddonComponent(0x54B), -1, 0, 0); AddComponent(new AddonComponent(0x53B), 0, 0, 0); AddComponent(new AddonComponent(0x53B), 1, 0, 0); AddComponent(new AddonComponent(0x544), 2, 0, 0); AddComponent(new AddonComponent(0x54C), -1, 1, 0); AddComponent(new AddonComponent(0x53B), 0, 1, 0); AddComponent(new AddonComponent(0x53B), 1, 1, 0); AddComponent(new AddonComponent(0x545), 2, 1, 0); AddComponent(new AddonComponent(0x547), -1, 2, 0); AddComponent(new AddonComponent(0x541), 0, 2, 0); AddComponent(new AddonComponent(0x543), 1, 2, 0); AddComponent(new AddonComponent(0x540), 2, 2, 0); } Point3D upOS = external ? new Point3D(-1, 0, 0) : new Point3D(-2, -1, 0); m_UpTele = new SHTeleComponent(external ? 0x1775 : 0x495, upOS); AddComponent(m_UpTele, 0, 0, 0); Point3D rightOS = external ? new Point3D(-2, 0, 0) : new Point3D(2, -1, 0); m_RightTele = new SHTeleComponent(external ? 0x1775 : 0x495, rightOS); AddComponent(m_RightTele, 1, 0, 0); Point3D downOS = external ? new Point3D(-2, -1, 0) : new Point3D(2, 2, 0); m_DownTele = new SHTeleComponent(external ? 0x1776 : 0x495, downOS); AddComponent(m_DownTele, 1, 1, 0); Point3D leftOS = external ? new Point3D(-1, -1, 0) : new Point3D(-1, 2, 0); m_LeftTele = new SHTeleComponent(external ? 0x1775 : 0x495, leftOS); AddComponent(m_LeftTele, 0, 1, 0); }