mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/4jcraft.git
synced 2026-06-24 00:45:35 +00:00
TU19: merge Minecraft.World/Blocks
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user