CreateWarpWhenTeleporterPlacedSystem class
Пакет: com.hypixel.hytale.builtin.adventure.teleporter.system
Файл: com/hypixel/hytale/builtin/adventure/teleporter/system/CreateWarpWhenTeleporterPlacedSystem.java
extends: RefChangeSystem<ChunkStore, PlacedByInteractionComponent>
Поля (26)
| Модификаторы | Тип | Имя |
|---|---|---|
|
String |
var10 |
|
int |
var10 |
|
BlockModule.BlockStateInfo |
var11 |
|
int |
var11 |
|
Ref |
var12 |
|
BlockSection |
var12 |
|
String |
var13 |
|
int |
var13 |
|
Teleporter |
var14 |
|
RotationTuple |
var14 |
|
Rotation |
var15 |
|
float |
var16 |
|
Vector3d |
var17 |
|
Transform |
var18 |
|
Warp |
var19 |
|
ChunkSection |
var4 |
|
World |
var5 |
|
int |
var5 |
|
EntityStore |
var6 |
|
int |
var6 |
|
UUID |
var7 |
|
int |
var7 |
|
Ref |
var8 |
|
int |
var8 |
|
PlayerRef |
var9 |
|
int |
var9 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
void |
createWarpvoid createWarp(@Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull Ref<ChunkStore> var1, @Nonnull BlockModule.BlockStateInfo var2, @Nonnull String var3) |
abstract |
|
createWarp createWarp(var4, var12, var11, var13) |
|
|
if if(var10 != null) |
|
|
if if(var13 != null) |
|
|
if if(var12 != null) |
public |
void |
onComponentAddedvoid onComponentAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
public |
void |
onComponentRemovedvoid onComponentRemoved(@Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4) |
public |
void |
onComponentSetvoid onComponentSet(@Nonnull Ref<ChunkStore> var1,
@Nullable PlacedByInteractionComponent var2,
@Nonnull PlacedByInteractionComponent var3,
@Nonnull Store<ChunkStore> var4,
@Nonnull CommandBuffer<ChunkStore> var5) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.teleporter.system;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.component.Teleporter;
class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.util.CannedWarpNames;
class="kw">import com.hypixel.hytale.builtin.teleport.TeleportPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.Warp;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefChangeSystem;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.Rotation;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.RotationTuple;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.components.PlacedByInteractionComponent;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.Instant;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">public class CreateWarpWhenTeleporterPlacedSystem class="kw">extends RefChangeSystem<ChunkStore, PlacedByInteractionComponent> {
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, PlacedByInteractionComponent> placedByInteractionComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, Teleporter> teleporterComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<ChunkStore, BlockModule.BlockStateInfo> blockStateInfoComponentType;
@Nonnull
class="kw">private class="kw">final ComponentType<EntityStore, PlayerRef> playerRefComponentType;
@Nonnull
class="kw">private class="kw">final Query<ChunkStore> query;
class="kw">public CreateWarpWhenTeleporterPlacedSystem(
@Nonnull ComponentType<ChunkStore, PlacedByInteractionComponent> var1,
@Nonnull ComponentType<ChunkStore, Teleporter> var2,
@Nonnull ComponentType<ChunkStore, BlockModule.BlockStateInfo> var3,
@Nonnull ComponentType<EntityStore, PlayerRef> var4
) {
this.placedByInteractionComponentType = var1;
this.teleporterComponentType = var2;
this.blockStateInfoComponentType = var3;
this.playerRefComponentType = var4;
this.query = Query.and(var1, var2, var3);
}
class="kw">public void onComponentAdded(
@Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
World var5 = var3.getExternalData().getWorld();
EntityStore var6 = var5.getEntityStore();
UUID var7 = var2.getWhoPlacedUuid();
Ref var8 = var6.getRefFromUUID(var7);
if (var8 != null && var8.isValid()) {
PlayerRef var9 = var6.getStore().getComponent(var8, this.playerRefComponentType);
String var10 = var9 == null ? null : var9.getLanguage();
if (var10 != null) {
BlockModule.BlockStateInfo var11 = var4.getComponent(var1, this.blockStateInfoComponentType);
assert var11 != null;
Ref var12 = var11.getSectionRef();
if (var12.isValid()) {
String var13 = CannedWarpNames.generateCannedWarpName(var1, var10);
if (var13 != null) {
createWarp(var4, var12, var11, var13);
Teleporter var14 = var4.getComponent(var1, this.teleporterComponentType);
assert var14 != null;
var14.setOwnedWarp(var13);
}
}
}
}
}
class="kw">public class="kw">static void createWarp(
@Nonnull ComponentAccessor<ChunkStore> var0, @Nonnull Ref<ChunkStore> var1, @Nonnull BlockModule.BlockStateInfo var2, @Nonnull String var3
) {
ChunkSection var4 = var0.getComponent(var1, ChunkSection.getComponentType());
assert var4 != null;
int var5 = var4.getX() << 5;
int var6 = var4.getY() << 5;
int var7 = var4.getZ() << 5;
int var8 = var2.getIndex();
int var9 = var5 + ChunkUtil.xFromIndex(var8);
int var10 = var6 + ChunkUtil.yFromIndex(var8);
int var11 = var7 + ChunkUtil.zFromIndex(var8);
BlockSection var12 = var0.getComponent(var1, BlockSection.getComponentType());
if (var12 != null) {
int var13 = var12.getRotationIndex(var9, var10, var11);
RotationTuple var14 = RotationTuple.get(var13);
Rotation var15 = var14.yaw();
float var16 = (float)var15.getRadians() + (float)Math.toRadians(180.0);
Vector3d var17 = new Vector3d(var9, var10, var11).add(0.5, 0.65, 0.5);
Transform var18 = new Transform(var17, new Rotation3f(Float.NaN, var16, Float.NaN));
Warp var19 = new Warp(var18, var3, var0.getExternalData().getWorld(), "*Teleporter", Instant.now());
TeleportPlugin.get().addWarp(var19, false);
}
}
class="kw">public void onComponentSet(
@Nonnull Ref<ChunkStore> var1,
@Nullable PlacedByInteractionComponent var2,
@Nonnull PlacedByInteractionComponent var3,
@Nonnull Store<ChunkStore> var4,
@Nonnull CommandBuffer<ChunkStore> var5
) {
}
class="kw">public void onComponentRemoved(
@Nonnull Ref<ChunkStore> var1, @Nonnull PlacedByInteractionComponent var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
) {
}
@Nonnull
@Override
class="kw">public ComponentType<ChunkStore, PlacedByInteractionComponent> componentType() {
class="kw">return this.placedByInteractionComponentType;
}
@Nonnull
@Override
class="kw">public Query<ChunkStore> getQuery() {
class="kw">return this.query;
}
}