DeployableTrapSpawnerConfig class
Пакет: com.hypixel.hytale.builtin.deployables.config
Файл: com/hypixel/hytale/builtin/deployables/config/DeployableTrapSpawnerConfig.java
extends: DeployableTrapConfig
Поля (21)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
int |
var1 |
|
DeployableConfig |
var13 |
|
Vector3d[] |
var14 |
|
Vector3d |
var19 |
|
String |
var3 |
|
Instant |
var3 |
|
DeployableComponent |
var3 |
|
Instant |
var4 |
|
TransformComponent |
var5 |
|
TransformComponent |
var6 |
|
Vector3d |
var6 |
|
Ref |
var7 |
|
Vector3d |
var7 |
|
Ref |
var7 |
|
float |
var8 |
|
World |
var8 |
Методы (16)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var2 = 0; var2 < var1; var2++) |
|
|
for for(DeployableSpawner var12 : this.deployableSpawners) |
|
|
for for(Vector3d var18 : var14) |
|
|
if if(var0.deployableSpawnerIds != null) |
|
|
if if(var6 != null) |
|
|
if if(var5 != null) |
|
|
if if(this.deployableSpawners != null) |
|
|
if if(var12 != null) |
|
|
if if(var3 != null) |
abstract |
|
playAnimation playAnimation(var1, var3, this, "Deploy") |
private |
void |
tickDeployAnimationStatevoid tickDeployAnimationState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3) |
private |
void |
tickDeploymentStatevoid tickDeploymentState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3) |
private |
void |
tickDespawnStatevoid tickDespawnState(@Nonnull DeployableComponent var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3) |
private |
void |
tickFuzeStatevoid tickFuzeState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2) |
private |
void |
tickLiveStatevoid tickLiveState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, float var5) |
private |
void |
tickTriggeredStatevoid tickTriggeredState(@Nonnull CommandBuffer<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull DeployableComponent var3, @Nonnull Ref<EntityStore> var4) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.deployables.config;
class="kw">import com.hypixel.hytale.builtin.deployables.DeployablesUtils;
class="kw">import com.hypixel.hytale.builtin.deployables.component.DeployableComponent;
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.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.time.TimeResource;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Instant;
class="kw">import java.time.temporal.ChronoUnit;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class DeployableTrapSpawnerConfig class="kw">extends DeployableTrapConfig {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<DeployableTrapSpawnerConfig> CODEC = BuilderCodec.builder(
DeployableTrapSpawnerConfig.class, DeployableTrapSpawnerConfig::new, DeployableTrapConfig.CODEC
)
.appendInherited(
new KeyedCodec<>("DeployableConfig", new ArrayCodec<>(Codec.STRING, String[]::new)),
(var0, var1) -> var0.deployableSpawnerIds = var1,
var0 -> var0.deployableSpawnerIds,
(var0, var1) -> var0.deployableSpawnerIds = var1.deployableSpawnerIds
)
.addValidator(Validators.nonNull())
.add()
.afterDecode(var0 -> {
if (var0.deployableSpawnerIds != null) {
int var1 = var0.deployableSpawnerIds.length;
var0.deployableSpawners = new DeployableSpawner[var1];
for (int var2 = 0; var2 < var1; var2++) {
String var3 = var0.deployableSpawnerIds[var2];
var0.deployableSpawners[var2] = DeployableSpawner.getAssetMap().getAsset(var3);
}
}
})
.build();
class="kw">private String[] deployableSpawnerIds;
class="kw">private DeployableSpawner[] deployableSpawners;
class="kw">public DeployableTrapSpawnerConfig() {
}
@Override
class="kw">public void tick(
@Nonnull DeployableComponent var1,
float var2,
int var3,
@Nonnull ArchetypeChunk<EntityStore> var4,
@Nonnull Store<EntityStore> var5,
@Nonnull CommandBuffer<EntityStore> var6
) {
Ref var7 = var4.getReferenceTo(var3);
class="kw">switch (var1.getFlag(DeployableComponent.DeployableFlag.STATE)) {
case 0:
this.tickDeploymentState(var5, var1, var7);
break;
case 1:
this.tickDeployAnimationState(var5, var1, var7);
break;
case 2:
this.tickFuzeState(var5, var1);
break;
case 3:
this.tickLiveState(var5, var1, var7, var6, var2);
break;
case 4:
this.tickTriggeredState(var6, var5, var1, var7);
break;
case 5:
this.tickDespawnState(var1, var7, var5);
}
}
class="kw">private void tickDeploymentState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3) {
var2.setFlag(DeployableComponent.DeployableFlag.STATE, 1);
playAnimation(var1, var3, this, "Deploy");
}
class="kw">private void tickDeployAnimationState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3) {
var2.setFlag(DeployableComponent.DeployableFlag.STATE, 2);
playAnimation(var1, var3, this, "Deploy");
}
class="kw">private void tickFuzeState(@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2) {
Instant var3 = var1.getResource(TimeResource.getResourceType()).getNow();
Instant var4 = var2.getSpawnInstant().plus((long)this.fuzeDuration, ChronoUnit.SECONDS);
if (var3.isAfter(var4)) {
var2.setFlag(DeployableComponent.DeployableFlag.STATE, 3);
}
}
class="kw">private void tickLiveState(
@Nonnull Store<EntityStore> var1, @Nonnull DeployableComponent var2, @Nonnull Ref<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4, float var5
) {
TransformComponent var6 = var1.getComponent(var3, TransformComponent.getComponentType());
if (var6 != null) {
Vector3d var7 = var6.getPosition();
float var8 = this.getRadius(var1, var2.getSpawnInstant());
var2.setTimeSinceLastAttack(var2.getTimeSinceLastAttack() + var5);
if (var2.getTimeSinceLastAttack() > this.damageInterval && this.isLive(var1, var2)) {
var2.setTimeSinceLastAttack(0.0F);
this.handleDetection(var1, var4, var3, var2, var7, var8, this.getDamageCause());
}
}
}
class="kw">private void tickTriggeredState(
@Nonnull CommandBuffer<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull DeployableComponent var3, @Nonnull Ref<EntityStore> var4
) {
TransformComponent var5 = var2.getComponent(var4, TransformComponent.getComponentType());
if (var5 != null) {
var3.setFlag(DeployableComponent.DeployableFlag.STATE, 5);
Vector3d var6 = var5.getPosition();
Ref var7 = var3.getOwner();
World var8 = var2.getExternalData().getWorld();
if (this.deployableSpawners != null) {
for (DeployableSpawner var12 : this.deployableSpawners) {
if (var12 != null) {
DeployableConfig var13 = var12.getConfig();
Vector3d[] var14 = var12.getPositionOffsets();
for (Vector3d var18 : var14) {
Vector3d var19 = new Vector3d(var6).add(var18);
var8.execute(() -> DeployablesUtils.spawnDeployable(var1, var2, var13, var7, var19, new Rotation3f(), "UP"));
}
}
}
}
}
}
class="kw">private void tickDespawnState(@Nonnull DeployableComponent var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3) {
var1.setFlag(DeployableComponent.DeployableFlag.STATE, 6);
super.onTriggered(var3, var2);
}
@Override
class="kw">protected void onTriggered(@Nonnull Store<EntityStore> var1, @Nonnull Ref<EntityStore> var2) {
DeployableComponent var3 = var1.getComponent(var2, DeployableComponent.getComponentType());
if (var3 != null) {
var3.setFlag(DeployableComponent.DeployableFlag.STATE, 4);
}
}
}