WeightedAssignmentsAsset.java
package com.hypixel.hytale.builtin.hytalegenerator.assets.propassignments;
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.builtin.hytalegenerator.assets.Cleanable;
import com.hypixel.hytale.builtin.hytalegenerator.datastructures.WeightedMap;
import com.hypixel.hytale.builtin.hytalegenerator.propdistributions.Assignments;
import com.hypixel.hytale.builtin.hytalegenerator.propdistributions.WeightedAssignments;
import com.hypixel.hytale.builtin.hytalegenerator.seed.SeedBox;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
import javax.annotation.Nonnull;
public class WeightedAssignmentsAsset extends AssignmentsAsset {
public static final BuilderCodec<WeightedAssignmentsAsset> CODEC;
private WeightedAssets[] weightedAssets = new WeightedAssets[0];
private String seed = ;
;
{
}
Assignments {
(.skip()) {
Assignments.noPropDistribution(argument.runtime);
} {
WeightedMap<Assignments> weightMap = <Assignments>();
(WeightedAssets asset : .weightedAssets) {
weightMap.add(asset.assignmentsAsset.build(argument), asset.weight);
}
argument.parentSeed.child(.seed);
(weightMap, (Integer)childSeed.createSupplier().get(), .skipChance, argument.runtime);
}
}
{
(WeightedAssets weightedAsset : .weightedAssets) {
weightedAsset.cleanUp();
}
}
{
CODEC = ((BuilderCodec.Builder)((BuilderCodec.Builder)((BuilderCodec.Builder)BuilderCodec.builder(WeightedAssignmentsAsset.class, WeightedAssignmentsAsset::, AssignmentsAsset.ABSTRACT_CODEC).append( (, Codec.DOUBLE, ), (asset, v) -> asset.skipChance = v, (asset) -> asset.skipChance).add()).append( (, Codec.STRING, ), (asset, v) -> asset.seed = v, (asset) -> asset.seed).add()).append( (, (WeightedAssignmentsAsset.WeightedAssets.CODEC, (x$) -> [x$]), ), (asset, v) -> asset.weightedAssets = v, (asset) -> asset.weightedAssets).add()).build();
}
, JsonAssetWithMap<String, DefaultAssetMap<String, WeightedAssets>> {
AssetBuilderCodec<String, WeightedAssets> CODEC;
String id;
AssetExtraInfo.Data data;
;
();
{
}
String {
.id;
}
{
.assignmentsAsset.cleanUp();
}
{
CODEC = ((AssetBuilderCodec.Builder)((AssetBuilderCodec.Builder)AssetBuilderCodec.builder(WeightedAssets.class, WeightedAssets::, Codec.STRING, (asset, id) -> asset.id = id, (config) -> config.id, (config, data) -> config.data = data, (config) -> config.data).append( (, Codec.DOUBLE, ), (t, v) -> t.weight = v, (t) -> t.weight).add()).append( (, AssignmentsAsset.CODEC, ), (t, v) -> t.assignmentsAsset = v, (t) -> t.assignmentsAsset).add()).build();
}
}
}