aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/HugeMushroomTile.cpp
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/HugeMushroomTile.cpp
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.World/HugeMushroomTile.cpp')
-rw-r--r--Minecraft.World/HugeMushroomTile.cpp71
1 files changed, 71 insertions, 0 deletions
diff --git a/Minecraft.World/HugeMushroomTile.cpp b/Minecraft.World/HugeMushroomTile.cpp
new file mode 100644
index 00000000..9b8344c0
--- /dev/null
+++ b/Minecraft.World/HugeMushroomTile.cpp
@@ -0,0 +1,71 @@
+#include "stdafx.h"
+#include "net.minecraft.world.h"
+#include "HugeMushroomTile.h"
+
+const wstring HugeMushroomTile::TEXTURE_STEM = L"mushroom_skin_stem";
+const wstring HugeMushroomTile::TEXTURE_INSIDE = L"mushroom_inside";
+const wstring HugeMushroomTile::TEXTURE_TYPE[] = {L"mushroom_skin_brown", L"mushroom_skin_red"};
+
+HugeMushroomTile::HugeMushroomTile(int id, Material *material, int type) : Tile(id, material)
+{
+ this->type = type;
+ icons = NULL;
+ iconStem = NULL;
+ iconInside = NULL;
+}
+
+Icon *HugeMushroomTile::getTexture(int face, int data)
+{
+ // 123
+ // 456 10
+ // 789
+ if (data == 10 && face > 1) return iconStem;
+ if (data >= 1 && data <= 9 && face == 1) return icons[type];
+ if (data >= 1 && data <= 3 && face == 2) return icons[type];
+ if (data >= 7 && data <= 9 && face == 3) return icons[type];
+
+ if ((data == 1 || data == 4 || data == 7) && face == 4) return icons[type];
+ if ((data == 3 || data == 6 || data == 9) && face == 5) return icons[type];
+
+ // two special cases requested by rhodox (painterly pack)
+ if (data == 14)
+ {
+ return icons[type];
+ }
+ if (data == 15)
+ {
+ return iconStem;
+ }
+
+ return iconInside;
+}
+
+int HugeMushroomTile::getResourceCount(Random *random)
+{
+ int count = random->nextInt(10) - 7;
+ if (count < 0) count = 0;
+ return count;
+}
+
+int HugeMushroomTile::getResource(int data, Random *random, int playerBonusLevel)
+{
+ return Tile::mushroom1_Id + type;
+}
+
+int HugeMushroomTile::cloneTileId(Level *level, int x, int y, int z)
+{
+ return Tile::mushroom1_Id + type;
+}
+
+void HugeMushroomTile::registerIcons(IconRegister *iconRegister)
+{
+ icons = new Icon*[HUGE_MUSHROOM_TEXTURE_COUNT];
+
+ for (int i = 0; i < HUGE_MUSHROOM_TEXTURE_COUNT; i++)
+ {
+ icons[i] = iconRegister->registerIcon(TEXTURE_TYPE[i]);
+ }
+
+ iconInside = iconRegister->registerIcon(TEXTURE_INSIDE);
+ iconStem = iconRegister->registerIcon(TEXTURE_STEM);
+} \ No newline at end of file