|
Stardew Engine
|
Networking layer specific to game 2d layer. More...


Go to the source code of this file.
Data Structures | |
| struct | TilemapEdit |
| struct | UserGame2DRPC |
| An RPC implemented by a users game. More... | |
| struct | AdjustNetID_RPC |
| struct | CreateEntity_RPC |
| struct | DeleteEntity_RPC |
Typedefs | |
| typedef void(* | RPCMessageConstructorFn) (struct BinarySerializer *pBS, void *pRPCStruct) |
| callback to construct an rpc message of a given type, pRPCStruct is a struct containing relevant data to construct your rpc message | |
| typedef void(* | RPCMessageHandlerFn) (struct BinarySerializer *pBS, struct GameLayer2DData *pData, int client) |
| callback to handle an RPC message, to be read from the binary serializer, passed Game2DLayerData* so the RPC can do stuff | |
| typedef void(* | PacketExtensionNoArgsFn) (struct BinarySerializer *) |
Enumerations | |
| enum | G2DPacketType { G2DPacket_RequestLevelData , G2DPacket_LevelDataResponseData , G2DPacket_RPC , G2DPacket_WorldState } |
| enum | Game2DRPCType { G2DRPC_CreateEntity , G2DRPC_DestroyEntity , G2DRPC_AdjustNetworkID , G2DRPC_LastEngineRPC } |
Functions | |
| void | G2D_RegisterUserRPC (struct UserGame2DRPC *rpc) |
| Register a user RPC, call once at startup, call in order your games rpc types appear in the enum. | |
| void | G2D_Extend_RequestLevelDataMessage (PacketExtensionNoArgsFn fn) |
| extend the packet that the client sends to request level data from the server. By default tile maps and serialized entities are included, this callback is called before this Game2DLayer managed level data is serialized - see WfNetwork.c | |
| void | G2D_Enqueue_RequestLevelData () |
| TODO: should really be static to this file, probably. | |
| enum G2DPacketType | G2D_ParsePacket (u8 *pPacket, u8 **pOutBody, int *outHeaderSize) |
| void | G2D_Enqueue_Worldstate_Packet (struct GameLayer2DData *pData, int clientI) |
| Enqueue a packet that will cause all entities with bSerializeInNetworkUpdate == true to be saved into a packet, the serializer context will be SCTX_NetworkUpdate. | |
| enum Game2DRPCType | G2D_ParseRPCPacket (u8 *packet, u8 **pOutBody) |
| void | G2D_DoRPC (struct GameFrameworkLayer *pLayer, struct GameLayer2DData *pData, u8 *pRPCData, int client) |
| do RPCs, call once a packet has been confirmed as a G2DPacket_RPC, call on both client and server | |
| void | G2D_PollNetworkQueueClient (struct GameFrameworkLayer *pLayer, float deltaT) |
| void | G2D_PollNetworkQueueServer (struct GameFrameworkLayer *pLayer, float deltaT) |
| void | G2D_SendRPC (int client, enum Game2DRPCType type, void *pRPCData) |
| Send an RPC. | |
| struct Entity2D * | G2D_FindEntityWithNetID (struct Entity2DCollection *pCollection, int netID) |
| try to find the entity with a given net ID | |
| bool | G2D_IsClientConnected (int i) |
| call from the game thread if you're the server to determine if a client is connected | |
Networking layer specific to game 2d layer.
| typedef void(* PacketExtensionNoArgsFn) (struct BinarySerializer *) |
| typedef void(* RPCMessageConstructorFn) (struct BinarySerializer *pBS, void *pRPCStruct) |
callback to construct an rpc message of a given type, pRPCStruct is a struct containing relevant data to construct your rpc message
| typedef void(* RPCMessageHandlerFn) (struct BinarySerializer *pBS, struct GameLayer2DData *pData, int client) |
callback to handle an RPC message, to be read from the binary serializer, passed Game2DLayerData* so the RPC can do stuff
| enum G2DPacketType |
| enum Game2DRPCType |
| void G2D_DoRPC | ( | struct GameFrameworkLayer * | pLayer, |
| struct GameLayer2DData * | pData, | ||
| u8 * | pRPCData, | ||
| int | client | ||
| ) |
do RPCs, call once a packet has been confirmed as a G2DPacket_RPC, call on both client and server
| pData | |
| pRPCData | |
| client | the number of the client who has sent the RPC, or -1 if the server has sent it and you are a client |
| void G2D_Enqueue_RequestLevelData | ( | ) |
TODO: should really be static to this file, probably.
| void G2D_Enqueue_Worldstate_Packet | ( | struct GameLayer2DData * | pData, |
| int | clientI | ||
| ) |
Enqueue a packet that will cause all entities with bSerializeInNetworkUpdate == true to be saved into a packet, the serializer context will be SCTX_NetworkUpdate.
| pData | The Game2dLayer |
| clientI | The client index to send to - only relevant if you're the server |
| void G2D_Extend_RequestLevelDataMessage | ( | PacketExtensionNoArgsFn | fn | ) |
extend the packet that the client sends to request level data from the server. By default tile maps and serialized entities are included, this callback is called before this Game2DLayer managed level data is serialized - see WfNetwork.c
| fn | callback to call |
| struct Entity2D * G2D_FindEntityWithNetID | ( | struct Entity2DCollection * | pCollection, |
| int | netID | ||
| ) |
try to find the entity with a given net ID
| pCollection | collection to search |
| netID | netID to search for |
| bool G2D_IsClientConnected | ( | int | i | ) |
call from the game thread if you're the server to determine if a client is connected
| i |
| enum G2DPacketType G2D_ParsePacket | ( | u8 * | pPacket, |
| u8 ** | pOutBody, | ||
| int * | outHeaderSize | ||
| ) |
| enum Game2DRPCType G2D_ParseRPCPacket | ( | u8 * | packet, |
| u8 ** | pOutBody | ||
| ) |
| packet | |
| pOutBody |
| void G2D_PollNetworkQueueClient | ( | struct GameFrameworkLayer * | pLayer, |
| float | deltaT | ||
| ) |
| void G2D_PollNetworkQueueServer | ( | struct GameFrameworkLayer * | pLayer, |
| float | deltaT | ||
| ) |
| void G2D_RegisterUserRPC | ( | struct UserGame2DRPC * | rpc | ) |
Register a user RPC, call once at startup, call in order your games rpc types appear in the enum.
| rpc |
| void G2D_SendRPC | ( | int | client, |
| enum Game2DRPCType | type, | ||
| void * | pRPCData | ||
| ) |
Send an RPC.
| client | client to send to - send -1 if you're a client yourself |
| type | type of rpc to send |
| pRPCData | a struct appropriate to construct the rpc message - see src |