HyCodeYourTale
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)

privateDensity densityA
privateDensity densityB
privateDensity influenceDensity

Inheritance

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];
      }
   }
}