ConditionManager class
Пакет: com.hypixel.hytale.builtin.adventure.worldevents.condition.manager
Файл: com/hypixel/hytale/builtin/adventure/worldevents/condition/manager/ConditionManager.java
implements: Resource<EntityStore>
Поля (17)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
|
break |
|
ConditionMap.Entry |
entryx |
|
ConditionMap.Entry |
entryxx |
final |
ConditionMap<EventCondition.Ticking> |
ticking |
|
ConditionMap.Entry |
var11 |
|
WorldEventsPlugin |
var2 |
|
ConditionMap.Entry |
var3 |
|
Class |
var3 |
|
ConditionMap.Entry |
var4 |
|
ConditionMap.Entry |
var4 |
|
Class |
var4 |
|
EventCondition.Type |
var7 |
Методы (21)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
void |
cancelvoid cancel(@Nonnull EventCondition... var1) |
|
|
for for(EventCondition var6 : var1) |
|
|
for for(EventCondition var5 : var1) |
abstract |
|
for for(int var3 = 0; var3 < this.ticking.size() |
static |
ResourceType<EntityStore, ConditionManager> |
getResourceTypeResourceType<EntityStore, ConditionManager> getResourceType() |
public |
<T extends EcsEvent> void |
handle<T extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2) |
public |
<T extends EcsEvent> void |
handle<T extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2, @Nonnull TrackedComponent var3) |
static |
<T extends EcsEvent> boolean |
handleEvent<T extends EcsEvent> boolean handleEvent(@Nonnull EventCondition.Event<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2) |
static |
<T extends EcsEvent> boolean |
handleEvent<T extends EcsEvent> boolean handleEvent(@Nonnull EventCondition.TrackedEvent<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2, @Nonnull TrackedComponent var3) |
static |
boolean |
handleTickboolean handleTick(@Nonnull EventCondition.Ticking var0, @Nonnull ConditionMap.Entry<?> var1, @Nonnull Store<EntityStore> var2) |
|
|
if if(var3 != null) |
|
|
if if(var4 != null) |
|
|
if if(var1.length != 0) |
|
|
if if(var7 != null) |
|
|
if if(entryxx != null) |
|
|
if if(entryx != null) |
|
|
if if(var11 != null) |
public |
void |
submitvoid submit(@Nonnull EventCondition... var1) |
|
|
switch switch(var6) |
|
|
switch switch(var5) |
public |
void |
tickvoid tick(float var1, @Nonnull Store<EntityStore> var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents.condition.manager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventsPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.component.TrackedComponent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.condition.EventCondition;
class="kw">import com.hypixel.hytale.common.util.ListUtil;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.system.EcsEvent;
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.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.concurrent.NotThreadSafe;
@NotThreadSafe
class="kw">public class ConditionManager class="kw">implements Resource<EntityStore> {
class="kw">protected class="kw">final ConditionMap<EventCondition.Ticking> ticking = new ConditionMap<>();
class="kw">protected class="kw">final ConditionMap<EventCondition.Event<?>> events = new ConditionMap<>();
class="kw">protected class="kw">final ConditionMap<EventCondition.TrackedEvent<?>> trackedEvents = new ConditionMap<>();
class="kw">public ConditionManager() {
}
class="kw">public ConditionManager(@Nonnull ConditionManager var1) {
this.events.copy(var1.events);
this.ticking.copy(var1.ticking);
this.trackedEvents.copy(var1.trackedEvents);
}
class="kw">public void tick(float var1, @Nonnull Store<EntityStore> var2) {
for (int var3 = 0; var3 < this.ticking.size(); var3++) {
ConditionMap.Entry var4 = this.ticking.get(var3);
assert var4 != null;
var4.timer_s += var1;
if (!(var4.timer_s < var4.conditionType.tickIntervalSeconds())) {
ListUtil.unstableRemoveIf(var4.conditions, var4, var2, ConditionManager::handleTick);
var4.timer_s = 0.0F;
}
}
}
class="kw">public <T class="kw">extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2) {
ConditionMap.Entry var3 = this.events.get(var2.getClass());
if (var3 != null) {
ListUtil.unstableRemoveIf((List<EventCondition.Event<T>>)var3.conditions, var1, var2, ConditionManager::handleEvent);
}
}
class="kw">public <T class="kw">extends EcsEvent> void handle(@Nonnull World var1, @Nonnull T var2, @Nonnull TrackedComponent var3) {
ConditionMap.Entry var4 = this.trackedEvents.get(var2.getClass());
if (var4 != null) {
ListUtil.unstableRemoveIf((List<EventCondition.TrackedEvent<T>>)var4.conditions, var1, var2, var3, ConditionManager::handleEvent);
}
}
class="kw">public void submit(@Nonnull EventCondition... var1) {
if (var1.length != 0) {
WorldEventsPlugin var2 = WorldEventsPlugin.get();
for (EventCondition var6 : var1) {
EventCondition.Type var7 = var2.getConditionType((Class<? class="kw">extends EventCondition>)var6.getClass());
if (var7 != null) {
class="kw">switch (var6) {
case EventCondition.Ticking var10:
this.ticking.ensure(var10.getClass(), var7).add(var10);
break;
case EventCondition.Event var11:
this.events.ensure(var11.eventType(), var7).add(var11);
break;
case EventCondition.TrackedEvent var12:
this.trackedEvents.ensure(var12.eventType(), var7).add(var12);
break;
class="kw">default:
}
}
}
}
}
class="kw">public void cancel(@Nonnull EventCondition... var1) {
for (EventCondition var5 : var1) {
class="kw">switch (var5) {
case EventCondition.Ticking var8:
ConditionMap.Entry entryxx = this.ticking.get(var8.getClass());
if (entryxx != null) {
entryxx.remove(var8);
}
break;
case EventCondition.Event var9:
ConditionMap.Entry entryx = this.events.get(var9.eventType());
if (entryx != null) {
entryx.remove(var9);
}
break;
case EventCondition.TrackedEvent var10:
ConditionMap.Entry var11 = this.trackedEvents.get(var10.eventType());
if (var11 != null) {
var11.remove(var10);
}
break;
class="kw">default:
}
}
}
@Nonnull
@Override
class="kw">public Resource<EntityStore> clone() {
class="kw">return new ConditionManager(this);
}
class="kw">public class="kw">static ResourceType<EntityStore, ConditionManager> getResourceType() {
class="kw">return WorldEventsPlugin.get().getConditionManagerResourceType();
}
class="kw">protected class="kw">static boolean handleTick(@Nonnull EventCondition.Ticking var0, @Nonnull ConditionMap.Entry<?> var1, @Nonnull Store<EntityStore> var2) {
var0.tick(var1.timer_s, var2);
class="kw">return var0.test();
}
class="kw">protected class="kw">static <T class="kw">extends EcsEvent> boolean handleEvent(@Nonnull EventCondition.Event<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2) {
Class var3 = var0.eventType();
assert var2.getClass() == var3;
var0.handle(var1, var3.cast(var2));
class="kw">return var0.test();
}
class="kw">protected class="kw">static <T class="kw">extends EcsEvent> boolean handleEvent(
@Nonnull EventCondition.TrackedEvent<T> var0, @Nonnull World var1, @Nonnull EcsEvent var2, @Nonnull TrackedComponent var3
) {
Class var4 = var0.eventType();
assert var2.getClass() == var4;
var0.handle(var1, var4.cast(var2), var3);
class="kw">return var0.test();
}
}