HyCodeYourTale
classpublicPriority 3

StripedMaterialProvider

com.hypixel.hytale.builtin.hytalegenerator.materialproviders.StripedMaterialProvider

extends MaterialProvider

2

Methods

2

Public Methods

2

Fields

1

Constructors

Constructors

public
StripedMaterialProvider(MaterialProvider<V> materialProvider, List<StripedMaterialProvider.Stripe> stripes)

Methods

Public Methods (2)

public
boolean contains(int y)
public
V getVoxelTypeAt(MaterialProvider.Context context)
@Nullable@Override

Fields

Private/Package Fields (2)

privateMaterialProvider<V> materialProvider
privateStripedMaterialProvider.Stripe[] stripes

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Source Code

package com.hypixel.hytale.builtin.hytalegenerator.materialproviders;

import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class StripedMaterialProvider<V> extends MaterialProvider<V> {
   @Nonnull
   private final MaterialProvider<V> materialProvider;
   @Nonnull
   private final StripedMaterialProvider.Stripe[] stripes;

   public StripedMaterialProvider(@Nonnull MaterialProvider<V> materialProvider, @Nonnull List<StripedMaterialProvider.Stripe> stripes) {
      this.materialProvider = materialProvider;
      this.stripes = new StripedMaterialProvider.Stripe[stripes.size()];

      for (int i = 0; i < stripes.size(); i++) {
         StripedMaterialProvider.Stripe s = stripes.get(i);
         this.stripes[i] = s;
      }
   }

   @Nullable
   @Override
   public V getVoxelTypeAt(@Nonnull MaterialProvider.Context context) {
      for (StripedMaterialProvider.Stripe s : this.stripes) {
         if (s.contains(context.position.y)) {
            return this.materialProvider.getVoxelTypeAt(context);
         }
      }

      return null;
   }

   public static class Stripe {
      private final int topY;
      private final int bottomY;

      public Stripe(int topY, int bottomY) {
         this.topY = topY;
         this.bottomY = bottomY;
      }

      public boolean contains(int y) {
         return y >= this.bottomY && y <= this.topY;
      }
   }
}