summaryrefslogtreecommitdiff
path: root/src/clientserver.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2010-11-27 01:02:21 +0200
committerPerttu Ahola <celeron55@gmail.com>2010-11-27 01:02:21 +0200
commit4e249fb3fbf75f0359758760d88e22aa5b14533c (patch)
tree323087d05efbd2ace27b316d4f017cf812a31992 /src/clientserver.h
downloadminetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.gz
minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.bz2
minetest-4e249fb3fbf75f0359758760d88e22aa5b14533c.zip
Initial files
Diffstat (limited to 'src/clientserver.h')
-rw-r--r--src/clientserver.h174
1 files changed, 174 insertions, 0 deletions
diff --git a/src/clientserver.h b/src/clientserver.h
new file mode 100644
index 000000000..802069216
--- /dev/null
+++ b/src/clientserver.h
@@ -0,0 +1,174 @@
+#ifndef CLIENTSERVER_HEADER
+#define CLIENTSERVER_HEADER
+
+#define PROTOCOL_ID 0x4f457403
+
+enum ToClientCommand
+{
+ TOCLIENT_INIT=0x10,
+ /*
+ Server's reply to TOSERVER_INIT.
+ Sent second after connected.
+
+ [0] u16 TOSERVER_INIT
+ [2] u8 deployed version
+ [3] v3s16 player's position + v3f(0,BS/2,0) floatToInt'd
+ */
+
+ TOCLIENT_BLOCKDATA=0x20, //TODO: Multiple blocks
+ TOCLIENT_ADDNODE,
+ TOCLIENT_REMOVENODE,
+
+ TOCLIENT_PLAYERPOS,
+ /*
+ [0] u16 command
+ // Followed by an arbitary number of these:
+ // Number is determined from packet length.
+ [N] u16 peer_id
+ [N+2] v3s32 position*100
+ [N+2+12] v3s32 speed*100
+ [N+2+12+12] s32 pitch*100
+ [N+2+12+12+4] s32 yaw*100
+ */
+
+ TOCLIENT_PLAYERINFO,
+ /*
+ [0] u16 command
+ // Followed by an arbitary number of these:
+ // Number is determined from packet length.
+ [N] u16 peer_id
+ [N] char[20] name
+ */
+
+ TOCLIENT_OPT_BLOCK_NOT_FOUND, // Not used
+
+ TOCLIENT_SECTORMETA,
+ /*
+ [0] u16 command
+ [2] u8 sector count
+ [3...] v2s16 pos + sector metadata
+ */
+
+ TOCLIENT_INVENTORY,
+ /*
+ [0] u16 command
+ [2] serialized inventory
+ */
+
+ TOCLIENT_OBJECTDATA,
+ /*
+ Sent as unreliable.
+
+ u16 command
+ u16 number of player positions
+ for each player:
+ v3s32 position*100
+ v3s32 speed*100
+ s32 pitch*100
+ s32 yaw*100
+ u16 count of blocks
+ for each block:
+ v3s16 blockpos
+ block objects
+ */
+};
+
+enum ToServerCommand
+{
+ TOSERVER_INIT=0x10,
+ /*
+ Sent first after connected.
+
+ [0] u16 TOSERVER_INIT
+ [2] u8 SER_FMT_VER_HIGHEST
+ [3] u8[20] player_name
+ */
+
+ TOSERVER_INIT2,
+ /*
+ Sent as an ACK for TOCLIENT_INIT.
+ After this, the server can send data.
+
+ [0] u16 TOSERVER_INIT2
+ */
+
+ TOSERVER_GETBLOCK=0x20, // Not used
+ TOSERVER_ADDNODE, // Not used
+ TOSERVER_REMOVENODE, // deprecated
+
+ TOSERVER_PLAYERPOS,
+ /*
+ [0] u16 command
+ [2] v3s32 position*100
+ [2+12] v3s32 speed*100
+ [2+12+12] s32 pitch*100
+ [2+12+12+4] s32 yaw*100
+ */
+
+ TOSERVER_GOTBLOCKS,
+ /*
+ [0] u16 command
+ [2] u8 count
+ [3] v3s16 pos_0
+ [3+6] v3s16 pos_1
+ ...
+ */
+
+ TOSERVER_DELETEDBLOCKS,
+ /*
+ [0] u16 command
+ [2] u8 count
+ [3] v3s16 pos_0
+ [3+6] v3s16 pos_1
+ ...
+ */
+
+ TOSERVER_ADDNODE_FROM_INVENTORY, // deprecated
+ /*
+ [0] u16 command
+ [2] v3s16 pos
+ [8] u16 i
+ */
+
+ TOSERVER_CLICK_OBJECT,
+ /*
+ length: 13
+ [0] u16 command
+ [2] u8 button (0=left, 1=right)
+ [3] v3s16 blockpos
+ [9] s16 id
+ [11] u16 item
+ */
+
+ TOSERVER_CLICK_GROUND,
+ /*
+ length: 17
+ [0] u16 command
+ [2] u8 button (0=left, 1=right)
+ [3] v3s16 nodepos_undersurface
+ [9] v3s16 nodepos_abovesurface
+ [15] u16 item
+ */
+
+ TOSERVER_RELEASE,
+ /*
+ length: 3
+ [0] u16 command
+ [2] u8 button
+ */
+
+ TOSERVER_SIGNTEXT,
+ /*
+ u16 command
+ v3s16 blockpos
+ s16 id
+ u16 textlen
+ textdata
+ */
+};
+
+// Flags for TOSERVER_GETBLOCK
+#define TOSERVER_GETBLOCK_FLAG_OPTIONAL (1<<0)
+
+#endif
+