public override bool NewRightClick(int i, int j) { Player player = Main.LocalPlayer; Main.mouseRightRelease = false; if (player.sign >= 0) { Main.PlaySound(SoundID.MenuClose); player.sign = -1; Main.editSign = false; Main.npcChatText = ""; } //TODO: (Or not to do) Hardcoded frame coordinate values because using TileObjectData is cancer. if (PoMUtil.TryGetTileEntity(i, j, 18, 18, out TileEntity te)) { MapDeviceTE clickedMD = (MapDeviceTE)te; if (clickedMD.timeLeft > 0 && IsTilePortal(clickedMD, i, j)) { Map map = ((Items.Map)clickedMD.mapItem.modItem).map; var teleportBounds = new Vector4( map.openMap.dimensions.Left + (map.openMap.dimensions.Width * map.spawnArea.X), map.openMap.dimensions.Top + (map.openMap.dimensions.Height * map.spawnArea.Y), map.openMap.dimensions.Width * map.spawnArea.Z, map.openMap.dimensions.Height * map.spawnArea.W); var newPlayerPos = new Vector2( Main.rand.NextFloat(teleportBounds.X * 16, (teleportBounds.X + teleportBounds.Z - 1) * 16), Main.rand.NextFloat(teleportBounds.Y * 16, (teleportBounds.Y + teleportBounds.W - 2) * 16)); #if DEBUG var oldPos = player.position; #endif player.Teleport(newPlayerPos, 3); #if DEBUG player.Teleport(oldPos, 3); #endif } else { if (MapDeviceUI.Instance.IsVisible && activeMD == clickedMD) { MapDeviceUI.HideUI(); } else { MapDeviceUI.ShowUI(clickedMD); } } return(true); } return(false); }
public override void PostSetupContent() { PoMDataLoader.Initialize(); if (Main.netMode != 2) { new ModifierForgeUI().Initialize(); modifierForgeUI = new UserInterface(); ModifierForgeUI.HideUI(); new MapDeviceUI().Initialize(); mapDeviceUI = new UserInterface(); MapDeviceUI.HideUI(); } }
public override void OnKill() { if (Main.netMode != NetmodeID.MultiplayerClient) { if (timeLeft > 0) { CloseMap(); } else if (!mapItem.IsAir) { PoMUtil.DropItem(new Vector2(Position.X * 16, Position.Y * 16), mapItem, 2); } } if (Main.netMode != NetmodeID.Server && MapDevice.activeMD == this) { MapDeviceUI.HideUI(); } }
public override void PreSaveAndQuit() { ModifierForgeUI.HideUI(); MapDeviceUI.HideUI(); }