classpublicPriority 3
MixDensity
com.hypixel.hytale.builtin.hytalegenerator.density.nodes.MixDensity
extends Density
2
Methods
2
Public Methods
3
Fields
1
Constructors
Constructors
public
MixDensity(Density densityA, Density densityB, Density influenceDensity)Methods
Public Methods (2)
public
double process(Density.Context context)@Override
public
void setInputs(Density[] inputs)@Override
Fields
Private/Package Fields (3)
private
Density densityAprivate
Density densityBprivate
Density influenceDensityInheritance
Parent
Current
Interface
Child
Use mouse wheel to zoom, drag to pan. Click nodes to navigate.
Related Classes
Used By
Source Code
package com.hypixel.hytale.builtin.hytalegenerator.density.nodes;
import com.hypixel.hytale.builtin.hytalegenerator.density.Density;
import javax.annotation.Nonnull;
public class MixDensity extends Density {
private Density densityA;
private Density densityB;
private Density influenceDensity;
public MixDensity(@Nonnull Density densityA, @Nonnull Density densityB, @Nonnull Density influenceDensity) {
this.densityA = densityA;
this.densityB = densityB;
this.influenceDensity = influenceDensity;
}
@Override
public double process(@Nonnull Density.Context context) {
double THRESHOLD_INPUT_A = 0.0;
double THRESHOLD_INPUT_B = 1.0;
double influence = this.influenceDensity.process(context);
if (influence <= 0.0) {
return this.densityA.process(context);
} else if (influence >= 1.0) {
return this.densityB.process(context);
} else {
double valueA = this.densityA.process(context);
double valueB = this.densityB.process(context);
return valueA * (1.0 - influence) + valueB * influence;
}
}
@Override
public void setInputs(@Nonnull Density[] inputs) {
if (inputs.length != 3) {
throw new IllegalArgumentException("inputs.length != 3");
} else {
this.densityA = inputs[0];
this.densityB = inputs[1];
this.influenceDensity = inputs[2];
}
}
}