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

@@ -5,7 +5,8 @@
#include "../Headers/net.minecraft.world.phys.h"
#include "TripWireTile.h"
TripWireTile::TripWireTile(int id) : Tile(id, Material::decoration, false) {
TripWireTile::TripWireTile(int id)
: Tile(id, Material::decoration, false) {
setShape(0, 0, 0, 1, 2.5f / 16.0f, 1);
this->setTicking(true);
}
@@ -43,7 +44,7 @@ void TripWireTile::neighborChanged(Level* level, int x, int y, int z,
bool isSuspended = !level->isTopSolidBlocking(x, y - 1, z);
if (wasSuspended != isSuspended) {
spawnResources(level, x, y, z, data, 0);
level->setTile(x, y, z, 0);
level->removeTile(x, y, z);
}
}
@@ -65,7 +66,7 @@ void TripWireTile::updateShape(LevelSource* level, int x, int y, int z,
void TripWireTile::onPlace(Level* level, int x, int y, int z) {
int data = level->isTopSolidBlocking(x, y - 1, z) ? 0 : MASK_SUSPENDED;
level->setData(x, y, z, data);
level->setData(x, y, z, data, Tile::UPDATE_ALL);
updateSource(level, x, y, z, data);
}
@@ -80,7 +81,7 @@ void TripWireTile::playerWillDestroy(Level* level, int x, int y, int z,
if (player->getSelectedItem() != NULL &&
player->getSelectedItem()->id == Item::shears_Id) {
level->setData(x, y, z, data | MASK_DISARMED);
level->setData(x, y, z, data | MASK_DISARMED, Tile::UPDATE_NONE);
}
}
@@ -136,7 +137,13 @@ void TripWireTile::checkPressed(Level* level, int x, int y, int z) {
nullptr, AABB::newTemp(x + tls->xx0, y + tls->yy0, z + tls->zz0,
x + tls->xx1, y + tls->yy1, z + tls->zz1));
if (!entities->empty()) {
shouldBePressed = true;
for (AUTO_VAR(it, entities->begin()); it != entities->end(); ++it) {
std::shared_ptr<Entity> e = *it;
if (!e->isIgnoringTileTriggers()) {
shouldBePressed = true;
break;
}
}
}
if (shouldBePressed && !wasPressed) {
@@ -148,7 +155,7 @@ void TripWireTile::checkPressed(Level* level, int x, int y, int z) {
}
if (shouldBePressed != wasPressed) {
level->setData(x, y, z, data);
level->setData(x, y, z, data, Tile::UPDATE_ALL);
updateSource(level, x, y, z, data);
}