Exemple #1
0
 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));
                     }
                 }
             }
         }
     }
 }