Merge pull request #4005 from falxie/mc1.18/dev
Fix StationUnloadedCondition not working in other dimensions
This commit is contained in:
commit
d0c76494d7
1 changed files with 13 additions and 4 deletions
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue