aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/LiquidTile.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/LiquidTile.h')
-rw-r--r--Minecraft.World/LiquidTile.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/Minecraft.World/LiquidTile.h b/Minecraft.World/LiquidTile.h
new file mode 100644
index 00000000..67eb5b65
--- /dev/null
+++ b/Minecraft.World/LiquidTile.h
@@ -0,0 +1,62 @@
+#pragma once
+#include "Tile.h"
+#include "Definitions.h"
+
+class Random;
+class ChunkRebuildData;
+
+class LiquidTile : public Tile
+{
+ friend class ChunkRebuildData;
+public:
+ static const wstring TEXTURE_LAVA_STILL;
+ static const wstring TEXTURE_WATER_STILL;
+ static const wstring TEXTURE_WATER_FLOW;
+ static const wstring TEXTURE_LAVA_FLOW;
+
+private:
+ Icon *icons[2];
+
+protected:
+ LiquidTile(int id, Material *material);
+public:
+ virtual bool isPathfindable(LevelSource *level, int x, int y, int z);
+ virtual int getColor() const;
+ virtual int getColor(LevelSource *level, int x, int y, int z);
+ virtual int getColor(LevelSource *level, int x, int y, int z, int data); // 4J added
+ static float getHeight(int d);
+ virtual Icon *getTexture(int face, int data);
+protected:
+ virtual int getDepth(Level *level, int x, int y, int z);
+ virtual int getRenderedDepth(LevelSource *level, int x, int y, int z);
+public:
+ virtual bool isCubeShaped();
+ virtual bool isSolidRender(bool isServerLevel = false);
+ virtual bool mayPick(int data, bool liquid);
+ virtual bool isSolidFace(LevelSource *level, int x, int y, int z, int face);
+ virtual bool shouldRenderFace(LevelSource *level, int x, int y, int z, int face);
+ virtual AABB *getAABB(Level *level, int x, int y, int z);
+ virtual int getRenderShape();
+ virtual int getResource(int data, Random *random, int playerBonusLevel);
+ virtual int getResourceCount(Random *random);
+private:
+ virtual Vec3 *getFlow(LevelSource *level, int x, int y, int z);
+public:
+ virtual void handleEntityInside(Level *level, int x, int y, int z, shared_ptr<Entity> e, Vec3 *current);
+ virtual int getTickDelay();
+ virtual int getLightColor(LevelSource *level, int x, int y, int z, int tileId=-1); // 4J - brought forward from 1.8.2
+ virtual float getBrightness(LevelSource *level, int x, int y, int z);
+ virtual int getRenderLayer();
+ virtual void animateTick(Level *level, int x, int y, int z, Random *random);
+ static double getSlopeAngle(LevelSource *level, int x, int y, int z, Material *m);
+ virtual void onPlace(Level *level, int x, int y, int z);
+ virtual void neighborChanged(Level *level, int x, int y, int z, int type);
+private:
+ virtual void updateLiquid(Level *level, int x, int y, int z);
+protected:
+ virtual void fizz(Level *level, int x, int y, int z);
+
+public:
+ void registerIcons(IconRegister *iconRegister);
+ static Icon *getTexture(const wstring &name);
+}; \ No newline at end of file