]> git.lizzy.rs Git - minetest.git/blobdiff - src/network/networkprotocol.h
Server pushing media at runtime (#9961)
[minetest.git] / src / network / networkprotocol.h
index 0ab11ee7e962ec060a2ee3365792f9084bb1fabb..fd683eac9f97bdfb5b9c1477ee7988268b331aad 100644 (file)
@@ -70,8 +70,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
        PROTOCOL_VERSION 14:
                Added transfer of player pressed keys to the server
                Added new messages for mesh and bone animation, as well as attachments
        PROTOCOL_VERSION 14:
                Added transfer of player pressed keys to the server
                Added new messages for mesh and bone animation, as well as attachments
-               GENERIC_CMD_SET_ANIMATION
-               GENERIC_CMD_SET_BONE_POSITION
+               AO_CMD_SET_ANIMATION
+               AO_CMD_SET_BONE_POSITION
                GENERIC_CMD_SET_ATTACHMENT
        PROTOCOL_VERSION 15:
                Serialization format changes
                GENERIC_CMD_SET_ATTACHMENT
        PROTOCOL_VERSION 15:
                Serialization format changes
@@ -87,7 +87,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
                damageGroups added to ToolCapabilities
                sound_place added to ItemDefinition
        PROTOCOL_VERSION 19:
                damageGroups added to ToolCapabilities
                sound_place added to ItemDefinition
        PROTOCOL_VERSION 19:
-               GENERIC_CMD_SET_PHYSICS_OVERRIDE
+               AO_CMD_SET_PHYSICS_OVERRIDE
        PROTOCOL_VERSION 20:
                TOCLIENT_HUDADD
                TOCLIENT_HUDRM
        PROTOCOL_VERSION 20:
                TOCLIENT_HUDADD
                TOCLIENT_HUDRM
@@ -131,7 +131,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
                Add TOCLIENT_HELLO for presenting server to client after client
                        presentation
                Add TOCLIENT_AUTH_ACCEPT to accept connection from client
                Add TOCLIENT_HELLO for presenting server to client after client
                        presentation
                Add TOCLIENT_AUTH_ACCEPT to accept connection from client
-               Rename GENERIC_CMD_SET_ATTACHMENT to GENERIC_CMD_ATTACH_TO
+               Rename GENERIC_CMD_SET_ATTACHMENT to AO_CMD_ATTACH_TO
        PROTOCOL_VERSION 26:
                Add TileDef tileable_horizontal, tileable_vertical flags
        PROTOCOL_VERSION 27:
        PROTOCOL_VERSION 26:
                Add TileDef tileable_horizontal, tileable_vertical flags
        PROTOCOL_VERSION 27:
@@ -194,9 +194,19 @@ with this program; if not, write to the Free Software Foundation, Inc.,
                New network float format
                ContentFeatures version 13
                Add full Euler rotations instead of just yaw
                New network float format
                ContentFeatures version 13
                Add full Euler rotations instead of just yaw
+               Add TOCLIENT_PLAYER_SPEED
+       PROTOCOL VERSION 38:
+               Incremental inventory sending mode
+               Unknown inventory serialization fields no longer throw an error
+               Mod-specific formspec version
+               Player FOV override API
+               "ephemeral" added to TOCLIENT_PLAY_SOUND
+       PROTOCOL VERSION 39:
+               Updated set_sky packet
+               Adds new sun, moon and stars packets
 */
 
 */
 
-#define LATEST_PROTOCOL_VERSION 37
+#define LATEST_PROTOCOL_VERSION 39
 #define LATEST_PROTOCOL_VERSION_STRING TOSTRING(LATEST_PROTOCOL_VERSION)
 
 // Server's supported network protocol range
 #define LATEST_PROTOCOL_VERSION_STRING TOSTRING(LATEST_PROTOCOL_VERSION)
 
 // Server's supported network protocol range
@@ -215,8 +225,21 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define PASSWORD_SIZE 28       // Maximum password length. Allows for
                                // base64-encoded SHA-1 (27+\0).
 
 #define PASSWORD_SIZE 28       // Maximum password length. Allows for
                                // base64-encoded SHA-1 (27+\0).
 
-#define FORMSPEC_API_VERSION 1
-#define FORMSPEC_VERSION_STRING "formspec_version[" TOSTRING(FORMSPEC_API_VERSION) "]"
+/*
+       Changes by FORMSPEC_API_VERSION:
+
+       FORMSPEC VERSION 1:
+               (too much)
+       FORMSPEC VERSION 2:
+               Forced real coordinates
+               background9[]: 9-slice scaling parameters
+       FORMSPEC VERSION 3:
+               Formspec elements are drawn in the order of definition
+               bgcolor[]: use 3 parameters (bgcolor, formspec (now an enum), fbgcolor)
+               box[] and image[] elements enable clipping by default
+               new element: scroll_container[]
+*/
+#define FORMSPEC_API_VERSION 3
 
 #define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-"
 
 
 #define TEXTURENAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.-"
 
@@ -295,6 +318,20 @@ enum ToClientCommand
                u32 CSMRestrictionFlags byteflag
         */
 
                u32 CSMRestrictionFlags byteflag
         */
 
+       TOCLIENT_PLAYER_SPEED = 0x2B,
+       /*
+               v3f added_vel
+        */
+
+       TOCLIENT_MEDIA_PUSH = 0x2C,
+       /*
+               std::string raw_hash
+               std::string filename
+               bool should_be_cached
+               u32 len
+               char filedata[len]
+       */
+
        // (oops, there is some gap here)
 
        TOCLIENT_CHAT_MESSAGE = 0x2F,
        // (oops, there is some gap here)
 
        TOCLIENT_CHAT_MESSAGE = 0x2F,
@@ -352,7 +389,14 @@ enum ToClientCommand
                wstring reason
        */
 
                wstring reason
        */
 
-       TOCLIENT_PLAYERITEM = 0x36, // Obsolete
+       TOCLIENT_FOV = 0x36,
+       /*
+               Sends an FOV override/multiplier to client.
+
+               f32 fov
+               bool is_multiplier
+               f32 transition_time
+       */
 
        TOCLIENT_DEATHSCREEN = 0x37,
        /*
 
        TOCLIENT_DEATHSCREEN = 0x37,
        /*
@@ -421,6 +465,7 @@ enum ToClientCommand
                s32[3] pos_nodes*10000
                u16 object_id
                u8 loop (bool)
                s32[3] pos_nodes*10000
                u16 object_id
                u8 loop (bool)
+               u8 ephemeral (bool)
        */
 
        TOCLIENT_STOP_SOUND = 0x40,
        */
 
        TOCLIENT_STOP_SOUND = 0x40,
@@ -524,10 +569,10 @@ enum ToClientCommand
                u32 id
                u8 type
                v2f1000 pos
                u32 id
                u8 type
                v2f1000 pos
-               u32 len
+               u16 len
                u8[len] name
                v2f1000 scale
                u8[len] name
                v2f1000 scale
-               u32 len2
+               u16 len2
                u8[len2] text
                u32 number
                u32 item
                u8[len2] text
                u32 number
                u32 item
@@ -536,6 +581,9 @@ enum ToClientCommand
                v2f1000 offset
                v3f1000 world_pos
                v2s32 size
                v2f1000 offset
                v3f1000 world_pos
                v2s32 size
+               s16 z_index
+               u16 len3
+               u8[len3] text2
        */
 
        TOCLIENT_HUDRM = 0x4a,
        */
 
        TOCLIENT_HUDRM = 0x4a,
@@ -573,7 +621,8 @@ enum ToClientCommand
 
        TOCLIENT_SET_SKY = 0x4f,
        /*
 
        TOCLIENT_SET_SKY = 0x4f,
        /*
-               u8[4] color (ARGB)
+               Protocol 38:
+               u8[4] base_color (ARGB)
                u8 len
                u8[len] type
                u16 count
                u8 len
                u8[len] type
                u16 count
@@ -581,6 +630,24 @@ enum ToClientCommand
                        u8 len
                        u8[len] param
                u8 clouds (boolean)
                        u8 len
                        u8[len] param
                u8 clouds (boolean)
+
+               Protocol 39:
+               u8[4] bgcolor (ARGB)
+               std::string type
+               int texture_count
+               std::string[6] param
+               bool clouds
+               bool bgcolor_fog
+               u8[4] day_sky (ARGB)
+               u8[4] day_horizon (ARGB)
+               u8[4] dawn_sky (ARGB)
+               u8[4] dawn_horizon (ARGB)
+               u8[4] night_sky (ARGB)
+               u8[4] night_horizon (ARGB)
+               u8[4] indoors (ARGB)
+               u8[4] fog_sun_tint (ARGB)
+               u8[4] fog_moon_tint (ARGB)
+               std::string fog_tint_type
        */
 
        TOCLIENT_OVERRIDE_DAY_NIGHT_RATIO = 0x50,
        */
 
        TOCLIENT_OVERRIDE_DAY_NIGHT_RATIO = 0x50,
@@ -656,6 +723,31 @@ enum ToClientCommand
                serialized and compressed node metadata
        */
 
                serialized and compressed node metadata
        */
 
+       TOCLIENT_SET_SUN = 0x5a,
+       /*
+               bool visible
+               std::string texture
+               std::string tonemap
+               std::string sunrise
+               f32 scale
+       */
+
+       TOCLIENT_SET_MOON = 0x5b,
+       /*
+               bool visible
+               std::string texture
+               std::string tonemap
+               f32 scale
+       */
+
+       TOCLIENT_SET_STARS = 0x5c,
+       /*
+               bool visible
+               u32 count
+               u8[4] starcolor (ARGB)
+               f32 scale
+       */
+
        TOCLIENT_SRP_BYTES_S_B = 0x60,
        /*
                Belonging to AUTH_MECHANISM_SRP.
        TOCLIENT_SRP_BYTES_S_B = 0x60,
        /*
                Belonging to AUTH_MECHANISM_SRP.