aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/RedStoneDustTile.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/RedStoneDustTile.h')
-rw-r--r--Minecraft.World/RedStoneDustTile.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/Minecraft.World/RedStoneDustTile.h b/Minecraft.World/RedStoneDustTile.h
new file mode 100644
index 00000000..edb18e6d
--- /dev/null
+++ b/Minecraft.World/RedStoneDustTile.h
@@ -0,0 +1,61 @@
+#pragma once
+#include "Tile.h"
+#include "Definitions.h"
+using namespace std;
+
+class Random;
+class Level;
+class ChunkRebuildData;
+
+class RedStoneDustTile : public Tile
+{
+ friend ChunkRebuildData;
+public:
+ static const wstring TEXTURE_CROSS;
+ static const wstring TEXTURE_LINE;
+ static const wstring TEXTURE_CROSS_OVERLAY;
+ static const wstring TEXTURE_LINE_OVERLAY;
+private:
+ bool shouldSignal;
+ unordered_set<TilePos, TilePosKeyHash, TilePosKeyEq> toUpdate;
+ Icon *iconCross;
+ Icon *iconLine;
+ Icon *iconCrossOver;
+ Icon *iconLineOver;
+
+public:
+ RedStoneDustTile(int id);
+ virtual void updateDefaultShape(); // 4J Added override
+ virtual AABB *getAABB(Level *level, int x, int y, int z);
+ virtual bool isSolidRender(bool isServerLevel = false);
+ virtual bool isCubeShaped();
+ virtual int getRenderShape();
+ virtual int getColor() const; // 4J Added
+ 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
+ virtual bool mayPlace(Level *level, int x, int y, int z);
+private:
+ void updatePowerStrength(Level *level, int x, int y, int z);
+ void updatePowerStrength(Level *level, int x, int y, int z, int xFrom, int yFrom, int zFrom);
+ void checkCornerChangeAt(Level *level, int x, int y, int z);
+public:
+ virtual void onPlace(Level *level, int x, int y, int z);
+ virtual void onRemove(Level *level, int x, int y, int z, int id, int data);
+private:
+ int checkTarget(Level *level, int x, int y, int z, int target);
+public:
+ virtual void neighborChanged(Level *level, int x, int y, int z, int type);
+ virtual int getResource(int data, Random *random, int playerBonusLevel);
+ virtual bool getDirectSignal(Level *level, int x, int y, int z, int dir) ;
+ virtual bool getSignal(LevelSource *level, int x, int y, int z, int dir);
+
+ virtual bool isSignalSource();
+ virtual void animateTick(Level *level, int x, int y, int z, Random *random);
+
+ static bool shouldConnectTo(LevelSource *level, int x, int y, int z, int direction);
+ static bool shouldReceivePowerFrom(LevelSource *level, int x, int y, int z, int direction);
+ virtual int cloneTileId(Level *level, int x, int y, int z);
+
+ void registerIcons(IconRegister *iconRegister);
+ static Icon *getTexture(const wstring &name);
+};