classpublicPriority 3
SwitchDensity
com.hypixel.hytale.builtin.hytalegenerator.density.nodes.SwitchDensity
extends Density
2
Methods
2
Public Methods
2
Fields
1
Constructors
Constructors
public
SwitchDensity(List<Density> inputs, List<Integer> switchStates)Methods
Public Methods (2)
public
double process(Density.Context context)@Override
public
void setInputs(Density[] inputs)@Override
Fields
Private/Package Fields (2)
private
Density[] inputsprivate
int[] switchStatesInheritance
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 java.util.List;
import javax.annotation.Nonnull;
public class SwitchDensity extends Density {
private Density[] inputs;
@Nonnull
private final int[] switchStates;
public SwitchDensity(@Nonnull List<Density> inputs, @Nonnull List<Integer> switchStates) {
if (inputs.size() != switchStates.size()) {
throw new IllegalArgumentException("inputs and switch states have different sizes");
} else {
this.inputs = new Density[inputs.size()];
this.switchStates = new int[switchStates.size()];
inputs.toArray(this.inputs);
for (int i = 0; i < switchStates.size(); i++) {
this.switchStates[i] = switchStates.get(i);
}
}
}
@Override
public double process(@Nonnull Density.Context context) {
if (context == null) {
return 0.0;
} else {
int contextSwitchState = context.switchState;
for (int i = 0; i < this.switchStates.length; i++) {
if (this.switchStates[i] == contextSwitchState) {
Density node = this.inputs[i];
if (node == null) {
return 0.0;
}
return node.process(context);
}
}
return 0.0;
}
}
@Override
public void setInputs(@Nonnull Density[] inputs) {
if (inputs.length == 0) {
for (int i = 0; i < this.switchStates.length; i++) {
this.inputs[i] = null;
}
} else if (inputs.length < this.inputs.length) {
System.arraycopy(inputs, 0, this.inputs, 0, inputs.length);
for (int i = inputs.length; i < this.inputs.length; i++) {
this.inputs[i] = null;
}
} else {
System.arraycopy(inputs, 0, this.inputs, 0, this.inputs.length);
}
}
}