Make Builder a component too

This commit is contained in:
UnknownShadow200 2020-01-26 11:56:41 +11:00
parent 9b2373f7d3
commit 19f286c96a
4 changed files with 20 additions and 16 deletions

View File

@ -760,7 +760,7 @@ static void Builder_SetDefault(void) {
Builder_PostStretchTiles = Builder_DefaultPostStretchTiles;
}
void NormalBuilder_SetActive(void) {
static void NormalBuilder_SetActive(void) {
Builder_SetDefault();
Builder_StretchXLiquid = NormalBuilder_StretchXLiquid;
Builder_StretchX = NormalBuilder_StretchX;
@ -1251,7 +1251,7 @@ static void Adv_PreStretchTiles(int x1, int y1, int z1) {
}
}
void AdvBuilder_SetActive(void) {
static void AdvBuilder_SetActive(void) {
Builder_SetDefault();
Builder_StretchXLiquid = Adv_StretchXLiquid;
Builder_StretchX = Adv_StretchX;
@ -1273,7 +1273,7 @@ void Builder_ApplyActive(void) {
}
}
void Builder_Init(void) {
static void Builder_Init(void) {
Builder_Offsets[FACE_XMIN] = -1;
Builder_Offsets[FACE_XMAX] = 1;
Builder_Offsets[FACE_ZMIN] = -EXTCHUNK_SIZE;
@ -1281,11 +1281,19 @@ void Builder_Init(void) {
Builder_Offsets[FACE_YMIN] = -EXTCHUNK_SIZE_2;
Builder_Offsets[FACE_YMAX] = EXTCHUNK_SIZE_2;
if (Game_ClassicMode) return;
Builder_SmoothLighting = Options_GetBool(OPT_SMOOTH_LIGHTING, false);
if (!Game_ClassicMode) Builder_SmoothLighting = Options_GetBool(OPT_SMOOTH_LIGHTING, false);
Builder_ApplyActive();
}
void Builder_OnNewMapLoaded(void) {
static void Builder_OnNewMapLoaded(void) {
Builder_SidesLevel = max(0, Env_SidesHeight);
Builder_EdgeLevel = max(0, Env.EdgeHeight);
}
struct IGameComponent Builder_Component = {
Builder_Init, /* Init */
NULL, /* Free */
NULL, /* Reset */
NULL, /* OnNewMap */
Builder_OnNewMapLoaded /* OnNewMapLoaded */
};

View File

@ -9,17 +9,15 @@ NormalMeshBuilder:
Copyright 2014-2019 ClassiCube | Licensed under BSD-3
*/
struct ChunkInfo;
struct IGameComponent;
extern struct IGameComponent Builder_Component;
extern int Builder_SidesLevel, Builder_EdgeLevel;
/* Whether smooth/advanced lighting mesh builder is used. */
extern cc_bool Builder_SmoothLighting;
void Builder_Init(void);
void Builder_OnNewMapLoaded(void);
/* Builds the mesh of vertices for the given chunk. */
void Builder_MakeChunk(struct ChunkInfo* info);
void NormalBuilder_SetActive(void);
void AdvBuilder_SetActive(void);
void Builder_ApplyActive(void);
#endif

View File

@ -32,6 +32,7 @@
#include "Menus.h"
#include "Audio.h"
#include "Stream.h"
#include "Builder.h"
struct _GameData Game;
int Game_Port;
@ -454,6 +455,7 @@ static void Game_Load(void) {
Game_AddComponent(&Inventory_Component);
World_Reset();
Game_AddComponent(&Builder_Component);
Game_AddComponent(&MapRenderer_Component);
Game_AddComponent(&EnvRenderer_Component);
Game_AddComponent(&Server_Component);

View File

@ -774,7 +774,6 @@ static void MapRenderer_OnNewMapLoaded(void) {
/*}*/
MapRenderer_InitChunks();
Builder_OnNewMapLoaded();
lastCamPos = Vec3_BigPos();
}
@ -792,9 +791,6 @@ static void MapRenderer_Init(void) {
MapRenderer_1DUsedCount = 87; /* Atlas1D_UsedAtlasesCount(); */
chunkPos = IVec3_MaxValue();
MapRenderer_MaxUpdates = Options_GetInt(OPT_MAX_CHUNK_UPDATES, 4, 1024, 30);
Builder_Init();
Builder_ApplyActive();
MapRenderer_CalcViewDists();
}