From c503c14fb5c927e0b9e216e48f14dc17ec0a73d6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 21:58:06 +0000 Subject: [PATCH 1/8] Add all new tile declarations and initializations for World & Block System Overhaul New tile class headers: - StoneVariantTile: data-variant stone (granite/diorite/andesite) on ID 19 - WoodPlanks: data-variant wood planks (oak/spruce/birch/jungle) on ID 5 - WallTile: stone/brick walls with fence-like rendering - HayBaleTile: hay bale with top/side textures - SoulSandTile: soul sand with reduced height hitbox - RedstoneLampTile: redstone lamp off/on states - SlimeBlockTile: translucent slime block - SmoothStoneTile: smooth stone with top/side textures New tile IDs initialized (100+ new blocks): - Wood variants: stairs (27-29), fences (32-34), fence gates (36,72,77), doors (66,69,70), trapdoors (86,90,91), signs (92-100) - Jungle: log (52), leaves (84), sapling (101) - Stone variants: stairs (110-117), slabs (119-136), walls (121,126,132) - Ores/blocks: green emerald (137-138), redstone block (139), coal block (140) - Redstone: dust (55), torches (75-76), lamps (141-142), repeaters (164-165), comparators (166-167) - Misc: soul sand (88), hay bale (106), nether quartz ore (104), pistons (143-144), slime block (145), cocoa (148), smooth stone (161-163), nether brick extras (157-160), polished sandstone (151-154) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- web-build/src/world/level/tile/HayBaleTile.h | 28 ++ .../src/world/level/tile/RedstoneLampTile.h | 19 ++ .../src/world/level/tile/SlimeBlockTile.h | 20 ++ .../src/world/level/tile/SmoothStoneTile.h | 28 ++ web-build/src/world/level/tile/SoulSandTile.h | 23 ++ .../src/world/level/tile/StoneVariantTile.h | 50 ++++ web-build/src/world/level/tile/Tile.cpp | 261 +++++++++++++++++- web-build/src/world/level/tile/Tile.h | 91 +++++- web-build/src/world/level/tile/TileInclude.h | 10 + web-build/src/world/level/tile/WallTile.h | 82 ++++++ web-build/src/world/level/tile/WoodPlanks.h | 45 +++ 11 files changed, 647 insertions(+), 10 deletions(-) create mode 100644 web-build/src/world/level/tile/HayBaleTile.h create mode 100644 web-build/src/world/level/tile/RedstoneLampTile.h create mode 100644 web-build/src/world/level/tile/SlimeBlockTile.h create mode 100644 web-build/src/world/level/tile/SmoothStoneTile.h create mode 100644 web-build/src/world/level/tile/SoulSandTile.h create mode 100644 web-build/src/world/level/tile/StoneVariantTile.h create mode 100644 web-build/src/world/level/tile/WallTile.h create mode 100644 web-build/src/world/level/tile/WoodPlanks.h diff --git a/web-build/src/world/level/tile/HayBaleTile.h b/web-build/src/world/level/tile/HayBaleTile.h new file mode 100644 index 00000000..c71e8e2e --- /dev/null +++ b/web-build/src/world/level/tile/HayBaleTile.h @@ -0,0 +1,28 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__HayBaleTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__HayBaleTile_H__ + +#include "Tile.h" +#include "../material/Material.h" + +class HayBaleTile : public Tile { + typedef Tile super; +public: + int topTex; + + HayBaleTile(int id, int sideTex, int topBottomTex) + : super(id, sideTex, Material::grass), + topTex(topBottomTex) + { + } + + int getTexture(int face, int data) { + if (face == 0 || face == 1) return topTex; + return tex; + } + + int getTexture(int face) { + return getTexture(face, 0); + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__HayBaleTile_H__*/ diff --git a/web-build/src/world/level/tile/RedstoneLampTile.h b/web-build/src/world/level/tile/RedstoneLampTile.h new file mode 100644 index 00000000..2c6e798d --- /dev/null +++ b/web-build/src/world/level/tile/RedstoneLampTile.h @@ -0,0 +1,19 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__RedstoneLampTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__RedstoneLampTile_H__ + +#include "Tile.h" +#include "../material/Material.h" + +class RedstoneLampTile : public Tile { + typedef Tile super; +public: + bool lit; + + RedstoneLampTile(int id, int tex, bool isLit) + : super(id, tex, Material::glass), + lit(isLit) + { + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__RedstoneLampTile_H__*/ diff --git a/web-build/src/world/level/tile/SlimeBlockTile.h b/web-build/src/world/level/tile/SlimeBlockTile.h new file mode 100644 index 00000000..3209e445 --- /dev/null +++ b/web-build/src/world/level/tile/SlimeBlockTile.h @@ -0,0 +1,20 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__SlimeBlockTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__SlimeBlockTile_H__ + +#include "HalfTransparentTile.h" +#include "../material/Material.h" + +class SlimeBlockTile : public HalfTransparentTile { + typedef HalfTransparentTile super; +public: + SlimeBlockTile(int id, int tex) + : super(id, tex, Material::clay, true) + { + } + + int getRenderLayer() { + return Tile::RENDERLAYER_BLEND; + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__SlimeBlockTile_H__*/ diff --git a/web-build/src/world/level/tile/SmoothStoneTile.h b/web-build/src/world/level/tile/SmoothStoneTile.h new file mode 100644 index 00000000..d7c89d34 --- /dev/null +++ b/web-build/src/world/level/tile/SmoothStoneTile.h @@ -0,0 +1,28 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__SmoothStoneTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__SmoothStoneTile_H__ + +#include "Tile.h" +#include "../material/Material.h" + +class SmoothStoneTile : public Tile { + typedef Tile super; +public: + int topTex; + + SmoothStoneTile(int id, int sideTex, int topBottomTex) + : super(id, sideTex, Material::stone), + topTex(topBottomTex) + { + } + + int getTexture(int face, int data) { + if (face == 0 || face == 1) return topTex; + return tex; + } + + int getTexture(int face) { + return getTexture(face, 0); + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__SmoothStoneTile_H__*/ diff --git a/web-build/src/world/level/tile/SoulSandTile.h b/web-build/src/world/level/tile/SoulSandTile.h new file mode 100644 index 00000000..6479a1a4 --- /dev/null +++ b/web-build/src/world/level/tile/SoulSandTile.h @@ -0,0 +1,23 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__SoulSandTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__SoulSandTile_H__ + +#include "Tile.h" +#include "../material/Material.h" +#include "../../phys/AABB.h" + +class SoulSandTile : public Tile { + typedef Tile super; +public: + SoulSandTile(int id, int tex) + : super(id, tex, Material::sand) + { + setShape(0, 0, 0, 1, 0.875f, 1); + } + + AABB* getAABB(Level* level, int x, int y, int z) { + tmpBB.set((float)x, (float)y, (float)z, (float)x + 1, (float)y + 0.875f, (float)z + 1); + return &tmpBB; + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__SoulSandTile_H__*/ diff --git a/web-build/src/world/level/tile/StoneVariantTile.h b/web-build/src/world/level/tile/StoneVariantTile.h new file mode 100644 index 00000000..c62c54c1 --- /dev/null +++ b/web-build/src/world/level/tile/StoneVariantTile.h @@ -0,0 +1,50 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__StoneVariantTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__StoneVariantTile_H__ + +#include "Tile.h" +#include "../material/Material.h" +#include "../../../util/Random.h" + +// Stone variants using data values on ID 19: +// 0 = Granite, 1 = Polished Granite +// 2 = Diorite, 3 = Polished Diorite +// 4 = Andesite, 5 = Polished Andesite + +class StoneVariantTile : public Tile { + typedef Tile super; +public: + static const int GRANITE = 0; + static const int POLISHED_GRANITE = 1; + static const int DIORITE = 2; + static const int POLISHED_DIORITE = 3; + static const int ANDESITE = 4; + static const int POLISHED_ANDESITE = 5; + static const int VARIANT_COUNT = 6; + + static const int VARIANT_TEXTURES[VARIANT_COUNT]; + + StoneVariantTile(int id) : super(id, Material::stone) { + tex = VARIANT_TEXTURES[0]; // default to granite + } + + int getTexture(int face, int data) { + if (data >= 0 && data < VARIANT_COUNT) + return VARIANT_TEXTURES[data]; + return VARIANT_TEXTURES[0]; + } + + int getTexture(int face) { + return getTexture(face, 0); + } + + int getResource(int data, Random* random) { + return id; + } + +protected: + int getSpawnResourcesAuxValue(int data) { + return data; + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__StoneVariantTile_H__*/ diff --git a/web-build/src/world/level/tile/Tile.cpp b/web-build/src/world/level/tile/Tile.cpp index 8b1cc08c..09eaf369 100644 --- a/web-build/src/world/level/tile/Tile.cpp +++ b/web-build/src/world/level/tile/Tile.cpp @@ -125,6 +125,7 @@ Tile* Tile::stairs_brick= NULL; Tile* Tile::door_wood = NULL; Tile* Tile::door_iron = NULL; Tile* Tile::cactus = NULL; +Tile* Tile::redStoneDust= NULL; Tile* Tile::melon = NULL; Tile* Tile::melonStem = NULL; @@ -156,13 +157,113 @@ Tile* Tile::stairs_sandStone = NULL; Tile* Tile::quartzBlock = NULL; Tile* Tile::stairs_quartz = NULL; +// --- World & Block System Overhaul: static definitions --- +Tile* Tile::stoneVariant = NULL; +Tile* Tile::stairs_spruce = NULL; +Tile* Tile::stairs_birch = NULL; +Tile* Tile::stairs_jungle = NULL; +Tile* Tile::fence_spruce = NULL; +Tile* Tile::fence_birch = NULL; +Tile* Tile::fence_jungle = NULL; +Tile* Tile::fenceGate_spruce = NULL; +Tile* Tile::jungleLog = NULL; +Tile* Tile::door_spruce = NULL; +Tile* Tile::door_birch = NULL; +Tile* Tile::door_jungle = NULL; +Tile* Tile::fenceGate_birch = NULL; +Tile* Tile::redstoneTorch_off = NULL; +Tile* Tile::redstoneTorch_on = NULL; +Tile* Tile::fenceGate_jungle = NULL; +LeafTile* Tile::jungleLeaves = NULL; +Tile* Tile::trapdoor_spruce = NULL; +Tile* Tile::soulSand = NULL; +Tile* Tile::trapdoor_birch = NULL; +Tile* Tile::trapdoor_jungle = NULL; +Tile* Tile::sign_spruce = NULL; +Tile* Tile::wallSign_spruce = NULL; +Tile* Tile::sign_birch = NULL; +Tile* Tile::wallSign_birch = NULL; +Tile* Tile::sign_jungle = NULL; +Tile* Tile::wallSign_jungle = NULL; +Tile* Tile::jungleSapling = NULL; +Tile* Tile::netherQuartzOre = NULL; +Tile* Tile::hayBale = NULL; +Tile* Tile::stairs_granite = NULL; +Tile* Tile::stairs_polishedGranite = NULL; +Tile* Tile::stairs_andesite = NULL; +Tile* Tile::stairs_polishedAndesite = NULL; +Tile* Tile::stairs_diorite = NULL; +Tile* Tile::stairs_polishedDiorite = NULL; +Tile* Tile::graniteSlabHalf = NULL; +Tile* Tile::graniteSlabFull = NULL; +Tile* Tile::wall_granite = NULL; +Tile* Tile::polishedGraniteSlabHalf = NULL; +Tile* Tile::polishedGraniteSlabFull = NULL; +Tile* Tile::andesiteSlabHalf = NULL; +Tile* Tile::andesiteSlabFull = NULL; +Tile* Tile::wall_andesite = NULL; +Tile* Tile::polishedAndesiteSlabHalf = NULL; +Tile* Tile::polishedAndesiteSlabFull = NULL; +Tile* Tile::dioriteSlabHalf = NULL; +Tile* Tile::dioriteSlabFull = NULL; +Tile* Tile::wall_diorite = NULL; +Tile* Tile::polishedDioriteSlabHalf = NULL; +Tile* Tile::polishedDioriteSlabFull = NULL; +Tile* Tile::sandstoneSlabHalf = NULL; +Tile* Tile::sandstoneSlabFull = NULL; +Tile* Tile::greenEmeraldOre = NULL; +Tile* Tile::greenEmeraldBlock = NULL; +Tile* Tile::redstoneBlock = NULL; +Tile* Tile::coalBlock = NULL; +Tile* Tile::redstoneLamp = NULL; +Tile* Tile::redstoneLamp_lit = NULL; +Tile* Tile::piston = NULL; +Tile* Tile::stickyPiston = NULL; +Tile* Tile::slimeBlock = NULL; +Tile* Tile::wetFarmland = NULL; +Tile* Tile::dryFarmland = NULL; +Tile* Tile::cocoaBlock = NULL; +Tile* Tile::wall_sandstone = NULL; +Tile* Tile::polishedSandstone = NULL; +Tile* Tile::stairs_polishedSandstone = NULL; +Tile* Tile::polishedSandstoneSlabHalf = NULL; +Tile* Tile::polishedSandstoneSlabFull = NULL; +Tile* Tile::netherBrickFence = NULL; +Tile* Tile::wall_netherBrick = NULL; +Tile* Tile::netherBrickSlabHalf = NULL; +Tile* Tile::netherBrickSlabFull = NULL; +Tile* Tile::smoothStone = NULL; +Tile* Tile::smoothStoneSlabHalf = NULL; +Tile* Tile::smoothStoneSlabFull = NULL; +Tile* Tile::repeater_off = NULL; +Tile* Tile::repeater_on = NULL; +Tile* Tile::comparator_off = NULL; +Tile* Tile::comparator_on = NULL; + +// Texture atlas arrays for data-variant tiles +const int StoneVariantTile::VARIANT_TEXTURES[StoneVariantTile::VARIANT_COUNT] = { + 2 + 16 * 15, // Granite + 3 + 16 * 15, // Polished Granite + 4 + 16 * 15, // Diorite + 5 + 16 * 15, // Polished Diorite + 6 + 16 * 15, // Andesite + 7 + 16 * 15 // Polished Andesite +}; + +const int WoodPlanks::PLANK_TEXTURES[WoodPlanks::VARIANT_COUNT] = { + 4, // Oak + 3 + 16 * 8, // Spruce + 4 + 16 * 8, // Birch + 5 + 16 * 8 // Jungle +}; + /*static*/ void Tile::initTiles() { rock = (new StoneTile(1, 1))->init()->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("stone"); grass = (GrassTile*) (new GrassTile(2))->init()->setDestroyTime(0.6f)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("grass"); dirt = (new DirtTile(3, 2))->init()->setDestroyTime(0.5f)->setSoundType(SOUND_GRAVEL)->setCategory(ItemCategory::Structures)->setDescriptionId("dirt"); stoneBrick = (new Tile(4, 16, Material::stone))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("stonebrick"); - wood = (new Tile(5, 4, Material::wood))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("wood"); + wood = (new WoodPlanks(5))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("wood"); sapling = (new Sapling(6, 15))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("sapling");//->sendTileData(); unbreakable = (new Tile(7, 17, Material::stone))->init()->setDestroyTime(-1)->setExplodeable(6000000)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("bedrock"); water = (new LiquidTileDynamic(8, Material::water))->init()->setDestroyTime(100.0f)->setLightBlock(3)->setCategory(ItemCategory::Structures)->setDescriptionId("water"); @@ -177,6 +278,8 @@ void Tile::initTiles() { treeTrunk = (new TreeTile(17))->init()->setDestroyTime(2.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("log"); leaves = (LeafTile*) (new LeafTile(18, 4 + 3 * 16))->init()->setDestroyTime(0.2f)->setLightBlock(1)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("leaves"); + stoneVariant= (new StoneVariantTile(19))->init()->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("stoneVariant"); + glass = (new GlassTile(20, 49, Material::glass, false))->init()->setDestroyTime(0.3f)->setSoundType(SOUND_GLASS)->setCategory(ItemCategory::Structures)->setDescriptionId("glass"); lapisOre = (new OreTile(21, 10 * 16))->init()->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("oreLapis"); lapisBlock = (new Tile(22, 9 * 16, Material::stone))->init()->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Decorations)->setDescriptionId("blockLapis"); @@ -204,6 +307,8 @@ void Tile::initTiles() { stairs_wood = (new StairTile(53, wood))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsWood"); chest = (new ChestTile(54))->init()->setCategory(ItemCategory::Structures)->setDestroyTime(2.5f)->setSoundType(SOUND_WOOD)->setDescriptionId("chest");//->sendTileData(); + redStoneDust = (new Tile(55, 4 + 10 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("redstoneDust"); + emeraldOre = (new OreTile(56, 16 * 3 + 2))->init()->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Decorations)->setDescriptionId("oreDiamond"); emeraldBlock= (new MetalTile(57, 40 - 16))->init()->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_METAL)->setCategory(ItemCategory::Decorations)->setDescriptionId("blockDiamond"); workBench = (new WorkbenchTile(58))->init()->setDestroyTime(2.5f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("workbench"); @@ -233,7 +338,7 @@ void Tile::initTiles() { fence = (new FenceTile(85, 4))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fence"); netherrack = (new Tile(87, 7 + 6 * 16, Material::stone))->init()->setDestroyTime(0.4f)->setSoundType(SOUND_STONE)->setDescriptionId("hellrock"); - //hellSand = (new HellSandTile(88, 8 + 6 * 16, Material::sand))->init()->setDestroyTime(0.5f)->setSoundType(SOUND_SAND)->setDescriptionId("hellsand"); + // soulSand (ID 88) is initialized in the new blocks section below lightGem = (new LightGemTile(89, 9 + 16 * 6, Material::glass))->init()->setDestroyTime(0.3f)->setCategory(ItemCategory::Structures)->setSoundType(SOUND_GLASS)->setLightEmission(1.0f)->setDescriptionId("lightgem"); invisible_bedrock = (new InvisibleTile(95, 0, Material::stone))->init()->setDestroyTime(-1)->setExplodeable(6000000);//->setSoundType(SOUND_SILENT); @@ -255,6 +360,154 @@ void Tile::initTiles() { quartzBlock = (new QuartzBlockTile(155))->init()->setSoundType(SOUND_STONE)->setDestroyTime(0.8f)->setCategory(ItemCategory::Structures)->setDescriptionId("quartzBlock"); stairs_quartz = (new StairTile(156, Tile::quartzBlock))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsQuartz");//->sendTileData(); + // + // --- World & Block System Overhaul: new tile initializations --- + // + + // Wood variant stairs (spruce/birch/jungle planks textures) + stairs_spruce = (new StairTile(27, wood))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsSpruce"); + stairs_birch = (new StairTile(28, wood))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsBirch"); + stairs_jungle = (new StairTile(29, wood))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsJungle"); + + // Wood variant fences + fence_spruce = (new FenceTile(32, 3 + 16 * 8))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fenceSpruce"); + fence_birch = (new FenceTile(33, 4 + 16 * 8))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fenceBirch"); + fence_jungle = (new FenceTile(34, 5 + 16 * 8))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fenceJungle"); + + // Wood variant fence gates + fenceGate_spruce = (new FenceGateTile(36, 3 + 16 * 8))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fenceGateSpruce"); + fenceGate_birch = (new FenceGateTile(72, 4 + 16 * 8))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fenceGateBirch"); + fenceGate_jungle = (new FenceGateTile(77, 5 + 16 * 8))->init()->setDestroyTime(2.0f)->setExplodeable(5)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("fenceGateJungle"); + + // Jungle log (ID 52) - side: 8 + 9*16, top: 21 + jungleLog = (new TreeTile(52))->init()->setDestroyTime(2.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("jungleLog"); + + // Wood variant doors + door_spruce = (new DoorTile(66, Material::wood))->init()->setDestroyTime(3.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("doorSpruce"); + door_birch = (new DoorTile(69, Material::wood))->init()->setDestroyTime(3.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("doorBirch"); + door_jungle = (new DoorTile(70, Material::wood))->init()->setDestroyTime(3.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("doorJungle"); + + // Redstone torches (off/on) + redstoneTorch_off = (new TorchTile(75, 3 + 16 * 7))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("notGate"); + redstoneTorch_on = (new TorchTile(76, 3 + 16 * 6))->init()->setDestroyTime(0.0f)->setLightEmission(8 / 16.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("notGate"); + + // Jungle leaves (ID 84) + jungleLeaves = (LeafTile*)(new LeafTile(84, 12 + 16 * 14))->init()->setDestroyTime(0.2f)->setLightBlock(1)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("jungleLeaves"); + + // Wood variant trapdoors + trapdoor_spruce = (new TrapDoorTile(86, Material::wood))->init()->setDestroyTime(3.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("trapdoorSpruce"); + trapdoor_birch = (new TrapDoorTile(90, Material::wood))->init()->setDestroyTime(3.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("trapdoorBirch"); + trapdoor_jungle = (new TrapDoorTile(91, Material::wood))->init()->setDestroyTime(3.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Structures)->setDescriptionId("trapdoorJungle"); + + // Soul Sand (ID 88) + soulSand = (new SoulSandTile(88, 8 + 6 * 16))->init()->setDestroyTime(0.5f)->setSoundType(SOUND_SAND)->setCategory(ItemCategory::Structures)->setDescriptionId("hellsand"); + + // Wood variant signs (standing + wall) + sign_spruce = (new SignTile(92, TileEntityType::Sign, true))->init()->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Decorations)->setDescriptionId("signSpruce"); + wallSign_spruce = (new SignTile(93, TileEntityType::Sign, false))->init()->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Decorations)->setDescriptionId("signSpruce"); + sign_birch = (new SignTile(94, TileEntityType::Sign, true))->init()->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Decorations)->setDescriptionId("signBirch"); + wallSign_birch = (new SignTile(97, TileEntityType::Sign, false))->init()->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Decorations)->setDescriptionId("signBirch"); + sign_jungle = (new SignTile(99, TileEntityType::Sign, true))->init()->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Decorations)->setDescriptionId("signJungle"); + wallSign_jungle = (new SignTile(100, TileEntityType::Sign, false))->init()->setDestroyTime(1.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Decorations)->setDescriptionId("signJungle"); + + // Jungle sapling (ID 101) + jungleSapling = (new Sapling(101, 14 + 16))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("jungleSapling"); + + // Nether Quartz Ore (ID 104) + netherQuartzOre = (new OreTile(104, 9 + 7 * 16))->init()->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("oreNetherQuartz"); + + // Hay Bale (ID 106) + hayBale = (new HayBaleTile(106, 10 + 9 * 16, 11 + 9 * 16))->init()->setDestroyTime(0.5f)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("hayBale"); + + // Stone variant stairs + stairs_granite = (new StairTile(110, stoneVariant))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsGranite"); + stairs_polishedGranite = (new StairTile(111, stoneVariant))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsPolishedGranite"); + stairs_andesite = (new StairTile(113, stoneVariant))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsAndesite"); + stairs_polishedAndesite = (new StairTile(115, stoneVariant))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsPolishedAndesite"); + stairs_diorite = (new StairTile(116, stoneVariant))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsDiorite"); + stairs_polishedDiorite = (new StairTile(117, stoneVariant))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsPolishedDiorite"); + + // Granite slabs & wall + graniteSlabHalf = (new StoneSlabTile(119, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabGranite"); + graniteSlabFull = (new StoneSlabTile(120, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabGranite"); + wall_granite = (new WallTile(121, 2 + 16 * 15))->init()->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("wallGranite"); + + // Polished Granite slabs + polishedGraniteSlabHalf = (new StoneSlabTile(122, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedGranite"); + polishedGraniteSlabFull = (new StoneSlabTile(123, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedGranite"); + + // Andesite slabs & wall + andesiteSlabHalf = (new StoneSlabTile(124, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabAndesite"); + andesiteSlabFull = (new StoneSlabTile(125, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabAndesite"); + wall_andesite = (new WallTile(126, 6 + 16 * 15))->init()->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("wallAndesite"); + + // Polished Andesite slabs + polishedAndesiteSlabHalf = (new StoneSlabTile(127, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedAndesite"); + polishedAndesiteSlabFull = (new StoneSlabTile(129, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedAndesite"); + + // Diorite slabs & wall + dioriteSlabHalf = (new StoneSlabTile(130, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabDiorite"); + dioriteSlabFull = (new StoneSlabTile(131, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabDiorite"); + wall_diorite = (new WallTile(132, 4 + 16 * 15))->init()->setDestroyTime(1.5f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("wallDiorite"); + + // Polished Diorite slabs + polishedDioriteSlabHalf = (new StoneSlabTile(133, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedDiorite"); + polishedDioriteSlabFull = (new StoneSlabTile(134, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedDiorite"); + + // Sandstone slabs + sandstoneSlabHalf = (new StoneSlabTile(135, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabSandstone"); + sandstoneSlabFull = (new StoneSlabTile(136, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabSandstone"); + + // Green Emerald Ore & Block (distinct from diamond-legacy "emerald") + greenEmeraldOre = (new OreTile(137, 9 + 10 * 16))->init()->setDestroyTime(3.0f)->setExplodeable(5)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Decorations)->setDescriptionId("oreEmerald"); + greenEmeraldBlock = (new MetalTile(138, 10 + 10 * 16))->init()->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_METAL)->setCategory(ItemCategory::Decorations)->setDescriptionId("blockEmerald"); + + // Redstone Block & Coal Block + redstoneBlock = (new MetalTile(139, 11 + 10 * 16))->init()->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_METAL)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("blockRedstone"); + coalBlock = (new Tile(140, 12 + 10 * 16, Material::stone))->init()->setDestroyTime(5.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("blockCoal"); + + // Redstone Lamps (off/on) + redstoneLamp = (new RedstoneLampTile(141, 3 + 13 * 16, false))->init()->setDestroyTime(0.3f)->setSoundType(SOUND_GLASS)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("redstoneLamp"); + redstoneLamp_lit = (new RedstoneLampTile(142, 4 + 13 * 16, true))->init()->setDestroyTime(0.3f)->setLightEmission(1.0f)->setSoundType(SOUND_GLASS)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("redstoneLamp"); + + // Pistons (placeholder as solid blocks for now) + piston = (new Tile(143, 11 + 6 * 16, Material::stone))->init()->setDestroyTime(0.5f)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("piston"); + stickyPiston = (new Tile(144, 12 + 6 * 16, Material::stone))->init()->setDestroyTime(0.5f)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("stickyPiston"); + + // Slime Block (ID 145) + slimeBlock = (new SlimeBlockTile(145, 3 + 12 * 16))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_GRASS)->setCategory(ItemCategory::Structures)->setDescriptionId("slimeBlock"); + + // Farmland variants + wetFarmland = (new FarmTile(146))->init()->setDestroyTime(0.6f)->setSoundType(SOUND_GRAVEL)->setCategory(ItemCategory::Structures)->setDescriptionId("wetFarmland"); + dryFarmland = (new FarmTile(147))->init()->setDestroyTime(0.6f)->setSoundType(SOUND_GRAVEL)->setCategory(ItemCategory::Structures)->setDescriptionId("dryFarmland"); + + // Cocoa Block (placeholder) + cocoaBlock = (new Tile(148, 8 + 10 * 16, Material::vegetable))->init()->setDestroyTime(0.2f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("cocoa"); + + // Sandstone wall & polished sandstone + wall_sandstone = (new WallTile(150, 0 + 12 * 16))->init()->setDestroyTime(0.8f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("wallSandstone"); + polishedSandstone = (new Tile(151, 7 + 14 * 16, Material::stone))->init()->setDestroyTime(0.8f)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("polishedSandstone"); + stairs_polishedSandstone = (new StairTile(152, polishedSandstone))->init()->setCategory(ItemCategory::Structures)->setDescriptionId("stairsPolishedSandstone"); + polishedSandstoneSlabHalf = (new StoneSlabTile(153, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedSandstone"); + polishedSandstoneSlabFull = (new StoneSlabTile(154, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabPolishedSandstone"); + + // Nether Brick extras + netherBrickFence = (new FenceTile(157, 0 + 14 * 16, Material::stone))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("netherFence"); + wall_netherBrick = (new WallTile(158, 0 + 14 * 16))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("wallNetherBrick"); + netherBrickSlabHalf = (new StoneSlabTile(159, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabNetherBrick"); + netherBrickSlabFull = (new StoneSlabTile(160, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabNetherBrick"); + + // Smooth Stone (ID 161) + smoothStone = (new SmoothStoneTile(161, 5, 6))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("smoothStone"); + smoothStoneSlabHalf = (new StoneSlabTile(162, false))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabSmoothStone"); + smoothStoneSlabFull = (new StoneSlabTile(163, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabSmoothStone"); + + // Repeaters & Comparators (placeholder diode-shaped blocks) + repeater_off = (new Tile(164, 3 + 8 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("repeater"); + repeater_on = (new Tile(165, 3 + 9 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("repeater"); + comparator_off = (new Tile(166, 14 + 2 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("comparator"); + comparator_on = (new Tile(167, 15 + 2 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("comparator"); + // // Special tiles for Pocket Edition is placed at high IDs // @@ -286,6 +539,10 @@ void Tile::initTiles() { Item::items[quartzBlock->id] = (new AuxDataTileItem(quartzBlock->id - 256, quartzBlock))->setCategory(ItemCategory::Structures)->setDescriptionId("quartzBlock"); + // Data-variant tile items for World & Block System Overhaul + Item::items[wood->id] = (new AuxDataTileItem(wood->id - 256, wood))->setCategory(ItemCategory::Structures)->setDescriptionId("wood"); + Item::items[stoneVariant->id] = (new AuxDataTileItem(stoneVariant->id - 256, stoneVariant))->setCategory(ItemCategory::Structures)->setDescriptionId("stoneVariant"); + for (int i = 0; i < 256; i++) { if (Tile::tiles[i] != NULL) { if (Item::items[i] == NULL) { diff --git a/web-build/src/world/level/tile/Tile.h b/web-build/src/world/level/tile/Tile.h index 48a60b70..28bed8eb 100644 --- a/web-build/src/world/level/tile/Tile.h +++ b/web-build/src/world/level/tile/Tile.h @@ -130,7 +130,7 @@ class Tile static Tile* coalOre; static Tile* treeTrunk; static LeafTile* leaves; - static Tile* sponge; + static Tile* stoneVariant; // ID 19 (granite/diorite/andesite variants) static Tile* web; static Tile* glass; static Tile* thinGlass; @@ -140,15 +140,15 @@ class Tile static Tile* sandStone; static Tile* musicBlock; static Tile* bed; - static Tile* unused_27; - static Tile* unused_28; - static Tile* unused_29; + static Tile* stairs_spruce; // ID 27 + static Tile* stairs_birch; // ID 28 + static Tile* stairs_jungle; // ID 29 static Tile* unused_30; static Tile* tallgrass; - static Tile* unused_32; - static Tile* unused_33; - static Tile* unused_34; - static Tile* unused_36; + static Tile* fence_spruce; // ID 32 + static Tile* fence_birch; // ID 33 + static Tile* fence_jungle; // ID 34 + static Tile* fenceGate_spruce; // ID 36 static Tile* cloth; static Tile* flower; @@ -229,6 +229,81 @@ class Tile static Tile* quartzBlock; static Tile* stairs_quartz; + // --- World & Block System Overhaul --- + static Tile* jungleLog; // ID 52 + static Tile* door_spruce; // ID 66 + static Tile* door_birch; // ID 69 + static Tile* door_jungle; // ID 70 + static Tile* fenceGate_birch; // ID 72 + static Tile* redstoneTorch_off; // ID 75 + static Tile* redstoneTorch_on; // ID 76 + static Tile* fenceGate_jungle; // ID 77 + static LeafTile* jungleLeaves; // ID 84 + static Tile* trapdoor_spruce; // ID 86 + static Tile* soulSand; // ID 88 + static Tile* trapdoor_birch; // ID 90 + static Tile* trapdoor_jungle; // ID 91 + static Tile* sign_spruce; // ID 92 + static Tile* wallSign_spruce; // ID 93 + static Tile* sign_birch; // ID 94 + static Tile* wallSign_birch; // ID 97 + static Tile* sign_jungle; // ID 99 + static Tile* wallSign_jungle; // ID 100 + static Tile* jungleSapling; // ID 101 + static Tile* netherQuartzOre; // ID 104 + static Tile* hayBale; // ID 106 + static Tile* stairs_granite; // ID 110 + static Tile* stairs_polishedGranite; // ID 111 + static Tile* stairs_andesite; // ID 113 + static Tile* stairs_polishedAndesite;// ID 115 + static Tile* stairs_diorite; // ID 116 + static Tile* stairs_polishedDiorite; // ID 117 + static Tile* graniteSlabHalf; // ID 119 + static Tile* graniteSlabFull; // ID 120 + static Tile* wall_granite; // ID 121 + static Tile* polishedGraniteSlabHalf; // ID 122 + static Tile* polishedGraniteSlabFull; // ID 123 + static Tile* andesiteSlabHalf; // ID 124 + static Tile* andesiteSlabFull; // ID 125 + static Tile* wall_andesite; // ID 126 + static Tile* polishedAndesiteSlabHalf; // ID 127 + static Tile* polishedAndesiteSlabFull; // ID 129 + static Tile* dioriteSlabHalf; // ID 130 + static Tile* dioriteSlabFull; // ID 131 + static Tile* wall_diorite; // ID 132 + static Tile* polishedDioriteSlabHalf; // ID 133 + static Tile* polishedDioriteSlabFull; // ID 134 + static Tile* sandstoneSlabHalf; // ID 135 + static Tile* sandstoneSlabFull; // ID 136 + static Tile* greenEmeraldOre; // ID 137 + static Tile* greenEmeraldBlock; // ID 138 + static Tile* redstoneBlock; // ID 139 + static Tile* coalBlock; // ID 140 + static Tile* redstoneLamp; // ID 141 + static Tile* redstoneLamp_lit; // ID 142 + static Tile* piston; // ID 143 + static Tile* stickyPiston; // ID 144 + static Tile* slimeBlock; // ID 145 + static Tile* wetFarmland; // ID 146 + static Tile* dryFarmland; // ID 147 + static Tile* cocoaBlock; // ID 148 + static Tile* wall_sandstone; // ID 150 + static Tile* polishedSandstone; // ID 151 + static Tile* stairs_polishedSandstone; // ID 152 + static Tile* polishedSandstoneSlabHalf; // ID 153 + static Tile* polishedSandstoneSlabFull; // ID 154 + static Tile* netherBrickFence; // ID 157 + static Tile* wall_netherBrick; // ID 158 + static Tile* netherBrickSlabHalf; // ID 159 + static Tile* netherBrickSlabFull; // ID 160 + static Tile* smoothStone; // ID 161 + static Tile* smoothStoneSlabHalf; // ID 162 + static Tile* smoothStoneSlabFull; // ID 163 + static Tile* repeater_off; // ID 164 + static Tile* repeater_on; // ID 165 + static Tile* comparator_off; // ID 166 + static Tile* comparator_on; // ID 167 + // invisible bedrock is used to block off empty chunks (i.e. prevent player movement) static Tile* invisible_bedrock; static Tile* info_updateGame1; diff --git a/web-build/src/world/level/tile/TileInclude.h b/web-build/src/world/level/tile/TileInclude.h index 6ed73906..f04bbdad 100644 --- a/web-build/src/world/level/tile/TileInclude.h +++ b/web-build/src/world/level/tile/TileInclude.h @@ -59,4 +59,14 @@ #include "WebTile.h" #include "WorkbenchTile.h" +// World & Block System Overhaul +#include "StoneVariantTile.h" +#include "WoodPlanks.h" +#include "WallTile.h" +#include "HayBaleTile.h" +#include "SoulSandTile.h" +#include "RedstoneLampTile.h" +#include "SlimeBlockTile.h" +#include "SmoothStoneTile.h" + #endif /* TILE_INCLUDE_H__ */ diff --git a/web-build/src/world/level/tile/WallTile.h b/web-build/src/world/level/tile/WallTile.h new file mode 100644 index 00000000..bf7aa81a --- /dev/null +++ b/web-build/src/world/level/tile/WallTile.h @@ -0,0 +1,82 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__WallTile_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__WallTile_H__ + +#include "Tile.h" +#include "../material/Material.h" +#include "../../phys/AABB.h" + +class WallTile : public Tile { + typedef Tile super; +public: + WallTile(int id, int tex, const Material* material) + : super(id, tex, material) + { + } + + WallTile(int id, int tex) + : super(id, tex, Material::stone) + { + } + + bool isSolidRender() { return false; } + bool isCubeShaped() { return false; } + + int getRenderShape() { + return Tile::SHAPE_FENCE; + } + + AABB* getAABB(Level* level, int x, int y, int z) { + bool n = connectsTo(level, x, y, z - 1); + bool s = connectsTo(level, x, y, z + 1); + bool w = connectsTo(level, x - 1, y, z); + bool e = connectsTo(level, x + 1, y, z); + + float west = 5.0f / 16.0f; + float east = 11.0f / 16.0f; + float north = 5.0f / 16.0f; + float south = 11.0f / 16.0f; + + if (n) north = 0; + if (s) south = 1; + if (w) west = 0; + if (e) east = 1; + + tmpBB.set((float)x + west, (float)y, (float)z + north, (float)x + east, (float)y + 1.5f, (float)z + south); + return &tmpBB; + } + + void updateShape(LevelSource* level, int x, int y, int z) { + bool n = connectsTo(level, x, y, z - 1); + bool s = connectsTo(level, x, y, z + 1); + bool w = connectsTo(level, x - 1, y, z); + bool e = connectsTo(level, x + 1, y, z); + + float west = 5.0f / 16.0f; + float east = 11.0f / 16.0f; + float north = 5.0f / 16.0f; + float south = 11.0f / 16.0f; + + if (n) north = 0; + if (s) south = 1; + if (w) west = 0; + if (e) east = 1; + + setShape(west, 0, north, east, 1.0f, south); + } + + bool blocksLight() { return false; } + + bool connectsTo(LevelSource* level, int x, int y, int z) { + int tile = level->getTile(x, y, z); + if (tile == id) return true; + Tile* tileInstance = Tile::tiles[tile]; + if (tileInstance != NULL) { + if (tileInstance->material->isSolidBlocking() && tileInstance->isCubeShaped()) { + return tileInstance->material != Material::vegetable; + } + } + return false; + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__WallTile_H__*/ diff --git a/web-build/src/world/level/tile/WoodPlanks.h b/web-build/src/world/level/tile/WoodPlanks.h new file mode 100644 index 00000000..dbade98a --- /dev/null +++ b/web-build/src/world/level/tile/WoodPlanks.h @@ -0,0 +1,45 @@ +#ifndef NET_MINECRAFT_WORLD_LEVEL_TILE__WoodPlanks_H__ +#define NET_MINECRAFT_WORLD_LEVEL_TILE__WoodPlanks_H__ + +#include "Tile.h" +#include "../material/Material.h" +#include "../../../util/Random.h" + +// Wood planks using data values on ID 5: +// 0 = Oak, 1 = Spruce, 2 = Birch, 3 = Jungle + +class WoodPlanks : public Tile { + typedef Tile super; +public: + static const int OAK = 0; + static const int SPRUCE = 1; + static const int BIRCH = 2; + static const int JUNGLE = 3; + static const int VARIANT_COUNT = 4; + + static const int PLANK_TEXTURES[VARIANT_COUNT]; + + WoodPlanks(int id) : super(id, 4, Material::wood) { + } + + int getTexture(int face, int data) { + if (data >= 0 && data < VARIANT_COUNT) + return PLANK_TEXTURES[data]; + return 4; // oak default + } + + int getTexture(int face) { + return getTexture(face, 0); + } + + int getResource(int data, Random* random) { + return id; + } + +protected: + int getSpawnResourcesAuxValue(int data) { + return data; + } +}; + +#endif /*NET_MINECRAFT_WORLD_LEVEL_TILE__WoodPlanks_H__*/ From 2197ae593dac2aa96104a0edc67ef3c702545de7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:12:46 +0000 Subject: [PATCH 2/8] Add new items and update crafting recipes for World & Block System Overhaul MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 6 new items: greenEmerald (151), enderPearl (152), mutton_raw (153), mutton_cooked (154), cookie (155), cocoaBeans (156) - Uncomment and enable redStone (75) and diode (100) items - Replace generic planks recipe with 4 wood-variant-specific recipes (Oak/Spruce/Birch/Jungle log → matching planks) - Add wood derivative recipes for Spruce, Birch, Jungle variants: stairs, fence, fence gate, door, trapdoor, sign, slab - Make existing oak wood recipes variant-specific - Add polished stone recipes (granite, diorite, andesite, sandstone) - Add block recipes: green emerald, redstone, coal, hay bale, slime, nether brick fence, redstone lamp - Add ore decomposition: green emerald/redstone/coal blocks → items - Add furnace recipes: stone→smooth stone, quartz ore→quartz, raw mutton→cooked mutton - Enable cookie recipe using cocoa beans Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- web-build/src/world/item/Item.cpp | 22 ++- web-build/src/world/item/Item.h | 7 + .../src/world/item/crafting/FoodRecipes.h | 6 +- .../world/item/crafting/FurnaceRecipes.cpp | 3 + .../src/world/item/crafting/OreRecipes.cpp | 5 +- web-build/src/world/item/crafting/Recipes.cpp | 174 +++++++++++++++++- .../world/item/crafting/StructureRecipes.h | 84 ++++++++- 7 files changed, 279 insertions(+), 22 deletions(-) diff --git a/web-build/src/world/item/Item.cpp b/web-build/src/world/item/Item.cpp index 14307438..72b89384 100644 --- a/web-build/src/world/item/Item.cpp +++ b/web-build/src/world/item/Item.cpp @@ -108,7 +108,7 @@ Item* Item::door_wood = NULL; //Item* Item::minecart = NULL; //Item* Item::saddle = NULL; Item* Item::door_iron = NULL; -//Item* Item::redStone = NULL; +Item* Item::redStone = NULL; Item* Item::snowBall = NULL; //Item* Item::boat = NULL; @@ -141,7 +141,7 @@ Item* Item::sugar = NULL; Item* Item::bed = NULL; -//Item* Item::diode = NULL; +Item* Item::diode = NULL; ShearsItem* Item::shears = NULL; Item* Item::beef_raw = NULL; Item* Item::beef_cooked = NULL; @@ -151,6 +151,13 @@ Item* Item::chicken_cooked = NULL; Item* Item::netherbrick = NULL; Item* Item::netherQuartz = NULL; +Item* Item::greenEmerald = NULL; +Item* Item::enderPearl = NULL; +Item* Item::mutton_raw = NULL; +Item* Item::mutton_cooked = NULL; +Item* Item::cookie = NULL; +Item* Item::cocoaBeans = NULL; + //Item* Item::record_01 = NULL; //Item* Item::record_02 = NULL; @@ -246,7 +253,7 @@ void Item::initItems() { //Item::minecart = (new MinecartItem(72, Minecart.RIDEABLE))->setIcon(7, 8)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("minecart"); //Item::saddle = (new SaddleItem(73))->setIcon(8, 6)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("saddle"); Item::door_iron = (new DoorItem(74, Material::metal))->setIcon(12, 2)->setCategory(ItemCategory::Structures)->setDescriptionId("doorIron"); - //Item::redStone = (new RedStoneItem(75))->setIcon(8, 3)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("redstone"); + Item::redStone = (new Item(75))->setIcon(8, 3)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("redstone"); Item::snowBall = (new SnowballItem(76))->setIcon(14, 0)->setCategory(ItemCategory::Decorations)->setDescriptionId("snowball"); //Item::boat = (new BoatItem(77))->setIcon(8, 8)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("boat"); Item::leather = (new Item(78))->setIcon(7, 6)->setCategory(ItemCategory::Tools)->setDescriptionId("leather"); @@ -271,7 +278,7 @@ void Item::initItems() { Item::sugar = (new Item(97))->setIcon(13, 0)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("sugar")->handEquipped(); //Item::cake = (new TilePlanterItem(98, Tile::cake))->setMaxStackSize(1)->setIcon(13, 1)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("cake"); Item::bed = (new BedItem(99))->setMaxStackSize(1)->setIcon(13, 2)->setCategory(ItemCategory::Structures)->setDescriptionId("bed"); - //Item::diode = (new TilePlanterItem(100, Tile::diode_off))->setIcon(6, 5)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("diode"); + Item::diode = (new TilePlanterItem(100, Tile::diode_off))->setIcon(6, 5)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("diode"); Item::shears = (ShearsItem*)(new ShearsItem(103))->setIcon(13, 5)->setCategory(ItemCategory::Tools)->setDescriptionId("shears"); Item::melon = (new FoodItem(104, 2, false))->setIcon(13, 6)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("melon"); Item::seeds_melon = (new SeedItem(106, Tile::melonStem->id, Tile::farmland->id))->setIcon(14, 3)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("seedsMelon"); @@ -283,6 +290,13 @@ void Item::initItems() { Item::netherbrick = (new Item(149))->setIcon(5, 9)->setDescriptionId("netherbrickItem")->setCategory(ItemCategory::Structures); Item::netherQuartz = (new Item(150))->setIcon(5, 10)->setDescriptionId("netherquartz")->setCategory(ItemCategory::Mechanisms); + Item::greenEmerald = (new Item(151))->setIcon(7, 11)->setCategory(ItemCategory::Decorations)->setDescriptionId("greenEmerald"); + Item::enderPearl = (new Item(152))->setIcon(11, 9)->setCategory(ItemCategory::Decorations)->setDescriptionId("enderPearl"); + Item::mutton_raw = (new FoodItem(153, 2, true))->setIcon(9, 8)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("muttonRaw"); + Item::mutton_cooked = (new FoodItem(154, 6, true))->setIcon(10, 8)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("muttonCooked"); + Item::cookie = (new FoodItem(155, 2, false))->setIcon(12, 5)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("cookie"); + Item::cocoaBeans = (new Item(156))->setIcon(14, 5)->setCategory(ItemCategory::Decorations)->setDescriptionId("cocoaBeans"); + //Item::record_01 = (new RecordingItem(2000, "13"))->setIcon(0, 15)->setCategory(ItemCategory::Decorations)->setDescriptionId("record"); //Item::record_02 = (new RecordingItem(2001, "cat"))->setIcon(1, 15)->setCategory(ItemCategory::Decorations)->setDescriptionId("record"); Item::camera = (new CameraItem(200))->setIcon(2, 15)->setCategory(ItemCategory::Decorations)->setDescriptionId("camera"); diff --git a/web-build/src/world/item/Item.h b/web-build/src/world/item/Item.h index 7e09f2eb..e2b7e50f 100644 --- a/web-build/src/world/item/Item.h +++ b/web-build/src/world/item/Item.h @@ -201,6 +201,13 @@ class Item static Item* netherbrick; static Item* netherQuartz; + static Item* greenEmerald; + static Item* enderPearl; + static Item* mutton_raw; + static Item* mutton_cooked; + static Item* cookie; + static Item* cocoaBeans; + static Item* record_01; static Item* record_02; diff --git a/web-build/src/world/item/crafting/FoodRecipes.h b/web-build/src/world/item/crafting/FoodRecipes.h index fe063821..ccaf1e98 100644 --- a/web-build/src/world/item/crafting/FoodRecipes.h +++ b/web-build/src/world/item/crafting/FoodRecipes.h @@ -15,10 +15,10 @@ class FoodRecipes { r->addShapelessRecipe(ItemInstance(Item::mushroomStew), // definition(0, Tile::mushroom1, 0, Tile::mushroom2, 0, Item::bowl)); - //r->addShapedRecipe(/*new*/ ItemInstance(Item::cookie, 8), // - // "#X#", // + r->addShapedRecipe(/*new*/ ItemInstance(Item::cookie, 8), // + "#X#", // - // definition('X', /*new*/ ItemInstance(Item::dye_powder, 1, DyePowderItem::BROWN), '#', Item::wheat)); + definition('X', Item::cocoaBeans, '#', Item::wheat)); r->addShapedRecipe(/*new*/ ItemInstance(Tile::melon), // "MMM", // diff --git a/web-build/src/world/item/crafting/FurnaceRecipes.cpp b/web-build/src/world/item/crafting/FurnaceRecipes.cpp index eed3e501..55ba71a7 100644 --- a/web-build/src/world/item/crafting/FurnaceRecipes.cpp +++ b/web-build/src/world/item/crafting/FurnaceRecipes.cpp @@ -49,6 +49,9 @@ FurnaceRecipes::FurnaceRecipes() addFurnaceRecipe(Tile::mushroom2->id, ItemInstance(Item::dye_powder, 1, DyePowderItem::RED)); addFurnaceRecipe(Tile::treeTrunk->id, ItemInstance(Item::coal, 1, CoalItem::CHAR_COAL)); addFurnaceRecipe(Tile::netherrack->id, ItemInstance(Item::netherbrick)); + addFurnaceRecipe(Tile::rock->id, ItemInstance(Tile::smoothStone)); + addFurnaceRecipe(Tile::netherQuartzOre->id, ItemInstance(Item::netherQuartz)); + addFurnaceRecipe(Item::mutton_raw->id, ItemInstance(Item::mutton_cooked)); /* // special silk touch related recipes: addFurnaceRecipe(Tile::coalOre->id, ItemInstance(Item::coal)); diff --git a/web-build/src/world/item/crafting/OreRecipes.cpp b/web-build/src/world/item/crafting/OreRecipes.cpp index 028bde8c..9deb1479 100644 --- a/web-build/src/world/item/crafting/OreRecipes.cpp +++ b/web-build/src/world/item/crafting/OreRecipes.cpp @@ -11,7 +11,10 @@ void OreRecipes::addRecipes(Recipes* r) std::make_pair(Tile::goldBlock, ItemInstance(Item::goldIngot, 9)), std::make_pair(Tile::ironBlock, ItemInstance(Item::ironIngot, 9)), std::make_pair(Tile::emeraldBlock, ItemInstance(Item::emerald, 9)), - std::make_pair(Tile::lapisBlock, ItemInstance(Item::dye_powder, 9, DyePowderItem::BLUE)) + std::make_pair(Tile::lapisBlock, ItemInstance(Item::dye_powder, 9, DyePowderItem::BLUE)), + std::make_pair(Tile::greenEmeraldBlock, ItemInstance(Item::greenEmerald, 9)), + std::make_pair(Tile::redstoneBlock, ItemInstance(Item::redStone, 9)), + std::make_pair(Tile::coalBlock, ItemInstance(Item::coal, 9)) }; const int NumItems = sizeof(map) / sizeof(Pair); diff --git a/web-build/src/world/item/crafting/Recipes.cpp b/web-build/src/world/item/crafting/Recipes.cpp index a97af3bf..71f0a7eb 100644 --- a/web-build/src/world/item/crafting/Recipes.cpp +++ b/web-build/src/world/item/crafting/Recipes.cpp @@ -12,6 +12,7 @@ #include "OreRecipes.h" #include "../CoalItem.h" #include "../../level/tile/StoneSlabTile.h" +#include "../../level/tile/WoodPlanks.h" /*static*/ Recipes* Recipes::instance = NULL; @@ -54,7 +55,25 @@ Recipes::Recipes() "#W#", // "#W#", // - definition('#', Item::stick, 'W', Tile::wood)); + definition('#', Item::stick, 'W', ItemInstance(Tile::wood, 1, WoodPlanks::OAK))); + + addShapedRecipe(ItemInstance(Tile::fenceGate_spruce, 1), // + "#W#", // + "#W#", // + + definition('#', Item::stick, 'W', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE))); + + addShapedRecipe(ItemInstance(Tile::fenceGate_birch, 1), // + "#W#", // + "#W#", // + + definition('#', Item::stick, 'W', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH))); + + addShapedRecipe(ItemInstance(Tile::fenceGate_jungle, 1), // + "#W#", // + "#W#", // + + definition('#', Item::stick, 'W', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE))); //addShapedRecipe(ItemInstance(Tile::recordPlayer, 1), // // "###", // @@ -150,18 +169,57 @@ Recipes::Recipes() definition('#', Item::stick)); - addShapedRecipe(ItemInstance(Item::door_wood, 1), // + addShapedRecipe(ItemInstance(Item::door_wood, 3), // "##", // "##", // "##", // - definition('#', Tile::wood)); + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::OAK))); + + addShapedRecipe(ItemInstance(Item::door_wood, 3), // + "##", // + "##", // + "##", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE))); + + addShapedRecipe(ItemInstance(Item::door_wood, 3), // + "##", // + "##", // + "##", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH))); + + addShapedRecipe(ItemInstance(Item::door_wood, 3), // + "##", // + "##", // + "##", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE))); addShapedRecipe(ItemInstance(Tile::trapdoor, 2), // "###", // "###", // - definition('#', Tile::wood)); + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::OAK))); + + addShapedRecipe(ItemInstance(Tile::trapdoor_spruce, 2), // + "###", // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE))); + + addShapedRecipe(ItemInstance(Tile::trapdoor_birch, 2), // + "###", // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH))); + + addShapedRecipe(ItemInstance(Tile::trapdoor_jungle, 2), // + "###", // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE))); //addShapedRecipe(ItemInstance(Item::door_iron, 1), // // "##", // @@ -170,12 +228,33 @@ Recipes::Recipes() // definition('#', Item::ironIngot)); - addShapedRecipe(ItemInstance(Item::sign, 1), // + addShapedRecipe(ItemInstance(Item::sign, 3), // + "###", // + "###", // + " X ", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::OAK), 'X', Item::stick)); + + addShapedRecipe(ItemInstance(Item::sign, 3), // "###", // "###", // " X ", // - definition('#', Tile::wood, 'X', Item::stick)); + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE), 'X', Item::stick)); + + addShapedRecipe(ItemInstance(Item::sign, 3), // + "###", // + "###", // + " X ", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH), 'X', Item::stick)); + + addShapedRecipe(ItemInstance(Item::sign, 3), // + "###", // + "###", // + " X ", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE), 'X', Item::stick)); //addShapedRecipe(ItemInstance(Item::cake, 1), // // "AAA", // @@ -191,10 +270,29 @@ Recipes::Recipes() definition('#', Item::reeds)); - addShapedRecipe(ItemInstance(Tile::wood, 4), // + // Oak Log → Oak Planks + addShapedRecipe(ItemInstance(Tile::wood, 4, WoodPlanks::OAK), // "#", // - definition('#', Tile::treeTrunk)); + definition('#', ItemInstance(Tile::treeTrunk, 1, 0))); + + // Spruce Log → Spruce Planks + addShapedRecipe(ItemInstance(Tile::wood, 4, WoodPlanks::SPRUCE), // + "#", // + + definition('#', ItemInstance(Tile::treeTrunk, 1, 1))); + + // Birch Log → Birch Planks + addShapedRecipe(ItemInstance(Tile::wood, 4, WoodPlanks::BIRCH), // + "#", // + + definition('#', ItemInstance(Tile::treeTrunk, 1, 2))); + + // Jungle Log → Jungle Planks + addShapedRecipe(ItemInstance(Tile::wood, 4, WoodPlanks::JUNGLE), // + "#", // + + definition('#', Tile::jungleLog)); addShapedRecipe(ItemInstance(Item::stick, 4), // "#", // @@ -319,7 +417,28 @@ Recipes::Recipes() "## ", // "###", // - definition('#', Tile::wood)); + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::OAK))); + + addShapedRecipe(ItemInstance(Tile::stairs_spruce, 4), // + "# ", // + "## ", // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE))); + + addShapedRecipe(ItemInstance(Tile::stairs_birch, 4), // + "# ", // + "## ", // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH))); + + addShapedRecipe(ItemInstance(Tile::stairs_jungle, 4), // + "# ", // + "## ", // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE))); //addShapedRecipe(ItemInstance(Item::fishingRod, 1), // // " #", // @@ -467,6 +586,43 @@ Recipes::Recipes() definition('#', Item::emerald, 'X', Item::ironIngot)); + // Spruce fence (planks + sticks) + addShapedRecipe(ItemInstance(Tile::fence_spruce, 3), // + "W#W", // + "W#W", // + + definition('W', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE), '#', Item::stick)); + + // Birch fence (planks + sticks) + addShapedRecipe(ItemInstance(Tile::fence_birch, 3), // + "W#W", // + "W#W", // + + definition('W', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH), '#', Item::stick)); + + // Jungle fence (planks + sticks) + addShapedRecipe(ItemInstance(Tile::fence_jungle, 3), // + "W#W", // + "W#W", // + + definition('W', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE), '#', Item::stick)); + + // Wood slab variants + addShapedRecipe(ItemInstance(Tile::stoneSlabHalf, 6, StoneSlabTile::WOOD_SLAB), // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE))); + + addShapedRecipe(ItemInstance(Tile::stoneSlabHalf, 6, StoneSlabTile::WOOD_SLAB), // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH))); + + addShapedRecipe(ItemInstance(Tile::stoneSlabHalf, 6, StoneSlabTile::WOOD_SLAB), // + "###", // + + definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE))); + LOGI("%d recipes\n", (int)recipes.size()); } diff --git a/web-build/src/world/item/crafting/StructureRecipes.h b/web-build/src/world/item/crafting/StructureRecipes.h index 369373f2..b424eed0 100644 --- a/web-build/src/world/item/crafting/StructureRecipes.h +++ b/web-build/src/world/item/crafting/StructureRecipes.h @@ -8,6 +8,7 @@ #include "../../level/tile/Tile.h" #include "../../level/tile/SandStoneTile.h" #include "../../level/tile/StoneSlabTile.h" +#include "../../level/tile/StoneVariantTile.h" class StructureRecipes { @@ -88,12 +89,85 @@ class StructureRecipes definition('N', Item::netherQuartz)); - //r->addShapedRecipe(ItemInstance(Tile::redstoneLight, 1), // - // " R ", // - // "RGR", // - // " R ", // + r->addShapedRecipe(ItemInstance(Tile::redstoneLamp, 1), // + " R ", // + "RGR", // + " R ", // - // definition('R', Item::redStone, 'G', Tile::lightGem)); + definition('R', Item::redStone, 'G', Tile::lightGem)); + + // Polished stone variants + r->addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_GRANITE), // + "##", // + "##", // + + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE))); + + r->addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_DIORITE), // + "##", // + "##", // + + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE))); + + r->addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_ANDESITE), // + "##", // + "##", // + + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); + + // Polished Sandstone + r->addShapedRecipe(ItemInstance(Tile::polishedSandstone, 4), // + "##", // + "##", // + + definition('#', Tile::sandStone)); + + // Green Emerald Block + r->addShapedRecipe(ItemInstance(Tile::greenEmeraldBlock), // + "###", // + "###", // + "###", // + + definition('#', Item::greenEmerald)); + + // Redstone Block + r->addShapedRecipe(ItemInstance(Tile::redstoneBlock), // + "###", // + "###", // + "###", // + + definition('#', Item::redStone)); + + // Coal Block + r->addShapedRecipe(ItemInstance(Tile::coalBlock), // + "###", // + "###", // + "###", // + + definition('#', Item::coal)); + + // Nether Brick Fence + r->addShapedRecipe(ItemInstance(Tile::netherBrickFence, 6), // + "###", // + "###", // + + definition('#', Item::netherbrick)); + + // Hay Bale + r->addShapedRecipe(ItemInstance(Tile::hayBale), // + "###", // + "###", // + "###", // + + definition('#', Item::wheat)); + + // Slime Block + r->addShapedRecipe(ItemInstance(Tile::slimeBlock), // + "###", // + "###", // + "###", // + + definition('#', Item::slimeBall)); } }; From 39b92329f7bff44279177a07e85bed9b50201665 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:19:25 +0000 Subject: [PATCH 3/8] Add Slime and Enderman mob implementations, add mutton drops to Sheep - Add Slime (type ID 37): size variants (1/2/4), bouncing movement, splits into smaller slimes on death, drops slime balls, spawns below Y=40 - Add Enderman (type ID 38): 40 HP, 7 attack damage, teleportation, aggro when looked at, water damage, block pickup, drops ender pearls - Add ER_SLIME_RENDERER and ER_ENDERMAN_RENDERER to EntityRendererId - Register both mobs in MobFactory, MonsterInclude, and Biome spawn lists - Sheep now drops 0-2 raw mutton on death Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- web-build/src/world/entity/EntityRendererId.h | 4 +- web-build/src/world/entity/EntityTypes.h | 2 + web-build/src/world/entity/MobFactory.h | 6 + web-build/src/world/entity/animal/Sheep.cpp | 6 + .../src/world/entity/monster/Enderman.cpp | 244 ++++++++++++++++++ web-build/src/world/entity/monster/Enderman.h | 50 ++++ .../src/world/entity/monster/MonsterInclude.h | 2 + web-build/src/world/entity/monster/Slime.cpp | 136 ++++++++++ web-build/src/world/entity/monster/Slime.h | 42 +++ web-build/src/world/level/biome/Biome.cpp | 4 +- 10 files changed, 493 insertions(+), 3 deletions(-) create mode 100644 web-build/src/world/entity/monster/Enderman.cpp create mode 100644 web-build/src/world/entity/monster/Enderman.h create mode 100644 web-build/src/world/entity/monster/Slime.cpp create mode 100644 web-build/src/world/entity/monster/Slime.h diff --git a/web-build/src/world/entity/EntityRendererId.h b/web-build/src/world/entity/EntityRendererId.h index 3104b7c4..4b1cfa7d 100644 --- a/web-build/src/world/entity/EntityRendererId.h +++ b/web-build/src/world/entity/EntityRendererId.h @@ -22,7 +22,9 @@ enum EntityRendererId { ER_THROWNEGG_RENDERER, ER_SNOWBALL_RENDERER, ER_PAINTING_RENDERER, - ER_FALLINGTILE_RENDERER + ER_FALLINGTILE_RENDERER, + ER_SLIME_RENDERER, + ER_ENDERMAN_RENDERER }; #endif /*NET_MINECRAFT_WORLD_ENTITY__EntityRendererId_H__*/ diff --git a/web-build/src/world/entity/EntityTypes.h b/web-build/src/world/entity/EntityTypes.h index 7facc70c..6bf2a998 100644 --- a/web-build/src/world/entity/EntityTypes.h +++ b/web-build/src/world/entity/EntityTypes.h @@ -51,6 +51,8 @@ class MobTypes { static const int Skeleton = 34; static const int Spider = 35; static const int PigZombie = 36; + static const int Slime = 37; + static const int Enderman = 38; }; struct ParticleType { diff --git a/web-build/src/world/entity/MobFactory.h b/web-build/src/world/entity/MobFactory.h index 61edb1de..a712ee22 100644 --- a/web-build/src/world/entity/MobFactory.h +++ b/web-build/src/world/entity/MobFactory.h @@ -42,6 +42,12 @@ class MobFactory { case MobTypes::PigZombie: mob = new PigZombie(level); break; + case MobTypes::Slime: + mob = new Slime(level); + break; + case MobTypes::Enderman: + mob = new Enderman(level); + break; default: LOGE("Unknown mob type requested: %d\n", mobType); break; diff --git a/web-build/src/world/entity/animal/Sheep.cpp b/web-build/src/world/entity/animal/Sheep.cpp index 9039fa1d..9c3a2a59 100644 --- a/web-build/src/world/entity/animal/Sheep.cpp +++ b/web-build/src/world/entity/animal/Sheep.cpp @@ -174,6 +174,12 @@ void Sheep::dropDeathLoot(/* bool wasKilledByPlayer, int playerBonusLevel*/ ) // killing a non-sheared sheep will drop a single block of cloth spawnAtLocation(new ItemInstance(Tile::cloth->id, 1, getColor()), 0); } + + // Drop 0-2 raw mutton + int muttonCount = random.nextInt(3); + for (int i = 0; i < muttonCount; i++) { + spawnAtLocation(Item::mutton_raw->id, 1); + } } int Sheep::getDeathLoot() diff --git a/web-build/src/world/entity/monster/Enderman.cpp b/web-build/src/world/entity/monster/Enderman.cpp new file mode 100644 index 00000000..553697ab --- /dev/null +++ b/web-build/src/world/entity/monster/Enderman.cpp @@ -0,0 +1,244 @@ +#include "Enderman.h" + +#include "../../item/Item.h" +#include "../../level/Level.h" +#include "../../level/material/Material.h" +#include "../../level/tile/Tile.h" +#include "../../../util/Mth.h" +#include "../EntityTypes.h" +#include "../player/Player.h" +#include "../ai/goal/GoalSelector.h" +#include "../ai/control/JumpControl.h" +#include "../ai/goal/RandomStrollGoal.h" +#include "../ai/goal/MeleeAttackGoal.h" +#include "../ai/goal/target/NearestAttackableTargetGoal.h" +#include "../ai/goal/target/HurtByTargetGoal.h" + +Enderman::Enderman(Level* level) +: super(level), + carriedBlock(0), + teleportCooldown(0), + waterDamageTick(0), + isAngry(false) +{ + entityRendererId = ER_ENDERMAN_RENDERER; + this->textureName = "mob/enderman.png"; + + this->setSize(0.6f, 2.9f); + runSpeed = 0.5f; + attackDamage = 7; + + targetSelector = new GoalSelector(); + targetSelector->addGoal(1, new HurtByTargetGoal(this, false)); + + goalSelector = new GoalSelector(); + goalSelector->addGoal(2, new MeleeAttackGoal(this, runSpeed, false, 0)); + goalSelector->addGoal(7, new RandomStrollGoal(this, runSpeed)); + + moveControl = new MoveControl(this); + jumpControl = new JumpControl(this); +} + +Enderman::~Enderman() { + delete goalSelector; + delete targetSelector; + + delete moveControl; + delete jumpControl; +} + +int Enderman::getMaxHealth() { + return 40; +} + +void Enderman::aiStep() { + super::aiStep(); +} + +void Enderman::tick() { + super::tick(); + + if (level->isClientSide) return; + + // Take damage from water + if (++waterDamageTick >= 20) { + waterDamageTick = 0; + if (isInWater()) { + hurt(NULL, 1); + teleportRandomly(); + } + } + + // Try to teleport away if hurt + if (teleportCooldown > 0) { + teleportCooldown--; + } + + // If angry, occasionally teleport towards target + if (isAngry && attackTargetId != 0 && teleportCooldown <= 0) { + Entity* target = level->getEntity(attackTargetId); + if (target != NULL && distanceTo(target) > 4.0f) { + teleportTowards(target); + teleportCooldown = 30; + } + } + + // Pick up a random block occasionally + if (carriedBlock == 0 && random.nextInt(200) == 0) { + int bx = Mth::floor(x) + random.nextInt(3) - 1; + int by = Mth::floor(y) + random.nextInt(2); + int bz = Mth::floor(z) + random.nextInt(3) - 1; + int tile = level->getTile(bx, by, bz); + if (tile == ((Tile*)Tile::grass)->id || tile == ((Tile*)Tile::dirt)->id || tile == ((Tile*)Tile::sand)->id) { + carriedBlock = tile; + level->setTile(bx, by, bz, 0); + } + } +} + +int Enderman::getEntityTypeId() const { + return MobTypes::Enderman; +} + +void Enderman::die(Entity* source) { + // Place carried block back + if (carriedBlock != 0 && !level->isClientSide) { + int bx = Mth::floor(x); + int by = Mth::floor(y); + int bz = Mth::floor(z); + if (level->isEmptyTile(bx, by, bz)) { + level->setTile(bx, by, bz, carriedBlock); + } + carriedBlock = 0; + } + super::die(source); +} + +int Enderman::getAttackDamage(Entity* target) { + return attackDamage; +} + +bool Enderman::hurt(Entity* source, int dmg) { + if (super::hurt(source, dmg)) { + if (source != NULL) { + isAngry = true; + attackTargetId = source->entityId; + } + // Try to teleport when hurt + if (random.nextInt(3) == 0) { + teleportRandomly(); + } + return true; + } + return false; +} + +Entity* Enderman::findAttackTarget() { + Player* player = level->getNearestPlayer(this, 64); + if (player != NULL && isLookedAt(player)) { + isAngry = true; + return player; + } + if (isAngry) { + return super::findAttackTarget(); + } + return NULL; +} + +bool Enderman::isLookedAt(Entity* player) { + float dx = x - player->x; + float dy = (y + bbHeight) - (player->y + player->getHeadHeight()); + float dz = z - player->z; + float dist = Mth::sqrt(dx * dx + dy * dy + dz * dz); + if (dist > 64) return false; + + // Rough check: see if the player's look direction points at us + float lookX = -Mth::sin(player->yRot * Mth::DEGRAD) * Mth::cos(player->xRot * Mth::DEGRAD); + float lookY = -Mth::sin(player->xRot * Mth::DEGRAD); + float lookZ = Mth::cos(player->yRot * Mth::DEGRAD) * Mth::cos(player->xRot * Mth::DEGRAD); + + float ndx = dx / dist; + float ndy = dy / dist; + float ndz = dz / dist; + + float dot = lookX * ndx + lookY * ndy + lookZ * ndz; + return dot > 0.9f; +} + +void Enderman::checkHurtTarget(Entity* target, float distance) { + if (attackTime <= 0 && distance < 2.5f && target->bb.y1 > bb.y0 && target->bb.y0 < bb.y1) { + attackTime = getAttackTime(); + doHurtTarget(target); + } +} + +bool Enderman::teleportRandomly() { + float tx = x + (random.nextFloat() - 0.5f) * 32.0f; + float ty = y + (float)(random.nextInt(16) - 8); + float tz = z + (random.nextFloat() - 0.5f) * 32.0f; + return teleportTo(tx, ty, tz); +} + +bool Enderman::teleportTowards(Entity* target) { + float dx = target->x - x; + float dz = target->z - z; + float dist = Mth::sqrt(dx * dx + dz * dz); + if (dist < 1.0f) return false; + + float tx = x + (dx / dist) * 8.0f + (random.nextFloat() - 0.5f) * 4.0f; + float ty = y + (float)(random.nextInt(8) - 4); + float tz = z + (dz / dist) * 8.0f + (random.nextFloat() - 0.5f) * 4.0f; + return teleportTo(tx, ty, tz); +} + +bool Enderman::teleportTo(float tx, float ty, float tz) { + int bx = Mth::floor(tx); + int by = Mth::floor(ty); + int bz = Mth::floor(tz); + + // Find solid ground + if (by < 1) by = 1; + if (by > 120) by = 120; + + while (by > 1 && level->isEmptyTile(bx, by - 1, bz)) { + by--; + } + + if (!level->isEmptyTile(bx, by, bz) || !level->isEmptyTile(bx, by + 1, bz) || !level->isEmptyTile(bx, by + 2, bz)) { + return false; + } + + // Check not teleporting into water + if (level->getMaterial(bx, by, bz) == Material::water) { + return false; + } + + moveTo(tx, (float)by, tz, yRot, xRot); + + level->playSound(this, "mob.endermen.portal", 1.0f, 1.0f); + + return true; +} + +int Enderman::getDeathLoot() { + return Item::enderPearl->id; +} + +void Enderman::dropDeathLoot() { + int count = random.nextInt(2); // 0-1 + for (int i = 0; i < count; i++) { + spawnAtLocation(Item::enderPearl->id, 1); + } +} + +const char* Enderman::getAmbientSound() { + return "mob.endermen.idle"; +} + +std::string Enderman::getHurtSound() { + return "mob.endermen.hit"; +} + +std::string Enderman::getDeathSound() { + return "mob.endermen.death"; +} diff --git a/web-build/src/world/entity/monster/Enderman.h b/web-build/src/world/entity/monster/Enderman.h new file mode 100644 index 00000000..fb935e02 --- /dev/null +++ b/web-build/src/world/entity/monster/Enderman.h @@ -0,0 +1,50 @@ +#ifndef NET_MINECRAFT_WORLD_ENTITY_MONSTER__Enderman_H__ +#define NET_MINECRAFT_WORLD_ENTITY_MONSTER__Enderman_H__ + +#include "Monster.h" +#include + +class Level; +class Entity; + +class Enderman: public Monster +{ + typedef Monster super; +public: + Enderman(Level* level); + ~Enderman(); + + int getMaxHealth(); + void aiStep(); + void tick(); + virtual int getEntityTypeId() const; + virtual void die(Entity* source); + virtual int getAttackDamage(Entity* target); + bool hurt(Entity* source, int dmg); + + int getCarriedBlock() const { return carriedBlock; } + +protected: + int getDeathLoot(); + void dropDeathLoot(); + + Entity* findAttackTarget(); + void checkHurtTarget(Entity* target, float distance); + + const char* getAmbientSound(); + std::string getHurtSound(); + std::string getDeathSound(); + +private: + bool isLookedAt(Entity* player); + bool teleportRandomly(); + bool teleportTowards(Entity* target); + bool teleportTo(float tx, float ty, float tz); + + int carriedBlock; + int teleportCooldown; + int waterDamageTick; + bool isAngry; +}; + +#endif /*NET_MINECRAFT_WORLD_ENTITY_MONSTER__Enderman_H__*/ diff --git a/web-build/src/world/entity/monster/MonsterInclude.h b/web-build/src/world/entity/monster/MonsterInclude.h index c24b5a51..b9b7a439 100644 --- a/web-build/src/world/entity/monster/MonsterInclude.h +++ b/web-build/src/world/entity/monster/MonsterInclude.h @@ -2,8 +2,10 @@ #define NET_MINECRAFT_WORLD_ENTITY_MONSTER__MonsterInclude_H__ #include "Creeper.h" +#include "Enderman.h" #include "Monster.h" #include "Skeleton.h" +#include "Slime.h" #include "Spider.h" #include "Zombie.h" #include "PigZombie.h" diff --git a/web-build/src/world/entity/monster/Slime.cpp b/web-build/src/world/entity/monster/Slime.cpp new file mode 100644 index 00000000..18e038cb --- /dev/null +++ b/web-build/src/world/entity/monster/Slime.cpp @@ -0,0 +1,136 @@ +#include "Slime.h" + +#include "../../item/Item.h" +#include "../../level/Level.h" +#include "../../../util/Mth.h" +#include "../EntityTypes.h" +#include "../player/Player.h" + +Slime::Slime(Level* level) +: super(level), + slimeSize(1), + jumpDelay(0) +{ + entityRendererId = ER_SLIME_RENDERER; + this->textureName = "mob/slime.png"; + + int size = 1 << (random.nextInt(3)); // 1, 2, or 4 + initSize(size); +} + +Slime::Slime(Level* level, int size) +: super(level), + slimeSize(1), + jumpDelay(0) +{ + entityRendererId = ER_SLIME_RENDERER; + this->textureName = "mob/slime.png"; + + initSize(size); +} + +void Slime::initSize(int size) +{ + slimeSize = size; + setSize(0.6f * size, 0.6f * size); + health = getMaxHealth(); + attackDamage = size; + if (slimeSize <= 1) attackDamage = 0; +} + +void Slime::setSlimeSize(int size) +{ + initSize(size); +} + +int Slime::getMaxHealth() { + return slimeSize * slimeSize; +} + +void Slime::aiStep() { + super::aiStep(); +} + +void Slime::tick() { + super::tick(); + + if (!level->isClientSide) { + if (onGround && jumpDelay-- <= 0) { + jumpDelay = random.nextInt(20) + 10; + + Player* player = level->getNearestPlayer(this, 16); + if (player != NULL) { + float dx = player->x - x; + float dz = player->z - z; + float dist = Mth::sqrt(dx * dx + dz * dz); + if (dist > 0) { + xd += (dx / dist) * 0.2f * slimeSize; + zd += (dz / dist) * 0.2f * slimeSize; + } + } + yd = 0.42f; + } + } +} + +int Slime::getEntityTypeId() const { + return MobTypes::Slime; +} + +void Slime::die(Entity* source) { + if (!level->isClientSide && slimeSize > 1) { + int count = 2 + random.nextInt(3); + int newSize = slimeSize / 2; + if (newSize < 1) newSize = 1; + + for (int i = 0; i < count; i++) { + Slime* baby = new Slime(level, newSize); + baby->moveTo( + x + (random.nextFloat() - 0.5f) * slimeSize, + y + 0.5f, + z + (random.nextFloat() - 0.5f) * slimeSize, + random.nextFloat() * 360.0f, 0); + level->addEntity(baby); + } + } + super::die(source); +} + +bool Slime::canSpawn() { + // Slimes spawn below Y=40 or in swamp biomes + if (y < 40) { + return super::canSpawn(); + } + return false; +} + +int Slime::getDeathLoot() { + if (slimeSize == 1) + return Item::slimeBall->id; + return 0; +} + +void Slime::dropDeathLoot() { + if (slimeSize == 1) { + int count = random.nextInt(3); // 0-2 + for (int i = 0; i < count; i++) { + spawnAtLocation(Item::slimeBall->id, 1); + } + } +} + +const char* Slime::getAmbientSound() { + return "mob.slime"; +} + +std::string Slime::getHurtSound() { + return slimeSize > 1 ? "mob.slime" : "mob.slimesmall"; +} + +std::string Slime::getDeathSound() { + return slimeSize > 1 ? "mob.slime" : "mob.slimesmall"; +} + +float Slime::getWalkTargetValue(int x, int y, int z) { + return 0.5f; +} diff --git a/web-build/src/world/entity/monster/Slime.h b/web-build/src/world/entity/monster/Slime.h new file mode 100644 index 00000000..5dc13c83 --- /dev/null +++ b/web-build/src/world/entity/monster/Slime.h @@ -0,0 +1,42 @@ +#ifndef NET_MINECRAFT_WORLD_ENTITY_MONSTER__Slime_H__ +#define NET_MINECRAFT_WORLD_ENTITY_MONSTER__Slime_H__ + +#include "Monster.h" +#include + +class Level; + +class Slime: public Monster +{ + typedef Monster super; +public: + Slime(Level* level); + Slime(Level* level, int size); + + int getMaxHealth(); + void aiStep(); + void tick(); + virtual int getEntityTypeId() const; + virtual void die(Entity* source); + bool canSpawn(); + + int getSlimeSize() const { return slimeSize; } + void setSlimeSize(int size); + +protected: + int getDeathLoot(); + void dropDeathLoot(); + + const char* getAmbientSound(); + std::string getHurtSound(); + std::string getDeathSound(); + + float getWalkTargetValue(int x, int y, int z); + +private: + void initSize(int size); + int slimeSize; + int jumpDelay; +}; + +#endif /*NET_MINECRAFT_WORLD_ENTITY_MONSTER__Slime_H__*/ diff --git a/web-build/src/world/level/biome/Biome.cpp b/web-build/src/world/level/biome/Biome.cpp index d0a842a0..f2f015d7 100644 --- a/web-build/src/world/level/biome/Biome.cpp +++ b/web-build/src/world/level/biome/Biome.cpp @@ -41,8 +41,8 @@ Biome::Biome() _enemies.insert(_enemies.end(), MobSpawnerData(MobTypes::Zombie, 12, 2, 4)); _enemies.insert(_enemies.end(), MobSpawnerData(MobTypes::Skeleton, 6, 1, 3)); _enemies.insert(_enemies.end(), MobSpawnerData(MobTypes::Creeper, 4, 1, 1)); - //_enemies.insert(_enemies.end(), MobSpawnerData(Slime.class, 10, 4, 4)); - //_enemies.insert(_enemies.end(), MobSpawnerData(EnderMan.class, 1, 1, 4)); + _enemies.insert(_enemies.end(), MobSpawnerData(MobTypes::Slime, 10, 4, 4)); + _enemies.insert(_enemies.end(), MobSpawnerData(MobTypes::Enderman, 1, 1, 4)); // wolves are added to forests and taigas // _friendlies.insert(_friendlies.end(), new MobSpawnerData(Wolf.class, 2)); From 08d1adbc2ffa2c5d9fce1e2661f6c75b7cf776bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:22:23 +0000 Subject: [PATCH 4/8] Add stone variant ore veins and improve emerald ore generation - OreFeature: Add data value support via new constructor and setTileAndDataNoUpdate for blocks with data values - RandomLevelSource: Add granite, diorite, andesite veins (10/chunk, size 33, Y 0-80) using StoneVariantTile data values - RandomLevelSource: Update emerald ore to 1-2/chunk, cluster 3-5, Y 4-32 (was 1/chunk, size 7, Y 0-16) - Lapis lazuli ore verified present in generation Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- .../level/levelgen/RandomLevelSource.cpp | 33 +++++++++++++++++-- .../world/level/levelgen/feature/OreFeature.h | 15 ++++++++- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/web-build/src/world/level/levelgen/RandomLevelSource.cpp b/web-build/src/world/level/levelgen/RandomLevelSource.cpp index aa260cc7..7a6a3f29 100644 --- a/web-build/src/world/level/levelgen/RandomLevelSource.cpp +++ b/web-build/src/world/level/levelgen/RandomLevelSource.cpp @@ -10,6 +10,7 @@ #include "../material/Material.h" #include "../tile/Tile.h" #include "../tile/HeavyTile.h" +#include "../tile/StoneVariantTile.h" #include "../../../util/Random.h" const float RandomLevelSource::SNOW_CUTOFF = 0.5f; @@ -287,6 +288,31 @@ void RandomLevelSource::postProcess(ChunkSource* parent, int xt, int zt) { feature.place(level, &random, x, y, z); } + // Stone variant veins (granite, diorite, andesite) + for (int i = 0; i < 10; i++) { + int x = xo + random.nextInt(16); + int y = random.nextInt(80); + int z = zo + random.nextInt(16); + OreFeature feature(Tile::stoneVariant->id, StoneVariantTile::GRANITE, 33); + feature.place(level, &random, x, y, z); + } + + for (int i = 0; i < 10; i++) { + int x = xo + random.nextInt(16); + int y = random.nextInt(80); + int z = zo + random.nextInt(16); + OreFeature feature(Tile::stoneVariant->id, StoneVariantTile::DIORITE, 33); + feature.place(level, &random, x, y, z); + } + + for (int i = 0; i < 10; i++) { + int x = xo + random.nextInt(16); + int y = random.nextInt(80); + int z = zo + random.nextInt(16); + OreFeature feature(Tile::stoneVariant->id, StoneVariantTile::ANDESITE, 33); + feature.place(level, &random, x, y, z); + } + for (int i = 0; i < 20; i++) { int x = xo + random.nextInt(16); int y = random.nextInt(128); @@ -319,11 +345,12 @@ void RandomLevelSource::postProcess(ChunkSource* parent, int xt, int zt) { feature.place(level, &random, x, y, z); } - for (int i = 0; i < 1; i++) { + // Green emerald ore: 1-2 per chunk, cluster size 3-5, Y 4-32 + for (int i = 0; i < 1 + random.nextInt(2); i++) { int x = xo + random.nextInt(16); - int y = random.nextInt(16); + int y = 4 + random.nextInt(28); int z = zo + random.nextInt(16); - OreFeature feature(Tile::emeraldOre->id, 7); + OreFeature feature(Tile::emeraldOre->id, 3 + random.nextInt(3)); feature.place(level, &random, x, y, z); } diff --git a/web-build/src/world/level/levelgen/feature/OreFeature.h b/web-build/src/world/level/levelgen/feature/OreFeature.h index 9d143994..6523dfc6 100644 --- a/web-build/src/world/level/levelgen/feature/OreFeature.h +++ b/web-build/src/world/level/levelgen/feature/OreFeature.h @@ -12,11 +12,19 @@ class OreFeature: public Feature { int tile; + int data; int count; public: OreFeature(int tile, int count) { this->tile = tile; + this->data = 0; + this->count = count; + } + + OreFeature(int tile, int data, int count) { + this->tile = tile; + this->data = data; this->count = count; } @@ -60,7 +68,12 @@ class OreFeature: public Feature { for (int z2 = zt0; z2 <= zt1; z2++) { float zd = ((z2 + 0.5f) - zz) / (r / 2); if (xd * xd + yd * yd + zd * zd < 1) { - if (level->getTile(x2, y2, z2) == Tile::rock->id) level->setTileNoUpdate(x2, y2, z2, tile); + if (level->getTile(x2, y2, z2) == Tile::rock->id) { + if (data != 0) + level->setTileAndDataNoUpdate(x2, y2, z2, tile, data); + else + level->setTileNoUpdate(x2, y2, z2, tile); + } } } } From 97bcacf18093a406d427518e7b8e8af395589f02 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Apr 2026 01:10:41 +0000 Subject: [PATCH 5/8] Add wood variant door/sign items, fix inventory icons, populate creative inventory, add crafting recipes Agent-Logs-Url: https://github.com/sriail/MCPE-WASM/sessions/0825f6e6-369b-4496-a844-b64ae61af82d Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- .../client/renderer/entity/ItemRenderer.cpp | 2 +- .../src/world/entity/player/Inventory.cpp | 109 ++++++++++++ web-build/src/world/item/DoorItem.h | 16 +- web-build/src/world/item/Item.cpp | 18 ++ web-build/src/world/item/Item.h | 8 + web-build/src/world/item/SignItem.h | 23 ++- web-build/src/world/item/crafting/Recipes.cpp | 167 +++++++++++++++++- 7 files changed, 330 insertions(+), 13 deletions(-) diff --git a/web-build/src/client/renderer/entity/ItemRenderer.cpp b/web-build/src/client/renderer/entity/ItemRenderer.cpp index 393ef22c..f89dd566 100644 --- a/web-build/src/client/renderer/entity/ItemRenderer.cpp +++ b/web-build/src/client/renderer/entity/ItemRenderer.cpp @@ -135,7 +135,7 @@ static const signed short _155[] = {34, 36, 35, -1, -1, -1, -1, -1, -1, -1, -1, static const signed short _263[] = {230, 151, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; static const signed short _351[] = {-1, 152, 154, -1, 193, 215, 216, -1, -1, 217, 218, 219, 220, 221, 222, 144}; -static const signed short _mapper[] = {-1, 7, 9, 8, 0, 5, -2, -1, -1, -1, -1, -1, 14, 15, 39, 38, 37, -2, -2, -1, 49, 41, 46, -1, -2, -1, -1, -1, -1, -1, 235, -1, -1, -1, -1, -2, -1, 134, 135, 136, 137, 43, 44, -1, -2, 6, 76, 71, 4, 47, 129, -1, -1, 22, 74, -1, 40, 45, 72, -1, -1, 75, -1, -1, -1, 128, -1, 21, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 48, 77, 10, 236, -1, 69, -1, 20, -1, 50, -1, -1, -1, -1, -1, -1, 68, -1, -2, -1, -1, -1, 130, 78, -1, -1, -1, 70, 23, 25, -1, -1, 19, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, 51, -1, -1, -1, -1, -1, 82, -1, -1, 174, 173, 175, 231, 234, 147, 190, -2, 153, 150, 149, 146, 185, 166, 164, 167, 186, 170, 169, 171, 187, 177, 176, 178, 165, 195, 194, 188, 181, 180, 182, 189, 191, 228, 168, 172, 145, 179, 183, 142, 233, 232, 198, 200, 201, 202, -1, -1, -1, -1, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 192, 156, 157, 133, -1, 148, 131, -1, -1, -1, -1, -1, -1, -1, 226, -1, 199, -1, 159, 158, 138, 224, 225, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -2, 223, 229, -1, 132, -1, -1, -1, 184, 196, -1, 143, 160, 161, 162, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, 197}; +static const signed short _mapper[] = {-1, 7, 9, 8, 0, 5, -2, -1, -1, -1, -1, -1, 14, 15, 39, 38, 37, -2, -2, -1, 49, 41, 46, -1, -2, -1, -1, -1, -1, -1, 235, -1, -1, -1, -1, -2, -1, 134, 135, 136, 137, 43, 44, -1, -2, 6, 76, 71, 4, 47, 129, -1, -1, 22, 74, -1, 40, 45, 72, -1, -1, 75, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, -1, -1, 48, 77, 10, 236, -1, 69, -1, 20, -1, 50, -1, -1, -1, -1, -1, -1, 68, -1, -2, -1, -1, -1, 130, 78, -1, -1, -1, 70, 23, 25, -1, -1, 19, -1, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 73, -1, 51, -1, -1, -1, -1, -1, 82, -1, -1, 174, 173, 175, 231, 234, 147, 190, -2, 153, 150, 149, 146, 185, 166, 164, 167, 186, 170, 169, 171, 187, 177, 176, 178, 165, 195, 194, 188, 181, 180, 182, 189, 191, 228, 168, 172, 145, 179, 183, 142, 233, 232, 198, 200, 201, 202, -1, -1, -1, -1, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 192, 156, 157, 133, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 226, -1, 199, -1, 159, 158, 138, 224, 225, -1, -1, -1, -1, -1, -1, -1, 227, -1, -1, -2, 223, 229, -1, 132, -1, -1, -1, 184, 196, -1, 143, 160, 161, 162, 163, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, 197}; #define IRMAPCASE(x) case x: return _##x [item->getAuxValue() & 15] diff --git a/web-build/src/world/entity/player/Inventory.cpp b/web-build/src/world/entity/player/Inventory.cpp index 35a7263b..aeb871cd 100644 --- a/web-build/src/world/entity/player/Inventory.cpp +++ b/web-build/src/world/entity/player/Inventory.cpp @@ -3,6 +3,8 @@ #include "../../level/tile/QuartzBlockTile.h" #include "../../level/tile/TreeTile.h" #include "../../level/tile/StoneSlabTile.h" +#include "../../level/tile/StoneVariantTile.h" +#include "../../level/tile/WoodPlanks.h" #include "../../item/DyePowderItem.h" #include "../../item/crafting/Recipe.h" #include "../../item/CoalItem.h" @@ -252,6 +254,113 @@ void Inventory::setupDefault() { #endif addItem(new ItemInstance(Item::bow)); addItem(new ItemInstance(Item::sign)); + + // --- World & Block System Overhaul: new blocks and items --- + + // Stone variants + addItem(new ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE)); + addItem(new ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_GRANITE)); + addItem(new ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE)); + addItem(new ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_DIORITE)); + addItem(new ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE)); + addItem(new ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_ANDESITE)); + + // Stone variant stairs + addItem(new ItemInstance(Tile::stairs_granite)); + addItem(new ItemInstance(Tile::stairs_polishedGranite)); + addItem(new ItemInstance(Tile::stairs_diorite)); + addItem(new ItemInstance(Tile::stairs_polishedDiorite)); + addItem(new ItemInstance(Tile::stairs_andesite)); + addItem(new ItemInstance(Tile::stairs_polishedAndesite)); + + // Stone variant slabs + addItem(new ItemInstance(Tile::graniteSlabHalf)); + addItem(new ItemInstance(Tile::polishedGraniteSlabHalf)); + addItem(new ItemInstance(Tile::dioriteSlabHalf)); + addItem(new ItemInstance(Tile::polishedDioriteSlabHalf)); + addItem(new ItemInstance(Tile::andesiteSlabHalf)); + addItem(new ItemInstance(Tile::polishedAndesiteSlabHalf)); + + // Stone variant walls + addItem(new ItemInstance(Tile::wall_granite)); + addItem(new ItemInstance(Tile::wall_diorite)); + addItem(new ItemInstance(Tile::wall_andesite)); + + // Sandstone variants + addItem(new ItemInstance(Tile::sandstoneSlabHalf)); + addItem(new ItemInstance(Tile::wall_sandstone)); + addItem(new ItemInstance(Tile::polishedSandstone)); + addItem(new ItemInstance(Tile::stairs_polishedSandstone)); + addItem(new ItemInstance(Tile::polishedSandstoneSlabHalf)); + + // Smooth stone + addItem(new ItemInstance(Tile::smoothStone)); + addItem(new ItemInstance(Tile::smoothStoneSlabHalf)); + + // New ores & ore blocks + addItem(new ItemInstance(Tile::greenEmeraldOre)); + addItem(new ItemInstance(Tile::greenEmeraldBlock)); + addItem(new ItemInstance(Tile::redstoneBlock)); + addItem(new ItemInstance(Tile::coalBlock)); + addItem(new ItemInstance(Tile::netherQuartzOre)); + + // Nether brick extras + addItem(new ItemInstance(Tile::netherBrickFence)); + addItem(new ItemInstance(Tile::wall_netherBrick)); + addItem(new ItemInstance(Tile::netherBrickSlabHalf)); + + // Redstone & mechanical + addItem(new ItemInstance(Tile::redstoneLamp)); + addItem(new ItemInstance(Tile::piston)); + addItem(new ItemInstance(Tile::stickyPiston)); + addItem(new ItemInstance(Tile::slimeBlock)); + addItem(new ItemInstance(Item::redStone)); + addItem(new ItemInstance(Item::diode)); + + // Wood variant planks + addItem(new ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE)); + addItem(new ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH)); + addItem(new ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE)); + + // Spruce wood set + addItem(new ItemInstance(Tile::stairs_spruce)); + addItem(new ItemInstance(Tile::fence_spruce)); + addItem(new ItemInstance(Tile::fenceGate_spruce)); + addItem(new ItemInstance(Item::door_spruce)); + addItem(new ItemInstance(Tile::trapdoor_spruce)); + addItem(new ItemInstance(Item::sign_spruce)); + + // Birch wood set + addItem(new ItemInstance(Tile::stairs_birch)); + addItem(new ItemInstance(Tile::fence_birch)); + addItem(new ItemInstance(Tile::fenceGate_birch)); + addItem(new ItemInstance(Item::door_birch)); + addItem(new ItemInstance(Tile::trapdoor_birch)); + addItem(new ItemInstance(Item::sign_birch)); + + // Jungle wood set + addItem(new ItemInstance(Tile::jungleLog)); + addItem(new ItemInstance(Tile::stairs_jungle)); + addItem(new ItemInstance(Tile::fence_jungle)); + addItem(new ItemInstance(Tile::fenceGate_jungle)); + addItem(new ItemInstance(Item::door_jungle)); + addItem(new ItemInstance(Tile::trapdoor_jungle)); + addItem(new ItemInstance(Item::sign_jungle)); + addItem(new ItemInstance((Tile*)Tile::jungleLeaves)); + addItem(new ItemInstance(Tile::jungleSapling)); + + // Terrain & farming + addItem(new ItemInstance(Tile::soulSand)); + addItem(new ItemInstance(Tile::hayBale)); + + // New items + addItem(new ItemInstance(Item::greenEmerald)); + addItem(new ItemInstance(Item::enderPearl)); + addItem(new ItemInstance(Item::slimeBall)); + addItem(new ItemInstance(Item::cocoaBeans)); + addItem(new ItemInstance(Item::cookie)); + addItem(new ItemInstance(Item::mutton_raw)); + addItem(new ItemInstance(Item::mutton_cooked)); } else { #if defined(WIN32) // Survival diff --git a/web-build/src/world/item/DoorItem.h b/web-build/src/world/item/DoorItem.h index 97373c36..19fb1138 100644 --- a/web-build/src/world/item/DoorItem.h +++ b/web-build/src/world/item/DoorItem.h @@ -16,10 +16,21 @@ class DoorItem: public Item { typedef Item super; const Material* material; + Tile* doorTile; // specific door tile to place (NULL = auto-detect from material) public: DoorItem(int id, const Material* material) : super(id), - material(material) + material(material), + doorTile(NULL) + { + maxDamage = 64; + maxStackSize = 1; + } + + DoorItem(int id, const Material* material, Tile* specificDoorTile) + : super(id), + material(material), + doorTile(specificDoorTile) { maxDamage = 64; maxStackSize = 1; @@ -31,7 +42,8 @@ class DoorItem: public Item Tile* tile; - if (material == Material::wood) tile = Tile::door_wood; + if (doorTile != NULL) tile = doorTile; + else if (material == Material::wood) tile = Tile::door_wood; else tile = Tile::door_iron; //if (!player->mayUseItemAt(x, y, z, face, instance) || !player->mayUseItemAt(x, y + 1, z, face, instance)) return false; if (!tile->mayPlace(level, x, y, z)) return false; diff --git a/web-build/src/world/item/Item.cpp b/web-build/src/world/item/Item.cpp index 72b89384..3a469fea 100644 --- a/web-build/src/world/item/Item.cpp +++ b/web-build/src/world/item/Item.cpp @@ -158,6 +158,14 @@ Item* Item::mutton_cooked = NULL; Item* Item::cookie = NULL; Item* Item::cocoaBeans = NULL; +// Wood variant doors and signs +Item* Item::door_spruce = NULL; +Item* Item::door_birch = NULL; +Item* Item::door_jungle = NULL; +Item* Item::sign_spruce = NULL; +Item* Item::sign_birch = NULL; +Item* Item::sign_jungle = NULL; + //Item* Item::record_01 = NULL; //Item* Item::record_02 = NULL; @@ -297,6 +305,16 @@ void Item::initItems() { Item::cookie = (new FoodItem(155, 2, false))->setIcon(12, 5)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("cookie"); Item::cocoaBeans = (new Item(156))->setIcon(14, 5)->setCategory(ItemCategory::Decorations)->setDescriptionId("cocoaBeans"); + // Wood variant door items (IDs 157-159) + Item::door_spruce = (new DoorItem(157, Material::wood, Tile::door_spruce))->setIcon(11, 2)->setCategory(ItemCategory::Structures)->setDescriptionId("doorSpruce"); + Item::door_birch = (new DoorItem(158, Material::wood, Tile::door_birch))->setIcon(11, 2)->setCategory(ItemCategory::Structures)->setDescriptionId("doorBirch"); + Item::door_jungle = (new DoorItem(159, Material::wood, Tile::door_jungle))->setIcon(11, 2)->setCategory(ItemCategory::Structures)->setDescriptionId("doorJungle"); + + // Wood variant sign items (IDs 160-162) + Item::sign_spruce = (new SignItem(160, Tile::sign_spruce, Tile::wallSign_spruce))->setIcon(10, 2)->setCategory(ItemCategory::Decorations)->setDescriptionId("signSpruce"); + Item::sign_birch = (new SignItem(161, Tile::sign_birch, Tile::wallSign_birch))->setIcon(10, 2)->setCategory(ItemCategory::Decorations)->setDescriptionId("signBirch"); + Item::sign_jungle = (new SignItem(162, Tile::sign_jungle, Tile::wallSign_jungle))->setIcon(10, 2)->setCategory(ItemCategory::Decorations)->setDescriptionId("signJungle"); + //Item::record_01 = (new RecordingItem(2000, "13"))->setIcon(0, 15)->setCategory(ItemCategory::Decorations)->setDescriptionId("record"); //Item::record_02 = (new RecordingItem(2001, "cat"))->setIcon(1, 15)->setCategory(ItemCategory::Decorations)->setDescriptionId("record"); Item::camera = (new CameraItem(200))->setIcon(2, 15)->setCategory(ItemCategory::Decorations)->setDescriptionId("camera"); diff --git a/web-build/src/world/item/Item.h b/web-build/src/world/item/Item.h index e2b7e50f..cea0e3db 100644 --- a/web-build/src/world/item/Item.h +++ b/web-build/src/world/item/Item.h @@ -208,6 +208,14 @@ class Item static Item* cookie; static Item* cocoaBeans; + // Wood variant doors and signs + static Item* door_spruce; + static Item* door_birch; + static Item* door_jungle; + static Item* sign_spruce; + static Item* sign_birch; + static Item* sign_jungle; + static Item* record_01; static Item* record_02; diff --git a/web-build/src/world/item/SignItem.h b/web-build/src/world/item/SignItem.h index 5e05653b..a21fb871 100644 --- a/web-build/src/world/item/SignItem.h +++ b/web-build/src/world/item/SignItem.h @@ -11,9 +11,21 @@ class SignItem: public Item { typedef Item super; + Tile* signStanding; // standing sign tile (NULL = default oak) + Tile* signWall; // wall sign tile (NULL = default oak) public: SignItem(int id) - : super(id) + : super(id), + signStanding(NULL), + signWall(NULL) + { + maxStackSize = 16; + } + + SignItem(int id, Tile* standingSign, Tile* wallSign) + : super(id), + signStanding(standingSign), + signWall(wallSign) { maxStackSize = 16; } @@ -30,14 +42,17 @@ class SignItem: public Item if (face == 4) x--; if (face == 5) x++; + Tile* standTile = signStanding ? signStanding : Tile::sign; + Tile* wallTile = signWall ? signWall : Tile::wallSign; + //if (!player->mayUseItemAt(x, y, z, face, instance)) return false; - if (!Tile::sign->mayPlace(level, x, y, z)) return false; + if (!standTile->mayPlace(level, x, y, z)) return false; if (face == 1) { int rot = Mth::floor(((player->yRot + 180) * 16) / 360 + 0.5f) & 15; - level->setTileAndData(x, y, z, Tile::sign->id, rot); + level->setTileAndData(x, y, z, standTile->id, rot); } else { - level->setTileAndData(x, y, z, Tile::wallSign->id, face); + level->setTileAndData(x, y, z, wallTile->id, face); } instance->count--; diff --git a/web-build/src/world/item/crafting/Recipes.cpp b/web-build/src/world/item/crafting/Recipes.cpp index 71f0a7eb..357828d8 100644 --- a/web-build/src/world/item/crafting/Recipes.cpp +++ b/web-build/src/world/item/crafting/Recipes.cpp @@ -13,6 +13,7 @@ #include "../CoalItem.h" #include "../../level/tile/StoneSlabTile.h" #include "../../level/tile/WoodPlanks.h" +#include "../../level/tile/StoneVariantTile.h" /*static*/ Recipes* Recipes::instance = NULL; @@ -176,21 +177,21 @@ Recipes::Recipes() definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::OAK))); - addShapedRecipe(ItemInstance(Item::door_wood, 3), // + addShapedRecipe(ItemInstance(Item::door_spruce, 3), // "##", // "##", // "##", // definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE))); - addShapedRecipe(ItemInstance(Item::door_wood, 3), // + addShapedRecipe(ItemInstance(Item::door_birch, 3), // "##", // "##", // "##", // definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH))); - addShapedRecipe(ItemInstance(Item::door_wood, 3), // + addShapedRecipe(ItemInstance(Item::door_jungle, 3), // "##", // "##", // "##", // @@ -235,21 +236,21 @@ Recipes::Recipes() definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::OAK), 'X', Item::stick)); - addShapedRecipe(ItemInstance(Item::sign, 3), // + addShapedRecipe(ItemInstance(Item::sign_spruce, 3), // "###", // "###", // " X ", // definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::SPRUCE), 'X', Item::stick)); - addShapedRecipe(ItemInstance(Item::sign, 3), // + addShapedRecipe(ItemInstance(Item::sign_birch, 3), // "###", // "###", // " X ", // definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::BIRCH), 'X', Item::stick)); - addShapedRecipe(ItemInstance(Item::sign, 3), // + addShapedRecipe(ItemInstance(Item::sign_jungle, 3), // "###", // "###", // " X ", // @@ -623,6 +624,160 @@ Recipes::Recipes() definition('#', ItemInstance(Tile::wood, 1, WoodPlanks::JUNGLE))); + // --- World & Block System Overhaul: new crafting recipes --- + + // Stone variant stairs + addShapedRecipe(ItemInstance(Tile::stairs_granite, 4), + "# ", "## ", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE))); + + addShapedRecipe(ItemInstance(Tile::stairs_polishedGranite, 4), + "# ", "## ", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_GRANITE))); + + addShapedRecipe(ItemInstance(Tile::stairs_diorite, 4), + "# ", "## ", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE))); + + addShapedRecipe(ItemInstance(Tile::stairs_polishedDiorite, 4), + "# ", "## ", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_DIORITE))); + + addShapedRecipe(ItemInstance(Tile::stairs_andesite, 4), + "# ", "## ", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); + + addShapedRecipe(ItemInstance(Tile::stairs_polishedAndesite, 4), + "# ", "## ", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_ANDESITE))); + + // Stone variant slabs + addShapedRecipe(ItemInstance(Tile::graniteSlabHalf, 6), + "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE))); + + addShapedRecipe(ItemInstance(Tile::polishedGraniteSlabHalf, 6), + "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_GRANITE))); + + addShapedRecipe(ItemInstance(Tile::dioriteSlabHalf, 6), + "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE))); + + addShapedRecipe(ItemInstance(Tile::polishedDioriteSlabHalf, 6), + "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_DIORITE))); + + addShapedRecipe(ItemInstance(Tile::andesiteSlabHalf, 6), + "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); + + addShapedRecipe(ItemInstance(Tile::polishedAndesiteSlabHalf, 6), + "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::POLISHED_ANDESITE))); + + // Stone variant walls + addShapedRecipe(ItemInstance(Tile::wall_granite, 6), + "###", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE))); + + addShapedRecipe(ItemInstance(Tile::wall_diorite, 6), + "###", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE))); + + addShapedRecipe(ItemInstance(Tile::wall_andesite, 6), + "###", "###", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); + + // Polished stone recipes (4 base → 4 polished in 2x2) + addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_GRANITE), + "##", "##", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE))); + + addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_DIORITE), + "##", "##", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE))); + + addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_ANDESITE), + "##", "##", + definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); + + // Sandstone slabs & wall + addShapedRecipe(ItemInstance(Tile::sandstoneSlabHalf, 6), + "###", + definition('#', Tile::sandStone)); + + addShapedRecipe(ItemInstance(Tile::wall_sandstone, 6), + "###", "###", + definition('#', Tile::sandStone)); + + addShapedRecipe(ItemInstance(Tile::polishedSandstone, 4), + "##", "##", + definition('#', Tile::sandStone)); + + addShapedRecipe(ItemInstance(Tile::stairs_polishedSandstone, 4), + "# ", "## ", "###", + definition('#', Tile::polishedSandstone)); + + addShapedRecipe(ItemInstance(Tile::polishedSandstoneSlabHalf, 6), + "###", + definition('#', Tile::polishedSandstone)); + + // Nether brick extras + addShapedRecipe(ItemInstance(Tile::netherBrickFence, 6), + "###", "###", + definition('#', Tile::netherBrick)); + + addShapedRecipe(ItemInstance(Tile::wall_netherBrick, 6), + "###", "###", + definition('#', Item::netherbrick)); + + addShapedRecipe(ItemInstance(Tile::netherBrickSlabHalf, 6), + "###", + definition('#', Tile::netherBrick)); + + addShapedRecipe(ItemInstance(Tile::stairs_netherBricks, 4), + "# ", "## ", "###", + definition('#', Tile::netherBrick)); + + // Smooth stone slab + addShapedRecipe(ItemInstance(Tile::smoothStoneSlabHalf, 6), + "###", + definition('#', Tile::smoothStone)); + + // Ore blocks + addShapedRecipe(ItemInstance(Tile::greenEmeraldBlock, 1), + "###", "###", "###", + definition('#', Item::greenEmerald)); + + addShapedRecipe(ItemInstance(Tile::redstoneBlock, 1), + "###", "###", "###", + definition('#', Item::redStone)); + + addShapedRecipe(ItemInstance(Tile::coalBlock, 1), + "###", "###", "###", + definition('#', Item::coal)); + + // Redstone lamp + addShapedRecipe(ItemInstance(Tile::redstoneLamp, 1), + " R ", "RGR", " R ", + definition('R', Item::redStone, 'G', Tile::lightGem)); + + // Slime block + addShapedRecipe(ItemInstance(Tile::slimeBlock, 1), + "###", "###", "###", + definition('#', Item::slimeBall)); + + // Hay bale + addShapedRecipe(ItemInstance(Tile::hayBale, 1), + "###", "###", "###", + definition('#', Item::wheat)); + + // Cookie + addShapedRecipe(ItemInstance(Item::cookie, 8), + "#X#", + definition('#', Item::wheat, 'X', Item::cocoaBeans)); + LOGI("%d recipes\n", (int)recipes.size()); } From ef4e1c7c377c716cfdc3704ac54c72030a682a3f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Apr 2026 01:18:31 +0000 Subject: [PATCH 6/8] Fix HayBaleTile material, door/sign drops for wood variants, remove duplicate recipes Agent-Logs-Url: https://github.com/sriail/MCPE-WASM/sessions/0825f6e6-369b-4496-a844-b64ae61af82d Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- web-build/src/world/item/crafting/Recipes.cpp | 53 ------------------- web-build/src/world/level/tile/DoorTile.cpp | 4 ++ web-build/src/world/level/tile/HayBaleTile.h | 2 +- web-build/src/world/level/tile/SignTile.h | 4 ++ 4 files changed, 9 insertions(+), 54 deletions(-) diff --git a/web-build/src/world/item/crafting/Recipes.cpp b/web-build/src/world/item/crafting/Recipes.cpp index 357828d8..4376487b 100644 --- a/web-build/src/world/item/crafting/Recipes.cpp +++ b/web-build/src/world/item/crafting/Recipes.cpp @@ -689,19 +689,6 @@ Recipes::Recipes() "###", "###", definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); - // Polished stone recipes (4 base → 4 polished in 2x2) - addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_GRANITE), - "##", "##", - definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::GRANITE))); - - addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_DIORITE), - "##", "##", - definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::DIORITE))); - - addShapedRecipe(ItemInstance(Tile::stoneVariant, 4, StoneVariantTile::POLISHED_ANDESITE), - "##", "##", - definition('#', ItemInstance(Tile::stoneVariant, 1, StoneVariantTile::ANDESITE))); - // Sandstone slabs & wall addShapedRecipe(ItemInstance(Tile::sandstoneSlabHalf, 6), "###", @@ -711,10 +698,6 @@ Recipes::Recipes() "###", "###", definition('#', Tile::sandStone)); - addShapedRecipe(ItemInstance(Tile::polishedSandstone, 4), - "##", "##", - definition('#', Tile::sandStone)); - addShapedRecipe(ItemInstance(Tile::stairs_polishedSandstone, 4), "# ", "## ", "###", definition('#', Tile::polishedSandstone)); @@ -724,10 +707,6 @@ Recipes::Recipes() definition('#', Tile::polishedSandstone)); // Nether brick extras - addShapedRecipe(ItemInstance(Tile::netherBrickFence, 6), - "###", "###", - definition('#', Tile::netherBrick)); - addShapedRecipe(ItemInstance(Tile::wall_netherBrick, 6), "###", "###", definition('#', Item::netherbrick)); @@ -736,43 +715,11 @@ Recipes::Recipes() "###", definition('#', Tile::netherBrick)); - addShapedRecipe(ItemInstance(Tile::stairs_netherBricks, 4), - "# ", "## ", "###", - definition('#', Tile::netherBrick)); - // Smooth stone slab addShapedRecipe(ItemInstance(Tile::smoothStoneSlabHalf, 6), "###", definition('#', Tile::smoothStone)); - // Ore blocks - addShapedRecipe(ItemInstance(Tile::greenEmeraldBlock, 1), - "###", "###", "###", - definition('#', Item::greenEmerald)); - - addShapedRecipe(ItemInstance(Tile::redstoneBlock, 1), - "###", "###", "###", - definition('#', Item::redStone)); - - addShapedRecipe(ItemInstance(Tile::coalBlock, 1), - "###", "###", "###", - definition('#', Item::coal)); - - // Redstone lamp - addShapedRecipe(ItemInstance(Tile::redstoneLamp, 1), - " R ", "RGR", " R ", - definition('R', Item::redStone, 'G', Tile::lightGem)); - - // Slime block - addShapedRecipe(ItemInstance(Tile::slimeBlock, 1), - "###", "###", "###", - definition('#', Item::slimeBall)); - - // Hay bale - addShapedRecipe(ItemInstance(Tile::hayBale, 1), - "###", "###", "###", - definition('#', Item::wheat)); - // Cookie addShapedRecipe(ItemInstance(Item::cookie, 8), "#X#", diff --git a/web-build/src/world/level/tile/DoorTile.cpp b/web-build/src/world/level/tile/DoorTile.cpp index 6b6e9625..79c12078 100644 --- a/web-build/src/world/level/tile/DoorTile.cpp +++ b/web-build/src/world/level/tile/DoorTile.cpp @@ -191,6 +191,10 @@ void DoorTile::neighborChanged(Level* level, int x, int y, int z, int type) { int DoorTile::getResource(int data, Random* random) { if ((data & 8) != 0) return 0; if (material == Material::metal) return Item::door_iron->id; + // Return correct wood variant door item + if (this == Tile::door_spruce) return Item::door_spruce->id; + if (this == Tile::door_birch) return Item::door_birch->id; + if (this == Tile::door_jungle) return Item::door_jungle->id; return Item::door_wood->id; } diff --git a/web-build/src/world/level/tile/HayBaleTile.h b/web-build/src/world/level/tile/HayBaleTile.h index c71e8e2e..c5d40d4e 100644 --- a/web-build/src/world/level/tile/HayBaleTile.h +++ b/web-build/src/world/level/tile/HayBaleTile.h @@ -10,7 +10,7 @@ class HayBaleTile : public Tile { int topTex; HayBaleTile(int id, int sideTex, int topBottomTex) - : super(id, sideTex, Material::grass), + : super(id, sideTex, Material::plant), topTex(topBottomTex) { } diff --git a/web-build/src/world/level/tile/SignTile.h b/web-build/src/world/level/tile/SignTile.h index 3b2e34c9..96ba9a59 100644 --- a/web-build/src/world/level/tile/SignTile.h +++ b/web-build/src/world/level/tile/SignTile.h @@ -82,6 +82,10 @@ class SignTile: public EntityTile /*@Override*/ int getResource(int data, Random* random/*, int playerBonusLevel*/) { + // Return correct wood variant sign item + if (this == Tile::sign_spruce || this == Tile::wallSign_spruce) return Item::sign_spruce->id; + if (this == Tile::sign_birch || this == Tile::wallSign_birch) return Item::sign_birch->id; + if (this == Tile::sign_jungle || this == Tile::wallSign_jungle) return Item::sign_jungle->id; return Item::sign->id; } From cfcb3c00551ab753f5d2ef5a192b344aad38cac4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Apr 2026 01:22:59 +0000 Subject: [PATCH 7/8] Fix duplicate cookie recipe, fix Slime double-drop potential Agent-Logs-Url: https://github.com/sriail/MCPE-WASM/sessions/0825f6e6-369b-4496-a844-b64ae61af82d Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- web-build/src/world/entity/monster/Slime.cpp | 3 +-- web-build/src/world/item/crafting/Recipes.cpp | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/web-build/src/world/entity/monster/Slime.cpp b/web-build/src/world/entity/monster/Slime.cpp index 18e038cb..a2192477 100644 --- a/web-build/src/world/entity/monster/Slime.cpp +++ b/web-build/src/world/entity/monster/Slime.cpp @@ -105,8 +105,7 @@ bool Slime::canSpawn() { } int Slime::getDeathLoot() { - if (slimeSize == 1) - return Item::slimeBall->id; + // Return 0 since dropDeathLoot() handles slime ball drops directly return 0; } diff --git a/web-build/src/world/item/crafting/Recipes.cpp b/web-build/src/world/item/crafting/Recipes.cpp index 4376487b..e23d7ee1 100644 --- a/web-build/src/world/item/crafting/Recipes.cpp +++ b/web-build/src/world/item/crafting/Recipes.cpp @@ -720,11 +720,6 @@ Recipes::Recipes() "###", definition('#', Tile::smoothStone)); - // Cookie - addShapedRecipe(ItemInstance(Item::cookie, 8), - "#X#", - definition('#', Item::wheat, 'X', Item::cocoaBeans)); - LOGI("%d recipes\n", (int)recipes.size()); } From 68aa411ac475077a81d5c1f4575061e6a5071010 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 13 Apr 2026 05:11:37 +0000 Subject: [PATCH 8/8] Fix texture atlas: add missing textures, fix conflicts, update terrain.png and items.png - Updated terrain.png with proper MCPE-style textures for new blocks: - Granite and polished granite (row 15, cols 2-3) - Green emerald ore/block (row 10, cols 9-10) - Redstone block (row 10, col 11) - Coal block (row 10, col 12) - Redstone lamp off/on (row 13, cols 3-4) - Slime block (row 12, col 3) - Hay bale side/top (row 9, cols 10-11) - Spruce/birch/jungle wood planks (row 8, cols 3-5) - Cocoa block (row 10, col 8) - Piston and sticky piston (row 6, cols 11-12) - Repeater off/on (row 11, cols 0-1) - Comparator off/on (row 11, cols 2-3) - Added missing green emerald sprite to items.png at (7,11) - Fixed repeater/comparator texture conflict with spruce planks by moving to row 11 in terrain atlas - Fixed Item::diode to use Tile::repeater_off instead of NULL diode_off Agent-Logs-Url: https://github.com/sriail/MCPE-WASM/sessions/84abe9c2-a29a-4d30-99af-48010da88d71 Co-authored-by: sriail <225764385+sriail@users.noreply.github.com> --- web-build/data/images/gui/items.png | Bin 29755 -> 30907 bytes web-build/data/images/terrain.png | Bin 101708 -> 103045 bytes web-build/src/world/item/Item.cpp | 2 +- web-build/src/world/level/tile/Tile.cpp | 9 +++++---- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/web-build/data/images/gui/items.png b/web-build/data/images/gui/items.png index ace2e9a2f8ea31620e077cbb8d2424667fa62172..e2686abab423f07edb53213dca9d54e399f30026 100644 GIT binary patch literal 30907 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�n~ckZS;F1%uy+Va!twXl9xpI@rh8 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 literal 29755 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

{90M7hK##>2?OSPG%`lF_ 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%0DA2{I&9K89eAbiu>{NbjKAHtU%?6 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�^ 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, 0)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("sugar")->handEquipped(); //Item::cake = (new TilePlanterItem(98, Tile::cake))->setMaxStackSize(1)->setIcon(13, 1)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("cake"); Item::bed = (new BedItem(99))->setMaxStackSize(1)->setIcon(13, 2)->setCategory(ItemCategory::Structures)->setDescriptionId("bed"); - Item::diode = (new TilePlanterItem(100, Tile::diode_off))->setIcon(6, 5)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("diode"); + Item::diode = (new TilePlanterItem(100, Tile::repeater_off))->setIcon(6, 5)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("diode"); Item::shears = (ShearsItem*)(new ShearsItem(103))->setIcon(13, 5)->setCategory(ItemCategory::Tools)->setDescriptionId("shears"); Item::melon = (new FoodItem(104, 2, false))->setIcon(13, 6)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("melon"); Item::seeds_melon = (new SeedItem(106, Tile::melonStem->id, Tile::farmland->id))->setIcon(14, 3)->setCategory(ItemCategory::FoodArmor)->setDescriptionId("seedsMelon"); diff --git a/web-build/src/world/level/tile/Tile.cpp b/web-build/src/world/level/tile/Tile.cpp index 09eaf369..5b317524 100644 --- a/web-build/src/world/level/tile/Tile.cpp +++ b/web-build/src/world/level/tile/Tile.cpp @@ -503,10 +503,11 @@ void Tile::initTiles() { smoothStoneSlabFull = (new StoneSlabTile(163, true))->init()->setDestroyTime(2.0f)->setExplodeable(10)->setSoundType(SOUND_STONE)->setCategory(ItemCategory::Structures)->setDescriptionId("slabSmoothStone"); // Repeaters & Comparators (placeholder diode-shaped blocks) - repeater_off = (new Tile(164, 3 + 8 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("repeater"); - repeater_on = (new Tile(165, 3 + 9 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("repeater"); - comparator_off = (new Tile(166, 14 + 2 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("comparator"); - comparator_on = (new Tile(167, 15 + 2 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("comparator"); + // Textures placed in row 11 to avoid conflict with spruce planks at (3,8) + repeater_off = (new Tile(164, 0 + 11 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("repeater"); + repeater_on = (new Tile(165, 1 + 11 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("repeater"); + comparator_off = (new Tile(166, 2 + 11 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("comparator"); + comparator_on = (new Tile(167, 3 + 11 * 16, Material::decoration))->init()->setDestroyTime(0.0f)->setSoundType(SOUND_WOOD)->setCategory(ItemCategory::Mechanisms)->setDescriptionId("comparator"); // // Special tiles for Pocket Edition is placed at high IDs