Merge pull request #4005 from falxie/mc1.18/dev

Fix StationUnloadedCondition not working in other dimensions
This commit is contained in:
simibubi 2022-12-07 17:32:11 +01:00 committed by GitHub
commit d0c76494d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -13,6 +13,9 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.MinecraftServer;
public class StationUnloadedCondition extends ScheduleWaitCondition {
@Override
@ -25,9 +28,15 @@ public class StationUnloadedCondition extends ScheduleWaitCondition {
GlobalStation currentStation = train.getCurrentStation();
if (currentStation == null)
return false;
if (level instanceof ServerLevel serverLevel)
return !serverLevel.isPositionEntityTicking(currentStation.getTilePos());
return false;
ResourceKey<Level> stationDim = currentStation.getTileDimension();
MinecraftServer server = level.getServer();
if (server == null)
return false;
ServerLevel stationLevel = server.getLevel(stationDim);
if (stationLevel == null) {
return false;
}
return !stationLevel.isPositionEntityTicking(currentStation.getTilePos());
}
@Override
@ -45,4 +54,4 @@ public class StationUnloadedCondition extends ScheduleWaitCondition {
public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) {
return Lang.translateDirect("schedule.condition.unloaded.status");
}
}
}