diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index ce9d43d3c..12ca54a36 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -133,17 +133,16 @@ public class Iris extends VolmitPlugin implements Listener { } private void setupPapi() { - if(Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { + if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { new IrisPapiExpansion().register(); } } public File getDatapacksFolder() { - if(!IrisSettings.get().getGeneral().forceMainWorld.isEmpty()) - { + if (!IrisSettings.get().getGeneral().forceMainWorld.isEmpty()) { return new File(IrisSettings.get().getGeneral().forceMainWorld + "/datapacks"); } - + File props = new File("server.properties"); if (props.exists()) { diff --git a/src/main/java/com/volmit/iris/core/IrisBoardManager.java b/src/main/java/com/volmit/iris/core/IrisBoardManager.java index 54443bb0d..8709ac0b5 100644 --- a/src/main/java/com/volmit/iris/core/IrisBoardManager.java +++ b/src/main/java/com/volmit/iris/core/IrisBoardManager.java @@ -30,12 +30,9 @@ import com.volmit.iris.util.board.ScoreDirection; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; -import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; -import org.bukkit.Location; -import org.bukkit.Particle; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; diff --git a/src/main/java/com/volmit/iris/core/TreeManager.java b/src/main/java/com/volmit/iris/core/TreeManager.java index 2c2955112..3e334692e 100644 --- a/src/main/java/com/volmit/iris/core/TreeManager.java +++ b/src/main/java/com/volmit/iris/core/TreeManager.java @@ -250,10 +250,8 @@ public class TreeManager implements Listener { KList p = new KList<>(); - for(IrisObjectPlacement i : objects) - { - if(i.matches(size, type)) - { + for (IrisObjectPlacement i : objects) { + if (i.matches(size, type)) { p.add(i); } } diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java index b80495d4b..d0d4bfa59 100644 --- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java +++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java @@ -20,8 +20,8 @@ package com.volmit.iris.core.command.studio; import com.volmit.iris.Iris; import com.volmit.iris.core.IrisDataManager; -import com.volmit.iris.core.project.IrisProject; import com.volmit.iris.core.IrisSettings; +import com.volmit.iris.core.project.IrisProject; import com.volmit.iris.engine.interpolation.InterpolationMethod; import com.volmit.iris.engine.noise.CNG; import com.volmit.iris.engine.object.*; diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java index e8064a6db..fc53617ac 100644 --- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java +++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java @@ -19,8 +19,8 @@ package com.volmit.iris.core.command.studio; import com.volmit.iris.Iris; -import com.volmit.iris.core.project.IrisProject; import com.volmit.iris.core.IrisSettings; +import com.volmit.iris.core.project.IrisProject; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.VolmitSender; diff --git a/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java b/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java index fd052b230..feed07593 100644 --- a/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java +++ b/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java @@ -22,7 +22,6 @@ import com.volmit.iris.Iris; import com.volmit.iris.core.tools.IrisWorlds; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.IrisAccess; -import com.volmit.iris.engine.object.common.IrisWorld; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import org.bukkit.Location; import org.bukkit.OfflinePlayer; @@ -31,17 +30,20 @@ import org.jetbrains.annotations.NotNull; // See/update https://app.gitbook.com/@volmitsoftware/s/iris/compatability/papi/ public class IrisPapiExpansion extends PlaceholderExpansion { @Override - public @NotNull String getIdentifier() { + public @NotNull + String getIdentifier() { return "iris"; } @Override - public @NotNull String getAuthor() { + public @NotNull + String getAuthor() { return "Volmit Software"; } @Override - public @NotNull String getVersion() { + public @NotNull + String getVersion() { return Iris.instance.getDescription().getVersion(); } @@ -55,98 +57,55 @@ public class IrisPapiExpansion extends PlaceholderExpansion { Location l = null; IrisAccess a = null; - if(player.isOnline()) - { + if (player.isOnline()) { l = player.getPlayer().getLocation(); a = IrisWorlds.access(l.getWorld()); } - if (p.equalsIgnoreCase("biome_name")) - { - if(a != null) - { + if (p.equalsIgnoreCase("biome_name")) { + if (a != null) { return a.getBiome(l).getName(); } - } - - else if (p.equalsIgnoreCase("biome_id")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("biome_id")) { + if (a != null) { return a.getBiome(l).getLoadKey(); } - } - - else if (p.equalsIgnoreCase("biome_file")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("biome_file")) { + if (a != null) { return a.getBiome(l).getLoadFile().getPath(); } - } - - else if (p.equalsIgnoreCase("region_name")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("region_name")) { + if (a != null) { return a.getRegion(l).getName(); } - } - - else if (p.equalsIgnoreCase("region_id")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("region_id")) { + if (a != null) { return a.getRegion(l).getLoadKey(); } - } - - else if (p.equalsIgnoreCase("region_file")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("region_file")) { + if (a != null) { return a.getRegion(l).getLoadFile().getPath(); } - } - - else if (p.equalsIgnoreCase("terrain_slope")) - { - if(a != null) - { - return ((Engine)a.getEngineAccess(l.getBlockY())) + } else if (p.equalsIgnoreCase("terrain_slope")) { + if (a != null) { + return ((Engine) a.getEngineAccess(l.getBlockY())) .getFramework().getComplex().getSlopeStream() .get(l.getX(), l.getZ()) + ""; } - } - - else if (p.equalsIgnoreCase("terrain_height")) - { - if(a != null) - { - return (int)Math.round(a.getHeight(l)) + ""; + } else if (p.equalsIgnoreCase("terrain_height")) { + if (a != null) { + return (int) Math.round(a.getHeight(l)) + ""; } - } - - else if (p.equalsIgnoreCase("world_mode")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("world_mode")) { + if (a != null) { return a.isStudio() ? "Studio" : "Production"; } - } - - else if (p.equalsIgnoreCase("world_seed")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("world_seed")) { + if (a != null) { return a.getTarget().getWorld().seed() + ""; } - } - - else if (p.equalsIgnoreCase("world_speed")) - { - if(a != null) - { + } else if (p.equalsIgnoreCase("world_speed")) { + if (a != null) { return a.getGeneratedPerSecond() + "/s"; } } diff --git a/src/main/java/com/volmit/iris/core/link/OraxenLink.java b/src/main/java/com/volmit/iris/core/link/OraxenLink.java index c06cd09f8..ab3d9b4b7 100644 --- a/src/main/java/com/volmit/iris/core/link/OraxenLink.java +++ b/src/main/java/com/volmit/iris/core/link/OraxenLink.java @@ -29,14 +29,12 @@ public class OraxenLink { return getOraxen() != null; } - public BlockData getBlockDataFor(String id) - { + public BlockData getBlockDataFor(String id) { // TODO: Unimplemented return B.get("AIR"); } - public ItemStack getItemStackForType(String item) - { + public ItemStack getItemStackForType(String item) { try { Object itemBuilder = Class.forName("io.th0rgal.oraxen.items.OraxenItems").getDeclaredMethod("getItemById", String.class).invoke(null, item); return (ItemStack) itemBuilder.getClass().getDeclaredMethod("getReferenceClone").invoke(itemBuilder); diff --git a/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java b/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java index 20904845a..294b4de74 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java @@ -20,7 +20,6 @@ package com.volmit.iris.core.pregenerator; import com.volmit.iris.Iris; import com.volmit.iris.util.collection.KSet; -import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.Form; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.Position2; @@ -99,9 +98,8 @@ public class IrisPregenerator { totalChunks.get() - generated.get(), eta, M.ms() - startTime.get(), currentGeneratorMethod.get()); - if(cl.flip()) - { - Iris.info("Pregen: " + Form.f(generated.get()) + " of " + Form.f(totalChunks.get()) + " (" + Form.pc((double) generated.get() / (double) totalChunks.get(), 0) + ") " + Form.f((int) chunksPerSecond.getAverage()) + "/s ETA: " + Form.duration((double)eta, 2)); + if (cl.flip()) { + Iris.info("Pregen: " + Form.f(generated.get()) + " of " + Form.f(totalChunks.get()) + " (" + Form.pc((double) generated.get() / (double) totalChunks.get(), 0) + ") " + Form.f((int) chunksPerSecond.getAverage()) + "/s ETA: " + Form.duration((double) eta, 2)); } return 1000; diff --git a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java b/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java index 1fca843ea..760ae89c9 100644 --- a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java +++ b/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java @@ -189,8 +189,7 @@ public class SchemaBuilder { fancyType = "Mythic Mob Type"; prop.put("$ref", "#/definitions/" + key); description.add(SYMBOL_TYPE__N + " Must be a valid Mythic Mob Type (use ctrl+space for auto complete!) Define mythic mobs with the mythic mobs plugin configuration files."); - } - else if (k.isAnnotationPresent(RegistryListSpawner.class)) { + } else if (k.isAnnotationPresent(RegistryListSpawner.class)) { String key = "enum-reg-spawner"; if (!definitions.containsKey(key)) { @@ -202,8 +201,7 @@ public class SchemaBuilder { fancyType = "Iris Spawner"; prop.put("$ref", "#/definitions/" + key); description.add(SYMBOL_TYPE__N + " Must be a valid Spawner (use ctrl+space for auto complete!)"); - } - else if (k.isAnnotationPresent(RegistryListBlockType.class)) { + } else if (k.isAnnotationPresent(RegistryListBlockType.class)) { String key = "enum-block-type"; if (!definitions.containsKey(key)) { @@ -479,8 +477,7 @@ public class SchemaBuilder { items.put("$ref", "#/definitions/" + key); prop.put("items", items); description.add(SYMBOL_TYPE__N + " Must be a valid Biome (use ctrl+space for auto complete!)"); - } - else if (k.isAnnotationPresent(RegistryListSpawner.class)) { + } else if (k.isAnnotationPresent(RegistryListSpawner.class)) { fancyType = "List of Iris Spawners"; String key = "enum-reg-spawner"; @@ -494,8 +491,7 @@ public class SchemaBuilder { items.put("$ref", "#/definitions/" + key); prop.put("items", items); description.add(SYMBOL_TYPE__N + " Must be a valid Spawner (use ctrl+space for auto complete!)"); - } - else if (k.isAnnotationPresent(RegistryListMythical.class)) { + } else if (k.isAnnotationPresent(RegistryListMythical.class)) { fancyType = "List of Mythic Mob Types"; String key = "enum-reg-mythical"; diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/src/main/java/com/volmit/iris/engine/IrisComplex.java index 6e5732d38..1a8b11216 100644 --- a/src/main/java/com/volmit/iris/engine/IrisComplex.java +++ b/src/main/java/com/volmit/iris/engine/IrisComplex.java @@ -24,8 +24,6 @@ import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator; import com.volmit.iris.engine.data.DataProvider; import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.interpolation.InterpolationMethod; -import com.volmit.iris.engine.interpolation.IrisInterpolation; import com.volmit.iris.engine.modifier.IrisCaveModifier; import com.volmit.iris.engine.noise.CNG; import com.volmit.iris.engine.object.*; @@ -36,7 +34,6 @@ import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.J; import lombok.Data; import org.bukkit.Material; import org.bukkit.block.Biome; @@ -159,13 +156,13 @@ public class IrisComplex implements DataProvider { : regionStyleStream .selectRarity(engine.getDimension().getRegions(), (i) -> data.getRegionLoader().load(i)) .convertCached((s) -> data.getRegionLoader().load(s)).cache2D(cacheSize); - islandStream = regionStyleStream + islandStream = regionStyleStream .seededChance(rng.nextParallelRNG(29349), 23968888888L, - 1D/engine.getDimension().getIslandMode().getIslandChance()); - islandHeightStream = regionIdentityStream.style(rng.nextParallelRNG(330466), engine.getDimension().getIslandMode().getHeight()); - islandDepthStream = engine.getDimension().getIslandMode().getIslandDepth().stream(rng.nextParallelRNG(-39578888)); - regionIDStream = regionIdentityStream.convertCached((i) -> new UUID(Double.doubleToLongBits(i), String.valueOf(i * 38445).hashCode() * 3245556666L)); - caveBiomeStream = regionStream.convert((r) + 1D / engine.getDimension().getIslandMode().getIslandChance()); + islandHeightStream = regionIdentityStream.style(rng.nextParallelRNG(330466), engine.getDimension().getIslandMode().getHeight()); + islandDepthStream = engine.getDimension().getIslandMode().getIslandDepth().stream(rng.nextParallelRNG(-39578888)); + regionIDStream = regionIdentityStream.convertCached((i) -> new UUID(Double.doubleToLongBits(i), String.valueOf(i * 38445).hashCode() * 3245556666L)); + caveBiomeStream = regionStream.convert((r) -> engine.getDimension().getCaveBiomeStyle().create(rng.nextParallelRNG(InferredType.CAVE.ordinal())).stream() .zoom(r.getCaveBiomeZoom()) .selectRarity(r.getCaveBiomes(), (i) -> data.getBiomeLoader().load(i)) @@ -227,8 +224,7 @@ public class IrisComplex implements DataProvider { objectChanceStream = ProceduralStream.ofDouble((x, z) -> { if (engine.getDimension().hasFeatures(engine)) { AtomicDouble str = new AtomicDouble(1D); - for(IrisFeaturePositional i : engine.getFramework().getEngineParallax().forEachFeature(x, z)) - { + for (IrisFeaturePositional i : engine.getFramework().getEngineParallax().forEachFeature(x, z)) { str.set(Math.min(str.get(), i.getObjectChanceModifier(x, z, rng))); } @@ -354,28 +350,26 @@ public class IrisComplex implements DataProvider { return m; }, Interpolated.INT).cache2D(cacheSize); - baseBiomeIDStream = trueBiomeStream.convertAware2D((b,x,z) ->{ + baseBiomeIDStream = trueBiomeStream.convertAware2D((b, x, z) -> { UUID d = regionIDStream.get(x, z); return new UUID(b.getLoadKey().hashCode() * 818223L, d.hashCode()); }) .cache2D(cacheSize); islandTopStream = islandStream.convertAware2D((i, x, z) -> - i ? heightStream.round() - .subtract(fluidHeight) - .add((xx, zz) -> getIslandHeight(xx.intValue(), zz.intValue(), engine.getDimension() - .getIslandMode().getIslandEdgeInterpolator())) - .get(x, z) : 0); + i ? heightStream.round() + .subtract(fluidHeight) + .add((xx, zz) -> getIslandHeight(xx.intValue(), zz.intValue(), engine.getDimension() + .getIslandMode().getIslandEdgeInterpolator())) + .get(x, z) : 0); islandBottomStream = islandStream.convertAware2D((i, x, z) -> i ? islandHeightStream.subtract(islandDepthStream).round().get(x, z) : 0); //@done } - private double getIslandHeight(int x, int z, IrisInterpolator interp) - { + private double getIslandHeight(int x, int z, IrisInterpolator interp) { return interp.interpolate(x, z, (xx, zz) -> { - if(getIslandStream().get(xx, zz)) - { + if (getIslandStream().get(xx, zz)) { return getIslandHeightStream().get(xx, zz); } @@ -472,12 +466,10 @@ public class IrisComplex implements DataProvider { AtomicDouble noise = new AtomicDouble(h + fluidHeight + overlayStream.get(x, z)); - if(features) - { + if (features) { List p = engine.getFramework().getEngineParallax().forEachFeature(x, z); - for(IrisFeaturePositional i : p) - { + for (IrisFeaturePositional i : p) { noise.set(i.filter(x, z, noise.get(), rng)); } } diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/src/main/java/com/volmit/iris/engine/IrisEngine.java index b511b951d..382ec57fc 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngine.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngine.java @@ -24,7 +24,10 @@ import com.volmit.iris.core.IrisSettings; import com.volmit.iris.engine.cache.AtomicCache; import com.volmit.iris.engine.framework.*; import com.volmit.iris.engine.hunk.Hunk; -import com.volmit.iris.engine.object.*; +import com.volmit.iris.engine.object.IrisBiome; +import com.volmit.iris.engine.object.IrisBiomePaletteLayer; +import com.volmit.iris.engine.object.IrisDecorator; +import com.volmit.iris.engine.object.IrisObjectPlacement; import com.volmit.iris.engine.object.engine.IrisEngineData; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; @@ -92,7 +95,7 @@ public class IrisEngine extends BlockPopulator implements Engine { @Getter private double maxBiomeDecoratorDensity; - private AtomicCache engineData = new AtomicCache<>(); + private final AtomicCache engineData = new AtomicCache<>(); public IrisEngine(EngineTarget target, EngineCompound compound, int index) { Iris.info("Initializing Engine: " + target.getWorld().name() + "/" + target.getDimension().getLoadKey() + " (" + target.getHeight() + " height)"); @@ -117,8 +120,7 @@ public class IrisEngine extends BlockPopulator implements Engine { return engineData.aquire(() -> { File f = new File(getWorld().worldFolder(), "iris/engine-data/" + getDimension().getLoadKey() + "-" + getIndex() + ".json"); - if(!f.exists()) - { + if (!f.exists()) { try { f.getParentFile().mkdirs(); IO.writeAll(f, new Gson().toJson(new IrisEngineData())); @@ -127,13 +129,9 @@ public class IrisEngine extends BlockPopulator implements Engine { } } - try - { + try { return new Gson().fromJson(IO.readAll(f), IrisEngineData.class); - } - - catch(Throwable e) - { + } catch (Throwable e) { e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java index 9541ce06c..1c48c7801 100644 --- a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java @@ -18,32 +18,26 @@ package com.volmit.iris.engine; -import com.volmit.iris.Iris; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineAssignedWorldManager; import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.object.common.IRare; import com.volmit.iris.engine.object.engine.IrisEngineData; import com.volmit.iris.engine.object.engine.IrisEngineSpawnerCooldown; -import com.volmit.iris.engine.stream.convert.SelectionStream; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KMap; -import com.volmit.iris.util.documentation.ChunkCoordinates; import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.reflect.V; import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.J; import org.bukkit.Chunk; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.inventory.ItemStack; import java.util.List; import java.util.UUID; import java.util.concurrent.TimeUnit; -import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -67,23 +61,19 @@ public class IrisWorldManager extends EngineAssignedWorldManager { return; } - if ((double) entityCount / (getEngine().getWorld().realWorld().getLoadedChunks().length+1) > 1) - { + if ((double) entityCount / (getEngine().getWorld().realWorld().getLoadedChunks().length + 1) > 1) { return; } - if(cl.flip()) - { + if (cl.flip()) { J.s(() -> entityCount = getEngine().getWorld().realWorld().getEntities().size()); } int maxGroups = 3; int biomeBaseCooldownSeconds = 15; - for(UUID i : spawnCooldowns.k()) - { - if(M.ms() - spawnCooldowns.get(i) > TimeUnit.SECONDS.toMillis(biomeBaseCooldownSeconds)) - { + for (UUID i : spawnCooldowns.k()) { + if (M.ms() - spawnCooldowns.get(i) > TimeUnit.SECONDS.toMillis(biomeBaseCooldownSeconds)) { spawnCooldowns.remove(i); } } @@ -91,74 +81,64 @@ public class IrisWorldManager extends EngineAssignedWorldManager { KMap> data = mapChunkBiomes(); int spawnBuffer = 32; - for(UUID i : data.k().shuffleCopy(RNG.r)) - { - if(spawnCooldowns.containsKey(i)) - { + for (UUID i : data.k().shuffleCopy(RNG.r)) { + if (spawnCooldowns.containsKey(i)) { continue; } - if(spawnBuffer-- < 0) - { + if (spawnBuffer-- < 0) { break; } - for(int ig = 0; ig < data.get(i).size() / 8; ig++) - { + for (int ig = 0; ig < data.get(i).size() / 8; ig++) { spawnIn(data.get(i).getRandom(), i, maxGroups); spawnCooldowns.put(i, M.ms()); } } - if(actuallySpawned <= 0) - { + if (actuallySpawned <= 0) { J.sleep(5000); } } private void spawnIn(Chunk c, UUID id, int max) { - if(c.getEntities().length > 2) - { + if (c.getEntities().length > 2) { return; } //@builder puffen(Stream.concat(getData().getSpawnerLoader().loadAll(getDimension().getEntitySpawners()) - .shuffleCopy(RNG.r).stream().filter(this::canSpawn) - .flatMap(this::stream), - Stream.concat(getData().getSpawnerLoader() - .loadAll(getEngine().getRegion(c.getX() << 4, c.getZ() << 4).getEntitySpawners()) - .shuffleCopy(RNG.r).stream().filter(this::canSpawn) + .shuffleCopy(RNG.r).stream().filter(this::canSpawn) .flatMap(this::stream), + Stream.concat(getData().getSpawnerLoader() + .loadAll(getEngine().getRegion(c.getX() << 4, c.getZ() << 4).getEntitySpawners()) + .shuffleCopy(RNG.r).stream().filter(this::canSpawn) + .flatMap(this::stream), getData().getSpawnerLoader() - .loadAll(getEngine().getSurfaceBiome(c.getX() << 4, c.getZ() << 4).getEntitySpawners()) - .shuffleCopy(RNG.r).stream().filter(this::canSpawn) - .flatMap(this::stream))) + .loadAll(getEngine().getSurfaceBiome(c.getX() << 4, c.getZ() << 4).getEntitySpawners()) + .shuffleCopy(RNG.r).stream().filter(this::canSpawn) + .flatMap(this::stream))) .collect(Collectors.toList())) - .popRandom(RNG.r, max).forEach((i) -> spawn(c, id, i)); + .popRandom(RNG.r, max).forEach((i) -> spawn(c, id, i)); //@done } private void spawn(Chunk c, UUID id, IrisEntitySpawn i) { - if(i.spawn(getEngine(), c, RNG.r)) - { + if (i.spawn(getEngine(), c, RNG.r)) { actuallySpawned++; getCooldown(i.getReferenceSpawner()).spawn(getEngine()); } } - private Stream stream(IrisSpawner s) - { - for(IrisEntitySpawn i : s.getSpawns()) - { + private Stream stream(IrisSpawner s) { + for (IrisEntitySpawn i : s.getSpawns()) { i.setReferenceSpawner(s); } return s.getSpawns().stream(); } - private KList puffen(List types) - { + private KList puffen(List types) { KList rarityTypes = new KList<>(); int totalRarity = 0; for (IrisEntitySpawn i : types) { @@ -172,25 +152,21 @@ public class IrisWorldManager extends EngineAssignedWorldManager { return rarityTypes; } - public boolean canSpawn(IrisSpawner i) - { + public boolean canSpawn(IrisSpawner i) { return i.isValid(getEngine().getWorld().realWorld()) && getCooldown(i).canSpawn(i.getMaximumRate()); } - private IrisEngineSpawnerCooldown getCooldown(IrisSpawner i) - { + private IrisEngineSpawnerCooldown getCooldown(IrisSpawner i) { IrisEngineData ed = getEngine().getEngineData(); IrisEngineSpawnerCooldown cd = null; for (IrisEngineSpawnerCooldown j : ed.getSpawnerCooldowns()) { - if (j.getSpawner().equals(i.getLoadKey())) - { + if (j.getSpawner().equals(i.getLoadKey())) { cd = j; } } - if(cd == null) - { + if (cd == null) { cd = new IrisEngineSpawnerCooldown(); cd.setSpawner(i.getLoadKey()); cd.setLastSpawn(M.ms() - i.getMaximumRate().getInterval()); @@ -200,14 +176,12 @@ public class IrisWorldManager extends EngineAssignedWorldManager { return cd; } - public KMap> mapChunkBiomes() - { + public KMap> mapChunkBiomes() { KMap> data = new KMap<>(); - for(Chunk i : getEngine().getWorld().realWorld().getLoadedChunks()) - { + for (Chunk i : getEngine().getWorld().realWorld().getLoadedChunks()) { data.compute(getEngine().getBiomeID(i.getX() << 4, i.getZ() << 4), - (k,v) -> v != null ? v : new KList<>()).add(i); + (k, v) -> v != null ? v : new KList<>()).add(i); } return data; @@ -225,25 +199,20 @@ public class IrisWorldManager extends EngineAssignedWorldManager { @Override public void onBlockBreak(BlockBreakEvent e) { - if(e.getBlock().getWorld().equals(getTarget().getWorld().realWorld()) && getEngine().contains(e.getBlock().getLocation())) - { + if (e.getBlock().getWorld().equals(getTarget().getWorld().realWorld()) && getEngine().contains(e.getBlock().getLocation())) { KList d = new KList<>(); Runnable drop = () -> J.s(() -> d.forEach((i) -> e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation().clone().add(0.5, 0.5, 0.5), i))); IrisBiome b = getEngine().getBiome(e.getBlock().getLocation()); - for(IrisBlockDrops i : b.getBlockDrops()) - { - if(i.shouldDropFor(e.getBlock().getBlockData(), getData())) - { - if(i.isReplaceVanillaDrops()) - { + for (IrisBlockDrops i : b.getBlockDrops()) { + if (i.shouldDropFor(e.getBlock().getBlockData(), getData())) { + if (i.isReplaceVanillaDrops()) { e.setDropItems(false); } i.fillDrops(false, d); - if(i.isSkipParents()) - { + if (i.isSkipParents()) { drop.run(); return; } @@ -252,38 +221,30 @@ public class IrisWorldManager extends EngineAssignedWorldManager { IrisRegion r = getEngine().getRegion(e.getBlock().getLocation()); - for(IrisBlockDrops i : r.getBlockDrops()) - { - if(i.shouldDropFor(e.getBlock().getBlockData(), getData())) - { - if(i.isReplaceVanillaDrops()) - { + for (IrisBlockDrops i : r.getBlockDrops()) { + if (i.shouldDropFor(e.getBlock().getBlockData(), getData())) { + if (i.isReplaceVanillaDrops()) { e.setDropItems(false); } i.fillDrops(false, d); - if(i.isSkipParents()) - { + if (i.isSkipParents()) { drop.run(); return; } } } - for(IrisBlockDrops i : getEngine().getDimension().getBlockDrops()) - { - if(i.shouldDropFor(e.getBlock().getBlockData(), getData())) - { - if(i.isReplaceVanillaDrops()) - { + for (IrisBlockDrops i : getEngine().getDimension().getBlockDrops()) { + if (i.shouldDropFor(e.getBlock().getBlockData(), getData())) { + if (i.isReplaceVanillaDrops()) { e.setDropItems(false); } i.fillDrops(false, d); - if(i.isSkipParents()) - { + if (i.isSkipParents()) { drop.run(); return; } @@ -298,8 +259,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { } @Override - public void close() - { + public void close() { super.close(); J.car(art); } diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainIslandActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainIslandActuator.java index f1fab73a5..fad4c045a 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainIslandActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainIslandActuator.java @@ -21,8 +21,6 @@ package com.volmit.iris.engine.actuator; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineAssignedActuator; import com.volmit.iris.engine.hunk.Hunk; -import com.volmit.iris.engine.interpolation.InterpolationMethod; -import com.volmit.iris.engine.interpolation.IrisInterpolation; import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.documentation.BlockCoordinates; @@ -60,7 +58,7 @@ public class IrisTerrainIslandActuator extends EngineAssignedActuator int i, zf, depth, surface, realX, realZ; IrisBiome biome; KList blocks, fblocks; - int hi,lo; + int hi, lo; double hh; for (int xf = 0; xf < h.getWidth(); xf++) { @@ -69,7 +67,7 @@ public class IrisTerrainIslandActuator extends EngineAssignedActuator realZ = (int) modZ(zf + z); if (getComplex().getIslandStream().get(realX, realZ)) { - biome = getComplex().getTrueBiomeStream().get(realX, realZ); + biome = getComplex().getTrueBiomeStream().get(realX, realZ); hh = getComplex().getTrueHeightStream().get(realX, realZ) - getComplex().getFluidHeight(); depth = (int) (getComplex().getIslandDepthStream().get(realX, realZ).intValue() + hh); blocks = biome.generateLayers(realX, realZ, rng, depth, depth, getData(), getComplex()); diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java b/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java index 8b51fb311..8d30b8100 100644 --- a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java +++ b/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java @@ -23,7 +23,6 @@ import com.volmit.iris.engine.framework.EngineAssignedActuator; import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.parallel.BurstExecutor; -import com.volmit.iris.engine.stream.ProceduralStream; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.documentation.BlockCoordinates; import com.volmit.iris.util.math.RNG; @@ -117,8 +116,7 @@ public class IrisTerrainNormalActuator extends EngineAssignedActuator continue; } - if(getDimension().getCaverns() != null && getDimension().getCaverns().isCavern(rng, realX, i, realZ, he)) - { + if (getDimension().getCaverns() != null && getDimension().getCaverns().isCavern(rng, realX, i, realZ, he)) { continue; } diff --git a/src/main/java/com/volmit/iris/engine/data/B.java b/src/main/java/com/volmit/iris/engine/data/B.java index 97ca0c09a..c141a5751 100644 --- a/src/main/java/com/volmit/iris/engine/data/B.java +++ b/src/main/java/com/volmit/iris/engine/data/B.java @@ -143,13 +143,11 @@ public class B { } BlockData bx = null; - if(ix.startsWith("oraxen:") && Iris.linkOraxen.supported()) - { + if (ix.startsWith("oraxen:") && Iris.linkOraxen.supported()) { bx = Iris.linkOraxen.getBlockDataFor(ix.split("\\Q:\\E")[1]); } - if(bx == null) - { + if (bx == null) { bx = Bukkit.createBlockData(ix); } @@ -540,10 +538,8 @@ public class B { bt.add(v); } - if(Iris.linkOraxen.supported()) - { - for(String i : Iris.linkOraxen.getItemTypes()) - { + if (Iris.linkOraxen.supported()) { + for (String i : Iris.linkOraxen.getItemTypes()) { bt.add("oraxen:" + i); } } diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java index cf8ac3a06..0c44d55e2 100644 --- a/src/main/java/com/volmit/iris/engine/framework/Engine.java +++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java @@ -67,8 +67,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro void setParallelism(int parallelism); - default UUID getBiomeID(int x, int z) - { + default UUID getBiomeID(int x, int z) { return getFramework().getComplex().getBaseBiomeIDStream().get(x, z); } diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java b/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java index a35942b8a..5df4beec9 100644 --- a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java @@ -24,7 +24,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.event.world.WorldSaveEvent; import org.bukkit.event.world.WorldUnloadEvent; diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineCompositeGenerator.java b/src/main/java/com/volmit/iris/engine/framework/EngineCompositeGenerator.java index c9a87656a..32245cba0 100644 --- a/src/main/java/com/volmit/iris/engine/framework/EngineCompositeGenerator.java +++ b/src/main/java/com/volmit/iris/engine/framework/EngineCompositeGenerator.java @@ -133,8 +133,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce getComposite().close(); initialized.lazySet(false); - if(cworld != null) - { + if (cworld != null) { initialize(cworld); } } diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineParallaxManager.java b/src/main/java/com/volmit/iris/engine/framework/EngineParallaxManager.java index b20c58a52..6eb5ffd83 100644 --- a/src/main/java/com/volmit/iris/engine/framework/EngineParallaxManager.java +++ b/src/main/java/com/volmit/iris/engine/framework/EngineParallaxManager.java @@ -48,7 +48,6 @@ import org.bukkit.ChunkSnapshot; import org.bukkit.block.TileState; import org.bukkit.block.data.BlockData; import org.bukkit.util.BlockVector; -import org.bukkit.util.Consumer; import java.io.IOException; import java.util.List; @@ -215,8 +214,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { int s = (int) Math.ceil(getParallaxSize() / 2D); int i, j; - int cx = (int)x >> 4; - int cz = (int)z >> 4; + int cx = (int) x >> 4; + int cz = (int) z >> 4; for (i = -s; i <= s; i++) { for (j = -s; j <= s; j++) { diff --git a/src/main/java/com/volmit/iris/engine/framework/GeneratorAccess.java b/src/main/java/com/volmit/iris/engine/framework/GeneratorAccess.java index 16d3b9b60..a824fe71e 100644 --- a/src/main/java/com/volmit/iris/engine/framework/GeneratorAccess.java +++ b/src/main/java/com/volmit/iris/engine/framework/GeneratorAccess.java @@ -26,8 +26,6 @@ import com.volmit.iris.engine.object.IrisObjectPlacement; import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.parallax.ParallaxAccess; -import java.util.UUID; - public interface GeneratorAccess extends DataProvider, Renderer { IrisRegion getRegion(int x, int z); diff --git a/src/main/java/com/volmit/iris/engine/framework/IrisAccess.java b/src/main/java/com/volmit/iris/engine/framework/IrisAccess.java index cf28aa5dc..7e1c34a06 100644 --- a/src/main/java/com/volmit/iris/engine/framework/IrisAccess.java +++ b/src/main/java/com/volmit/iris/engine/framework/IrisAccess.java @@ -68,26 +68,23 @@ public interface IrisAccess extends Hotloadable, DataProvider { /** * Ignores the world, just uses the position + * * @param l the location * @return the biome */ - default IrisBiome getBiome(Location l) - { + default IrisBiome getBiome(Location l) { return getBiome(l.toVector()); } - default IrisRegion getRegion(int x, int y, int z) - { + default IrisRegion getRegion(int x, int y, int z) { return getEngineAccess(y).getRegion(x, z); } - default IrisRegion getRegion(Location l) - { + default IrisRegion getRegion(Location l) { return getRegion(l.getBlockX(), l.getBlockY(), l.getBlockZ()); } - default IrisBiome getBiome(Vector l) - { + default IrisBiome getBiome(Vector l) { return getBiome(l.getBlockX(), l.getBlockY(), l.getBlockZ()); } @@ -293,8 +290,7 @@ public interface IrisAccess extends Hotloadable, DataProvider { return v; } - default double getHeight(Location l) - { + default double getHeight(Location l) { return getHeight(l.getBlockX(), l.getBlockY(), l.getBlockZ()); } } diff --git a/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java b/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java index a8172d17f..89342c66f 100644 --- a/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java +++ b/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java @@ -30,9 +30,8 @@ public class HeightmapObjectPlacer implements IObjectPlacer { private final IrisObjectPlacement config; private final IObjectPlacer oplacer; - public HeightmapObjectPlacer(RNG rng, int x, int yv, int z, IrisObjectPlacement config, IObjectPlacer oplacer) - { - s = rng.nextLong() + yv + z - x; + public HeightmapObjectPlacer(RNG rng, int x, int yv, int z, IrisObjectPlacement config, IObjectPlacer oplacer) { + s = rng.nextLong() + yv + z - x; this.config = config; this.oplacer = oplacer; } diff --git a/src/main/java/com/volmit/iris/engine/hunk/Hunk.java b/src/main/java/com/volmit/iris/engine/hunk/Hunk.java index 0cbd82c24..57f63d4eb 100644 --- a/src/main/java/com/volmit/iris/engine/hunk/Hunk.java +++ b/src/main/java/com/volmit/iris/engine/hunk/Hunk.java @@ -18,7 +18,6 @@ package com.volmit.iris.engine.hunk; -import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.hunk.io.HunkIOAdapter; import com.volmit.iris.engine.hunk.storage.*; import com.volmit.iris.engine.hunk.view.*; @@ -60,18 +59,15 @@ public interface Hunk { return new HunkView(src); } - static Hunk convertedReadView(Hunk src, Function reader) - { + static Hunk convertedReadView(Hunk src, Function reader) { return new FunctionalHunkView(src, reader, null); } - static Hunk convertedWriteView(Hunk src, Function writer) - { + static Hunk convertedWriteView(Hunk src, Function writer) { return new FunctionalHunkView(src, null, writer); } - static Hunk convertedReadWriteView(Hunk src, Function reader, Function writer) - { + static Hunk convertedReadWriteView(Hunk src, Function reader, Function writer) { return new FunctionalHunkView(src, reader, writer); } @@ -1206,26 +1202,23 @@ public interface Hunk { /** * Take a hunk and scale it up using interpolation - * @param scale the scale - * @param d the interpolation method + * + * @param scale the scale + * @param d the interpolation method * @param interpolated the interpolated value converter * @return the new hunk */ - default Hunk interpolate3D(double scale, InterpolationMethod3D d, Interpolated interpolated) - { - Hunk t = Hunk.newArrayHunk((int)(getWidth() * scale), (int)(getHeight() * scale), (int)(getDepth() * scale)); - NoiseProvider3 n3 = (x,y,z) -> interpolated.toDouble( - t.get((int)(x/scale), - (int)(y/scale), - (int)(z/scale))); + default Hunk interpolate3D(double scale, InterpolationMethod3D d, Interpolated interpolated) { + Hunk t = Hunk.newArrayHunk((int) (getWidth() * scale), (int) (getHeight() * scale), (int) (getDepth() * scale)); + NoiseProvider3 n3 = (x, y, z) -> interpolated.toDouble( + t.get((int) (x / scale), + (int) (y / scale), + (int) (z / scale))); - for(int i = 0; i < t.getWidth(); i++) - { - for(int j = 0; j < t.getHeight(); j++) - { - for(int k = 0; k < t.getDepth(); k++) - { - t.set(i, j, k, interpolated.fromDouble(IrisInterpolation.getNoise3D(d, i,j,k,scale, n3))); + for (int i = 0; i < t.getWidth(); i++) { + for (int j = 0; j < t.getHeight(); j++) { + for (int k = 0; k < t.getDepth(); k++) { + t.set(i, j, k, interpolated.fromDouble(IrisInterpolation.getNoise3D(d, i, j, k, scale, n3))); } } } @@ -1236,24 +1229,22 @@ public interface Hunk { /** * Take a hunk and scale it up using interpolation * 2D, (using only x and z) assumes the height is 1 - * @param scale the scale - * @param d the interpolation method + * + * @param scale the scale + * @param d the interpolation method * @param interpolated the interpolated value converter * @return the new hunk */ - default Hunk interpolate2D(double scale, InterpolationMethod d, Interpolated interpolated) - { - Hunk t = Hunk.newArrayHunk((int)(getWidth() * scale), 1, (int)(getDepth() * scale)); - NoiseProvider n2 = (x,z) -> interpolated.toDouble( - t.get((int)(x/scale), + default Hunk interpolate2D(double scale, InterpolationMethod d, Interpolated interpolated) { + Hunk t = Hunk.newArrayHunk((int) (getWidth() * scale), 1, (int) (getDepth() * scale)); + NoiseProvider n2 = (x, z) -> interpolated.toDouble( + t.get((int) (x / scale), 0, - (int)(z/scale))); + (int) (z / scale))); - for(int i = 0; i < t.getWidth(); i++) - { - for(int j = 0; j < t.getDepth(); j++) - { - t.set(i, 0, j, interpolated.fromDouble(IrisInterpolation.getNoise(d, i,j,scale, n2))); + for (int i = 0; i < t.getWidth(); i++) { + for (int j = 0; j < t.getDepth(); j++) { + t.set(i, 0, j, interpolated.fromDouble(IrisInterpolation.getNoise(d, i, j, scale, n2))); } } diff --git a/src/main/java/com/volmit/iris/engine/hunk/view/FunctionalHunkView.java b/src/main/java/com/volmit/iris/engine/hunk/view/FunctionalHunkView.java index 8f94cb6ee..05dfc1b91 100644 --- a/src/main/java/com/volmit/iris/engine/hunk/view/FunctionalHunkView.java +++ b/src/main/java/com/volmit/iris/engine/hunk/view/FunctionalHunkView.java @@ -35,18 +35,16 @@ public class FunctionalHunkView implements Hunk { @Override public void setRaw(int x, int y, int z, T t) { - if(backConverter == null) - { + if (backConverter == null) { throw new UnsupportedOperationException("You cannot write to this hunk (Read Only)"); } - src.setRaw(x,y,z,backConverter.apply(t)); + src.setRaw(x, y, z, backConverter.apply(t)); } @Override public T getRaw(int x, int y, int z) { - if(converter == null) - { + if (converter == null) { throw new UnsupportedOperationException("You cannot read this hunk (Write Only)"); } diff --git a/src/main/java/com/volmit/iris/engine/interpolation/IrisInterpolation.java b/src/main/java/com/volmit/iris/engine/interpolation/IrisInterpolation.java index 016caf944..5d1aee879 100644 --- a/src/main/java/com/volmit/iris/engine/interpolation/IrisInterpolation.java +++ b/src/main/java/com/volmit/iris/engine/interpolation/IrisInterpolation.java @@ -21,9 +21,7 @@ package com.volmit.iris.engine.interpolation; import com.google.common.util.concurrent.AtomicDouble; import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.noise.CNG; -import com.volmit.iris.engine.object.IrisInterpolator3D; import com.volmit.iris.engine.object.NoiseStyle; -import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.util.function.NoiseProvider; import com.volmit.iris.util.function.NoiseProvider3; import com.volmit.iris.util.math.RNG; @@ -318,9 +316,9 @@ public class IrisInterpolation { } public static double getStarcast3D(int x, int y, int z, double rad, double checks, NoiseProvider3 n) { - return (getStarcast(x, z, rad, checks, (xx,zz) -> n.noise(xx, y, zz)) - + getStarcast(x, y, rad, checks, (xx,yy) -> n.noise(xx, yy, z)) - + getStarcast(y, z, rad, checks, (yy,zz) -> n.noise(x, yy, zz)))/3D; + return (getStarcast(x, z, rad, checks, (xx, zz) -> n.noise(xx, y, zz)) + + getStarcast(x, y, rad, checks, (xx, yy) -> n.noise(xx, yy, z)) + + getStarcast(y, z, rad, checks, (yy, zz) -> n.noise(x, yy, zz))) / 3D; } public static double getBilinearBezierNoise(int x, int z, double rad, NoiseProvider n) { @@ -851,52 +849,48 @@ public class IrisInterpolation { case TRILINEAR -> getTrilinear(x, y, z, radx, rady, radz, n); case TRICUBIC -> getTricubic(x, y, z, radx, rady, radz, n); case TRIHERMITE -> getTrihermite(x, y, z, radx, rady, radz, n); - case TRISTARCAST_3 -> getStarcast3D(x,y,z,radx,3D,n); - case TRISTARCAST_6 -> getStarcast3D(x,y,z,radx,6D,n); - case TRISTARCAST_9 -> getStarcast3D(x,y,z,radx,9D,n); - case TRISTARCAST_12 -> getStarcast3D(x,y,z,radx,12D,n); - case TRILINEAR_TRISTARCAST_3 -> getStarcast3D(x,y,z,radx,3D, (xx,yy,zz) -> getTrilinear((int)xx,(int)yy,(int)zz,radx, rady,radz,n)); - case TRILINEAR_TRISTARCAST_6 -> getStarcast3D(x,y,z,radx,6D, (xx,yy,zz) -> getTrilinear((int)xx,(int)yy,(int)zz,radx, rady,radz,n)); - case TRILINEAR_TRISTARCAST_9 -> getStarcast3D(x,y,z,radx,9D, (xx,yy,zz) -> getTrilinear((int)xx,(int)yy,(int)zz,radx, rady,radz,n)); - case TRILINEAR_TRISTARCAST_12 -> getStarcast3D(x,y,z,radx,12D, (xx,yy,zz) -> getTrilinear((int)xx,(int)yy,(int)zz,radx, rady,radz,n)); - case NONE -> n.noise(x,y,z); + case TRISTARCAST_3 -> getStarcast3D(x, y, z, radx, 3D, n); + case TRISTARCAST_6 -> getStarcast3D(x, y, z, radx, 6D, n); + case TRISTARCAST_9 -> getStarcast3D(x, y, z, radx, 9D, n); + case TRISTARCAST_12 -> getStarcast3D(x, y, z, radx, 12D, n); + case TRILINEAR_TRISTARCAST_3 -> getStarcast3D(x, y, z, radx, 3D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); + case TRILINEAR_TRISTARCAST_6 -> getStarcast3D(x, y, z, radx, 6D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); + case TRILINEAR_TRISTARCAST_9 -> getStarcast3D(x, y, z, radx, 9D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); + case TRILINEAR_TRISTARCAST_12 -> getStarcast3D(x, y, z, radx, 12D, (xx, yy, zz) -> getTrilinear((int) xx, (int) yy, (int) zz, radx, rady, radz, n)); + case NONE -> n.noise(x, y, z); }; } - public static Hunk getNoise3D(InterpolationMethod3D method, int xo, int yo, int zo, int w, int h, int d, double rad, NoiseProvider3 n) - { - return getNoise3D(method, xo, yo, zo, w,h,d,rad,rad,rad,n); + public static Hunk getNoise3D(InterpolationMethod3D method, int xo, int yo, int zo, int w, int h, int d, double rad, NoiseProvider3 n) { + return getNoise3D(method, xo, yo, zo, w, h, d, rad, rad, rad, n); } /** * Get the interpolated 3D noise within a given cuboid size with offsets + * * @param method the interpolation method to use - * @param xo the x offset for noise - * @param yo the y offset for noise - * @param zo the z offset for noise - * @param w the width of the result - * @param h the height of the result - * @param d the depth of the result - * @param radX the interpolation radius for the x axis - * @param radY the interpolation radius for the y axis - * @param radZ the interpolation radius for the z axis - * @param n the noise provider + * @param xo the x offset for noise + * @param yo the y offset for noise + * @param zo the z offset for noise + * @param w the width of the result + * @param h the height of the result + * @param d the depth of the result + * @param radX the interpolation radius for the x axis + * @param radY the interpolation radius for the y axis + * @param radZ the interpolation radius for the z axis + * @param n the noise provider * @return the resulting hunk of noise */ - public static Hunk getNoise3D(InterpolationMethod3D method, int xo, int yo, int zo, int w, int h, int d, double radX, double radY, double radZ, NoiseProvider3 n) - { - Hunk hunk = Hunk.newAtomicDoubleHunk(w,h,d); + public static Hunk getNoise3D(InterpolationMethod3D method, int xo, int yo, int zo, int w, int h, int d, double radX, double radY, double radZ, NoiseProvider3 n) { + Hunk hunk = Hunk.newAtomicDoubleHunk(w, h, d); HashMap cache = new HashMap<>(); - int i,j,k; + int i, j, k; - for(i = 0; i < w; i++) - { + for (i = 0; i < w; i++) { int fi = i; - for(j = 0; j < h; j++) - { + for (j = 0; j < h; j++) { int fj = j; - for(k = 0; k < d; k++) - { + for (k = 0; k < d; k++) { int fk = k; hunk.set(i, j, k, cache.compute((k * w * h) + (j * w) + i, (p, v) -> getNoise3D(method, fi + xo, fj + yo, fk + zo, @@ -909,7 +903,7 @@ public class IrisInterpolation { } public static double getNoise3D(InterpolationMethod3D method, int x, int y, int z, double rad, NoiseProvider3 n) { - return getNoise3D(method, x,y,z,rad,rad,rad,n); + return getNoise3D(method, x, y, z, rad, rad, rad, n); } public static double getNoise(InterpolationMethod method, int x, int z, double h, NoiseProvider n) { diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCaveModifier2.java b/src/main/java/com/volmit/iris/engine/modifier/IrisCaveModifier2.java index 979fbeef7..0b34cff8c 100644 --- a/src/main/java/com/volmit/iris/engine/modifier/IrisCaveModifier2.java +++ b/src/main/java/com/volmit/iris/engine/modifier/IrisCaveModifier2.java @@ -23,18 +23,13 @@ import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.EngineAssignedModifier; import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.noise.FastNoiseDouble; -import com.volmit.iris.engine.object.IrisBiome; -import com.volmit.iris.engine.object.IrisCaveLayer; import com.volmit.iris.engine.object.common.CaveResult; import com.volmit.iris.engine.parallel.BurstExecutor; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.scheduling.PrecisionStopwatch; -import org.bukkit.Material; import org.bukkit.block.data.BlockData; -import java.util.function.Function; - public class IrisCaveModifier2 extends EngineAssignedModifier { public static final BlockData CAVE_AIR = B.get("CAVE_AIR"); public static final BlockData AIR = B.get("AIR"); diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCarveLayer.java b/src/main/java/com/volmit/iris/engine/object/IrisCarveLayer.java index 3c8f64212..5b48754f8 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCarveLayer.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCarveLayer.java @@ -77,20 +77,17 @@ public class IrisCarveLayer { return getCng(rng).fitDouble(0D, 1D, x, y, z) * opacity > getThreshold(); } - public ProceduralStream stream(RNG rng) - { - return streamCache.aquire(() -> ProceduralStream.of((x,y,z) -> isCarved(rng, x,y,z), Interpolated.BOOLEAN)); + public ProceduralStream stream(RNG rng) { + return streamCache.aquire(() -> ProceduralStream.of((x, y, z) -> isCarved(rng, x, y, z), Interpolated.BOOLEAN)); } - public ProceduralStream rawStream(RNG rng) - { - return rawStreamCache.aquire(() -> ProceduralStream.of((x,y,z) -> { + public ProceduralStream rawStream(RNG rng) { + return rawStreamCache.aquire(() -> ProceduralStream.of((x, y, z) -> { return getCng(rng).fitDouble(0D, 1D, x, y, z) * Math.pow(IrisInterpolation.sinCenter(M.lerpInverse(getMinHeight(), getMaxHeight(), y)), 4); }, Interpolated.DOUBLE)); } - public CNG getCng(RNG rng) - { + public CNG getCng(RNG rng) { return cng.aquire(() -> getStyle().create(rng.nextParallelRNG(-2340 * getMaxHeight() * getMinHeight()))); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCavernZone.java b/src/main/java/com/volmit/iris/engine/object/IrisCavernZone.java index 3d8b7a670..884dfcb61 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCavernZone.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCavernZone.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.engine.cache.AtomicCache; -import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.object.annotations.Desc; import com.volmit.iris.engine.object.annotations.MaxNumber; import com.volmit.iris.engine.object.annotations.MinNumber; @@ -31,9 +30,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; -import java.util.function.Consumer; -import java.util.function.Supplier; - @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor @@ -53,18 +49,16 @@ public class IrisCavernZone implements IRare { private AtomicCache> carveCache = new AtomicCache<>(); public boolean isCarved(RNG rng, double xx, double yy, double zz) { - if(carver != null) - { - return carver.isCarved(rng, xx,yy,zz); + if (carver != null) { + return carver.isCarved(rng, xx, yy, zz); } return false; } public double getCarved(RNG rng, double xx, double yy, double zz) { - if(carver != null) - { - return carver.rawStream(rng).get(xx,yy,zz) / (carver.getThreshold() * 2); + if (carver != null) { + return carver.rawStream(rng).get(xx, yy, zz) / (carver.getThreshold() * 2); } return -1; diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCaverns.java b/src/main/java/com/volmit/iris/engine/object/IrisCaverns.java index a8d9bd2eb..af5b94c17 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisCaverns.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisCaverns.java @@ -19,9 +19,8 @@ package com.volmit.iris.engine.object; import com.volmit.iris.engine.cache.AtomicCache; -import com.volmit.iris.engine.hunk.Hunk; -import com.volmit.iris.engine.interpolation.IrisInterpolation; -import com.volmit.iris.engine.object.annotations.*; +import com.volmit.iris.engine.object.annotations.ArrayType; +import com.volmit.iris.engine.object.annotations.Desc; import com.volmit.iris.engine.stream.ProceduralStream; import com.volmit.iris.engine.stream.interpolation.Interpolated; import com.volmit.iris.util.collection.KList; @@ -59,40 +58,35 @@ public class IrisCaverns { private transient AtomicCache> zonesRarity = new AtomicCache<>(); private transient AtomicCache> streamCache = new AtomicCache<>(); - public IrisCavernZone getZone(double x, double y, double z, RNG rng) - { + public IrisCavernZone getZone(double x, double y, double z, RNG rng) { return zonesRarity.aquire(() -> zoneStyle.create(rng) - .stream().selectRarity(getZones())).get(x,y,z); + .stream().selectRarity(getZones())).get(x, y, z); } - private double threshold(double y) - { + private double threshold(double y) { return 0.5; } - public ProceduralStream stream(RNG rng) - { - if(preThresholdInterpolation) - { - return streamCache.aquire(() -> ProceduralStream.of((xx,yy,zz) + public ProceduralStream stream(RNG rng) { + if (preThresholdInterpolation) { + return streamCache.aquire(() -> ProceduralStream.of((xx, yy, zz) -> (getZone(xx, yy, zz, rng) - .getCarved(rng, xx,yy,zz)), Interpolated.DOUBLE) + .getCarved(rng, xx, yy, zz)), Interpolated.DOUBLE) .cache3D(65535)); } - return streamCache.aquire(() -> ProceduralStream.of((xx,yy,zz) + return streamCache.aquire(() -> ProceduralStream.of((xx, yy, zz) -> (getZone(xx, yy, zz, rng) - .isCarved(rng, xx,yy,zz) ? 1D : 0D), Interpolated.DOUBLE) + .isCarved(rng, xx, yy, zz) ? 1D : 0D), Interpolated.DOUBLE) .cache3D(65535)); } public boolean isCavern(RNG rng, double x, double y, double z, double height) { - if(zones.isEmpty()) - { + if (zones.isEmpty()) { return false; } return getInterpolator().interpolate(x, y, z, (xx, yy, zz) - -> stream(rng).get(xx,yy,zz)) > threshold(height); + -> stream(rng).get(xx, yy, zz)) > threshold(height); } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDuration.java b/src/main/java/com/volmit/iris/engine/object/IrisDuration.java index 0b56ee896..35812294a 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisDuration.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisDuration.java @@ -21,7 +21,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.engine.object.annotations.Desc; import com.volmit.iris.util.format.Form; import lombok.Data; -import org.bukkit.World; import java.util.concurrent.TimeUnit; @@ -58,13 +57,11 @@ public class IrisDuration { @Desc("REAL (not minecraft) Days") private int days = 0; - public String toString() - { + public String toString() { return Form.duration((double) toMilliseconds(), 2); } - public long toMilliseconds() - { + public long toMilliseconds() { return getMilliseconds() + TimeUnit.SECONDS.toMillis(getSeconds()) + TimeUnit.MINUTES.toMillis(getMinutes()) diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEffect.java b/src/main/java/com/volmit/iris/engine/object/IrisEffect.java index 1667a5586..21e630c32 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEffect.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEffect.java @@ -273,7 +273,7 @@ public class IrisEffect { } if (particleEffect != null) { - Location part = p.getLocation().clone().add(0, 0.25, 0).add(new Vector(1,1,1).multiply(RNG.r.d())).subtract(new Vector(1,1,1).multiply(RNG.r.d())); + Location part = p.getLocation().clone().add(0, 0.25, 0).add(new Vector(1, 1, 1).multiply(RNG.r.d())).subtract(new Vector(1, 1, 1).multiply(RNG.r.d())); part.add(RNG.r.d(), 0, RNG.r.d()); if (extra != 0) { J.s(() -> p.getWorld().spawnParticle(particleEffect, part.getX(), part.getY() + RNG.r.i(particleOffset), diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java b/src/main/java/com/volmit/iris/engine/object/IrisEntity.java index 5d370fcfe..0f68a7ec5 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEntity.java @@ -259,8 +259,7 @@ public class IrisEntity extends IrisRegistrant { m.setAware(isAware()); } - if(spawnEffect != null) - { + if (spawnEffect != null) { spawnEffect.apply(e); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java b/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java index 1a9a4afcf..58b52b16e 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.Iris; -import com.volmit.iris.core.IrisSettings; import com.volmit.iris.engine.cache.AtomicCache; import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.object.annotations.Desc; @@ -29,7 +28,6 @@ import com.volmit.iris.engine.object.annotations.Required; import com.volmit.iris.engine.object.common.IRare; import com.volmit.iris.util.format.C; import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.scheduling.J; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -102,8 +100,7 @@ public class IrisEntitySpawn implements IRare { try { Location l = at.clone().add(0.5, 1, 0.5); Entity e = getRealEntity(g).spawn(g, l, rng.aquire(() -> new RNG(g.getTarget().getWorld().seed() + 4))); - if(e != null) - { + if (e != null) { Iris.debug("Spawned " + C.DARK_AQUA + "Entity<" + getEntity() + "> " + C.GREEN + e.getType() + C.LIGHT_PURPLE + " @ " + C.GRAY + e.getLocation().getX() + ", " + e.getLocation().getY() + ", " + e.getLocation().getZ()); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisExpressionGenerator.java b/src/main/java/com/volmit/iris/engine/object/IrisExpressionGenerator.java index 0875eebc1..d9e196d85 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisExpressionGenerator.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisExpressionGenerator.java @@ -22,13 +22,10 @@ import com.dfsek.paralithic.Expression; import com.dfsek.paralithic.eval.parser.Parser; import com.dfsek.paralithic.eval.parser.Scope; import com.volmit.iris.Iris; -import com.volmit.iris.engine.IrisComplex; -import com.volmit.iris.engine.IrisEngine; import com.volmit.iris.engine.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.common.IRare; -import com.volmit.iris.engine.stream.ProceduralStream; +import com.volmit.iris.engine.object.annotations.ArrayType; +import com.volmit.iris.engine.object.annotations.Desc; +import com.volmit.iris.engine.object.annotations.Required; import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.math.RNG; import lombok.AllArgsConstructor; @@ -57,36 +54,26 @@ public class IrisExpressionGenerator extends IrisRegistrant { private transient AtomicCache expressionCache = new AtomicCache<>(); - private Expression expression() - { + private Expression expression() { return expressionCache.aquire(() -> { Scope scope = new Scope(); // Create variable scope. This scope can hold both constants and invocation variables. - try - { - for(IrisExpressionLoad i : variables) - { + try { + for (IrisExpressionLoad i : variables) { scope.addInvocationVariable(i.getName()); } scope.addInvocationVariable("x"); scope.addInvocationVariable("y"); scope.addInvocationVariable("z"); - } - - catch(Throwable e) - { + } catch (Throwable e) { e.printStackTrace(); Iris.error("Script Variable load error in " + getLoadFile().getPath()); } - try - { + try { return parser.parse(getExpression(), scope); - } - - catch(Throwable e) - { + } catch (Throwable e) { e.printStackTrace(); Iris.error("Script load error in " + getLoadFile().getPath()); } @@ -95,12 +82,10 @@ public class IrisExpressionGenerator extends IrisRegistrant { }); } - public double evaluate(RNG rng, double x, double z) - { + public double evaluate(RNG rng, double x, double z) { double[] g = new double[3 + getVariables().size()]; int m = 0; - for(IrisExpressionLoad i : getVariables()) - { + for (IrisExpressionLoad i : getVariables()) { g[m++] = i.getValue(rng, x, z); } @@ -111,12 +96,10 @@ public class IrisExpressionGenerator extends IrisRegistrant { return expression().evaluate(g); } - public double evaluate(RNG rng, double x, double y, double z) - { + public double evaluate(RNG rng, double x, double y, double z) { double[] g = new double[3 + getVariables().size()]; int m = 0; - for(IrisExpressionLoad i : getVariables()) - { + for (IrisExpressionLoad i : getVariables()) { g[m++] = i.getValue(rng, x, y, z); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java b/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java index 9db9b1bd3..4e2539b3f 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java @@ -46,8 +46,7 @@ public class IrisExpressionLoad { private IrisGeneratorStyle styleValue = null; public double getValue(RNG rng, double x, double z) { - if(styleValue != null) - { + if (styleValue != null) { return styleValue.create(rng).noise(x, z); } @@ -55,8 +54,7 @@ public class IrisExpressionLoad { } public double getValue(RNG rng, double x, double y, double z) { - if(styleValue != null) - { + if (styleValue != null) { return styleValue.create(rng).noise(x, y, z); } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java b/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java index ec9584720..2d01a79b1 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java @@ -18,7 +18,6 @@ package com.volmit.iris.engine.object; -import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.interpolation.InterpolationMethod3D; import com.volmit.iris.engine.interpolation.IrisInterpolation; import com.volmit.iris.engine.object.annotations.Desc; @@ -52,6 +51,6 @@ public class IrisInterpolator3D { } public double interpolate(int x, int y, int z, NoiseProvider3 provider) { - return IrisInterpolation.getNoise3D(getFunction(), x,y, z, getScale(), provider); + return IrisInterpolation.getNoise3D(getFunction(), x, y, z, getScale(), provider); } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java b/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java index a6ef66945..8f6ed69d3 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java @@ -216,10 +216,8 @@ public class IrisObjectPlacement { private transient AtomicCache cache = new AtomicCache<>(); public boolean matches(IrisTreeSize size, TreeType type) { - for(IrisTree i : getTrees()) - { - if(i.matches(size, type)) - { + for (IrisTree i : getTrees()) { + if (i.matches(size, type)) { return true; } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRate.java b/src/main/java/com/volmit/iris/engine/object/IrisRate.java index 439591f47..e121a771b 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisRate.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisRate.java @@ -36,19 +36,16 @@ public class IrisRate { @Desc("The time interval. Leave blank for infinite 0 (meaning always spawn all the time)") private IrisDuration per = new IrisDuration(); - public String toString() - { + public String toString() { return Form.f(amount) + "/" + per; } - public long getInterval() - { + public long getInterval() { long t = per.getMilliseconds() / (amount == 0 ? 1 : amount); return Math.abs(t <= 0 ? 1 : t); } - public ChronoLatch toChronoLatch() - { + public ChronoLatch toChronoLatch() { return new ChronoLatch(getInterval()); } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java b/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java index 4caf89ec7..fa50a9f4e 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java @@ -18,22 +18,14 @@ package com.volmit.iris.engine.object; -import com.volmit.iris.Iris; -import com.volmit.iris.engine.cache.AtomicCache; -import com.volmit.iris.engine.framework.Engine; -import com.volmit.iris.engine.object.annotations.*; -import com.volmit.iris.engine.object.common.IRare; -import com.volmit.iris.engine.stream.ProceduralStream; -import com.volmit.iris.engine.stream.convert.SelectionStream; +import com.volmit.iris.engine.object.annotations.ArrayType; +import com.volmit.iris.engine.object.annotations.Desc; import com.volmit.iris.util.collection.KList; -import com.volmit.iris.util.math.RNG; -import com.volmit.iris.util.reflect.V; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; -import org.bukkit.Chunk; import org.bukkit.World; @EqualsAndHashCode(callSuper = true) @@ -56,8 +48,7 @@ public class IrisSpawner extends IrisRegistrant { @Desc("The maximum rate this spawner can fire") private IrisRate maximumRate = new IrisRate(); - public boolean isValid(World world) - { + public boolean isValid(World world) { return timeBlock.isWithin(world) && weather.is(world); } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java b/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java index 21e96331f..56d6c7f85 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java @@ -18,9 +18,7 @@ package com.volmit.iris.engine.object; -import com.volmit.iris.Iris; import com.volmit.iris.engine.object.annotations.Desc; -import com.volmit.iris.util.math.CDou; import lombok.Data; import org.bukkit.World; @@ -33,20 +31,16 @@ public class IrisTimeBlock { @Desc("The ending hour. Set both to the same number for any time. If they are both set to -1, it will always be not allowed.") private double endHour = 0; - public boolean isWithin(World world) - { - return isWithin(((world.getTime() / 1000D)+6)%24); + public boolean isWithin(World world) { + return isWithin(((world.getTime() / 1000D) + 6) % 24); } - public boolean isWithin(double hour) - { - if(startHour == endHour) - { + public boolean isWithin(double hour) { + if (startHour == endHour) { return endHour != -1; } - if(startHour > endHour) - { + if (startHour > endHour) { return hour >= startHour || hour <= endHour; } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTree.java b/src/main/java/com/volmit/iris/engine/object/IrisTree.java index 8d73ea11e..c2c10dc11 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisTree.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisTree.java @@ -52,8 +52,7 @@ public class IrisTree { private boolean anySize; public boolean matches(IrisTreeSize size, TreeType type) { - if(!matchesSize(size)) - { + if (!matchesSize(size)) { return false; } @@ -61,10 +60,8 @@ public class IrisTree { } private boolean matchesSize(IrisTreeSize size) { - for(IrisTreeSize i : getSizes()) - { - if((i.getDepth() == size.getDepth() && i.getWidth() == size.getWidth()) || (i.getDepth() == size.getWidth() && i.getWidth() == size.getDepth())) - { + for (IrisTreeSize i : getSizes()) { + if ((i.getDepth() == size.getDepth() && i.getWidth() == size.getWidth()) || (i.getDepth() == size.getWidth() && i.getWidth() == size.getDepth())) { return true; } } diff --git a/src/main/java/com/volmit/iris/engine/object/IrisWeather.java b/src/main/java/com/volmit/iris/engine/object/IrisWeather.java index 81c1e07aa..1e1628a5d 100644 --- a/src/main/java/com/volmit/iris/engine/object/IrisWeather.java +++ b/src/main/java/com/volmit/iris/engine/object/IrisWeather.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.object; import com.volmit.iris.engine.object.annotations.Desc; -import lombok.Data; import org.bukkit.World; @Desc("Represents a weather type") @@ -36,10 +35,8 @@ public enum IrisWeather { @Desc("Any weather") ANY; - public boolean is(World world) - { - return switch(this) - { + public boolean is(World world) { + return switch (this) { case NONE -> world.isClearWeather(); case DOWNFALL -> world.hasStorm(); case DOWNFALL_WITH_THUNDER -> world.hasStorm() && world.isThundering(); diff --git a/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineData.java b/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineData.java index da742757f..f85efe3e4 100644 --- a/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineData.java +++ b/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineData.java @@ -22,8 +22,7 @@ import com.volmit.iris.util.collection.KList; import lombok.Data; @Data -public class IrisEngineData -{ +public class IrisEngineData { private IrisEngineStatistics statistics = new IrisEngineStatistics(); private KList spawnerCooldowns = new KList<>(); } diff --git a/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineSpawnerCooldown.java b/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineSpawnerCooldown.java index f142a59d4..82610978a 100644 --- a/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineSpawnerCooldown.java +++ b/src/main/java/com/volmit/iris/engine/object/engine/IrisEngineSpawnerCooldown.java @@ -24,18 +24,15 @@ import com.volmit.iris.util.math.M; import lombok.Data; @Data -public class IrisEngineSpawnerCooldown -{ +public class IrisEngineSpawnerCooldown { private long lastSpawn; private String spawner; - public void spawn(Engine engine) - { + public void spawn(Engine engine) { lastSpawn = M.ms(); } - public boolean canSpawn(IrisRate s) - { + public boolean canSpawn(IrisRate s) { return M.ms() - lastSpawn > s.getInterval(); } } diff --git a/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java b/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java index 0f428aff6..ac7941042 100644 --- a/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java +++ b/src/main/java/com/volmit/iris/engine/parallax/ParallaxChunkMeta.java @@ -22,7 +22,6 @@ import com.google.gson.Gson; import com.volmit.iris.engine.hunk.io.HunkIOAdapter; import com.volmit.iris.engine.hunk.io.PaletteHunkIOAdapter; import com.volmit.iris.engine.object.IrisFeaturePositional; -import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.oldnbt.CompoundTag; import lombok.AllArgsConstructor; import lombok.Data; @@ -30,7 +29,6 @@ import lombok.Data; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Function; @@ -92,8 +90,7 @@ public class ParallaxChunkMeta { private int count; private List features; - private static List newList() - { + private static List newList() { return new CopyOnWriteArrayList<>(); } diff --git a/src/main/java/com/volmit/iris/engine/parallel/HyperLock.java b/src/main/java/com/volmit/iris/engine/parallel/HyperLock.java index 651153573..9575d639f 100644 --- a/src/main/java/com/volmit/iris/engine/parallel/HyperLock.java +++ b/src/main/java/com/volmit/iris/engine/parallel/HyperLock.java @@ -47,14 +47,13 @@ public class HyperLock { .initialCapacity(capacity) .maximumWeightedCapacity(capacity) .listener((k, v) -> { - if(v.isLocked() || v.isHeldByCurrentThread()) - { + if (v.isLocked() || v.isHeldByCurrentThread()) { Iris.warn("InfiniLock Eviction of " + k + " still has locks on it!"); } }) .concurrencyLevel(32) .build(); - accessor = (k,v) -> v == null ? new ReentrantLock(fair) : v; + accessor = (k, v) -> v == null ? new ReentrantLock(fair) : v; } public void with(int x, int z, Runnable r) { @@ -96,8 +95,7 @@ public class HyperLock { return false; } - private ReentrantLock getLock(int x, int z) - { + private ReentrantLock getLock(int x, int z) { return locks.compute(Cache.key(x, z), accessor); } diff --git a/src/main/java/com/volmit/iris/engine/parallel/MultiBurst.java b/src/main/java/com/volmit/iris/engine/parallel/MultiBurst.java index 4b9b994b7..dadb072d3 100644 --- a/src/main/java/com/volmit/iris/engine/parallel/MultiBurst.java +++ b/src/main/java/com/volmit/iris/engine/parallel/MultiBurst.java @@ -50,8 +50,7 @@ public class MultiBurst { heartbeat = new Looper() { @Override protected long loop() { - if(M.ms() - last.get() > TimeUnit.MINUTES.toMillis(1) && service != null) - { + if (M.ms() - last.get() > TimeUnit.MINUTES.toMillis(1) && service != null) { service.shutdown(); service = null; Iris.debug("Shutting down MultiBurst Pool " + getName() + " to conserve resource."); @@ -64,11 +63,9 @@ public class MultiBurst { heartbeat.start(); } - private synchronized ExecutorService getService() - { + private synchronized ExecutorService getService() { last.set(M.ms()); - if(service == null || service.isShutdown()) - { + if (service == null || service.isShutdown()) { service = Executors.newFixedThreadPool(Math.max(tc, 1), r -> { tid++; Thread t = new Thread(r); @@ -130,8 +127,7 @@ public class MultiBurst { Iris.debug("Shutting down MultiBurst Pool " + heartbeat.getName() + "."); heartbeat.interrupt(); - if(service != null) - { + if (service != null) { service.shutdownNow().forEach(Runnable::run); } } @@ -140,34 +136,30 @@ public class MultiBurst { Iris.debug("Shutting down MultiBurst Pool " + heartbeat.getName() + "."); heartbeat.interrupt(); - if(service != null) - { + if (service != null) { service.shutdown(); } } public void shutdownLater() { - if(service != null) - { - service.submit(() -> { - J.sleep(3000); - Iris.debug("Shutting down MultiBurst Pool " + heartbeat.getName() + "."); + if (service != null) { + service.submit(() -> { + J.sleep(3000); + Iris.debug("Shutting down MultiBurst Pool " + heartbeat.getName() + "."); - if(service != null) - { - service.shutdown(); - } - }); + if (service != null) { + service.shutdown(); + } + }); - heartbeat.interrupt(); - } + heartbeat.interrupt(); + } } public void shutdownAndAwait() { Iris.debug("Shutting down MultiBurst Pool " + heartbeat.getName() + "."); heartbeat.interrupt(); - if(service != null) - { + if (service != null) { service.shutdown(); try { while (!service.awaitTermination(10, TimeUnit.SECONDS)) { diff --git a/src/main/java/com/volmit/iris/engine/parallel/NOOPGridLock.java b/src/main/java/com/volmit/iris/engine/parallel/NOOPGridLock.java index f1eae66d0..04b712564 100644 --- a/src/main/java/com/volmit/iris/engine/parallel/NOOPGridLock.java +++ b/src/main/java/com/volmit/iris/engine/parallel/NOOPGridLock.java @@ -24,7 +24,7 @@ import com.volmit.iris.util.io.IORunnable; import java.io.IOException; import java.util.function.Supplier; -public class NOOPGridLock extends GridLock{ +public class NOOPGridLock extends GridLock { public NOOPGridLock(int x, int z) { super(x, z); } diff --git a/src/main/java/com/volmit/iris/engine/stream/utility/CachedStream3D.java b/src/main/java/com/volmit/iris/engine/stream/utility/CachedStream3D.java index 47630b7c0..0d6564e36 100644 --- a/src/main/java/com/volmit/iris/engine/stream/utility/CachedStream3D.java +++ b/src/main/java/com/volmit/iris/engine/stream/utility/CachedStream3D.java @@ -19,7 +19,6 @@ package com.volmit.iris.engine.stream.utility; import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; -import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.stream.BasicStream; import com.volmit.iris.engine.stream.ProceduralStream; import com.volmit.iris.util.math.BlockPosition; @@ -50,11 +49,11 @@ public class CachedStream3D extends BasicStream implements ProceduralStrea @Override public T get(double x, double z) { - return cache.compute(new BlockPosition((int)x, -1, (int)z), (k, v) -> v != null ? v : stream.get((int) x, (int) z)); + return cache.compute(new BlockPosition((int) x, -1, (int) z), (k, v) -> v != null ? v : stream.get((int) x, (int) z)); } @Override public T get(double x, double y, double z) { - return cache.compute(new BlockPosition((int)x, (int)y, (int)z), (k, v) -> v != null ? v : stream.get((int) x, (int) y, (int) z)); + return cache.compute(new BlockPosition((int) x, (int) y, (int) z), (k, v) -> v != null ? v : stream.get((int) x, (int) y, (int) z)); } } diff --git a/src/main/java/com/volmit/iris/util/collection/KList.java b/src/main/java/com/volmit/iris/util/collection/KList.java index d850b1572..40bab0cd2 100644 --- a/src/main/java/com/volmit/iris/util/collection/KList.java +++ b/src/main/java/com/volmit/iris/util/collection/KList.java @@ -625,14 +625,11 @@ public class KList extends ArrayList implements List { return get(M.irand(0, last())); } - public KList popRandom(RNG rng, int c) - { + public KList popRandom(RNG rng, int c) { KList m = new KList<>(); - for(int i = 0; i < c; i++) - { - if(isEmpty()) - { + for (int i = 0; i < c; i++) { + if (isEmpty()) { break; } diff --git a/src/main/java/com/volmit/iris/util/math/BlockPosition.java b/src/main/java/com/volmit/iris/util/math/BlockPosition.java index fe20f1df5..0b9877f4e 100644 --- a/src/main/java/com/volmit/iris/util/math/BlockPosition.java +++ b/src/main/java/com/volmit/iris/util/math/BlockPosition.java @@ -30,7 +30,6 @@ public class BlockPosition { private int y; private int z; - //Magic numbers private static final int m1 = 1 + MathHelper.f(MathHelper.c(30000000)); private static final int m2 = 64 - (m1 * 2); @@ -39,7 +38,6 @@ public class BlockPosition { private static final long m5 = (1L << m2) - 1L; private static final long m6 = (1L << m1) - 1L; - public BlockPosition(int x, int y, int z) { this.x = x; this.y = y;