File Entities.c
FileList > engine > src > gameframework > layers > Game2D > EntitySystem > Entities.c
Go to the source code of this file
#include "Entities.h"#include "AssertLib.h"#include "BinarySerializer.h"#include "StaticColliderEntity.h"#include "Components.h"#include <string.h>#include "Entity2DCollection.h"#include "GameFramework.h"#include "EntityQuadTree.h"#include "AnimatedSprite.h"#include "Sprite.h"#include "ObjectPool.h"#include "Network.h"#include "Log.h"#include "NetworkID.h"#include "Game2DLayerNetwork.h"#include "DynArray.h"#include "LatinMacros.h"
Public Functions
| Type | Name |
|---|---|
| staticus vacuum | DeserializeEntityV1 (struct Entity2DCollection * pCollection, struct BinarySerializer * bs, struct GameLayer2DData * pData, int objectLayer) |
| void | Entity2DDraw (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer, struct Transform2D * pCam, VECTOR(Worldspace2DVert) * outVerts, VECTOR(VertIndexT) * outIndices, VertIndexT * pNextIndex) |
| void | Entity2DGetBoundingBox (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer, vec2 outTL, vec2 outBR) |
| float | Entity2DGetSortVal (struct Entity2D * pEnt) |
| void | Entity2DInput (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer, InputContext * context) |
| void | Entity2DOnDestroy (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer) |
| void | Entity2DOnInit (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer, DrawContext * pDrawCtx, InputContext * pInputCtx) Default base implementations, override with own behavior and then call these at the end. |
| void | Entity2DUpdate (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer, float deltaT) |
| void | Entity2DUpdatePostPhysics (struct Entity2D * pEnt, struct GameFrameworkLayer * pLayer, float deltaT) |
| HEntity2D | Et2D_AddEntity (struct Entity2DCollection * pCollection, struct Entity2D * pEnt) Add, but don't initialize, the entity. If you're the server, a new net ID will be assigned. |
| HEntity2D | Et2D_AddEntityNoNewNetID (struct Entity2DCollection * pCollection, struct Entity2D * pEnt) Add, but don't initialize, the entity. If you're the server, a new net ID won't be assigned. |
| void | Et2D_DeserializeCommon (struct BinarySerializer * bs, struct Entity2D * pOutEnt) |
| void | Et2D_DeserializeEntityV1Base (struct Entity2DCollection * pCollection, struct BinarySerializer * bs, struct GameLayer2DData * pData, int objectLayer, struct Entity2D * pOutEnt) Deserialize an entity from the binary serializer using the version 1 method. |
| void | Et2D_DestroyCollection (struct Entity2DCollection * pCollection, struct GameFrameworkLayer * pLayer) |
| void | Et2D_DestroyEntity (struct GameFrameworkLayer * pLayer, struct Entity2DCollection * pCollection, HEntity2D hEnt) |
| void | Et2D_DoEntityMessagesQueue (struct Entity2DCollection * pCollection, struct GameFrameworkLayer * pLayer) Do the entity messages queue, iterate through the messages, call entities callbacks, and clear the queue. |
| struct Entity2D * | Et2D_GetEntity (struct Entity2DCollection * pCollection, HEntity2D hEnt) |
| void | Et2D_Init (RegisterGameEntitiesFn registerGameEntities) |
| void | Et2D_InitCollection (struct Entity2DCollection * pCollection) |
| void | Et2D_IterateEntities (struct Entity2DCollection * pCollection, Entity2DIterator itr, void * pUser) A convenient helper to iterate through the entity collection. |
| void | Et2D_PopulateCommonHandlers (struct Entity2D * pEnt) |
| void | Et2D_PrintEntitiesInfo (struct Entity2DCollection * pCollection) |
| void | Et2D_RegisterEntityType (u32 typeID, struct EntitySerializerPair * pair) Games using the engine should call this to add types of entity to be serialized. |
| void | Et2D_SendEntity2EntityMsg (struct Entity2DCollection * pCollection, struct EntityToEntityMessage * pMsg) |
| void | Et2D_SerializeCommon (struct BinarySerializer * bs, struct Entity2D * pInEnt) |
| void | Et2D_SerializeEntities (struct Entity2DCollection * pCollection, struct BinarySerializer * bs, struct GameLayer2DData * pData, int objectLayer) |
| void | Et2D_SerializeEntityV1Base (struct Entity2D * pOn, struct BinarySerializer * bs, struct GameLayer2DData * pData) Serialize a single entity. |
| bool | PrintCollectionItr (struct Entity2D * pEnt, int i, void * pUser) |
Public Static Functions
| Type | Name |
|---|---|
| HEntity2D | Et2D_AddEntityBase (struct Entity2DCollection * pCollection, struct Entity2D * pEnt, bool bAssignNetID) |
| void | LoadEntities (struct BinarySerializer * bs, struct GameLayer2DData * pData, struct Entity2DCollection * pCollection, int objectLayer) |
| void | LoadEntitiesV1 (struct BinarySerializer * bs, struct GameLayer2DData * pData, struct Entity2DCollection * pCollection, int objectLayer) |
| u32 | NumEntsToSerialize (struct Entity2DCollection * pCollection, struct BinarySerializer * bs) |
| void | SaveEntities (struct Entity2DCollection * pCollection, struct BinarySerializer * bs, struct GameLayer2DData * pData) |
| static | VECTOR (struct EntitySerializerPair) |
Public Functions Documentation
function DeserializeEntityV1
staticus vacuum DeserializeEntityV1 (
struct Entity2DCollection * pCollection,
struct BinarySerializer * bs,
struct GameLayer2DData * pData,
int objectLayer
)
function Entity2DDraw
void Entity2DDraw (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer,
struct Transform2D * pCam,
VECTOR( Worldspace2DVert ) * outVerts,
VECTOR(VertIndexT) * outIndices,
VertIndexT * pNextIndex
)
function Entity2DGetBoundingBox
void Entity2DGetBoundingBox (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer,
vec2 outTL,
vec2 outBR
)
function Entity2DGetSortVal
float Entity2DGetSortVal (
struct Entity2D * pEnt
)
function Entity2DInput
void Entity2DInput (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer,
InputContext * context
)
function Entity2DOnDestroy
void Entity2DOnDestroy (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer
)
function Entity2DOnInit
Default base implementations, override with own behavior and then call these at the end.
void Entity2DOnInit (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer,
DrawContext * pDrawCtx,
InputContext * pInputCtx
)
function Entity2DUpdate
void Entity2DUpdate (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer,
float deltaT
)
function Entity2DUpdatePostPhysics
void Entity2DUpdatePostPhysics (
struct Entity2D * pEnt,
struct GameFrameworkLayer * pLayer,
float deltaT
)
function Et2D_AddEntity
Add, but don't initialize, the entity. If you're the server, a new net ID will be assigned.
HEntity2D Et2D_AddEntity (
struct Entity2DCollection * pCollection,
struct Entity2D * pEnt
)
Parameters:
pCollection- collection to add topEnt- Entity to addbOwned- Does this host own the entity or is it owned by another player on the network, no effect if single player
Returns:
Entity handle
function Et2D_AddEntityNoNewNetID
Add, but don't initialize, the entity. If you're the server, a new net ID won't be assigned.
HEntity2D Et2D_AddEntityNoNewNetID (
struct Entity2DCollection * pCollection,
struct Entity2D * pEnt
)
Parameters:
pCollection- collection to add topEnt- Entity to addbOwned- Does this host own the entity or is it owned by another player on the network, no effect if single player
Returns:
Entity handle
function Et2D_DeserializeCommon
void Et2D_DeserializeCommon (
struct BinarySerializer * bs,
struct Entity2D * pOutEnt
)
function Et2D_DeserializeEntityV1Base
Deserialize an entity from the binary serializer using the version 1 method.
void Et2D_DeserializeEntityV1Base (
struct Entity2DCollection * pCollection,
struct BinarySerializer * bs,
struct GameLayer2DData * pData,
int objectLayer,
struct Entity2D * pOutEnt
)
Parameters:
pCollectionbspDatagame layer dataobjectLayerobject layer to set the entity to be inpOutEntentity to populate
function Et2D_DestroyCollection
void Et2D_DestroyCollection (
struct Entity2DCollection * pCollection,
struct GameFrameworkLayer * pLayer
)
function Et2D_DestroyEntity
void Et2D_DestroyEntity (
struct GameFrameworkLayer * pLayer,
struct Entity2DCollection * pCollection,
HEntity2D hEnt
)
Parameters:
pLayerpCollectionhEnt
function Et2D_DoEntityMessagesQueue
Do the entity messages queue, iterate through the messages, call entities callbacks, and clear the queue.
void Et2D_DoEntityMessagesQueue (
struct Entity2DCollection * pCollection,
struct GameFrameworkLayer * pLayer
)
Parameters:
pCollectionpLayer
function Et2D_GetEntity
struct Entity2D * Et2D_GetEntity (
struct Entity2DCollection * pCollection,
HEntity2D hEnt
)
Parameters:
pCollectionhEnt
Returns:
- entity handle
function Et2D_Init
void Et2D_Init (
RegisterGameEntitiesFn registerGameEntities
)
function Et2D_InitCollection
void Et2D_InitCollection (
struct Entity2DCollection * pCollection
)
function Et2D_IterateEntities
A convenient helper to iterate through the entity collection.
void Et2D_IterateEntities (
struct Entity2DCollection * pCollection,
Entity2DIterator itr,
void * pUser
)
Parameters:
pCollectioncollection to iterateitriterator function ptrpUseruser data to pass to iterator fn
function Et2D_PopulateCommonHandlers
void Et2D_PopulateCommonHandlers (
struct Entity2D * pEnt
)
function Et2D_PrintEntitiesInfo
void Et2D_PrintEntitiesInfo (
struct Entity2DCollection * pCollection
)
function Et2D_RegisterEntityType
Games using the engine should call this to add types of entity to be serialized.
void Et2D_RegisterEntityType (
u32 typeID,
struct EntitySerializerPair * pair
)
Parameters:
typeIDEntity typepairpair of functions to serialize and deserialize
function Et2D_SendEntity2EntityMsg
void Et2D_SendEntity2EntityMsg (
struct Entity2DCollection * pCollection,
struct EntityToEntityMessage * pMsg
)
Parameters:
pCollectionpMsg
function Et2D_SerializeCommon
void Et2D_SerializeCommon (
struct BinarySerializer * bs,
struct Entity2D * pInEnt
)
function Et2D_SerializeEntities
void Et2D_SerializeEntities (
struct Entity2DCollection * pCollection,
struct BinarySerializer * bs,
struct GameLayer2DData * pData,
int objectLayer
)
function Et2D_SerializeEntityV1Base
Serialize a single entity.
void Et2D_SerializeEntityV1Base (
struct Entity2D * pOn,
struct BinarySerializer * bs,
struct GameLayer2DData * pData
)
Parameters:
pOnbspData
function PrintCollectionItr
bool PrintCollectionItr (
struct Entity2D * pEnt,
int i,
void * pUser
)
Public Static Functions Documentation
function Et2D_AddEntityBase
static HEntity2D Et2D_AddEntityBase (
struct Entity2DCollection * pCollection,
struct Entity2D * pEnt,
bool bAssignNetID
)
function LoadEntities
static void LoadEntities (
struct BinarySerializer * bs,
struct GameLayer2DData * pData,
struct Entity2DCollection * pCollection,
int objectLayer
)
function LoadEntitiesV1
static void LoadEntitiesV1 (
struct BinarySerializer * bs,
struct GameLayer2DData * pData,
struct Entity2DCollection * pCollection,
int objectLayer
)
function NumEntsToSerialize
static u32 NumEntsToSerialize (
struct Entity2DCollection * pCollection,
struct BinarySerializer * bs
)
function SaveEntities
static void SaveEntities (
struct Entity2DCollection * pCollection,
struct BinarySerializer * bs,
struct GameLayer2DData * pData
)
function VECTOR
static static VECTOR (
struct EntitySerializerPair
)
The documentation for this class was generated from the following file /home/runner/work/2DFarmingRPG/2DFarmingRPG/Stardew/engine/src/gameframework/layers/Game2D/EntitySystem/Entities.c