コード例 #1
0
ファイル: Connection.cs プロジェクト: welterde/Spacecraft
        public Connection(TcpClient c, Player P)
        {
            this.player = P;

            SendQueue = new Queue<ServerPacket>();

            _client = c;
            ipaddr = "127.0.0.1:tty";
            if(c != null) {
                ipaddr = c.Client.RemoteEndPoint.ToString();
            }
        }
コード例 #2
0
ファイル: Connection.cs プロジェクト: welterde/Spacecraft
 public void HandlePlayerSpawn(Player Player, bool self)
 {
     PlayerSpawnPacket packet = new PlayerSpawnPacket();
     packet.PlayerID = Player.playerID;
     if(self)
         packet.PlayerID = 255;
     packet.Name = Player.name;
     packet.X = Player.pos.x;
     packet.Y = Player.pos.y;
     packet.Z = Player.pos.z;
     packet.Heading = Player.heading;
     packet.Pitch = Player.pitch;
     SendPacket(packet);
 }
コード例 #3
0
 /// <summary>
 /// Lookup the command cmd, and execute it using args as the arguments. sender is used to post error messages back to the user.
 /// </summary>
 /// <param name="sender">The Player attempting to execute the command.</param>
 /// <param name="cmd">Command to execute, e.g. "me"</param>
 /// <param name="args">Argument passed to command, e.g. "uses /me sucessfully"</param>
 ///
 public static void Execute(Player sender, string cmd, string args)
 {
     if (Commands.ContainsKey(cmd))
     {
         if (sender.rank >= Commands[cmd].RankNeeded) {
             try {
                 Commands[cmd].Run(sender, cmd, args);
             }
             catch(NotImplementedException) {
                 sender.PrintMessage(Color.CommandError + "That command's not implemented!");
             }
         } else {
             sender.PrintMessage(Color.CommandError + "You don't have permission to use that command.");
         }
     } else {
         sender.PrintMessage(Color.CommandError + "Unknown command " + cmd);
     }
 }
コード例 #4
0
ファイル: GameBase.cs プロジェクト: welterde/Spacecraft
 // === Callbacks ===
 // PlayerJoins: called when a player connects.
 public virtual void PlayerJoins(Player player)
 {
 }
コード例 #5
0
ファイル: GameBase.cs プロジェクト: welterde/Spacecraft
 // PlayerBuilds: called when a player places or deletes a block.
 public virtual void PlayerBuilds(Player player, BlockPosition pos, Block type, Block oldType)
 {
 }
コード例 #6
0
ファイル: GameBase.cs プロジェクト: welterde/Spacecraft
 // CanBuild: return whether the given player may build that type at that location.
 public virtual bool CanBuild(Player player, BlockPosition pos, Block type)
 {
     return true;
 }
コード例 #7
0
ファイル: GameBase.cs プロジェクト: welterde/Spacecraft
 public static void Inform(Player p, string text)
 {
     p.PrintMessage(Color.DarkGreen + text);
 }
コード例 #8
0
ファイル: ConsolePlayer.cs プロジェクト: welterde/Spacecraft
 public override void PlayerMoves(Player Player, Position dest, byte heading, byte pitch)
 {
     // do nothing
 }
コード例 #9
0
ファイル: ConsolePlayer.cs プロジェクト: welterde/Spacecraft
 public override void PlayerJoins(Player Player)
 {
     // do nothing
 }
コード例 #10
0
 public static void WrapMessage(Player sendto, string message)
 {
     WrapMessage(sendto, message, Color.CommandResult);
 }
コード例 #11
0
        public static void WrapMessage(Player sendto, string message, string prefix)
        {
            if(prefix.Length > 4)
                prefix = prefix.Substring(0, 4);

            while (message.Length > 60)
            {
                int i = message.LastIndexOf(' ', 60, 60);
                if(i == -1) i = 60;

                sendto.PrintMessage(prefix + message.Substring(0, i));
                message = message.Substring(i);
            }
            sendto.PrintMessage(prefix + message);
        }
コード例 #12
0
ファイル: Player.cs プロジェクト: welterde/Spacecraft
        public virtual void PlayerMoves(Player Player, Position dest, byte heading, byte pitch)
        {
            if (Player == this) {
                pos = dest;
            }

            conn.SendPlayerMovement(Player, dest, heading, pitch, Player == this);
        }
コード例 #13
0
ファイル: Player.cs プロジェクト: welterde/Spacecraft
 public virtual void PlayerJoins(Player Player)
 {
     conn.HandlePlayerSpawn(Player, Player == this);
 }
コード例 #14
0
ファイル: Player.cs プロジェクト: welterde/Spacecraft
 public void PlayerDisconnects(Player P)
 {
     PlayerDisconnects(P.playerID);
 }
コード例 #15
0
ファイル: GameBase.cs プロジェクト: welterde/Spacecraft
 // PlayerMessage: allows for adjusting of messages. Return "" to cancel or null to pass through.
 public virtual string PlayerMessage(Player player, string message)
 {
     return null;
 }
コード例 #16
0
ファイル: GameBase.cs プロジェクト: welterde/Spacecraft
 // PlayerQuits: called when a player disconnects.
 public virtual void PlayerQuits(Player player)
 {
 }
コード例 #17
0
ファイル: Connection.cs プロジェクト: welterde/Spacecraft
        public void SendPlayerMovement(Player player, Position dest, byte heading, byte pitch, bool self)
        {
            PlayerMovePacket packet = new PlayerMovePacket();
            packet.PlayerID = player.playerID;
            if (self)
                packet.PlayerID = 255;
            packet.X = player.pos.x;
            packet.Y = player.pos.y;
            packet.Z = player.pos.z;
            packet.Heading = heading;
            packet.Pitch = pitch;

            SendPacket(packet);
        }