Package com.hbm_m.blockentity.machines
Class MachineRadarScreenBlockEntity
java.lang.Object
net.minecraftforge.common.capabilities.CapabilityProvider<net.minecraft.world.level.block.entity.BlockEntity>
net.minecraft.world.level.block.entity.BlockEntity
com.hbm_m.blockentity.machines.MachineRadarScreenBlockEntity
- All Implemented Interfaces:
net.minecraftforge.common.capabilities.ICapabilityProvider,net.minecraftforge.common.capabilities.ICapabilityProviderImpl<net.minecraft.world.level.block.entity.BlockEntity>,net.minecraftforge.common.capabilities.ICapabilitySerializable<net.minecraft.nbt.CompoundTag>,net.minecraftforge.common.extensions.IForgeBlockEntity,net.minecraftforge.common.util.INBTSerializable<net.minecraft.nbt.CompoundTag>
public class MachineRadarScreenBlockEntity
extends net.minecraft.world.level.block.entity.BlockEntity
Порт
TileEntityMachineRadarScreen из 1.7.10.
Пустая «доска», на которую радар (через radar linker в слоте SLOT_SCREEN_LINKER)
каждую серверную-тировку копирует свой список целей. Клиент рендерит их на экране
через MachineRadarScreenRenderer.
Поля linked/refX/refY/refZ/range/entries синкаются через getUpdateTag.-
Nested Class Summary
Nested classes/interfaces inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
net.minecraftforge.common.capabilities.CapabilityProvider.AsField<B extends net.minecraftforge.common.capabilities.ICapabilityProviderImpl<B>> -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal List<int[]>byte[]Карта высот экрана; пустые ячейки остаются прозрачными на клиенте.booleanintintintintbooleanРежим HeightMap, переданный от связанного радара.Fields inherited from class net.minecraft.world.level.block.entity.BlockEntity
level, remove, worldPositionFields inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity
INFINITE_EXTENT_AABB -
Constructor Summary
ConstructorsConstructorDescriptionMachineRadarScreenBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state) -
Method Summary
Modifier and TypeMethodDescriptionnet.minecraft.world.phys.AABBnet.minecraft.network.protocol.game.ClientboundBlockEntityDataPacketnet.minecraft.nbt.CompoundTagvoidhandleUpdateTag(net.minecraft.nbt.CompoundTag tag) voidload(net.minecraft.nbt.CompoundTag tag) voidonDataPacket(net.minecraft.network.Connection net, net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket pkt) booleanreceiveFromRadar(List<int[]> sourceEntries, int refX, int refY, int refZ, int range, boolean showMap, byte[] sourceMap) Вызывается радаром серверно: принимает список целей и координаты радара-источника (портTileEntityMachineRadarNT.updateEntity→ screen.entries = ...).voidsaveAdditional(net.minecraft.nbt.CompoundTag tag) static voidtick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, MachineRadarScreenBlockEntity screen) Периодически проверяет источник, чтобы сломанный радар не оставлял экран linked=true.voidunlink()Разрыв связи с радаром-источником (когда из радара убран radar linker).Methods inherited from class net.minecraft.world.level.block.entity.BlockEntity
addEntityType, clearRemoved, fillCrashReportCategory, getBlockPos, getBlockState, getLevel, getPersistentData, getPosFromTag, getType, hasLevel, isRemoved, loadStatic, onChunkUnloaded, onlyOpCanSetNbt, saveToItem, saveWithFullMetadata, saveWithId, saveWithoutMetadata, setBlockState, setChanged, setChanged, setLevel, setRemoved, triggerEventMethods inherited from class net.minecraftforge.common.capabilities.CapabilityProvider
areCapsCompatible, areCapsCompatible, deserializeCaps, gatherCapabilities, gatherCapabilities, gatherCapabilities, getCapabilities, getCapability, invalidateCaps, reviveCaps, serializeCapsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.minecraftforge.common.capabilities.ICapabilityProvider
getCapability, getCapabilityMethods inherited from interface net.minecraftforge.common.extensions.IForgeBlockEntity
deserializeNBT, getModelData, hasCustomOutlineRendering, onLoad, requestModelDataUpdate, serializeNBT
-
Field Details
-
entries
-
refX
public int refX -
refY
public int refY -
refZ
public int refZ -
range
public int range -
linked
public boolean linked -
showMap
public boolean showMapРежим HeightMap, переданный от связанного радара. -
heightMap
public byte[] heightMapКарта высот экрана; пустые ячейки остаются прозрачными на клиенте.
-
-
Constructor Details
-
MachineRadarScreenBlockEntity
public MachineRadarScreenBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
-
-
Method Details
-
receiveFromRadar
public boolean receiveFromRadar(List<int[]> sourceEntries, int refX, int refY, int refZ, int range, boolean showMap, byte[] sourceMap) Вызывается радаром серверно: принимает список целей и координаты радара-источника (портTileEntityMachineRadarNT.updateEntity→ screen.entries = ...).setChanged() вызывается ТОЛЬКО при реальной смене персистентного состояния (линк/координаты радара/режим карты). Координаты целей и содержимое карты — транзитные данные: они синкаются на клиент по сети (sendBlockUpdated), но не должны помечать чанк грязным и заставлять сервер каждые 5 тиков сериализовать 40 КБ height_map на диск.
- Returns:
- true, если набор целей изменился с прошлого вызова.
-
tick
public static void tick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, MachineRadarScreenBlockEntity screen) Периодически проверяет источник, чтобы сломанный радар не оставлял экран linked=true. -
unlink
public void unlink()Разрыв связи с радаром-источником (когда из радара убран radar linker). Сбрасывает linked/entries/range и синкает клиентам — экран переключается на статичный «шум» (порт отсутствия slots[8]==radar_linker в 1.7.10). -
getUpdateTag
public net.minecraft.nbt.CompoundTag getUpdateTag()- Overrides:
getUpdateTagin classnet.minecraft.world.level.block.entity.BlockEntity
-
handleUpdateTag
public void handleUpdateTag(net.minecraft.nbt.CompoundTag tag) -
getUpdatePacket
public net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket getUpdatePacket()- Overrides:
getUpdatePacketin classnet.minecraft.world.level.block.entity.BlockEntity
-
onDataPacket
public void onDataPacket(net.minecraft.network.Connection net, net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket pkt) -
saveAdditional
public void saveAdditional(net.minecraft.nbt.CompoundTag tag) - Overrides:
saveAdditionalin classnet.minecraft.world.level.block.entity.BlockEntity
-
load
public void load(net.minecraft.nbt.CompoundTag tag) - Overrides:
loadin classnet.minecraft.world.level.block.entity.BlockEntity
-
getRenderBoundingBox
public net.minecraft.world.phys.AABB getRenderBoundingBox()
-