From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/RedStoneDustTile.h | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Minecraft.World/RedStoneDustTile.h (limited to 'Minecraft.World/RedStoneDustTile.h') 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 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); +}; -- cgit v1.2.3