GameModeTypes class
Пакет: com.hypixel.hytale.server.core.modules.entity.gamemode
Файл: com/hypixel/hytale/server/core/modules/entity/gamemode/GameModeTypes.java
Поля (17)
| Модификаторы | Тип | Имя |
|---|---|---|
|
GameModeType |
var1 |
|
PersistentGameModeType |
var2 |
|
String |
var2 |
|
GameModeType |
var2 |
|
PersistentGameModeType |
var2 |
|
GameModeType |
var3 |
|
GameModeType |
var3 |
|
GameModeType |
var3 |
|
String |
var3 |
|
Player |
var4 |
|
GameModeTypeEnterEvent |
var4 |
|
GameModeTypeEnterEvent |
var4 |
|
GameModeTypeExitEvent |
var4 |
|
GameModeType |
var5 |
|
PlayerRef |
var6 |
|
CameraManager |
var7 |
|
Player |
var8 |
Методы (15)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("Unknown GameModeType: " + var0) |
static |
void |
applyEntervoid applyEnter(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull GameModeType var2, @Nonnull String var3) |
abstract |
|
applyEnter applyEnter(var0, var1, var3, var2) |
static |
boolean |
enterboolean enter(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2) |
static |
boolean |
enterOnDeathboolean enterOnDeath(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2) |
static |
boolean |
exitboolean exit(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) |
|
|
if if(var2 != null) |
|
|
if if(var3 != null) |
|
|
if if(var2 == null) |
|
|
if if(var5 == null) |
|
|
if if(var6 != null && var7 != null) |
|
|
if if(var1 == null) |
static |
boolean |
isInTypeboolean isInType(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) |
static |
boolean |
isValidTypeboolean isValidType(@Nullable String var0) |
static |
boolean |
preventsItemDropsboolean preventsItemDrops(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.entity.gamemode;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.asset.type.gamemode.GameModeType;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.CameraManager;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.GameModeTypeEnterEvent;
class="kw">import com.hypixel.hytale.server.core.event.events.ecs.GameModeTypeExitEvent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentGameModeType;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DeathComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class="kw">final class GameModeTypes {
class="kw">private GameModeTypes() {
}
class="kw">public class="kw">static boolean isValidType(@Nullable String var0) {
class="kw">return var0 != null && GameModeType.getAssetMap().getAsset(var0) != null;
}
@Nullable
class="kw">public class="kw">static String getCurrentTypeId(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
PersistentGameModeType var2 = var1.getComponent(var0, PersistentGameModeType.getComponentType());
class="kw">return var2 == null ? null : var2.getGameModeTypeId();
}
@Nullable
class="kw">public class="kw">static GameModeType getCurrentType(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
String var2 = getCurrentTypeId(var0, var1);
if (var2 != null) {
GameModeType var3 = GameModeType.getAssetMap().getAsset(var2);
if (var3 != null) {
class="kw">return var3;
}
}
Player var4 = var1.getComponent(var0, Player.getComponentType());
class="kw">return var4 != null && var4.getGameMode() != null ? GameModeType.fromGameMode(var4.getGameMode()) : null;
}
class="kw">public class="kw">static boolean preventsItemDrops(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
GameModeType var2 = getCurrentType(var0, var1);
class="kw">return var2 != null && Boolean.FALSE.equals(var2.getItemDrops());
}
class="kw">public class="kw">static boolean enter(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2) {
GameModeType var3 = resolveOrThrow(var2);
if (isInType(var0, var1)) {
class="kw">return false;
}
if (var1.getArchetype(var0).contains(DeathComponent.getComponentType())) {
class="kw">return false;
}
GameModeTypeEnterEvent var4 = new GameModeTypeEnterEvent(var2);
var1.invoke(var0, var4);
if (var4.isCancelled()) {
class="kw">return false;
}
applyEnter(var0, var1, var3, var2);
class="kw">return true;
}
class="kw">public class="kw">static boolean enterOnDeath(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull String var2) {
GameModeType var3 = resolveOrThrow(var2);
if (var2.equals(getCurrentTypeId(var0, var1))) {
var1.tryRemoveComponent(var0, DeathComponent.getComponentType());
GameModeTypeState.apply(var0, var3, var1);
class="kw">return true;
}
if (isInType(var0, var1) && !exit(var0, var1)) {
class="kw">return false;
}
GameModeTypeEnterEvent var4 = new GameModeTypeEnterEvent(var2);
var1.invoke(var0, var4);
if (var4.isCancelled()) {
class="kw">return false;
}
var1.tryRemoveComponent(var0, DeathComponent.getComponentType());
applyEnter(var0, var1, var3, var2);
class="kw">return true;
}
class="kw">public class="kw">static boolean exit(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
PersistentGameModeType var2 = var1.getComponent(var0, PersistentGameModeType.getComponentType());
if (var2 == null) {
class="kw">return false;
}
String var3 = var2.getGameModeTypeId();
GameModeTypeExitEvent var4 = new GameModeTypeExitEvent(var3);
var1.invoke(var0, var4);
if (var4.isCancelled()) {
class="kw">return false;
}
var1.tryRemoveComponent(var0, PersistentGameModeType.getComponentType());
GameModeType var5 = GameModeType.getAssetMap().getAsset(var3);
if (var5 == null) {
GameModeTypeState.resetToBaseline(var0, var1);
} else {
GameModeTypeState.unapply(var0, var5, var1);
}
if (var5 == null || var5.getLockedCameraView() != null) {
PlayerRef var6 = var1.getComponent(var0, PlayerRef.getComponentType());
CameraManager var7 = var1.getComponent(var0, CameraManager.getComponentType());
if (var6 != null && var7 != null) {
var7.resetCamera(var6);
}
}
Player var8 = var1.getComponent(var0, Player.getComponentType());
if (var8 != null && var8.getGameMode() != null) {
GameModeTypeState.runInteractionsOnEnter(var0, GameModeType.fromGameMode(var8.getGameMode()).getInteractionsOnEnter(), var1);
}
class="kw">return true;
}
class="kw">private class="kw">static void applyEnter(
@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1, @Nonnull GameModeType var2, @Nonnull String var3
) {
var1.putComponent(var0, PersistentGameModeType.getComponentType(), new PersistentGameModeType(var3));
GameModeTypeState.apply(var0, var2, var1);
GameModeTypeState.runInteractionsOnEnter(var0, var2.getInteractionsOnEnter(), var1);
}
class="kw">private class="kw">static boolean isInType(@Nonnull Ref<EntityStore> var0, @Nonnull ComponentAccessor<EntityStore> var1) {
class="kw">return var1.getArchetype(var0).contains(PersistentGameModeType.getComponentType());
}
@Nonnull
class="kw">private class="kw">static GameModeType resolveOrThrow(@Nonnull String var0) {
GameModeType var1 = GameModeType.getAssetMap().getAsset(var0);
if (var1 == null) {
throw new IllegalArgumentException("Unknown GameModeType: " + var0);
} else {
class="kw">return var1;
}
}
}