FarmingStageData class
Пакет: com.hypixel.hytale.server.core.asset.type.blocktype.config.farming
Файл: com/hypixel/hytale/server/core/asset/type/blocktype/config/farming/FarmingStageData.java
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
|
int |
var10 |
|
int |
var11 |
|
World |
var12 |
|
Store |
var13 |
|
int |
var6 |
|
ChunkSection |
var8 |
|
int |
var9 |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
applyvoid apply(@Nonnull ComponentAccessor<ChunkStore> var1,
@Nonnull Ref<ChunkStore> var2,
@Nonnull Ref<ChunkStore> var3,
int var4,
int var5,
int var6,
@Nullable FarmingStageData var7) |
public |
boolean |
canApplyboolean canApply(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6) |
public |
boolean |
consumesRemainingTimeboolean consumesRemainingTime() |
public |
int |
getSoundEventIndexint getSoundEventIndex() |
|
|
if if(var0.soundEventId != null) |
|
|
if if(var3x == var3 && var4x == var4 && var5x == var5) |
|
|
if if(var8 != null) |
|
|
if if(var7 != null) |
public |
boolean |
implementsShouldStopboolean implementsShouldStop() |
public |
void |
removevoid remove(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6) |
public |
boolean |
shouldStopboolean shouldStop(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6) |
static |
boolean |
testFillerPositionsboolean testFillerPositions(@Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull BlockSection var1, @Nonnull BlockType var2, int var3, int var4, int var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.type.blocktype.config.farming;
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.lookup.CodecMapCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.protocol.Rangef;
class="kw">import com.hypixel.hytale.protocol.SoundCategory;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.validator.SoundEventValidators;
class="kw">import com.hypixel.hytale.server.core.codec.ProtocolCodecs;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockOperations;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.FillerBlockUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">abstract class FarmingStageData {
@Nonnull
class="kw">public class="kw">static class="kw">final CodecMapCodec<FarmingStageData> CODEC = new CodecMapCodec<>("Type");
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<FarmingStageData> BASE_CODEC = BuilderCodec.abstractBuilder(FarmingStageData.class)
.append(new KeyedCodec<>("Duration", ProtocolCodecs.RANGEF), (var0, var1) -> var0.duration = var1, var0 -> var0.duration)
.add()
.<String>append(new KeyedCodec<>("SoundEventId", Codec.STRING), (var0, var1) -> var0.soundEventId = var1, var0 -> var0.soundEventId)
.addValidator(SoundEvent.VALIDATOR_CACHE.getValidator())
.addValidator(SoundEventValidators.MONO)
.addValidator(SoundEventValidators.ONESHOT)
.add()
.afterDecode(var0 -> {
if (var0.soundEventId != null) {
var0.soundEventIndex = SoundEvent.getAssetMap().getIndex(var0.soundEventId);
}
})
.build();
class="kw">protected Rangef duration;
@Nullable
class="kw">protected String soundEventId;
class="kw">protected class="kw">transient int soundEventIndex = 0;
class="kw">public FarmingStageData() {
}
@Nullable
class="kw">public Rangef getDuration() {
class="kw">return this.duration;
}
@Nullable
class="kw">public String getSoundEventId() {
class="kw">return this.soundEventId;
}
class="kw">public int getSoundEventIndex() {
class="kw">return this.soundEventIndex;
}
class="kw">public boolean implementsShouldStop() {
class="kw">return false;
}
class="kw">public boolean consumesRemainingTime() {
class="kw">return false;
}
class="kw">public boolean shouldStop(
@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6
) {
class="kw">return false;
}
class="kw">public boolean canApply(
@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6
) {
class="kw">return true;
}
class="kw">protected class="kw">static boolean testFillerPositions(
@Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull BlockSection var1, @Nonnull BlockType var2, int var3, int var4, int var5
) {
int var6 = var1.getRotationIndex(var3, var4, var5);
class="kw">return BlockOperations.testPlaceBlock(
var0,
var1,
var3,
var4,
var5,
var2,
var6,
(var3x, var4x, var5x, var6x, var7, var8) -> {
if (var3x == var3 && var4x == var4 && var5x == var5) {
class="kw">return true;
} else {
class="kw">return var8 == 0
? false
: var3x - FillerBlockUtil.unpackX(var8) == var3
&& var4x - FillerBlockUtil.unpackY(var8) == var4
&& var5x - FillerBlockUtil.unpackZ(var8) == var5;
}
}
);
}
class="kw">public void apply(
@Nonnull ComponentAccessor<ChunkStore> var1,
@Nonnull Ref<ChunkStore> var2,
@Nonnull Ref<ChunkStore> var3,
int var4,
int var5,
int var6,
@Nullable FarmingStageData var7
) {
ChunkSection var8 = var1.getComponent(var2, ChunkSection.getComponentType());
if (var8 != null) {
int var9 = ChunkUtil.worldCoordFromLocalCoord(var8.getX(), var4);
int var10 = ChunkUtil.worldCoordFromLocalCoord(var8.getY(), var5);
int var11 = ChunkUtil.worldCoordFromLocalCoord(var8.getZ(), var6);
World var12 = var1.getExternalData().getWorld();
Store var13 = var12.getEntityStore().getStore();
SoundUtil.playSoundEvent3d(this.soundEventIndex, SoundCategory.SFX, var9, var10, var11, var13);
if (var7 != null) {
var7.remove(var1, var2, var3, var4, var5, var6);
}
}
}
class="kw">public void remove(@Nonnull ComponentAccessor<ChunkStore> var1, @Nonnull Ref<ChunkStore> var2, @Nonnull Ref<ChunkStore> var3, int var4, int var5, int var6) {
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "FarmingStageData{duration=" + this.duration + ", soundEventId='" + this.soundEventId + "'}";
}
}