Fix StationUnloadedCondition not working in other dimensions

This commit is contained in:
Falxie_ 2022-11-10 22:45:56 -08:00
parent cf87508276
commit c5e178de80

View file

@ -13,6 +13,9 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level; 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 { public class StationUnloadedCondition extends ScheduleWaitCondition {
@Override @Override
@ -25,9 +28,16 @@ public class StationUnloadedCondition extends ScheduleWaitCondition {
GlobalStation currentStation = train.getCurrentStation(); GlobalStation currentStation = train.getCurrentStation();
if (currentStation == null) if (currentStation == null)
return false; return false;
if (level instanceof ServerLevel serverLevel) BlockPos stationPos = currentStation.getTilePos();
return !serverLevel.isPositionEntityTicking(currentStation.getTilePos()); ResourceKey<Level> stationDim = currentStation.getTileDimension();
MinecraftServer server = level.getServer();
if (server == null)
return false; return false;
ServerLevel stationLevel = server.getLevel(stationDim);
if (stationLevel == null) {
return false;
}
return !stationLevel.isPositionEntityTicking(currentStation.getTilePos());
} }
@Override @Override