Skip to content

Instantly share code, notes, and snippets.

@byteandahalf
Last active September 23, 2015 00:30
Show Gist options
  • Save byteandahalf/ea0da91cb72a26edbd27 to your computer and use it in GitHub Desktop.
Save byteandahalf/ea0da91cb72a26edbd27 to your computer and use it in GitHub Desktop.
#pragma once
#include <string>
#include <map>
#include "../../TilePos.h"
#include "../../../phys/AABB.h"
#include "../../../phys/Vec3.h"
#include "TileEntityType.h"
class TileSource;
class Tile;
class CompoundTag;
class TileEntity {
public:
static std::map<std::string, TileEntityType> idClassMap;
static std::map<TileEntityType, std::string> classIdMap;
static int _runningId;
TilePos pos; // 4
AABB bb; // 16
int data; // 44
TileEntityType type; // 48
int runningId; // 52
bool clientSideOnly; // 56
int rendererId; // 60
Tile* tile; // 64
bool removed; // 68
float destroyTime; // 72
Vec3 destroyDirection; // 76
bool changed; // 88
TileEntity(TileEntityType, const TilePos&, const std::string&);
virtual ~TileEntity();
virtual void load(CompoundTag*); // loadFromNBT
virtual bool save(CompoundTag*); // writeToNBT
virtual void tick(TileSource*); // updateEntity
virtual bool isFinished(); // isInvalid
virtual void onChanged(TileSource*); // onInventoryChanged
virtual void* getUpdatePacket(TileSource&); // getDescriptionPacket
virtual void onUpdatePacket(CompoundTag*);
virtual void onRemoved();
virtual void triggerEvent(int, int); // receiveClientEvent
virtual void clearCache(); // updateContainingBlockInfo
virtual void onNeighborChanged(TileSource&, int, int, int);
virtual float getShadowRadius(TileSource&) const;
virtual Entity* getCrackEntity(TileSource&, TilePos const&);
void setChanged();
const Vec3& distanceToSqr(const Vec3&); // getDistanceFrom
static void initTileEntities(); // static {}
static void loadStatic(CompoundTag&); // createAndLoadEntity
static void setId(TileEntityType, const std::string&); // func_145826_a
};
class TileEntityFactory {
public:
TileEntity* createTileEntity(TileEntityType, const TilePos&);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment