DoorInteraction class
Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.server
Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/server/DoorInteraction.java
extends: SimpleBlockInteraction
Поля (97)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final Vector3i |
blockPosition |
|
private final BlockType |
blockType |
|
private final DoorBlockUtils.DoorState |
doorState |
|
private final int |
filler |
|
DoorBlockUtils.DoorState |
var10 |
|
int |
var10 |
|
Ref |
var10 |
|
Vector3i |
var10 |
|
String |
var10 |
|
int |
var10 |
|
String |
var10 |
|
BlockBoundingBoxes |
var11 |
|
BlockSection |
var11 |
|
Rotation |
var11 |
|
DoorBlockUtils.DoorState |
var11 |
|
ChunkStore |
var11 |
|
String |
var11 |
|
String |
var12 |
|
ChunkSection |
var12 |
|
Vector3i |
var12 |
|
Rotation |
var12 |
|
Ref |
var12 |
|
BlockType |
var13 |
|
BlockType |
var13 |
|
DoorInteraction.DoorInfo |
var13 |
|
int |
var13 |
|
Store |
var13 |
|
BlockBoundingBoxes |
var14 |
|
Ref |
var14 |
|
BlockType |
var14 |
|
BlockSection |
var14 |
|
BlockType |
var15 |
|
BlockChunk |
var15 |
|
int |
var15 |
|
BlockType |
var15 |
|
BlockBoundingBoxes |
var16 |
|
BlockComponentSection |
var16 |
|
int |
var16 |
|
BlockType |
var17 |
|
int |
var17 |
|
RotationTuple |
var17 |
|
String |
var18 |
|
|
var18 |
|
|
var18 |
|
String |
var18 |
|
String |
var19 |
|
|
var19 |
|
|
var19 |
|
DoorBlockUtils.DoorState |
var19 |
|
BlockGathering |
var20 |
|
Ref |
var20 |
|
PhysicsDropType |
var21 |
|
TransformComponent |
var21 |
|
SoftBlockDropType |
var22 |
|
Vector3d |
var22 |
|
Holder[] |
var23 |
|
DoorBlockUtils.DoorState |
var23 |
|
|
var23 |
|
|
var23 |
|
|
var23 |
|
|
var23 |
|
List |
var24 |
|
DoorBlockUtils.DoorState |
var24 |
|
Vector3d |
var25 |
|
DoorBlockUtils.DoorState |
var25 |
|
BlockType |
var26 |
|
boolean |
var27 |
|
Vector3d |
var28 |
|
int |
var29 |
|
BlockBoundingBoxes |
var30 |
|
BlockBoundingBoxes.RotatedVariantBoxes |
var31 |
|
Box |
var32 |
|
Vector3d |
var33 |
|
Rotation |
var34 |
|
Store |
var4 |
|
Item |
var5 |
|
Store |
var5 |
|
BlockType |
var6 |
|
Ref |
var6 |
|
Ref |
var7 |
|
int |
var7 |
|
int |
var7 |
|
BlockSection |
var7 |
|
DoorInteraction.DoorInfo |
var8 |
|
Store |
var8 |
|
int |
var8 |
|
BlockBoundingBoxes |
var8 |
|
BlockType |
var8 |
|
int |
var8 |
|
DoorInteraction.DoorInfo |
var8 |
|
boolean |
var9 |
|
BlockSection |
var9 |
|
int |
var9 |
|
BlockBoundingBoxes.RotatedVariantBoxes |
var9 |
|
RotationTuple |
var9 |
|
int |
var9 |
|
DoorBlockUtils.DoorState |
var9 |
Методы (36)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
DoorInfopublic DoorInfo(@Nonnull BlockType var1, int var2, @Nonnull Vector3i var3, @Nonnull DoorBlockUtils.DoorState var4) |
abstract |
|
activateDoor activateDoor(var0, var1, var2, var8.blockType, var8.blockPosition, var8.doorState, var10) |
static |
void |
breakSoftBlocksInHitboxvoid breakSoftBlocksInHitbox(@Nonnull CommandBuffer<EntityStore> var0, @Nonnull ChunkStore var1, @Nonnull Vector3i var2, @Nonnull BlockBoundingBoxes.RotatedVariantBoxes var3) |
static |
boolean |
checkForDoubleDoorboolean checkForDoubleDoor(@Nonnull World var0,
@Nonnull CommandBuffer<EntityStore> var1,
@Nonnull ChunkStore var2,
@Nonnull Vector3i var3,
@Nonnull BlockType var4,
int var5,
@Nonnull DoorBlockUtils.DoorState var6,
@Nonnull DoorBlockUtils.DoorState var7) |
|
public Vector3i |
getBlockPositionpublic Vector3i getBlockPosition() |
|
public BlockType |
getBlockTypepublic BlockType getBlockType() |
|
public DoorBlockUtils.DoorState |
getDoorStatepublic DoorBlockUtils.DoorState getDoorState() |
public |
boolean |
getIsHorizontalboolean getIsHorizontal() |
|
|
if if(var8 == null) |
|
|
if if(var9 == null) |
|
|
if if(var13 != null) |
|
|
if if(var14 != null) |
|
|
if if(var17 == null) |
|
|
if if(var11 != null) |
|
|
if if(var15 != null) |
|
|
if if(var16 != null && var16 != var11) |
|
|
if if(var4x != 0 || var5 != 0 || var6 != 0) |
|
|
if if(var11 != null) |
|
|
if if(var12 != null) |
|
|
if if(var15 != null) |
|
|
if if(var16 != null) |
|
|
if if(var20 != null) |
|
|
if if(var21 != null) |
|
|
if if(var5 == null) |
|
|
if if(var6 == null) |
|
|
if if(var8 == null) |
|
|
if if(var13 != null && var13.doorState == var4) |
|
|
if if(var13.filler != 0) |
|
|
if if(var7 == null) |
|
|
if if(var14 != null) |
|
|
if if(var15 != null) |
|
|
if if(var19 != DoorBlockUtils.DoorState.CLOSED) |
|
|
if if(var24 == null) |
|
|
if if(var26 != null) |
|
|
if if(var27) |
|
|
if if(var7 != DoorBlockUtils.DoorState.CLOSED) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.interaction.config.server;
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.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
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.math.shape.Box;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.protocol.BlockMaterial;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blockhitbox.BlockBoundingBoxes;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockGathering;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.PhysicsDropType;
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.asset.type.blocktype.config.SoftBlockDropType;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.item.ItemComponent;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.BlockHarvestUtils;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.DoorBlockUtils;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.client.SimpleBlockInteraction;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockOperations;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockComponentSection;
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 com.hypixel.hytale.server.core.util.FillerBlockUtil;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class DoorInteraction class="kw">extends SimpleBlockInteraction {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<DoorInteraction> CODEC = BuilderCodec.builder(DoorInteraction.class, DoorInteraction::new, SimpleBlockInteraction.CODEC)
.documentation("Opens/Closes a door")
.<Boolean>appendInherited(
new KeyedCodec<>("Horizontal", Codec.BOOLEAN),
(var0, var1) -> var0.horizontal = var1,
var0 -> var0.horizontal,
(var0, var1) -> var0.horizontal = var1.horizontal
)
.documentation("Whether the door is horizontal (e.g. gates) or vertical (e.g. regular doors).")
.add()
.build();
class="kw">private class="kw">static class="kw">final String DOOR_BLOCKED = "DoorBlocked";
class="kw">private boolean horizontal;
class="kw">public DoorInteraction() {
}
class="kw">private class="kw">static boolean checkForDoubleDoor(
@Nonnull World var0,
@Nonnull CommandBuffer<EntityStore> var1,
@Nonnull ChunkStore var2,
@Nonnull Vector3i var3,
@Nonnull BlockType var4,
int var5,
@Nonnull DoorBlockUtils.DoorState var6,
@Nonnull DoorBlockUtils.DoorState var7
) {
DoorInteraction.DoorInfo var8 = getDoubleDoor(var2, var3, var4, var5, var7);
if (var8 == null) {
class="kw">return false;
}
boolean var9 = DoorBlockUtils.isHorizontalDoor(var8.blockType);
DoorBlockUtils.DoorState var10 = var9 ? var6 : DoorBlockUtils.getOppositeDoorState(var6);
activateDoor(var0, var1, var2, var8.blockType, var8.blockPosition, var8.doorState, var10);
class="kw">return true;
}
@Nullable
class="kw">private class="kw">static BlockType activateDoor(
@Nonnull World var0,
@Nonnull CommandBuffer<EntityStore> var1,
@Nonnull ChunkStore var2,
@Nonnull BlockType var3,
@Nonnull Vector3i var4,
@Nonnull DoorBlockUtils.DoorState var5,
@Nonnull DoorBlockUtils.DoorState var6
) {
Ref var7 = var2.getChunkSectionReferenceAtBlock(var4.x, var4.y, var4.z);
if (var7 != null && var7.isValid()) {
Store var8 = var2.getStore();
BlockSection var9 = var8.getComponent(var7, BlockSection.getComponentType());
if (var9 == null) {
class="kw">return null;
}
int var10 = var9.getRotationIndex(var4.x, var4.y, var4.z);
BlockBoundingBoxes var11 = BlockBoundingBoxes.getAssetMap().getAsset(var3.getHitboxTypeIndex());
String var12 = DoorBlockUtils.getInteractionState(var5, var6);
BlockType var13 = var3.getBlockForState(var12);
if (var13 != null) {
BlockBoundingBoxes var14 = BlockBoundingBoxes.getAssetMap().getAsset(var13.getHitboxTypeIndex());
if (var14 != null) {
breakSoftBlocksInHitbox(var1, var2, var4, var14.get(var10));
}
}
BlockOperations.setBlockInteractionState(var2, var7, var4.x, var4.y, var4.z, var3, var12, false);
BlockType var17 = BlockType.getAssetMap().getAsset(var9.get(var4.x, var4.y, var4.z));
if (var17 == null) {
class="kw">return null;
}
BlockType var15 = var17.getBlockForState(var12);
if (var11 != null) {
FillerBlockUtil.forEachFillerBlock(
var11.get(var10), (var2x, var3x, var4x) -> var0.performBlockUpdate(var4.x + var2x, var4.y + var3x, var4.z + var4x)
);
}
if (var15 != null) {
BlockBoundingBoxes var16 = BlockBoundingBoxes.getAssetMap().getAsset(var15.getHitboxTypeIndex());
if (var16 != null && var16 != var11) {
FillerBlockUtil.forEachFillerBlock(
var16.get(var10), (var2x, var3x, var4x) -> var0.performBlockUpdate(var4.x + var2x, var4.y + var3x, var4.z + var4x)
);
}
}
class="kw">return var15;
} else {
class="kw">return null;
}
}
class="kw">private class="kw">static void breakSoftBlocksInHitbox(
@Nonnull CommandBuffer<EntityStore> var0, @Nonnull ChunkStore var1, @Nonnull Vector3i var2, @Nonnull BlockBoundingBoxes.RotatedVariantBoxes var3
) {
Store var4 = var1.getStore();
FillerBlockUtil.forEachFillerBlock(var3, (var4x, var5, var6) -> {
if (var4x != 0 || var5 != 0 || var6 != 0) {
int var7 = var2.x + var4x;
int var8 = var2.y + var5;
int var9 = var2.z + var6;
Ref var10 = var1.getChunkSectionReferenceAtBlock(var7, var8, var9);
if (var10 != null && var10.isValid()) {
BlockSection var11 = var4.getComponent(var10, BlockSection.getComponentType());
if (var11 != null) {
ChunkSection var12 = var4.getComponent(var10, ChunkSection.getComponentType());
if (var12 != null) {
BlockType var13 = BlockType.getAssetMap().getAsset(var11.get(var7, var8, var9));
if (var13 != null && var13 != BlockType.EMPTY && var13.getMaterial() == BlockMaterial.Empty) {
Ref var14 = var12.getChunkColumnReference();
if (var14 != null && var14.isValid()) {
BlockChunk var15 = var4.getComponent(var14, BlockChunk.getComponentType());
if (var15 != null) {
BlockComponentSection var16 = var4.getComponent(var10, BlockComponentSection.getComponentType());
if (var16 != null) {
int var17 = 1312;
BlockOperations.setBlock(var1, var10, var12, var11, var16, var15, var7, var8, var9, 0, BlockType.EMPTY, 0, 0, 1312);
String var18 = null;
String var19 = null;
BlockGathering var20 = var13.getGathering();
if (var20 != null) {
PhysicsDropType var21 = var20.getPhysics();
SoftBlockDropType var22 = var20.getSoft();
if (var21 != null) {
var18 = var21.getItemId();
var19 = var21.getDropListId();
} else if (var22 != null) {
var18 = var22.getItemId();
var19 = var22.getDropListId();
}
}
List var24 = BlockHarvestUtils.getDrops(var13, 1, var18, var19);
if (!var24.isEmpty()) {
Vector3d var25 = new Vector3d(var7 + 0.5, var8, var9 + 0.5);
Holder[] var23 = ItemComponent.generateItemDrops(var0, var24, var25, Rotation3f.IDENTITY);
var0.addEntities(var23, AddReason.SPAWN);
}
}
}
}
}
}
}
}
}
});
}
@Nullable
class="kw">private class="kw">static DoorInteraction.DoorInfo getDoubleDoor(
@Nonnull ChunkStore var0, @Nonnull Vector3i var1, @Nonnull BlockType var2, int var3, @Nonnull DoorBlockUtils.DoorState var4
) {
Item var5 = var2.getItem();
if (var5 == null) {
class="kw">return null;
}
BlockType var6 = BlockType.getAssetMap().getAsset(var5.getId());
if (var6 == null) {
class="kw">return null;
}
int var7 = var6.getHitboxTypeIndex();
BlockBoundingBoxes var8 = BlockBoundingBoxes.getAssetMap().getAsset(var7);
if (var8 == null) {
class="kw">return null;
}
BlockBoundingBoxes.RotatedVariantBoxes var9 = var8.get(Rotation.None, Rotation.None, Rotation.None);
Vector3i var10 = new Vector3i((int)var9.getBoundingBox().getMax().x * 2 - 1, 0, 0);
Rotation var11 = RotationTuple.get(var3).yaw();
Vector3i var12 = new Vector3i(var1).add(MathUtil.rotateVectorYAxis(var10, var11.getDegrees(), false));
DoorInteraction.DoorInfo var13 = getDoorAtPosition(var0, var12.x, var12.y, var12.z, var11.flip());
if (var13 != null && var13.doorState == var4) {
BlockType var14 = var13.blockType;
if (var13.filler != 0) {
class="kw">return null;
}
int var15 = BlockType.getAssetMap().getAsset(var14.getItem().getId()).getHitboxTypeIndex();
class="kw">return var15 == var7 ? var13 : null;
} else {
class="kw">return null;
}
}
@Nullable
class="kw">public class="kw">static DoorInteraction.DoorInfo getDoorAtPosition(@Nonnull ChunkStore var0, int var1, int var2, int var3, @Nonnull Rotation var4) {
Store var5 = var0.getStore();
Ref var6 = var0.getChunkSectionReferenceAtBlock(var1, var2, var3);
if (var6 != null && var6.isValid()) {
BlockSection var7 = var5.getComponent(var6, BlockSection.getComponentType());
if (var7 == null) {
class="kw">return null;
} else {
BlockType var8 = BlockType.getAssetMap().getAsset(var7.get(var1, var2, var3));
if (var8 != null && var8.isDoor()) {
RotationTuple var9 = var7.getRotation(var1, var2, var3);
String var10 = var8.getStateForBlock(var8);
DoorBlockUtils.DoorState var11 = DoorBlockUtils.DoorState.fromBlockState(var10);
Rotation var12 = var9.yaw();
int var13 = var7.getFiller(var1, var2, var3);
class="kw">return var12 != var4 ? null : new DoorInteraction.DoorInfo(var8, var13, new Vector3i(var1, var2, var3), var11);
} else {
class="kw">return null;
}
}
} else {
class="kw">return null;
}
}
@Override
class="kw">protected void simulateInteractWithBlock(
@Nonnull InteractionType var1, @Nonnull InteractionContext var2, @Nullable ItemStack var3, @Nonnull World var4, @Nonnull Vector3i var5
) {
}
@Override
class="kw">protected void interactWithBlock(
@Nonnull World var1,
@Nonnull CommandBuffer<EntityStore> var2,
@Nonnull InteractionType var3,
@Nonnull InteractionContext var4,
@Nullable ItemStack var5,
@Nonnull Vector3i var6,
@Nonnull CooldownHandler var7
) {
int var8 = var6.x();
int var9 = var6.y();
int var10 = var6.z();
ChunkStore var11 = var1.getChunkStore();
Ref var12 = var11.getChunkSectionReferenceAtBlock(var8, var9, var10);
if (var12 != null && var12.isValid()) {
Store var13 = var11.getStore();
BlockSection var14 = var13.getComponent(var12, BlockSection.getComponentType());
if (var14 != null) {
BlockType var15 = BlockType.getAssetMap().getAsset(var14.get(var6.x, var6.y, var6.z));
if (var15 != null) {
int var16 = var14.getRotationIndex(var8, var9, var10);
RotationTuple var17 = RotationTuple.get(var16);
String var18 = var15.getStateForBlock(var15);
DoorBlockUtils.DoorState var19 = DoorBlockUtils.DoorState.fromBlockState(var18);
Ref var20 = var4.getEntity();
TransformComponent var21 = var2.getComponent(var20, TransformComponent.getComponentType());
assert var21 != null;
Vector3d var22 = var21.getPosition();
DoorBlockUtils.DoorState var23;
if (var19 != DoorBlockUtils.DoorState.CLOSED) {
var23 = DoorBlockUtils.DoorState.CLOSED;
} else if (!this.horizontal && DoorBlockUtils.isInFrontOfDoor(var6, var17.yaw(), var22)) {
var23 = DoorBlockUtils.DoorState.OPENED_OUT;
} else {
var23 = DoorBlockUtils.DoorState.OPENED_IN;
}
DoorBlockUtils.DoorState var24 = this.checkDoor(var11, var12, var6, var15, var16, var19, var23);
if (var24 == null) {
var4.getState().state = InteractionState.Failed;
} else {
var23 = var24;
DoorBlockUtils.DoorState var25 = DoorBlockUtils.getOppositeDoorState(var19);
BlockType var26 = activateDoor(var1, var2, var11, var15, var6, var19, var23);
boolean var27 = checkForDoubleDoor(var1, var2, var11, var6, var15, var16, var23, var25);
if (var26 != null) {
Vector3d var28 = new Vector3d();
int var29 = BlockType.getAssetMap().getAsset(var15.getItem().getId()).getHitboxTypeIndex();
BlockBoundingBoxes var30 = BlockBoundingBoxes.getAssetMap().getAsset(var29);
BlockBoundingBoxes.RotatedVariantBoxes var31 = var30.get(var16);
Box var32 = var31.getBoundingBox();
if (var27) {
Vector3d var33 = new Vector3d(var32.middleX(), 0.0, 0.0);
Rotation var34 = RotationTuple.get(var16).yaw();
var28.add(MathUtil.rotateVectorYAxis(var33, var34.getDegrees(), false));
var28.add(var32.middleX(), var32.middleY(), var32.middleZ());
} else {
var28.add(var32.middleX(), var32.middleY(), var32.middleZ());
}
var28.add(var6.x, var6.y, var6.z);
SoundUtil.playSoundEvent3d(var20, var26.getInteractionSoundEventIndex(), var28, var2);
}
}
}
}
}
}
class="kw">public boolean getIsHorizontal() {
class="kw">return this.horizontal;
}
@Nullable
class="kw">private DoorBlockUtils.DoorState checkDoor(
@Nonnull ChunkStore var1,
@Nonnull Ref<ChunkStore> var2,
@Nonnull Vector3i var3,
@Nonnull BlockType var4,
int var5,
@Nonnull DoorBlockUtils.DoorState var6,
@Nonnull DoorBlockUtils.DoorState var7
) {
DoorInteraction.DoorInfo var8 = getDoubleDoor(var1, var3, var4, var5, var6);
DoorBlockUtils.DoorState var9 = DoorBlockUtils.getOppositeDoorState(var7);
String var10 = DoorBlockUtils.getInteractionState(var6, var9);
String var11 = DoorBlockUtils.getInteractionState(var6, var7);
if (DoorBlockUtils.canOpenDoor(var1, var3, var11)) {
if (this.horizontal || var8 == null || DoorBlockUtils.canOpenDoor(var1, var8.blockPosition, var10)) {
class="kw">return var7;
}
if (DoorBlockUtils.canOpenDoor(var1, var3, var10) && DoorBlockUtils.canOpenDoor(var1, var8.blockPosition, var11)) {
class="kw">return var9;
}
BlockOperations.setBlockInteractionState(var1, var2, var3.x, var3.y, var3.z, var4, "DoorBlocked", false);
class="kw">return null;
} else if (DoorBlockUtils.canOpenDoor(var1, var3, var10) && !this.horizontal) {
if (var8 != null && !DoorBlockUtils.canOpenDoor(var1, var8.blockPosition, var11)) {
BlockOperations.setBlockInteractionState(var1, var2, var3.x, var3.y, var3.z, var4, "DoorBlocked", false);
class="kw">return null;
} else {
class="kw">return var9;
}
} else {
if (var7 != DoorBlockUtils.DoorState.CLOSED) {
BlockOperations.setBlockInteractionState(var1, var2, var3.x, var3.y, var3.z, var4, "DoorBlocked", false);
}
class="kw">return null;
}
}
class="kw">public class="kw">static class DoorInfo {
class="kw">private class="kw">final BlockType blockType;
class="kw">private class="kw">final int filler;
class="kw">private class="kw">final Vector3i blockPosition;
class="kw">private class="kw">final DoorBlockUtils.DoorState doorState;
class="kw">public DoorInfo(@Nonnull BlockType var1, int var2, @Nonnull Vector3i var3, @Nonnull DoorBlockUtils.DoorState var4) {
this.blockType = var1;
this.filler = var2;
this.blockPosition = var3;
this.doorState = var4;
}
@Nonnull
class="kw">public BlockType getBlockType() {
class="kw">return this.blockType;
}
@Nonnull
class="kw">public Vector3i getBlockPosition() {
class="kw">return this.blockPosition;
}
@Nonnull
class="kw">public DoorBlockUtils.DoorState getDoorState() {
class="kw">return this.doorState;
}
}
}