TU19: merge Minecraft.World/Blocks

This commit is contained in:
Tropical
2026-03-21 15:52:50 -05:00
parent f25cd66f4d
commit 9b6046cb83
242 changed files with 8083 additions and 4657 deletions

View File

@@ -12,7 +12,7 @@ const std::wstring PumpkinTile::TEXTURE_FACE = L"pumpkin_face";
const std::wstring PumpkinTile::TEXTURE_LANTERN = L"pumpkin_jack";
PumpkinTile::PumpkinTile(int id, bool lit)
: DirectionalTile(id, Material::vegetable) {
: DirectionalTile(id, Material::vegetable, false) {
iconTop = NULL;
iconFace = NULL;
setTicking(true);
@@ -40,9 +40,9 @@ void PumpkinTile::onPlace(Level* level, int x, int y, int z) {
if (!level->isClientSide) {
// 4J - added limit of number of snowmen that can be spawned
if (level->canCreateMore(eTYPE_SNOWMAN, Level::eSpawnType_Egg)) {
level->setTileNoUpdate(x, y, z, 0);
level->setTileNoUpdate(x, y - 1, z, 0);
level->setTileNoUpdate(x, y - 2, z, 0);
level->setTileAndData(x, y, z, 0, 0, Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 1, z, 0, 0, Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 2, z, 0, 0, Tile::UPDATE_CLIENTS);
std::shared_ptr<SnowMan> snowMan =
std::shared_ptr<SnowMan>(new SnowMan(level));
snowMan->moveTo(x + 0.5, y - 1.95, z + 0.5, 0, 0);
@@ -59,9 +59,9 @@ void PumpkinTile::onPlace(Level* level, int x, int y, int z) {
level, x, y - 1, z, level->getData(x, y - 1, z), 0);
Tile::tiles[Tile::snow_Id]->spawnResources(
level, x, y - 2, z, level->getData(x, y - 2, z), 0);
level->setTile(x, y, z, 0);
level->setTile(x, y - 1, z, 0);
level->setTile(x, y - 2, z, 0);
level->setTileAndData(x, y, z, 0, 0, Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 1, z, 0, 0, Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 2, z, 0, 0, Tile::UPDATE_CLIENTS);
}
}
for (int i = 0; i < 120; i++) {
@@ -81,15 +81,21 @@ void PumpkinTile::onPlace(Level* level, int x, int y, int z) {
// 4J - added limit of number of golems that can be spawned
if (level->canCreateMore(eTYPE_VILLAGERGOLEM,
Level::eSpawnType_Egg)) {
level->setTileNoUpdate(x, y, z, 0);
level->setTileNoUpdate(x, y - 1, z, 0);
level->setTileNoUpdate(x, y - 2, z, 0);
level->setTileAndData(x, y, z, 0, 0, Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 1, z, 0, 0,
Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 2, z, 0, 0,
Tile::UPDATE_CLIENTS);
if (xArms) {
level->setTileNoUpdate(x - 1, y - 1, z, 0);
level->setTileNoUpdate(x + 1, y - 1, z, 0);
level->setTileAndData(x - 1, y - 1, z, 0, 0,
Tile::UPDATE_CLIENTS);
level->setTileAndData(x + 1, y - 1, z, 0, 0,
Tile::UPDATE_CLIENTS);
} else {
level->setTileNoUpdate(x, y - 1, z - 1, 0);
level->setTileNoUpdate(x, y - 1, z + 1, 0);
level->setTileAndData(x, y - 1, z - 1, 0, 0,
Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 1, z + 1, 0, 0,
Tile::UPDATE_CLIENTS);
}
std::shared_ptr<VillagerGolem> villagerGolem =
@@ -125,9 +131,11 @@ void PumpkinTile::onPlace(Level* level, int x, int y, int z) {
level, x, y - 1, z, level->getData(x, y - 1, z), 0);
Tile::tiles[Tile::ironBlock_Id]->spawnResources(
level, x, y - 2, z, level->getData(x, y - 2, z), 0);
level->setTile(x, y, z, 0);
level->setTile(x, y - 1, z, 0);
level->setTile(x, y - 2, z, 0);
level->setTileAndData(x, y, z, 0, 0, Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 1, z, 0, 0,
Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 2, z, 0, 0,
Tile::UPDATE_CLIENTS);
if (xArms) {
Tile::tiles[Tile::ironBlock_Id]->spawnResources(
@@ -136,8 +144,10 @@ void PumpkinTile::onPlace(Level* level, int x, int y, int z) {
Tile::tiles[Tile::ironBlock_Id]->spawnResources(
level, x + 1, y - 1, z,
level->getData(x + 1, y - 1, z), 0);
level->setTile(x - 1, y - 1, z, 0);
level->setTile(x + 1, y - 1, z, 0);
level->setTileAndData(x - 1, y - 1, z, 0, 0,
Tile::UPDATE_CLIENTS);
level->setTileAndData(x + 1, y - 1, z, 0, 0,
Tile::UPDATE_CLIENTS);
} else {
Tile::tiles[Tile::ironBlock_Id]->spawnResources(
level, x, y - 1, z - 1,
@@ -145,8 +155,10 @@ void PumpkinTile::onPlace(Level* level, int x, int y, int z) {
Tile::tiles[Tile::ironBlock_Id]->spawnResources(
level, x, y - 1, z + 1,
level->getData(x, y - 1, z + 1), 0);
level->setTile(x, y - 1, z - 1, 0);
level->setTile(x, y - 1, z + 1, 0);
level->setTileAndData(x, y - 1, z - 1, 0, 0,
Tile::UPDATE_CLIENTS);
level->setTileAndData(x, y - 1, z + 1, 0, 0,
Tile::UPDATE_CLIENTS);
}
}
}
@@ -161,13 +173,15 @@ bool PumpkinTile::mayPlace(Level* level, int x, int y, int z) {
}
void PumpkinTile::setPlacedBy(Level* level, int x, int y, int z,
std::shared_ptr<Mob> by) {
std::shared_ptr<LivingEntity> by,
std::shared_ptr<ItemInstance> itemInstance) {
int dir = Mth::floor(by->yRot * 4 / (360) + 2.5) & 3;
level->setData(x, y, z, dir);
level->setData(x, y, z, dir, Tile::UPDATE_CLIENTS);
}
void PumpkinTile::registerIcons(IconRegister* iconRegister) {
iconFace = iconRegister->registerIcon(lit ? TEXTURE_LANTERN : TEXTURE_FACE);
iconTop = iconRegister->registerIcon(L"pumpkin_top");
icon = iconRegister->registerIcon(L"pumpkin_side");
iconFace = iconRegister->registerIcon(getIconName() + L"_face_" +
(lit ? L"on" : L"off"));
iconTop = iconRegister->registerIcon(getIconName() + L"_top");
icon = iconRegister->registerIcon(getIconName() + L"_side");
}