Make NoiseBuilder actually follow builder pattern

This commit is contained in:
dfsek 2020-11-16 17:01:44 -07:00
parent 00c933c06e
commit b8441b6903
2 changed files with 41 additions and 27 deletions

View File

@ -12,32 +12,32 @@ public class NoiseConfig {
public NoiseConfig(ConfigurationSection section) throws ConfigException {
NoiseBuilder builder = new NoiseBuilder();
try {
builder.setType(FastNoiseLite.NoiseType.valueOf(section.getString("type", "OpenSimplex2")));
builder.setFrequency(section.getDouble("frequency", 0.02D));
builder.setType(FastNoiseLite.NoiseType.valueOf(section.getString("type", "OpenSimplex2")))
.setFrequency(section.getDouble("frequency", 0.02D))
.setRotationType3D(FastNoiseLite.RotationType3D.valueOf(section.getString("rotation", "None")));
dimensions = section.getInt("dimensions", 3);
if(dimensions != 2 && dimensions != 3)
throw new ConfigException("Invalid number of dimensions: " + dimensions, "Noise");
builder.setRotationType3D(FastNoiseLite.RotationType3D.valueOf(section.getString("rotation", "None")));
if(section.contains("fractal")) {
builder.setFractalType(FastNoiseLite.FractalType.valueOf(section.getString("fractal.type", "FBm")));
builder.setOctaves(section.getInt("fractal.octaves", 1));
builder.setFractalGain(section.getDouble("fractal.gain", 0.5D));
builder.setFractalLacunarity(section.getDouble("fractal.lacunarity", 2.0D));
builder.setPingPong(section.getDouble("fractal.ping-pong", 2.0D));
builder.setWeightedStrength(section.getDouble("fractal.weighted-strength", 0.0D));
builder.setFractalType(FastNoiseLite.FractalType.valueOf(section.getString("fractal.type", "FBm")))
.setOctaves(section.getInt("fractal.octaves", 1))
.setFractalGain(section.getDouble("fractal.gain", 0.5D))
.setFractalLacunarity(section.getDouble("fractal.lacunarity", 2.0D))
.setPingPong(section.getDouble("fractal.ping-pong", 2.0D))
.setWeightedStrength(section.getDouble("fractal.weighted-strength", 0.0D));
}
if(section.contains("cellular")) {
builder.setCellularDistanceFunction(FastNoiseLite.CellularDistanceFunction.valueOf(section.getString("cellular.distance", "EuclideanSq")));
builder.setCellularReturnType(FastNoiseLite.CellularReturnType.valueOf(section.getString("cellular.return", "Distance")));
builder.setCellularDistanceFunction(FastNoiseLite.CellularDistanceFunction.valueOf(section.getString("cellular.distance", "EuclideanSq")))
.setCellularReturnType(FastNoiseLite.CellularReturnType.valueOf(section.getString("cellular.return", "Distance")));
}
if(section.contains("warp")) {
builder.setDomainWarpType(FastNoiseLite.DomainWarpType.valueOf(section.getString("warp.type", "OpenSimplex2")));
builder.setDomainWarpAmp(section.getDouble("warp.amplitude", 1.0D));
builder.setDomainWarpType(FastNoiseLite.DomainWarpType.valueOf(section.getString("warp.type", "OpenSimplex2")))
.setDomainWarpAmp(section.getDouble("warp.amplitude", 1.0D));
}
this.builder = builder;
} catch(IllegalArgumentException | ClassCastException e) {

View File

@ -48,64 +48,78 @@ public class NoiseBuilder {
return noise;
}
public void setFrequency(double frequency) {
public NoiseBuilder setFrequency(double frequency) {
this.frequency = frequency;
return this;
}
public void setFractalGain(double fractalGain) {
public NoiseBuilder setFractalGain(double fractalGain) {
this.fractalGain = fractalGain;
return this;
}
public void setFractalLacunarity(double fractalLacunarity) {
public NoiseBuilder setFractalLacunarity(double fractalLacunarity) {
this.fractalLacunarity = fractalLacunarity;
return this;
}
public void setFractalType(FastNoiseLite.FractalType fractalType) {
public NoiseBuilder setFractalType(FastNoiseLite.FractalType fractalType) {
this.fractalType = fractalType;
return this;
}
public void setOctaves(int octaves) {
public NoiseBuilder setOctaves(int octaves) {
this.octaves = octaves;
return this;
}
public void setPingPong(double pingPong) {
public NoiseBuilder setPingPong(double pingPong) {
this.pingPong = pingPong;
return this;
}
public void setWeightedStrength(double weightedStrength) {
public NoiseBuilder setWeightedStrength(double weightedStrength) {
this.weightedStrength = weightedStrength;
return this;
}
public FastNoiseLite.NoiseType getType() {
return type;
}
public void setType(FastNoiseLite.NoiseType type) {
public NoiseBuilder setType(FastNoiseLite.NoiseType type) {
this.type = type;
return this;
}
public void setCellularDistanceFunction(FastNoiseLite.CellularDistanceFunction cellularDistanceFunction) {
public NoiseBuilder setCellularDistanceFunction(FastNoiseLite.CellularDistanceFunction cellularDistanceFunction) {
this.cellularDistanceFunction = cellularDistanceFunction;
return this;
}
public void setCellularReturnType(FastNoiseLite.CellularReturnType cellularReturnType) {
public NoiseBuilder setCellularReturnType(FastNoiseLite.CellularReturnType cellularReturnType) {
this.cellularReturnType = cellularReturnType;
return this;
}
public void setCellularJitter(double cellularJitter) {
public NoiseBuilder setCellularJitter(double cellularJitter) {
this.cellularJitter = cellularJitter;
return this;
}
public void setDomainWarpAmp(double domainWarpAmp) {
public NoiseBuilder setDomainWarpAmp(double domainWarpAmp) {
this.domainWarpAmp = domainWarpAmp;
return this;
}
public void setDomainWarpType(FastNoiseLite.DomainWarpType domainWarpType) {
public NoiseBuilder setDomainWarpType(FastNoiseLite.DomainWarpType domainWarpType) {
this.domainWarpType = domainWarpType;
return this;
}
public void setRotationType3D(FastNoiseLite.RotationType3D rotationType3D) {
public NoiseBuilder setRotationType3D(FastNoiseLite.RotationType3D rotationType3D) {
this.rotationType3D = rotationType3D;
return this;
}
public FastNoiseLite.CellularDistanceFunction getCellularDistanceFunction() {