HyCodeYourTale
classpublicPriority 3

SettingsAsset

com.hypixel.hytale.builtin.hytalegenerator.assets.SettingsAsset

implements JsonAssetWithMap<String, DefaultAssetMap<String, SettingsAsset>>

7

Methods

7

Public Methods

7

Fields

1

Constructors

Constants

AssetBuilderCodec<String, SettingsAsset>CODEC= AssetBuilderCodec.builder( SettingsAsset.class, SettingsAsset::new, Co...

Constructors

private
SettingsAsset()

Methods

Public Methods (7)

public
double getBufferCapacityFactor()
public
int getCustomConcurrency()
public
String getId()
publicstatic
int getSampleBits(int v)
public
List<Integer> getStatsCheckpoints()
@Nonnull
public
double getTargetPlayerCount()
public
double getTargetViewDistance()

Fields

Private/Package Fields (7)

privatedouble bufferCapacityFactor
privateInteger[] checkpoints
privateint customConcurrency
privateAssetExtraInfo.Data data
privateString id
privatedouble targetPlayerCount
privatedouble targetViewDistance

Inheritance

Parent
Current
Interface
Child

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

Related Classes

Source Code

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

import com.hypixel.hytale.assetstore.AssetExtraInfo;
import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
import com.hypixel.hytale.codec.validation.Validators;
import java.util.List;
import javax.annotation.Nonnull;

public class SettingsAsset implements JsonAssetWithMap<String, DefaultAssetMap<String, SettingsAsset>> {
   public static final AssetBuilderCodec<String, SettingsAsset> CODEC = AssetBuilderCodec.builder(
         SettingsAsset.class,
         SettingsAsset::new,
         Codec.STRING,
         (asset, id) -> asset.id = id,
         config -> config.id,
         (config, data) -> config.data = data,
         config -> config.data
      )
      .append(new KeyedCodec<>("StatsCheckpoints", new ArrayCodec<>(Codec.INTEGER, Integer[]::new), true), (t, k) -> t.checkpoints = k, t -> t.checkpoints)
      .add()
      .<Integer>append(new KeyedCodec<>("CustomConcurrency", Codec.INTEGER, true), (t, k) -> t.customConcurrency = k, t -> t.customConcurrency)
      .addValidator(Validators.greaterThan(-2))
      .add()
      .<Double>append(
         new KeyedCodec<>("BufferCapacityFactor", Codec.DOUBLE, true),
         (asset, value) -> asset.bufferCapacityFactor = value,
         asset -> asset.bufferCapacityFactor
      )
      .addValidator(Validators.greaterThanOrEqual(0.0))
      .add()
      .<Double>append(
         new KeyedCodec<>("TargetViewDistance", Codec.DOUBLE, true), (asset, value) -> asset.targetViewDistance = value, asset -> asset.targetViewDistance
      )
      .addValidator(Validators.greaterThanOrEqual(0.0))
      .add()
      .<Double>append(
         new KeyedCodec<>("TargetPlayerCount", Codec.DOUBLE, true), (asset, value) -> asset.targetPlayerCount = value, asset -> asset.targetPlayerCount
      )
      .addValidator(Validators.greaterThanOrEqual(0.0))
      .add()
      .build();
   private String id;
   private AssetExtraInfo.Data data;
   private Integer[] checkpoints = new Integer[0];
   private int customConcurrency = -1;
   private double bufferCapacityFactor = 0.3;
   private double targetViewDistance = 512.0;
   private double targetPlayerCount = 3.0;

   private SettingsAsset() {
   }

   @Nonnull
   public List<Integer> getStatsCheckpoints() {
      return List.of(this.checkpoints);
   }

   public int getCustomConcurrency() {
      return this.customConcurrency;
   }

   public double getBufferCapacityFactor() {
      return this.bufferCapacityFactor;
   }

   public double getTargetViewDistance() {
      return this.targetViewDistance;
   }

   public double getTargetPlayerCount() {
      return this.targetPlayerCount;
   }

   public static int getSampleBits(int v) {
      return switch (v) {
         case 2 -> 1;
         case 4 -> 2;
         case 8 -> 3;
         default -> 0;
      };
   }

   public String getId() {
      return this.id;
   }
}