Package com.hbm_m.interfaces
Interface IMultiblockController
- All Known Implementing Classes:
CargoElevatorBlock,DoorBlock,HeatingOvenBlock,LaunchPadBlock,LaunchPadRustedBlock,MachineAdvancedAssemblerBlock,MachineArcFurnaceBlock,MachineArcWelderBlock,MachineAssemblerBlock,MachineBat9000Block,MachineBatterySocketBlock,MachineBreederBlock,MachineCatalyticReformerBlock,MachineCentrifugeBlock,MachineChemicalFactoryBlock,MachineChemicalPlantBlock,MachineChungusBlock,MachineCoreEmitterBlock,MachineCoreInjectorBlock,MachineCoreReceiverBlock,MachineCrackingTowerBlock,MachineCrucibleBlock,MachineCrystallizerBlock,MachineCyclotronBlock,MachineDerrickBlock,MachineDeuteriumTowerBlock,MachineFelBlock,MachineFlareStackBlock,MachineFluidTankBlock,MachineFrackingTowerBlock,MachineFractionTowerBlock,MachineGasCentrifugeBlock,MachineHydrotreaterBlock,MachineIndustrialBoilerBlock,MachineIndustrialTurbineBlock,MachineLargePylonBlock,MachineLargeRadarBlock,MachineLiquefactorBlock,MachineMiningDrillBlock,MachineMixerBlock,MachinePressBlock,MachinePumpjackBlock,MachineRadarBlock,MachineRadarScreenBlock,MachineRbmkConsoleBlock,MachineRefineryBlock,MachineSilexBlock,MachineSolarBoilerBlock,MachineSolarMirrorsBlock,MachineSolderingStationBlock,MachineSteamTurbineBlock,MachineSubstationBlock,MachineTowerLargeBlock,MachineTowerSmallBlock,MachineTurbineBlock,MachineTurbofanBlock,MachineVacuumDistillBlock,MachineWatzPowerplantBlock,MachineWoodBurnerBlock,MachineZirnoxBlock,MachineZirnoxDestroyedBlock,NukeFatManBlock,TransitionSealBlock
public interface IMultiblockController
-
Method Summary
Modifier and TypeMethodDescriptiondefault booleancanSurviveMultiblockPlacement(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.LevelReader level, net.minecraft.core.BlockPos placedPos) Поскольку мы используем MultiblockBlockItem, блок всегда спавнится сразу в координатах ядра (уже в глубине).default net.minecraft.world.phys.shapes.VoxelShapegetCustomMasterVoxelShape(net.minecraft.world.level.block.state.BlockState state) Позволяет переопределить стандартную VoxelShape для мультиблока.default net.minecraft.core.BlockPosЕсли вы изменили размер или компоновку структуры в новой версии мода, из-за чего контроллер сместился в координатах шаблона (local grid), верните здесь его СТАРЫЙ офсет.default intgetPartRole(net.minecraft.core.BlockPos localOffset) Returns the specific role of a multiblock part based on its local offset from the controller.default net.minecraft.core.BlockPosplaceMultiblockStructure(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos placedPos, net.minecraft.world.level.block.state.BlockState state) Строит фантомные части мультиблока вокруг контроллера.default booleanReturns whether this controller should be destroyed when one of its machine parts is removed.
-
Method Details
-
getStructureHelper
MultiblockStructureHelper getStructureHelper()- Returns:
- Экземпляр MultiblockStructureHelper, описывающий данную структуру.
-
getOffset
default int getOffset() -
getPartRole
Returns the specific role of a multiblock part based on its local offset from the controller. This is where you define which parts are energy connectors, item inputs/outputs, etc.- Parameters:
localOffset- The part's position relative to the controller (e.g., new BlockPos(1, 0, 0)).- Returns:
- The
PartRolefor that part.
-
getCustomMasterVoxelShape
@Nullable default net.minecraft.world.phys.shapes.VoxelShape getCustomMasterVoxelShape(net.minecraft.world.level.block.state.BlockState state) Позволяет переопределить стандартную VoxelShape для мультиблока. Используется для структур со сложной геометрией (провода, выступы и т.д.). Если этот метод возвращает Shapes.empty(), система автоматически сгенерирует форму на основе расположения блоков-частей.- Parameters:
state- Состояние блока-контроллера.- Returns:
- Кастомная VoxelShape или Shapes.empty() для использования авто-генерации.
-
shouldDestroyOnPartRemoved
default boolean shouldDestroyOnPartRemoved()Returns whether this controller should be destroyed when one of its machine parts is removed. Override to return false for "permanent" destroyed/ruin states that should never auto-collapse. -
getLegacyControllerOffset
@Nullable default net.minecraft.core.BlockPos getLegacyControllerOffset()Если вы изменили размер или компоновку структуры в новой версии мода, из-за чего контроллер сместился в координатах шаблона (local grid), верните здесь его СТАРЫЙ офсет. Это позволит системе починки сдвинуть ядро так, чтобы вся структура осталась стоять на своих старых координатах в мире. Если возвращает null — считается, что смещения ядра не было. -
canSurviveMultiblockPlacement
default boolean canSurviveMultiblockPlacement(net.minecraft.world.level.block.state.BlockState state, net.minecraft.world.level.LevelReader level, net.minecraft.core.BlockPos placedPos) Поскольку мы используем MultiblockBlockItem, блок всегда спавнится сразу в координатах ядра (уже в глубине). Проверка на свободное место теперь делается ДО установки. Этот метод можно использовать для дополнительных проверок на выживаемость. -
placeMultiblockStructure
@Nullable default net.minecraft.core.BlockPos placeMultiblockStructure(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos placedPos, net.minecraft.world.level.block.state.BlockState state) Строит фантомные части мультиблока вокруг контроллера.Вызывается из метода setPlacedBy() или onPlace() в вашем классе блока. Контроллер в этот момент УЖЕ стоит на правильных координатах.
-