PrefabPathSystems class
Пакет: com.hypixel.hytale.builtin.path
Файл: com/hypixel/hytale/builtin/path/PrefabPathSystems.java
Поля (52)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private static final Set<Dependency<EntityStore>> |
DEPENDENCIES |
|
private static final Set<Dependency<EntityStore>> |
DEPENDENCIES |
|
private static final ComponentType<EntityStore, FromWorldGen> |
FROM_WORLD_GEN_COMPONENT_TYPE |
|
public static final HytaleLogger |
LOGGER |
|
private static final Message |
MESSAGE_PREFABS_UNKNOWN |
|
private static final ComponentType<EntityStore, ModelComponent> |
MODEL_COMPONENT_TYPE |
|
private static final ComponentType<EntityStore, PatrolPathMarkerEntity> |
PATH_MARKER_ENTITY_COMPONENT_TYPE |
|
private static final ComponentType<EntityStore, PatrolPathMarkerEntity> |
PATH_MARKER_ENTITY_COMPONENT_TYPE |
|
private static final Query<EntityStore> |
QUERY |
|
private static final ResourceType<EntityStore, WorldPathData> |
STORE_WORLD_PATH_DATA_RESOURCE_TYPE |
|
private static final ComponentType<EntityStore, WorldGenId> |
WORLD_GEN_ID_COMPONENT_TYPE |
|
private static final ComponentType<EntityStore, WorldGenId> |
WORLD_GEN_ID_COMPONENT_TYPE |
|
|
break |
|
int |
var10 |
|
Nameplate |
var10 |
|
IPrefabPath |
var11 |
|
PatrolPathMarkerEntity |
var4 |
|
PatrolPathMarkerEntity |
var4 |
|
PatrolPathMarkerEntity |
var4 |
|
Holder |
var4 |
|
WorldPathData |
var5 |
|
WorldPathData |
var5 |
|
String |
var5 |
|
|
var5 |
|
|
var5 |
|
Nameplate |
var5 |
|
Nameplate |
var5 |
|
PatrolPathMarkerEntity |
var5 |
|
PatrolPathMarkerEntity |
var5 |
|
WorldGenId |
var6 |
|
WorldGenId |
var6 |
|
PersistentDisplayName |
var6 |
|
|
var6 |
|
Nameplate |
var6 |
|
String |
var6 |
|
String |
var6 |
|
PatrolPathMarkerEntity |
var6 |
|
int |
var7 |
|
int |
var7 |
|
String |
var7 |
|
UUID |
var7 |
|
Message |
var7 |
|
String |
var7 |
|
String |
var8 |
|
UUID |
var8 |
|
Message |
var8 |
|
int |
var8 |
|
Message |
var8 |
|
UUID |
var9 |
|
|
var9 |
|
Message |
var9 |
|
UUID |
var9 |
Методы (41)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
AddOrRemovepublic AddOrRemove() |
|
public |
AddedFromWorldGenpublic AddedFromWorldGen() |
|
public |
NameplateHolderSystempublic NameplateHolderSystem() |
|
public |
NameplateRefChangeSystempublic NameplateRefChangeSystem() |
|
public |
PrefabPlaceEntityEventSystempublic PrefabPlaceEntityEventSystem() |
|
public |
WorldGenChangeSystempublic WorldGenChangeSystem() |
|
public ComponentType<EntityStore, DisplayNameComponent> |
componentTypepublic ComponentType<EntityStore, DisplayNameComponent> componentType() |
|
public ComponentType<EntityStore, WorldGenId> |
componentTypepublic ComponentType<EntityStore, WorldGenId> componentType() |
|
public Set<Dependency<EntityStore>> |
getDependenciespublic Set<Dependency<EntityStore>> getDependencies() |
|
public Set<Dependency<EntityStore>> |
getDependenciespublic Set<Dependency<EntityStore>> getDependencies() |
|
public SystemGroup<EntityStore> |
getGrouppublic SystemGroup<EntityStore> getGroup() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public Query<EntityStore> |
getQuerypublic Query<EntityStore> getQuery() |
|
public void |
handlepublic void handle(@Nonnull Store var1, @Nonnull CommandBuffer var2, @Nonnull PrefabPlaceEntityEvent var3) |
|
|
if if(var4 != null) |
|
|
if if(var8 != null) |
|
|
if if(var9 == null) |
|
|
if if(var10 != -1) |
|
|
if if(var8 != null) |
|
|
if if(var6 == null) |
|
|
if if(var10 == null) |
|
|
if if(var5 != null) |
|
|
if if(var7 == null && var6 != null) |
|
|
if if(var8 != -1) |
|
public void |
onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onComponentAddedpublic void onComponentAdded(@Nonnull Ref<EntityStore> var1, @Nonnull WorldGenId var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onComponentRemovedpublic void onComponentRemoved(@Nonnull Ref<EntityStore> var1, @Nonnull WorldGenId var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4) |
|
public void |
onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1,
DisplayNameComponent var2,
@Nonnull DisplayNameComponent var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5) |
|
public void |
onComponentSetpublic void onComponentSet(@Nonnull Ref<EntityStore> var1,
@Nullable WorldGenId var2,
@Nonnull WorldGenId var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5) |
|
public void |
onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityAddpublic void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) |
|
public void |
onEntityRemovedpublic void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) |
abstract |
|
super super(PrefabPlaceEntityEvent.class) |
|
|
switch switch(var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.path;
class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.path.entities.PatrolPathMarkerEntity;
class="kw">import com.hypixel.hytale.builtin.path.path.IPrefabPath;
class="kw">import com.hypixel.hytale.builtin.path.path.PatrolPath;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Archetype;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
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.RemoveReason;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.SystemGroup;
class="kw">import com.hypixel.hytale.component.dependency.Dependency;
class="kw">import com.hypixel.hytale.component.dependency.Order;
class="kw">import com.hypixel.hytale.component.dependency.SystemDependency;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.HolderSystem;
class="kw">import com.hypixel.hytale.component.system.RefChangeSystem;
class="kw">import com.hypixel.hytale.component.system.WorldEventSystem;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.entity.nameplate.Nameplate;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.DisplayNameComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.FromWorldGen;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HiddenFromAdventurePlayers;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentDisplayName;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.WorldGenId;
class="kw">import com.hypixel.hytale.server.core.modules.entity.system.ModelSystems;
class="kw">import com.hypixel.hytale.server.core.prefab.PrefabCopyableComponent;
class="kw">import com.hypixel.hytale.server.core.prefab.event.PrefabPlaceEntityEvent;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.nio.charset.StandardCharsets;
class="kw">import java.util.Set;
class="kw">import java.util.UUID;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class PrefabPathSystems {
class="kw">public PrefabPathSystems() {
}
class="kw">public class="kw">static class AddOrRemove class="kw">extends HolderSystem<EntityStore> {
class="kw">public class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
@Nullable
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, PatrolPathMarkerEntity> PATH_MARKER_ENTITY_COMPONENT_TYPE = PatrolPathMarkerEntity.getComponentType();
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, ModelComponent> MODEL_COMPONENT_TYPE = ModelComponent.getComponentType();
class="kw">private class="kw">static class="kw">final ResourceType<EntityStore, WorldPathData> STORE_WORLD_PATH_DATA_RESOURCE_TYPE = WorldPathData.getResourceType();
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, WorldGenId> WORLD_GEN_ID_COMPONENT_TYPE = WorldGenId.getComponentType();
class="kw">private class="kw">static class="kw">final Set<Dependency<EntityStore>> DEPENDENCIES = Set.of(new SystemDependency<>(Order.BEFORE, ModelSystems.ModelSpawned.class));
class="kw">public AddOrRemove() {
}
@Nullable
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return PATH_MARKER_ENTITY_COMPONENT_TYPE;
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return DEPENDENCIES;
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
PatrolPathMarkerEntity var4 = var1.getComponent(PATH_MARKER_ENTITY_COMPONENT_TYPE);
WorldPathData var5 = var3.getResource(STORE_WORLD_PATH_DATA_RESOURCE_TYPE);
WorldGenId var6 = var1.getComponent(WORLD_GEN_ID_COMPONENT_TYPE);
int var7 = var6 != null ? var6.getWorldGenId() : 0;
if (var4 != null) {
String var8 = var4.getPathName();
if (var8 != null) {
UUID var9 = var4.getPathId();
if (var9 == null) {
var9 = UUID.nameUUIDFromBytes((var8 + var7).getBytes(StandardCharsets.UTF_8));
var4.setPathId(var9);
int var10 = var8.lastIndexOf(126);
if (var10 != -1) {
var4.setPathName(var8.substring(0, var10));
var4.markNeedsSave();
LOGGER.at(Level.INFO).log("Migrating path marker from path %s to use new UUID %s", var8, var9);
}
}
IPrefabPath var11 = var5.getOrConstructPrefabPath(var7, var9, var8, PatrolPath::new);
var11.addLoadedWaypoint(var4, var4.getTempPathLength(), var4.getOrder(), var7);
var4.setParentPath(var11);
var1.putComponent(MODEL_COMPONENT_TYPE, new ModelComponent(PathPlugin.get().getPathMarkerModel()));
var4.markNeedsSave();
var1.ensureComponent(HiddenFromAdventurePlayers.getComponentType());
var1.ensureComponent(PrefabCopyableComponent.getComponentType());
}
}
}
@Override
class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
PatrolPathMarkerEntity var4 = var1.getComponent(PatrolPathMarkerEntity.getComponentType());
WorldPathData var5 = var3.getResource(WorldPathData.getResourceType());
WorldGenId var6 = var1.getComponent(WORLD_GEN_ID_COMPONENT_TYPE);
int var7 = var6 != null ? var6.getWorldGenId() : 0;
class="kw">switch (var2) {
case UNLOAD:
var5.unloadPrefabPathWaypoint(var7, var4.getPathId(), var4.getOrder());
break;
case REMOVE:
case BUILDER_TOOLS_UNDO:
UUID var8 = var4.getPathId();
if (var8 != null) {
var5.removePrefabPathWaypoint(var7, var8, var4.getOrder());
}
}
}
}
class="kw">public class="kw">static class AddedFromWorldGen class="kw">extends HolderSystem<EntityStore> {
@Nullable
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, PatrolPathMarkerEntity> PATH_MARKER_ENTITY_COMPONENT_TYPE = PatrolPathMarkerEntity.getComponentType();
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, WorldGenId> WORLD_GEN_ID_COMPONENT_TYPE = WorldGenId.getComponentType();
class="kw">private class="kw">static class="kw">final ComponentType<EntityStore, FromWorldGen> FROM_WORLD_GEN_COMPONENT_TYPE = FromWorldGen.getComponentType();
class="kw">private class="kw">static class="kw">final Query<EntityStore> QUERY = Query.and(PATH_MARKER_ENTITY_COMPONENT_TYPE, FROM_WORLD_GEN_COMPONENT_TYPE);
class="kw">private class="kw">static class="kw">final Set<Dependency<EntityStore>> DEPENDENCIES = Set.of(new SystemDependency<>(Order.BEFORE, PrefabPathSystems.AddOrRemove.class));
class="kw">public AddedFromWorldGen() {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return QUERY;
}
@Nonnull
@Override
class="kw">public Set<Dependency<EntityStore>> getDependencies() {
class="kw">return DEPENDENCIES;
}
@Nullable
@Override
class="kw">public SystemGroup<EntityStore> getGroup() {
class="kw">return EntityModule.get().getPreClearMarkersGroup();
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
var1.putComponent(WORLD_GEN_ID_COMPONENT_TYPE, new WorldGenId(var1.getComponent(FROM_WORLD_GEN_COMPONENT_TYPE).getWorldGenId()));
}
@Override
class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
}
}
class="kw">public class="kw">static class NameplateHolderSystem class="kw">extends HolderSystem<EntityStore> {
class="kw">public NameplateHolderSystem() {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return Archetype.of(PatrolPathMarkerEntity.getComponentType());
}
@Override
class="kw">public void onEntityAdd(@Nonnull Holder<EntityStore> var1, @Nonnull AddReason var2, @Nonnull Store<EntityStore> var3) {
PatrolPathMarkerEntity var4 = var1.getComponent(PatrolPathMarkerEntity.getComponentType());
assert var4 != null;
PersistentDisplayName var6 = var1.getComponent(PersistentDisplayName.getComponentType());
String var5;
if (var6 == null) {
String var7 = var4.getLegacyDisplayName();
var5 = var7 != null ? var7 : "Path Marker";
Message var8 = Message.raw(var5);
var6 = new PersistentDisplayName(var8);
var1.putComponent(PersistentDisplayName.getComponentType(), var6);
} else {
Message var9 = var6.getDisplayName();
var5 = var9 != null ? var9.getAnsiMessage() : "";
}
var1.putComponent(DisplayNameComponent.getComponentType(), new DisplayNameComponent(var6.getDisplayName()));
Nameplate var10 = var1.getComponent(Nameplate.getComponentType());
if (var10 == null) {
var1.putComponent(Nameplate.getComponentType(), new Nameplate(var5));
}
}
@Override
class="kw">public void onEntityRemoved(@Nonnull Holder<EntityStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<EntityStore> var3) {
}
}
class="kw">public class="kw">static class NameplateRefChangeSystem class="kw">extends RefChangeSystem<EntityStore, DisplayNameComponent> {
class="kw">public NameplateRefChangeSystem() {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return PatrolPathMarkerEntity.getComponentType();
}
@Nonnull
@Override
class="kw">public ComponentType<EntityStore, DisplayNameComponent> componentType() {
class="kw">return DisplayNameComponent.getComponentType();
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
Nameplate var5 = var4.ensureAndGetComponent(var1, Nameplate.getComponentType());
var5.setText(var2.getDisplayName() != null ? var2.getDisplayName().getAnsiMessage() : "");
}
class="kw">public void onComponentSet(
@Nonnull Ref<EntityStore> var1,
DisplayNameComponent var2,
@Nonnull DisplayNameComponent var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5
) {
Nameplate var6 = var5.ensureAndGetComponent(var1, Nameplate.getComponentType());
var6.setText(var3.getDisplayName() != null ? var3.getDisplayName().getAnsiMessage() : "");
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<EntityStore> var1, @Nonnull DisplayNameComponent var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
Nameplate var5 = var4.ensureAndGetComponent(var1, Nameplate.getComponentType());
var5.setText("");
}
}
class="kw">public class="kw">static class PrefabPlaceEntityEventSystem class="kw">extends WorldEventSystem<EntityStore, PrefabPlaceEntityEvent> {
class="kw">public PrefabPlaceEntityEventSystem() {
super(PrefabPlaceEntityEvent.class);
}
class="kw">public void handle(@Nonnull Store var1, @Nonnull CommandBuffer var2, @Nonnull PrefabPlaceEntityEvent var3) {
Holder var4 = var3.getHolder();
PatrolPathMarkerEntity var5 = var4.getComponent(PatrolPathMarkerEntity.getComponentType());
if (var5 != null) {
String var6 = var5.getPathName();
UUID var7 = var5.getPathId();
if (var7 == null && var6 != null) {
int var8 = var6.lastIndexOf(126);
if (var8 != -1) {
var5.setPathName(var6.substring(0, var8));
}
}
UUID var9 = BuilderToolsPlugin.get().getNewPathIdOnPrefabPasted(var7, var5.getPathName(), var3.getPrefabId());
var5.setPathId(var9);
}
}
}
class="kw">public class="kw">static class WorldGenChangeSystem class="kw">extends RefChangeSystem<EntityStore, WorldGenId> {
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_PREFABS_UNKNOWN = Message.translation("server.prefabs.unknown");
class="kw">public WorldGenChangeSystem() {
}
@Nonnull
@Override
class="kw">public Query<EntityStore> getQuery() {
class="kw">return PatrolPathMarkerEntity.getComponentType();
}
@Nonnull
@Override
class="kw">public ComponentType<EntityStore, WorldGenId> componentType() {
class="kw">return WorldGenId.getComponentType();
}
class="kw">public void onComponentAdded(
@Nonnull Ref<EntityStore> var1, @Nonnull WorldGenId var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
PatrolPathMarkerEntity var5 = var4.getComponent(var1, PatrolPathMarkerEntity.getComponentType());
assert var5 != null;
String var6 = PatrolPathMarkerEntity.generateDisplayName(var2.getWorldGenId(), var5);
Message var7 = Message.raw(var6);
var4.putComponent(var1, PersistentDisplayName.getComponentType(), new PersistentDisplayName(var7));
var4.putComponent(var1, DisplayNameComponent.getComponentType(), new DisplayNameComponent(var7));
}
class="kw">public void onComponentSet(
@Nonnull Ref<EntityStore> var1,
@Nullable WorldGenId var2,
@Nonnull WorldGenId var3,
@Nonnull Store<EntityStore> var4,
@Nonnull CommandBuffer<EntityStore> var5
) {
PatrolPathMarkerEntity var6 = var5.getComponent(var1, PatrolPathMarkerEntity.getComponentType());
assert var6 != null;
String var7 = PatrolPathMarkerEntity.generateDisplayName(var3.getWorldGenId(), var6);
Message var8 = Message.raw(var7);
var5.putComponent(var1, PersistentDisplayName.getComponentType(), new PersistentDisplayName(var8));
var5.putComponent(var1, DisplayNameComponent.getComponentType(), new DisplayNameComponent(var8));
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<EntityStore> var1, @Nonnull WorldGenId var2, @Nonnull Store<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
) {
var4.putComponent(var1, PersistentDisplayName.getComponentType(), new PersistentDisplayName(MESSAGE_PREFABS_UNKNOWN));
var4.putComponent(var1, DisplayNameComponent.getComponentType(), new DisplayNameComponent(MESSAGE_PREFABS_UNKNOWN));
}
}
}