@Override public long getRemainingWeatherDuration() { WorldInfo info = getWorld().getWorldInfo(); if (info.isThundering()) { return info.getThunderTime(); } if (info.isRaining()) { return info.getRainTime(); } return info.getCleanWeatherTime(); }
@Override public WeatherType getWeather() { WorldInfo info = getWorld().getWorldInfo(); if (info.isThundering()) { return WeatherTypes.THUNDER_STORM; } if (info.isRaining()) { return WeatherTypes.RAIN; } return WeatherTypes.CLEAR; }
@Override public void setWeather(WeatherType weatherType, long duration) { WorldInfo info = getWorld().getWorldInfo(); if (WeatherTypes.THUNDER_STORM.equals(weatherType)) { info.setCleanWeatherTime(0); info.setThundering(true); info.setThunderTime((int) duration); } else if (WeatherTypes.RAIN.equals(weatherType)) { info.setCleanWeatherTime(0); info.setRaining(true); info.setRainTime((int) duration); } else if (WeatherTypes.CLEAR.equals(weatherType)) { info.setRaining(false); info.setThundering(false); info.setCleanWeatherTime((int) duration); } }
public static WorldData get(World world) { if(world.getMapStorage() == null) return null; WorldData data = (WorldData) world.getMapStorage().getOrLoadData(WorldData.class, ID); if (data == null) { data = new WorldData(ID); data.markDirty(); world.getMapStorage().setData(ID, data); } return data; } }
private boolean startRain(World world) { if(!world.isRaining()) { if(world.rand.nextInt(10) == 0) { world.getWorldInfo().setRaining(true); TileTeruTeruBozu.resetRainTime(world); } return true; } return false; }
@Override public String getName() { return getWorld().getWorldInfo().getWorldName(); }
public static boolean isWorldSkyblock(World world) { return world.getWorldInfo().getTerrainType() instanceof WorldTypeSkyblock; }
public static void resetRainTime(World w){ w.getWorldInfo().setRainTime(w.rand.nextInt(w.getWorldInfo().isRaining() ? 12000 : 168000) + 12000); } }
/** * Requires to start up from external from here * * drawback of the singleton build style * * @param server */ public static void onServerAboutToStart( MinecraftServer server ) { File worldDirectory = DimensionManager.getCurrentSaveRootDirectory(); if( worldDirectory == null ) { worldDirectory = server.getActiveAnvilConverter().getSaveLoader( server.getFolderName(), false ).getWorldDirectory(); } final WorldData newInstance = new WorldData( worldDirectory ); instance = newInstance; newInstance.onServerStarting(); }
originalWorld.getSaveHandler().getWorldDirectory().getName(), true, server.getDataFixer()); World freshWorld = new WorldServer(server, saveHandler, originalWorld.getWorldInfo(), originalWorld.provider.getDimension(), originalWorld.profiler).init();
protected void thunder(World world, boolean state) { world.getWorldInfo().setThundering(state); }
@Override public long getSeed() { return this.world.getWorldInfo().getSeed(); }
@Override public void markDirty() { super.markDirty(); letters.markDirty(); }
private boolean removeRain(World world) { if(world.isRaining()) { world.getWorldInfo().setRaining(false); TileTeruTeruBozu.resetRainTime(world); return true; } return false; }
@Nullable @Override public World matchWorld(World world) { if (world instanceof ForgeWorld) { return world; } else { for (WorldServer ws : DimensionManager.getWorlds()) { if (ws.getWorldInfo().getWorldName().equals(world.getName())) { return new ForgeWorld(ws); } } return null; } }
@Override public void deactivate(World world) { world.getWorldInfo().setThundering(false); }
@Override public void markDirty() { super.markDirty(); inventory.markDirty(); }
@Override public void update() { if (world.isRemote) return; boolean isRaining = world.isRaining(); if(isRaining && world.rand.nextInt(9600) == 0) { world.getWorldInfo().setRaining(false); resetRainTime(world); } if(wasRaining != isRaining) world.updateComparatorOutputLevel(pos, world.getBlockState(pos).getBlock()); wasRaining = isRaining; }
protected void rain(World world, boolean state) { world.getWorldInfo().setRaining(state); }
@Override public void activate(World world) { world.getWorldInfo().setRaining(true); }