Files
minecraft-pe-0.6.1/src/client/renderer/LevelRenderer.h
Shredder 055f00be49 A bit big of a commit but
Added 3 Fog Choices (Pocket) (Java) (Unknown that was unused)

Restored Java Beta Sky Color code that was unused that depends on biome temperature (choosable using Java fog)

Tile Shadows and Entity Shadows that appear beneath them have been restored and fixed from the unused code, toggleable by turning fancy graphics on or off

Entities will now render flames on themselves when on fire, including the player

Added option to use Java Style Item Count text and position in tweaks

- fileshredder
2026-04-06 01:52:27 +05:00

134 lines
3.8 KiB
C++
Executable File

#ifndef NET_MINECRAFT_CLIENT_RENDERER__LevelRenderer_H__
#define NET_MINECRAFT_CLIENT_RENDERER__LevelRenderer_H__
//package net.minecraft.client.renderer;
#include "../../world/level/LevelListener.h"
#include "../../world/phys/Vec3.h"
#include "RenderList.h"
#include "gles.h"
#include <vector>
class Minecraft;
class Textures;
class Culler;
class Chunk;
class TileRenderer;
class Level;
class Mob;
class Player;
class HitResult;
class AABB;
class TripodCamera;
class LevelRenderer: public LevelListener
{
public:
static const int CHUNK_SIZE;
static const int MAX_VISIBLE_REBUILDS_PER_FRAME = 3;
static const int MAX_INVISIBLE_REBUILDS_PER_FRAME = 1;
float xOld;
float yOld;
float zOld;
float destroyProgress;
LevelRenderer(Minecraft* mc);
~LevelRenderer();
void setLevel(Level* level);
void allChanged();
int render(Mob* player, int layer, float alpha);
void renderDebug(const AABB& b, float a) const;
void renderSky(float alpha);
void renderClouds(float alpha);
void renderEntities(Vec3 cam, Culler* culler, float a);
void renderSameAsLast(int layer, float alpha);
void renderHit(Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a);
void renderHitOutline(Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a);
void renderHitSelect(Player* player, const HitResult& h, int mode, /*ItemInstance*/void* inventoryItem, float a);
void entityAdded(Entity* entity);
void tick();
bool updateDirtyChunks(Mob* player, bool force);
void setDirty(int x0, int y0, int z0, int x1, int y1, int z1);
void tileChanged(int x, int y, int z);
void setTilesDirty(int x0, int y0, int z0, int x1, int y1, int z1);
void cull(Culler* culler, float a);
void skyColorChanged();
//void addParticle(ParticleType::Id name, float x, float y, float z, float xa, float ya, float za, int data);
void addParticle(const std::string& name, float x, float y, float z, float xa, float ya, float za, int data);
void playSound(const std::string& name, float x, float y, float z, float volume, float pitch);
void takePicture(TripodCamera* cam, Entity* entity);
void levelEvent(Player* source, int type, int x, int y, int z, int data);
std::string gatherStats1();
void render(const AABB& b) const;
void onGraphicsReset();
private:
void generateSky();
int renderChunks(int from, int to, int layer, float alpha);
void resortChunks(int xc, int yc, int zc);
void deleteChunks();
//void checkQueryResults(int from, int to);
__inline int getLinearCoord(int x, int y, int z) {
return (z * yChunks + y) * xChunks + x;
}
int noEntityRenderFrames;
int totalEntities;
int renderedEntities;
int culledEntities;
std::vector<Chunk*> _renderChunks;
int cullStep;
//static const int renderListsLength = 4;
RenderList renderList;//[renderListsLength];
int totalChunks, offscreenChunks, occludedChunks, renderedChunks, emptyChunks;
int chunkFixOffs;
int xMinChunk, yMinChunk, zMinChunk;
int xMaxChunk, yMaxChunk, zMaxChunk;
Level* level;
std::vector<Chunk*> dirtyChunks;
Chunk** chunks;
Chunk** sortedChunks;
int chunksLength;
public:
TileRenderer* tileRenderer;
private:
int xChunks, yChunks, zChunks;
int chunkLists;
Minecraft* mc;
bool occlusionCheck;
int lastViewDistance;
// shredder added again...
int lastFogType;
int ticks;
int starList, skyList, darkList;
int numListsOrBuffers;
GLuint* chunkBuffers;
GLuint skyBuffer;
int skyVertexCount;
// /*public*/ std::vector<TileEntity*> renderableTileEntities;
Textures* textures;
// /*private*/ TileRenderer tileRenderer;
// /*private*/ IntBuffer occlusionCheckIds;
};
#endif /*NET_MINECRAFT_CLIENT_RENDERER__LevelRenderer_H__*/