ConstantPropDistribution class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.propdistributions

Файл: com/hypixel/hytale/builtin/hytalegenerator/propdistributions/ConstantPropDistribution.java

extends: PropDistribution

Методы (2)

МодификаторыВозвратСигнатура
public void acceptpublic void accept(@Nonnull Vector3d var1, @Nonnull Control var2)
if if(ConstantPropDistribution.this.rControl.stop)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.propdistributions;

class="kw">import com.hypixel.hytale.builtin.hytalegenerator.pipe.Control;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.pipe.Pipe;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.positionproviders.PositionProvider;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.props.Prop;
class="kw">import java.util.function.Consumer;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class ConstantPropDistribution class="kw">extends PropDistribution {
   @Nonnull
   class="kw">private class="kw">final PositionProvider positionProvider;
   @Nonnull
   class="kw">private class="kw">final Prop prop;
   @Nonnull
   class="kw">private class="kw">final PositionProvider.Context rPositionProviderContext;
   @Nonnull
   class="kw">private class="kw">final Control rControl;
   @Nonnull
   class="kw">private PropDistribution.Context rContext;
   @Nonnull
   class="kw">private class="kw">final Pipe.One<Vector3d> rPositionsPipe = new Pipe.One<Vector3d>() {
      class="kw">public void accept(@Nonnull Vector3d var1, @Nonnull Control var2) {
         if (ConstantPropDistribution.this.rControl.stop) {
            var2.stop = true;
         } else {
            ConstantPropDistribution.this.rContext.pipe.accept(var1, ConstantPropDistribution.this.prop, ConstantPropDistribution.this.rControl);
         }
      }
   };

   class="kw">public ConstantPropDistribution(@Nonnull PositionProvider var1, @Nonnull Prop var2) {
      this.positionProvider = var1;
      this.prop = var2;
      this.rPositionProviderContext = new PositionProvider.Context();
      this.rControl = new Control();
      this.rContext = PropDistribution.Context.DEFAULT_INSTANCE;
   }

   @Override
   class="kw">public void distribute(@Nonnull PropDistribution.Context var1) {
      this.rContext = var1;
      this.rControl.reset();
      this.rPositionProviderContext.bounds.min.set(var1.bounds.min);
      this.rPositionProviderContext.bounds.max.set(var1.bounds.max);
      this.rPositionProviderContext.pipe = this.rPositionsPipe;
      this.rPositionProviderContext.graphNode = var1.graphNode;
      this.rPositionProviderContext.anchor = var1.anchor;
      this.positionProvider.generate(this.rPositionProviderContext);
      this.rPositionProviderContext.clearReferences();
      this.rContext = PropDistribution.Context.DEFAULT_INSTANCE;
   }

   @Override
   class="kw">public void forEachPossibleProp(@Nonnull Consumer<Prop> var1) {
      var1.accept(this.prop);
   }
}