public void ClickedFootball(object sender, PlayerClickedEventArgs e) { //replace e.coords with player.Pos.toblock()(moving event) if (e.Coords == _world.footballPos) { double ksi = 2.0 * Math.PI * (-e.Player.Position.L) / 256.0; double r = Math.Cos(ksi); double phi = 2.0 * Math.PI * (e.Player.Position.R - 64) / 256.0; Vector3F dir = new Vector3F((float)(r * Math.Cos(phi)), (float)(r * Math.Sin(phi)), (float)(Math.Sin(ksi))); _world.AddPhysicsTask(new Particle(_world, e.Coords, dir, e.Player, Block.White, _footballBehavior), 0); } }
public static void PlayerClickedDoor(object sender, PlayerClickedEventArgs e) { // After 10s, revert effects of /DoorCheck. if ((DateTime.UtcNow - e.Player.Info.doorCheckTime).TotalSeconds > 10 && e.Player.Info.doorCheckTime != DateTime.MaxValue) { e.Player.Info.doorCheckTime = DateTime.MaxValue; e.Player.Info.isDoorChecking = false; } Zone[] allowed = null, denied = null; if (e.Player.WorldMap.Zones.CheckDetailed(e.Coords, e.Player, out allowed, out denied)) { foreach (Zone zone in allowed) { if (zone.Name.StartsWith("Door_")) { Player.RaisePlayerPlacedBlockEvent(e.Player, e.Player.WorldMap, e.Coords, e.Block, e.Block, BlockChangeContext.Manual); // If player is checking a door, print the door info instead of opening it. if (e.Player.Info.isDoorChecking) { e.Player.Message(zone.Name); e.Player.Message("Created by {0} on {1}", zone.CreatedBy, zone.CreatedDate); return; } lock (OpenDoorsLock) { if (!OpenDoors.Contains(zone)) { OpenDoor(zone, e.Player); OpenDoors.Add(zone); } } } } } }
//events public static void playerClicking(object sender, PlayerClickedEventArgs e) { if (e.Player.World.GameOn) { if (Games.MineChallenge.mode == Games.MineChallenge.GameMode.NULL) { if (platform.Values.Count > 0) { foreach (Vector3I block in platform.Values) { if (e.Coords == block) { Player.RaisePlayerPlacedBlockEvent(e.Player, world.Map, block, world.Map.GetBlock(e.Coords), world.Map.GetBlock(e.Coords), BlockChangeContext.Manual); world.Map.QueueUpdate(new BlockUpdate(null, block, Block.Pink)); } } } } } }