EncounterManager class
Пакет: com.hypixel.hytale.builtin.encountermanager
Файл: com/hypixel/hytale/builtin/encountermanager/EncounterManager.java
implements: Component<EntityStore>, IAnnotatedComponent
Поля (36)
| Модификаторы | Тип | Имя |
|---|---|---|
|
EncounterManager |
var1 |
|
EncounterManager |
var1 |
|
EncounterManager |
var10 |
|
|
var10 |
|
ValueStore.Builder |
var10 |
|
Object2IntMap |
var11 |
|
BeaconSupport |
var12 |
|
ExecutionSupport |
var2 |
|
StateSupport |
var3 |
|
List |
var3 |
|
|
var3 |
|
FlagsComponent |
var3 |
|
ExecutionSupport |
var3 |
|
StateTransitionController |
var3 |
|
ExecutionSupport |
var3 |
|
ExecutionSupport |
var3 |
|
WorldSupport |
var4 |
|
Instruction[] |
var4 |
|
StateSupport |
var4 |
|
ExecutionSupport |
var4 |
|
StateTransitionController |
var4 |
|
StateTransitionController |
var4 |
|
EntitySupport |
var5 |
|
WorldSupport |
var5 |
|
DebugSupport |
var5 |
|
ExecutionSupport |
var5 |
|
PositionCache |
var6 |
|
EntitySupport |
var6 |
|
StateSupport |
var6 |
|
StateTransitionController |
var6 |
|
DebugSupport |
var7 |
|
MarkedEntitySupport |
var7 |
|
FlagsComponent |
var8 |
|
PositionCache |
var8 |
|
ComponentType |
var9 |
|
Tickable[] |
var9 |
Методы (26)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
private |
void |
buildInstructionTreevoid buildInstructionTree(@Nonnull BuilderEncounterManager var1, @Nonnull BuilderSupport var2) |
public |
int |
getEncounterIndexint getEncounterIndex() |
|
|
if if(var10 == null) |
|
|
if if(this.encounterIndex == Integer.MIN_VALUE && this.encounterId != null) |
|
|
if if(var3 == null) |
|
|
if if(var9 != null) |
|
|
if if(var10 != null) |
|
|
if if(var11 != null) |
|
|
if if(var3 != null) |
|
|
if if(this.rootInstruction != null) |
|
|
if if(var4 != null) |
|
|
if if(this.rootInstruction != null) |
|
|
if if(var4 != null) |
|
|
if if(this.rootInstruction != null) |
|
|
if if(var6 != null) |
public |
boolean |
isBuiltboolean isBuilt() |
public |
boolean |
isCleanupOnRemoveboolean isCleanupOnRemove() |
private |
void |
postBuiltvoid postBuilt(@Nonnull Holder<EntityStore> var1, @Nonnull BuilderSupport var2) |
public |
void |
removedvoid removed(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) |
public |
void |
resetRuntimevoid resetRuntime() |
public |
void |
setEncounterIdvoid setEncounterId(@Nonnull String var1) |
public |
void |
setEncounterIndexvoid setEncounterIndex(int var1) |
public |
void |
spawnedvoid spawned(@Nonnull Holder<EntityStore> var1) |
public |
void |
teleportedvoid teleported(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2, @Nonnull World var3, @Nonnull World var4) |
public |
void |
tickvoid tick(@Nonnull Ref<EntityStore> var1, float var2, @Nonnull Store<EntityStore> var3) |
public |
void |
unloadedvoid unloaded(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.encountermanager;
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.common.thread.ticking.Tickable;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionManager;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
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 com.hypixel.hytale.server.npc.NPCPlugin;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
class="kw">import com.hypixel.hytale.server.npc.blackboard.BlackboardSubscription;
class="kw">import com.hypixel.hytale.server.npc.components.Timers;
class="kw">import com.hypixel.hytale.server.npc.components.messaging.BeaconSupport;
class="kw">import com.hypixel.hytale.server.npc.instructions.ExecutionSupport;
class="kw">import com.hypixel.hytale.server.npc.instructions.IndexedInstructions;
class="kw">import com.hypixel.hytale.server.npc.instructions.Instruction;
class="kw">import com.hypixel.hytale.server.npc.interactions.NPCInteractionSimulationHandler;
class="kw">import com.hypixel.hytale.server.npc.role.support.DebugSupport;
class="kw">import com.hypixel.hytale.server.npc.role.support.EntitySupport;
class="kw">import com.hypixel.hytale.server.npc.role.support.FlagsComponent;
class="kw">import com.hypixel.hytale.server.npc.role.support.MarkedEntitySupport;
class="kw">import com.hypixel.hytale.server.npc.role.support.PositionCache;
class="kw">import com.hypixel.hytale.server.npc.role.support.StateSupport;
class="kw">import com.hypixel.hytale.server.npc.role.support.WorldSupport;
class="kw">import com.hypixel.hytale.server.npc.statetransition.StateTransitionController;
class="kw">import com.hypixel.hytale.server.npc.util.ComponentInfo;
class="kw">import com.hypixel.hytale.server.npc.util.IAnnotatedComponent;
class="kw">import com.hypixel.hytale.server.npc.valuestore.ValueStore;
class="kw">import it.unimi.dsi.fastutil.objects.Object2IntMap;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class EncounterManager class="kw">implements Component<EntityStore>, IAnnotatedComponent {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<EncounterManager> CODEC = BuilderCodec.builder(EncounterManager.class, EncounterManager::new)
.append(new KeyedCodec<>("EncounterId", Codec.STRING), (var0, var1) -> {
var0.encounterId = var1;
var0.encounterIndex = NPCPlugin.get().getIndex(var1);
}, var0 -> var0.encounterId)
.add()
.build();
class="kw">private String encounterId;
class="kw">private int encounterIndex = Integer.MIN_VALUE;
class="kw">private boolean cleanupOnRemove;
@Nullable
class="kw">private Instruction rootInstruction;
@Nullable
class="kw">private IndexedInstructions indexedInstructions;
@Nonnull
class="kw">public class="kw">static ComponentType<EntityStore, EncounterManager> getComponentType() {
class="kw">return EncounterManagerPlugin.get().getEncounterComponentType();
}
class="kw">public EncounterManager() {
}
class="kw">public EncounterManager(@Nonnull String var1, int var2) {
this.encounterId = var1;
this.encounterIndex = var2;
}
@Nonnull
class="kw">public class="kw">static EncounterManager createAndAttach(@Nonnull Holder<EntityStore> var0, @Nonnull BuilderEncounterManager var1, @Nonnull BuilderSupport var2) {
StateSupport var3 = new StateSupport(var1, var2);
WorldSupport var4 = new WorldSupport(var1, var2);
EntitySupport var5 = new EntitySupport();
PositionCache var6 = new PositionCache(var2.getRoleStats());
var6.setOpaqueBlockSet(-1);
DebugSupport var7 = new DebugSupport(var1);
FlagsComponent var8 = new FlagsComponent();
var0.putComponent(StateSupport.getComponentType(), var3);
if (var0.getComponent(MarkedEntitySupport.getComponentType()) == null) {
var0.putComponent(MarkedEntitySupport.getComponentType(), new MarkedEntitySupport());
}
var0.putComponent(WorldSupport.getComponentType(), var4);
var0.putComponent(EntitySupport.getComponentType(), var5);
var0.putComponent(PositionCache.getComponentType(), var6);
var0.putComponent(DebugSupport.getComponentType(), var7);
var0.putComponent(FlagsComponent.getComponentType(), var8);
var0.putComponent(EncounterMembers.getComponentType(), new EncounterMembers());
var0.putComponent(EncounterAudioState.getComponentType(), new EncounterAudioState());
var0.putComponent(EncounterBossBarState.getComponentType(), new EncounterBossBarState());
ComponentType var9 = InteractionModule.get().getInteractionManagerComponent();
if (var0.getComponent(var9) == null) {
var0.putComponent(var9, new InteractionManager(null, new NPCInteractionSimulationHandler()));
}
EncounterManager var10 = var0.getComponent(getComponentType());
if (var10 == null) {
var10 = new EncounterManager();
var0.putComponent(getComponentType(), var10);
}
var10.buildInstructionTree(var1, var2);
var10.postBuilt(var0, var2);
class="kw">return var10;
}
class="kw">private void buildInstructionTree(@Nonnull BuilderEncounterManager var1, @Nonnull BuilderSupport var2) {
if (this.encounterIndex == Integer.MIN_VALUE && this.encounterId != null) {
this.encounterIndex = NPCPlugin.get().getIndex(this.encounterId);
}
this.cleanupOnRemove = var1.isCleanupOnRemove(var2);
List var3 = var1.getInstructionList(var2);
if (var3 == null) {
var3 = List.of();
}
Instruction[] var4 = var3.toArray(Instruction[]::new);
this.rootInstruction = Instruction.createRootInstruction(var4, var2);
}
class="kw">private void postBuilt(@Nonnull Holder<EntityStore> var1, @Nonnull BuilderSupport var2) {
FlagsComponent var3 = var1.getComponent(FlagsComponent.getComponentType());
assert var3 != null;
var3.setFlags(var2.allocateFlags());
this.indexedInstructions = new IndexedInstructions(var2.getInstructionSlotMappings());
StateSupport var4 = var1.getComponent(StateSupport.getComponentType());
assert var4 != null;
var4.postRoleBuilt(var2);
WorldSupport var5 = var1.getComponent(WorldSupport.getComponentType());
assert var5 != null;
var5.postRoleBuilt(var2);
EntitySupport var6 = var1.getComponent(EntitySupport.getComponentType());
assert var6 != null;
var6.postRoleBuilt(var2);
MarkedEntitySupport var7 = var1.getComponent(MarkedEntitySupport.getComponentType());
assert var7 != null;
var7.postRoleBuilder(var2);
PositionCache var8 = var1.getComponent(PositionCache.getComponentType());
assert var8 != null;
var8.setRoleIndex(this.encounterIndex);
Tickable[] var9 = var2.allocateTimers();
if (var9 != null) {
var1.putComponent(Timers.getComponentType(), new Timers(var9));
}
ValueStore.Builder var10 = var2.getValueStoreBuilder();
if (var10 != null) {
var1.putComponent(ValueStore.getComponentType(), var10.build());
}
Object2IntMap var11 = var2.getBeaconSlotMappings();
if (var11 != null) {
BeaconSupport var12 = new BeaconSupport();
var12.initialise(var11);
var1.putComponent(BeaconSupport.getComponentType(), var12);
}
BlackboardSubscription.buildAndAttach(var1, var2);
assert this.rootInstruction != null;
this.rootInstruction.setContext(this, 0);
}
@Nonnull
class="kw">public ExecutionSupport acquireExecutionSupport(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
ExecutionSupport var3 = ExecutionSupport.acquire();
var3.populateFromEntity(var1, var2);
var3.setRoleIndex(this.encounterIndex);
var3.setName(this.encounterId);
var3.setIndexedInstructions(this.indexedInstructions);
class="kw">return var3;
}
class="kw">public void tick(@Nonnull Ref<EntityStore> var1, float var2, @Nonnull Store<EntityStore> var3) {
ExecutionSupport var4 = this.acquireExecutionSupport(var1, var3);
try {
var4.getEntitySupport().tickDeferredActions(var1, var4, var2, var3);
DebugSupport var5 = var4.getDebugSupport();
if (var5.isVisSensorRanges()) {
var5.beginSensorVisualization();
}
StateSupport var6 = var4.getStateSupport();
assert this.rootInstruction != null;
if (var6.pollNeedClearOnce()) {
this.rootInstruction.clearOnce();
var6.resetLocalStateMachines();
}
if (!var6.runTransitionActions(var1, var4, var2, var3)) {
this.rootInstruction.execute(var1, var4, var2, var3);
}
} class="kw">finally {
var4.clearForReuse();
}
}
class="kw">public void spawned(@Nonnull Holder<EntityStore> var1) {
ExecutionSupport var2 = ExecutionSupport.acquire();
var2.populateFromHolder(var1);
var2.setRoleIndex(this.encounterIndex);
var2.setName(this.encounterId);
var2.setIndexedInstructions(this.indexedInstructions);
try {
assert this.rootInstruction != null;
this.rootInstruction.spawned(var2);
StateTransitionController var3 = var2.getStateSupport().getStateTransitionController();
if (var3 != null) {
var3.spawned(var2);
}
} class="kw">finally {
var2.clearForReuse();
}
}
class="kw">public void unloaded(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
EncounterMemberSystems.revertAndClearMembers(var2, var1);
if (this.rootInstruction != null) {
ExecutionSupport var3 = this.acquireExecutionSupport(var1, var2);
try {
var3.getEntitySupport().unloaded();
var3.getWorldSupport().unloaded(var1);
var3.getMarkedEntitySupport().unloaded();
this.rootInstruction.unloaded(var3);
StateTransitionController var4 = var3.getStateSupport().getStateTransitionController();
if (var4 != null) {
var4.unloaded(var3);
}
} class="kw">finally {
var3.clearForReuse();
}
}
}
class="kw">public void removed(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2) {
EncounterMemberSystems.revertAndClearMembers(var2, var1);
if (this.rootInstruction != null) {
ExecutionSupport var3 = this.acquireExecutionSupport(var1, var2);
try {
var3.getWorldSupport().resetAllBlockSensors(var1);
this.rootInstruction.removed(var3);
StateTransitionController var4 = var3.getStateSupport().getStateTransitionController();
if (var4 != null) {
var4.removed(var3);
}
} class="kw">finally {
var3.clearForReuse();
}
}
}
class="kw">public void teleported(@Nonnull Ref<EntityStore> var1, @Nonnull ComponentAccessor<EntityStore> var2, @Nonnull World var3, @Nonnull World var4) {
if (this.rootInstruction != null) {
ExecutionSupport var5 = this.acquireExecutionSupport(var1, var2);
try {
this.rootInstruction.teleported(var5, var3, var4);
StateTransitionController var6 = var5.getStateSupport().getStateTransitionController();
if (var6 != null) {
var6.teleported(var5, var3, var4);
}
} class="kw">finally {
var5.clearForReuse();
}
}
}
@Nullable
class="kw">public Instruction getRootInstruction() {
class="kw">return this.rootInstruction;
}
@Nullable
class="kw">public String getEncounterId() {
class="kw">return this.encounterId;
}
class="kw">public void setEncounterId(@Nonnull String var1) {
this.encounterId = var1;
}
class="kw">public int getEncounterIndex() {
class="kw">return this.encounterIndex;
}
class="kw">public void setEncounterIndex(int var1) {
this.encounterIndex = var1;
}
class="kw">public boolean isCleanupOnRemove() {
class="kw">return this.cleanupOnRemove;
}
class="kw">public boolean isBuilt() {
class="kw">return this.rootInstruction != null;
}
class="kw">public void resetRuntime() {
this.rootInstruction = null;
this.indexedInstructions = null;
}
@Nonnull
@Override
class="kw">public Component<EntityStore> clone() {
EncounterManager var1 = new EncounterManager();
var1.encounterId = this.encounterId;
var1.encounterIndex = this.encounterIndex;
class="kw">return var1;
}
@Nullable
@Override
class="kw">public Component<EntityStore> cloneSerializable() {
EncounterManager var1 = new EncounterManager();
var1.encounterId = this.encounterId;
class="kw">return var1;
}
@Override
class="kw">public void getInfo(ExecutionSupport var1, ComponentInfo var2) {
}
@Override
class="kw">public void setContext(IAnnotatedComponent var1, int var2) {
}
@Nullable
@Override
class="kw">public IAnnotatedComponent getParent() {
class="kw">return null;
}
@Override
class="kw">public int getIndex() {
class="kw">return -1;
}
}