mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-26 02:29:14 +00:00
Start the pain
This commit is contained in:
@@ -237,7 +237,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
// Set Sea Material (water/lava)
|
||||
if(underwater)
|
||||
{
|
||||
block = seaLayers.hasIndex(fluidHeight - k) ? seaLayers.get(depth) : biomeFluid != null ? biomeFluid : getDimension().getFluid(rockRandom, wx, k, wz);
|
||||
block = seaLayers.hasIndex(fluidHeight - k) ? seaLayers.get(depth) : biomeFluid != null ? biomeFluid : getDimension().getFluidPalette().get(rockRandom, wx, k, wz);
|
||||
}
|
||||
|
||||
// Set Surface Material for cavern layer surfaces
|
||||
@@ -259,7 +259,7 @@ public abstract class TopographicTerrainProvider extends ParallelTerrainProvider
|
||||
// Set Surface Material for true surface
|
||||
else
|
||||
{
|
||||
block = layers.hasIndex(depth) ? layers.get(depth) : getDimension().getRock(rockRandom, wx, k, wz);
|
||||
block = layers.hasIndex(depth) ? layers.get(depth) : getDimension().getRockPalette().get(rockRandom, wx, k, wz);
|
||||
depth++;
|
||||
}
|
||||
|
||||
|
||||
@@ -374,13 +374,8 @@ public class ProjectManager
|
||||
}
|
||||
});
|
||||
|
||||
//@NoArgsConstructor
|
||||
World world = NMSCreator.createWorld(new WorldCreator(wfp)
|
||||
.seed(1337)
|
||||
.generator(gen)
|
||||
.generateStructures(d.isVanillaStructures())
|
||||
.type(WorldType.NORMAL)
|
||||
.environment(d.getEnvironment()), false);
|
||||
// @NoArgsConstructor
|
||||
World world = NMSCreator.createWorld(new WorldCreator(wfp).seed(1337).generator(gen).generateStructures(d.isVanillaStructures()).type(WorldType.NORMAL).environment(d.getEnvironment()), false);
|
||||
//@done
|
||||
gx.getTarget().setRealWorld(world);
|
||||
Iris.linkMultiverseCore.removeFromConfig(world);
|
||||
@@ -866,12 +861,6 @@ public class ProjectManager
|
||||
b4.setGenerator(gen.getLoadKey());
|
||||
b4.setMin(-5);
|
||||
b4.setMax(-38);
|
||||
exampleLand2.getLayers().get(0).getPalette().clear();
|
||||
exampleLand2.getLayers().get(0).getPalette().add("RED_SAND");
|
||||
exampleShore1.getLayers().get(0).getPalette().clear();
|
||||
exampleShore1.getLayers().get(0).getPalette().add("SAND");
|
||||
exampleOcean1.getLayers().get(0).getPalette().clear();
|
||||
exampleOcean1.getLayers().get(0).getPalette().add("SAND");
|
||||
exampleLand1.getGenerators().clear();
|
||||
exampleLand1.getGenerators().add(b1);
|
||||
exampleLand2.getGenerators().clear();
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.util.ArrayType;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.DependsOn;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
@@ -29,30 +28,25 @@ import lombok.experimental.Accessors;
|
||||
public class IrisBiomeDecorator
|
||||
{
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("The varience dispersion is used when multiple blocks are put in the palette. Scatter scrambles them, Wispy shows streak-looking varience")
|
||||
private IrisGeneratorStyle variance = NoiseStyle.STATIC.style();
|
||||
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("Dispersion is used to pick places to spawn. Scatter randomly places them (vanilla) or Wispy for a streak like patch system.")
|
||||
private IrisGeneratorStyle style = NoiseStyle.STATIC.style();
|
||||
|
||||
@DependsOn({"stackMin", "stackMax"})
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("If this decorator has a height more than 1 this changes how it picks the height between your maxes. Scatter = random, Wispy = wavy heights")
|
||||
private IrisGeneratorStyle heightVariance = NoiseStyle.STATIC.style();
|
||||
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("Tells iris where this decoration is a part of. I.e. SHORE_LINE or SEA_SURFACE")
|
||||
private DecorationPart partOf = DecorationPart.NONE;
|
||||
|
||||
@DependsOn({"stackMin", "stackMax"})
|
||||
@MinNumber(1)
|
||||
@MaxNumber(256)
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The minimum repeat stack height (setting to 3 would stack 3 of <block> on top of each other")
|
||||
private int stackMin = 1;
|
||||
@@ -60,27 +54,23 @@ public class IrisBiomeDecorator
|
||||
@DependsOn({"stackMin", "stackMax"})
|
||||
@MinNumber(1)
|
||||
@MaxNumber(256)
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The maximum repeat stack height")
|
||||
private int stackMax = 1;
|
||||
|
||||
@MinNumber(0.0001)
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The zoom is for zooming in or out wispy dispersions. Makes patches bigger the higher this zoom value is")
|
||||
private double zoom = 1;
|
||||
|
||||
@MinNumber(0.0001)
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("The zoom is for zooming in or out variance. Makes patches have more or less of one type.")
|
||||
private double varianceZoom = 1;
|
||||
|
||||
@DependsOn({"stackMin", "stackMax"})
|
||||
@MinNumber(0.0001)
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("The vertical zoom is for wispy stack heights. Zooming this in makes stack heights more slowly change over a distance")
|
||||
private double verticalZoom = 1;
|
||||
|
||||
@@ -88,16 +78,14 @@ public class IrisBiomeDecorator
|
||||
@MinNumber(0)
|
||||
@MaxNumber(1)
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("The chance for this decorator to decorate at a given X,Y coordinate. This is hit 256 times per chunk (per surface block)")
|
||||
private double chance = 0.1;
|
||||
|
||||
@Required
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@ArrayType(min = 1, type = IrisBlockData.class)
|
||||
@DontObfuscate
|
||||
|
||||
@Desc("The palette of blocks to pick from when this decorator needs to place.")
|
||||
private KList<String> palette = new KList<String>().qadd("GRASS");
|
||||
private KList<IrisBlockData> palette = new KList<IrisBlockData>().qadd(new IrisBlockData("grass"));
|
||||
|
||||
private final transient AtomicCache<CNG> layerGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> varianceGenerator = new AtomicCache<>();
|
||||
@@ -132,9 +120,9 @@ public class IrisBiomeDecorator
|
||||
return varianceGenerator.aquire(() -> variance.create(rng.nextParallelRNG((int) (getBlockData().size()))).scale(1D / varianceZoom));
|
||||
}
|
||||
|
||||
public KList<String> add(String b)
|
||||
public KList<IrisBlockData> add(String b)
|
||||
{
|
||||
palette.add(b);
|
||||
palette.add(new IrisBlockData(b));
|
||||
return palette;
|
||||
}
|
||||
|
||||
@@ -167,9 +155,9 @@ public class IrisBiomeDecorator
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<BlockData> blockData = new KList<>();
|
||||
for(String i : palette)
|
||||
for(IrisBlockData i : palette)
|
||||
{
|
||||
BlockData bx = B.getBlockData(i);
|
||||
BlockData bx = i.getBlockData();
|
||||
if(bx != null)
|
||||
{
|
||||
blockData.add(bx);
|
||||
|
||||
@@ -5,7 +5,6 @@ import org.bukkit.block.data.BlockData;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.util.ArrayType;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.DependsOn;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
@@ -27,7 +26,6 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisBiomePaletteLayer
|
||||
{
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The style of noise")
|
||||
private IrisGeneratorStyle style = NoiseStyle.STATIC.style();
|
||||
@@ -55,7 +53,7 @@ public class IrisBiomePaletteLayer
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@DontObfuscate
|
||||
@Desc("The palette of blocks to be used in this layer")
|
||||
private KList<String> palette = new KList<String>().qadd("GRASS_BLOCK");
|
||||
private KList<IrisBlockData> palette = new KList<IrisBlockData>().qadd(new IrisBlockData("GRASS_BLOCK"));
|
||||
|
||||
private final transient AtomicCache<KList<BlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> layerGenerator = new AtomicCache<>();
|
||||
@@ -90,9 +88,9 @@ public class IrisBiomePaletteLayer
|
||||
});
|
||||
}
|
||||
|
||||
public KList<String> add(String b)
|
||||
public KList<IrisBlockData> add(String b)
|
||||
{
|
||||
palette.add(b);
|
||||
palette.add(new IrisBlockData(b));
|
||||
|
||||
return palette;
|
||||
}
|
||||
@@ -102,9 +100,9 @@ public class IrisBiomePaletteLayer
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<BlockData> blockData = new KList<>();
|
||||
for(String ix : palette)
|
||||
for(IrisBlockData ix : palette)
|
||||
{
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
BlockData bx = ix.getBlockData();
|
||||
if(bx != null)
|
||||
{
|
||||
blockData.add(bx);
|
||||
|
||||
@@ -41,6 +41,11 @@ public class IrisBlockData
|
||||
private final transient AtomicCache<BlockData> blockdata = new AtomicCache<>();
|
||||
private final transient AtomicCache<String> realProperties = new AtomicCache<>();
|
||||
|
||||
public IrisBlockData(String b)
|
||||
{
|
||||
this.block = b;
|
||||
}
|
||||
|
||||
public String computeProperties()
|
||||
{
|
||||
if(getData().isEmpty())
|
||||
|
||||
@@ -23,7 +23,6 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisBlockDrops
|
||||
{
|
||||
|
||||
@Required
|
||||
@ArrayType(min = 1, type = IrisBlockData.class)
|
||||
@Desc("The blocks that drop loot")
|
||||
|
||||
@@ -37,7 +37,7 @@ public class IrisCaveFluid
|
||||
@Required
|
||||
@DontObfuscate
|
||||
@Desc("The fluid type that should spawn here")
|
||||
private String fluidType = "CAVE_AIR";
|
||||
private IrisBlockData fluidType = new IrisBlockData("CAVE_AIR");
|
||||
|
||||
private final transient AtomicCache<BlockData> fluidData = new AtomicCache<>();
|
||||
|
||||
@@ -50,7 +50,7 @@ public class IrisCaveFluid
|
||||
{
|
||||
return fluidData.aquire(() ->
|
||||
{
|
||||
BlockData b = B.get(getFluidType());
|
||||
BlockData b = getFluidType().getBlockData();
|
||||
|
||||
if(b != null)
|
||||
{
|
||||
|
||||
@@ -17,7 +17,6 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisCaveLayer
|
||||
{
|
||||
|
||||
@Required
|
||||
@DontObfuscate
|
||||
@Desc("The vertical slope this cave layer follows")
|
||||
|
||||
@@ -21,7 +21,6 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisCompatabilityFilter
|
||||
{
|
||||
|
||||
@Required
|
||||
@DontObfuscate
|
||||
@Desc("When iris sees this block, and it's not reconized")
|
||||
|
||||
@@ -7,7 +7,6 @@ import org.bukkit.util.BlockVector;
|
||||
import com.volmit.iris.gen.TopographicTerrainProvider;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.util.ArrayType;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
import com.volmit.iris.util.KList;
|
||||
@@ -28,7 +27,6 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisDepositGenerator
|
||||
{
|
||||
|
||||
@Required
|
||||
@MinNumber(0)
|
||||
@MaxNumber(256)
|
||||
@@ -72,10 +70,10 @@ public class IrisDepositGenerator
|
||||
private int minPerChunk = 1;
|
||||
|
||||
@Required
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@ArrayType(min = 1, type = IrisBlockData.class)
|
||||
@DontObfuscate
|
||||
@Desc("The palette of blocks to be used in this deposit generator")
|
||||
private KList<String> palette = new KList<String>();
|
||||
private KList<IrisBlockData> palette = new KList<IrisBlockData>();
|
||||
|
||||
@MinNumber(1)
|
||||
@MaxNumber(64)
|
||||
@@ -145,9 +143,9 @@ public class IrisDepositGenerator
|
||||
{
|
||||
KList<BlockData> blockData = new KList<>();
|
||||
|
||||
for(String ix : palette)
|
||||
for(IrisBlockData ix : palette)
|
||||
{
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
BlockData bx = ix.getBlockData();
|
||||
|
||||
if(bx != null)
|
||||
{
|
||||
@@ -211,7 +209,7 @@ public class IrisDepositGenerator
|
||||
|
||||
boolean allow = false;
|
||||
BlockData b = data.getBlockData(nx, ny, nz);
|
||||
for(BlockData f : g.getDimension().getRockData())
|
||||
for(BlockData f : g.getDimension().getRockPalette().getBlockData())
|
||||
{
|
||||
if(f.getMaterial().equals(b.getMaterial()))
|
||||
{
|
||||
|
||||
@@ -11,7 +11,6 @@ import com.volmit.iris.gen.ParallelTerrainProvider;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.util.ArrayType;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.ChunkPosition;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
@@ -277,10 +276,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
@Desc("Overlay additional noise on top of the interoplated terrain.")
|
||||
private KList<IrisShapedGeneratorStyle> overlayNoise = new KList<>();
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The noise style for rock types")
|
||||
private IrisGeneratorStyle rockStyle = NoiseStyle.STATIC.style();
|
||||
|
||||
@ArrayType(min = 1, type = IrisCaveLayer.class)
|
||||
@DontObfuscate
|
||||
@Desc("Define cave layers")
|
||||
@@ -291,10 +286,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
@Desc("Define carve layers")
|
||||
private KList<IrisCarveLayer> carveLayers = new KList<>();
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The noise style for fluid types")
|
||||
private IrisGeneratorStyle fluidStyle = NoiseStyle.STATIC.style();
|
||||
|
||||
@MinNumber(0.0001)
|
||||
@MaxNumber(512)
|
||||
@DontObfuscate
|
||||
@@ -304,12 +295,12 @@ public class IrisDimension extends IrisRegistrant
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@DontObfuscate
|
||||
@Desc("The palette of blocks for 'stone'")
|
||||
private KList<String> rockPalette = new KList<String>().qadd("STONE");
|
||||
private IrisMaterialPalette rockPalette = new IrisMaterialPalette().qadd("STONE");
|
||||
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@DontObfuscate
|
||||
@Desc("The palette of blocks for 'water'")
|
||||
private KList<String> fluidPalette = new KList<String>().qadd("WATER");
|
||||
private IrisMaterialPalette fluidPalette = new IrisMaterialPalette().qadd("WATER");
|
||||
|
||||
@ArrayType(min = 1, type = IrisBiomeMutation.class)
|
||||
@DontObfuscate
|
||||
@@ -317,8 +308,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
private KList<IrisBiomeMutation> mutations = new KList<>();
|
||||
|
||||
private final transient AtomicCache<ChunkPosition> parallaxSize = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> rockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<BlockData>> fluidData = new AtomicCache<>();
|
||||
private final transient AtomicCache<KList<IrisPostBlockFilter>> cacheFilters = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> rockLayerGenerator = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> fluidLayerGenerator = new AtomicCache<>();
|
||||
@@ -477,90 +466,6 @@ public class IrisDimension extends IrisRegistrant
|
||||
});
|
||||
}
|
||||
|
||||
public BlockData getRock(RNG rng, double x, double y, double z)
|
||||
{
|
||||
if(getRockData().isEmpty())
|
||||
{
|
||||
return STONE;
|
||||
}
|
||||
|
||||
if(getRockData().size() == 1)
|
||||
{
|
||||
return getRockData().get(0);
|
||||
}
|
||||
|
||||
return getRockGenerator(rng).fit(getRockData(), x, y, z);
|
||||
}
|
||||
|
||||
public CNG getRockGenerator(RNG rng)
|
||||
{
|
||||
return rockLayerGenerator.aquire(() ->
|
||||
{
|
||||
RNG rngx = rng.nextParallelRNG((int) (getRockData().size() * getRegions().size() * getLandZoom() * 10357));
|
||||
return rockStyle.create(rngx);
|
||||
});
|
||||
}
|
||||
|
||||
public KList<BlockData> getRockData()
|
||||
{
|
||||
return rockData.aquire(() ->
|
||||
{
|
||||
KList<BlockData> rockData = new KList<>();
|
||||
for(String ix : rockPalette)
|
||||
{
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
if(bx != null)
|
||||
{
|
||||
rockData.add(bx);
|
||||
}
|
||||
}
|
||||
|
||||
return rockData;
|
||||
});
|
||||
}
|
||||
|
||||
public BlockData getFluid(RNG rng, double x, double y, double z)
|
||||
{
|
||||
if(getFluidData().isEmpty())
|
||||
{
|
||||
return WATER;
|
||||
}
|
||||
|
||||
if(getFluidData().size() == 1)
|
||||
{
|
||||
return getFluidData().get(0);
|
||||
}
|
||||
|
||||
return getFluidGenerator(rng).fit(getFluidData(), x, y, z);
|
||||
}
|
||||
|
||||
public CNG getFluidGenerator(RNG rng)
|
||||
{
|
||||
return fluidLayerGenerator.aquire(() ->
|
||||
{
|
||||
RNG rngx = rng.nextParallelRNG(getFluidData().size() * (int) (getRockData().size() * getRegions().size() * getLandZoom() * 10357));
|
||||
return fluidStyle.create(rngx);
|
||||
});
|
||||
}
|
||||
|
||||
public KList<BlockData> getFluidData()
|
||||
{
|
||||
return fluidData.aquire(() ->
|
||||
{
|
||||
KList<BlockData> fluidData = new KList<>();
|
||||
for(String ix : fluidPalette)
|
||||
{
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
if(bx != null)
|
||||
{
|
||||
fluidData.add(bx);
|
||||
}
|
||||
}
|
||||
|
||||
return fluidData;
|
||||
});
|
||||
}
|
||||
|
||||
public double getDimensionAngle()
|
||||
{
|
||||
return rad.aquire(() -> Math.toRadians(dimensionAngleDeg));
|
||||
|
||||
@@ -5,7 +5,6 @@ import org.bukkit.block.data.BlockData;
|
||||
import com.volmit.iris.gen.atomics.AtomicCache;
|
||||
import com.volmit.iris.noise.CNG;
|
||||
import com.volmit.iris.util.ArrayType;
|
||||
import com.volmit.iris.util.B;
|
||||
import com.volmit.iris.util.Desc;
|
||||
import com.volmit.iris.util.DontObfuscate;
|
||||
import com.volmit.iris.util.KList;
|
||||
@@ -25,7 +24,6 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisMaterialPalette
|
||||
{
|
||||
|
||||
@DontObfuscate
|
||||
@Desc("The style of noise")
|
||||
private IrisGeneratorStyle style = NoiseStyle.STATIC.style();
|
||||
@@ -36,10 +34,10 @@ public class IrisMaterialPalette
|
||||
private double zoom = 5;
|
||||
|
||||
@Required
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@ArrayType(min = 1, type = IrisBlockData.class)
|
||||
@DontObfuscate
|
||||
@Desc("The palette of blocks to be used in this layer")
|
||||
private KList<String> palette = new KList<String>().qadd("STONE");
|
||||
private KList<IrisBlockData> palette = new KList<IrisBlockData>().qadd(new IrisBlockData("STONE"));
|
||||
|
||||
private final transient AtomicCache<KList<BlockData>> blockData = new AtomicCache<>();
|
||||
private final transient AtomicCache<CNG> layerGenerator = new AtomicCache<>();
|
||||
@@ -69,21 +67,28 @@ public class IrisMaterialPalette
|
||||
});
|
||||
}
|
||||
|
||||
public KList<String> add(String b)
|
||||
public KList<IrisBlockData> add(String b)
|
||||
{
|
||||
palette.add(b);
|
||||
palette.add(new IrisBlockData(b));
|
||||
|
||||
return palette;
|
||||
}
|
||||
|
||||
public IrisMaterialPalette qadd(String b)
|
||||
{
|
||||
palette.add(new IrisBlockData(b));
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public KList<BlockData> getBlockData()
|
||||
{
|
||||
return blockData.aquire(() ->
|
||||
{
|
||||
KList<BlockData> blockData = new KList<>();
|
||||
for(String ix : palette)
|
||||
for(IrisBlockData ix : palette)
|
||||
{
|
||||
BlockData bx = B.getBlockData(ix);
|
||||
BlockData bx = ix.getBlockData();
|
||||
if(bx != null)
|
||||
{
|
||||
blockData.add(bx);
|
||||
|
||||
@@ -24,21 +24,17 @@ import lombok.experimental.Accessors;
|
||||
@Data
|
||||
public class IrisObjectReplace
|
||||
{
|
||||
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@Required
|
||||
@Desc("Find this block")
|
||||
@DontObfuscate
|
||||
private KList<String> find = new KList<>();
|
||||
|
||||
|
||||
@ArrayType(min = 1, type = String.class)
|
||||
@Required
|
||||
@Desc("Replace it with this block")
|
||||
@Desc("Replace it with this block palette")
|
||||
@DontObfuscate
|
||||
private KList<String> replace = new KList<>();
|
||||
private IrisMaterialPalette replace = new IrisMaterialPalette();
|
||||
|
||||
|
||||
@Desc("Exactly match the block data or not")
|
||||
@DontObfuscate
|
||||
private boolean exact = false;
|
||||
@@ -52,13 +48,8 @@ public class IrisObjectReplace
|
||||
return findData.aquire(() -> B.getBlockData(find));
|
||||
}
|
||||
|
||||
public KList<BlockData> getReplace()
|
||||
{
|
||||
return replaceData.aquire(() -> B.getBlockData(replace));
|
||||
}
|
||||
|
||||
public BlockData getReplace(RNG seed, double x, double y, double z)
|
||||
{
|
||||
return replaceGen.aquire(() -> NoiseStyle.STATIC.create(seed).bake()).fit(getReplace(), x, y, z);
|
||||
return getReplace().get(seed, x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user