AugmentBlock class
Пакет: com.hypixel.hytale.builtin.augmentblocks
Файл: com/hypixel/hytale/builtin/augmentblocks/AugmentBlock.java
implements: Component<ChunkStore>
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<AugmentBlock> |
CODEC |
|
boolean |
var3 |
|
AugmentBlockUpgradeLevel |
var4 |
Методы (13)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
boolean |
collectGrantedAugmentTagsboolean collectGrantedAugmentTags(@Nonnull Set<String> var1, @Nonnull Set<String> var2) |
static |
boolean |
containsAllboolean containsAll(@Nonnull Set<String> var0, @Nonnull String[] var1) |
|
|
for for(String var12 : this.grantsAugmentTags) |
|
|
for for(String var5 : var1) |
static |
ComponentType<ChunkStore, AugmentBlock> |
getComponentTypeComponentType<ChunkStore, AugmentBlock> getComponentType() |
public |
int |
getCurrentLevelint getCurrentLevel() |
public |
String[] |
getGrantsAugmentTagsString[] getGrantsAugmentTags() |
public |
int |
getMaxLevelint getMaxLevel() |
public |
int |
getProgressionLevelOffsetint getProgressionLevelOffset() |
public |
double |
getRadiusdouble getRadius() |
|
|
if if(this.currentLevel == 0) |
public |
boolean |
isMaxedboolean isMaxed() |
public |
void |
setCurrentLevelvoid setCurrentLevel(int var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.augmentblocks;
class="kw">import com.hypixel.hytale.builtin.augmentblocks.config.AugmentBlockUpgradeLevel;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class AugmentBlock class="kw">implements Component<ChunkStore> {
class="kw">public class="kw">static class="kw">final BuilderCodec<AugmentBlock> CODEC = BuilderCodec.builder(AugmentBlock.class, AugmentBlock::new)
.append(
new KeyedCodec<>("Upgrades", new ArrayCodec<>(AugmentBlockUpgradeLevel.CODEC, AugmentBlockUpgradeLevel[]::new)),
(var0, var1) -> var0.upgrades = var1,
var0 -> var0.upgrades
)
.add()
.append(new KeyedCodec<>("CurrentLevel", Codec.INTEGER), (var0, var1) -> var0.currentLevel = var1, var0 -> var0.currentLevel)
.add()
.append(new KeyedCodec<>("GrantsAugmentTags", Codec.STRING_ARRAY), (var0, var1) -> var0.grantsAugmentTags = var1, var0 -> var0.grantsAugmentTags)
.add()
.append(new KeyedCodec<>("Radius", Codec.DOUBLE), (var0, var1) -> var0.radius = var1, var0 -> var0.radius)
.add()
.append(new KeyedCodec<>("ProgressionKey", Codec.STRING), (var0, var1) -> var0.progressionKey = var1, var0 -> var0.progressionKey)
.add()
.append(
new KeyedCodec<>("ProgressionLevelOffset", Codec.INTEGER), (var0, var1) -> var0.progressionLevelOffset = var1, var0 -> var0.progressionLevelOffset
)
.add()
.build();
class="kw">private class="kw">static class="kw">final String[] EMPTY_STRING_ARRAY = new String[0];
class="kw">private class="kw">static class="kw">final double DEFAULT_RADIUS = 100.0;
class="kw">private AugmentBlockUpgradeLevel[] upgrades = AugmentBlockUpgradeLevel.EMPTY_ARRAY;
class="kw">private int currentLevel = 0;
class="kw">private String[] grantsAugmentTags = EMPTY_STRING_ARRAY;
class="kw">private double radius = 100.0;
@Nullable
class="kw">private String progressionKey;
class="kw">private int progressionLevelOffset = 0;
class="kw">public class="kw">static ComponentType<ChunkStore, AugmentBlock> getComponentType() {
class="kw">return AugmentBlocksPlugin.get().getAugmentBlockComponentType();
}
class="kw">public AugmentBlock() {
}
class="kw">private AugmentBlock(AugmentBlockUpgradeLevel[] var1, int var2, String[] var3, double var4, @Nullable String var6, int var7) {
this.upgrades = var1;
this.currentLevel = var2;
this.grantsAugmentTags = var3;
this.radius = var4;
this.progressionKey = var6;
this.progressionLevelOffset = var7;
}
@Nullable
class="kw">public String getProgressionKey() {
class="kw">return this.progressionKey;
}
class="kw">public int getProgressionLevelOffset() {
class="kw">return this.progressionLevelOffset;
}
class="kw">public double getRadius() {
class="kw">return this.radius;
}
@Nullable
class="kw">public AugmentBlockUpgradeLevel getLevel(int var1) {
class="kw">return var1 >= 1 && var1 <= this.upgrades.length ? this.upgrades[var1 - 1] : null;
}
class="kw">public int getMaxLevel() {
class="kw">return this.upgrades.length;
}
class="kw">public String[] getGrantsAugmentTags() {
class="kw">return this.grantsAugmentTags;
}
class="kw">public boolean collectGrantedAugmentTags(@Nonnull Set<String> var1, @Nonnull Set<String> var2) {
boolean var3 = false;
if (this.currentLevel == 0) {
for (String var12 : this.grantsAugmentTags) {
var3 |= var2.add(var12);
}
class="kw">return var3;
} else {
AugmentBlockUpgradeLevel var4 = this.getLevel(this.currentLevel);
if (var4 != null && containsAll(var1, var4.getRequiredAugmentTags())) {
for (String var8 : var4.getGrantsAugmentTags()) {
var3 |= var2.add(var8);
}
class="kw">return var3;
} else {
class="kw">return false;
}
}
}
class="kw">private class="kw">static boolean containsAll(@Nonnull Set<String> var0, @Nonnull String[] var1) {
for (String var5 : var1) {
if (!var0.contains(var5)) {
class="kw">return false;
}
}
class="kw">return true;
}
class="kw">public boolean isMaxed() {
class="kw">return this.currentLevel >= this.upgrades.length;
}
class="kw">public int getCurrentLevel() {
class="kw">return this.currentLevel;
}
class="kw">public void setCurrentLevel(int var1) {
this.currentLevel = var1;
}
@Nullable
@Override
class="kw">public Component<ChunkStore> clone() {
class="kw">return new AugmentBlock(this.upgrades, this.currentLevel, this.grantsAugmentTags, this.radius, this.progressionKey, this.progressionLevelOffset);
}
}