Class MachineArcFurnaceBlockEntity

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.BaseMachineBlockEntity
com.hbm_m.blockentity.machines.MachineArcFurnaceBlockEntity
All Implemented Interfaces:
IEnergyConnector, IEnergyProvider, IEnergyReceiver, net.minecraft.world.inventory.MenuConstructor, net.minecraft.world.MenuProvider, 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 MachineArcFurnaceBlockEntity extends BaseMachineBlockEntity
Arc Furnace - generisch rezeptgesteuerte Einzelblock-Maschine, vereinfachte Portierung der Kernlogik aus TileEntityMachineArcFurnaceLarge/ArcFurnaceRecipes (1.7.10- Original). Das Original ist ein Multiblock mit Elektroden-Hitze-Animation - hier bewusst NICHT uebernommen (Konsistenz mit Ore Slopper/Combination Oven in dieser Session): keine Multiblock- Struktur, kein Energieverbrauch, keine Hitze-/Animation-Mechanik.

Anders als beim Original (und dem Combination Oven) ist der primaere Output meist FLUESSIG (geschmolzenes Metall) statt fest: 1 Item-Eingang -> optionaler Item-Ausgang UND/ODER bis zu 2 Fluid-Ausgaenge, siehe ArcFurnaceRecipe. Rezepte kommen ausschliesslich aus dem generischen Vanilla-Rezeptsystem (ArcFurnaceRecipe / ModRecipes.ARC_FURNACE_TYPE); es sind bewusst KEINE Rezepte im Java-Code hartkodiert.

  • Field Details

  • Constructor Details

    • MachineArcFurnaceBlockEntity

      public MachineArcFurnaceBlockEntity(net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state)
  • Method Details

    • getCapability

      @NotNull public <T> net.minecraftforge.common.util.LazyOptional<T> getCapability(net.minecraftforge.common.capabilities.Capability<T> cap, @Nullable net.minecraft.core.Direction side)
      Specified by:
      getCapability in interface net.minecraftforge.common.capabilities.ICapabilityProvider
      Overrides:
      getCapability in class BaseMachineBlockEntity
    • tick

      public static void tick(net.minecraft.world.level.Level level, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, MachineArcFurnaceBlockEntity be)
    • saveAdditional

      protected void saveAdditional(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      saveAdditional in class BaseMachineBlockEntity
    • load

      public void load(net.minecraft.nbt.CompoundTag tag)
      Overrides:
      load in class BaseMachineBlockEntity
    • getDefaultName

      protected net.minecraft.network.chat.Component getDefaultName()
      Specified by:
      getDefaultName in class BaseMachineBlockEntity
    • getDisplayName

      public net.minecraft.network.chat.Component getDisplayName()
    • isItemValidForSlot

      protected boolean isItemValidForSlot(int slot, net.minecraft.world.item.ItemStack stack)
      Specified by:
      isItemValidForSlot in class BaseMachineBlockEntity
    • createMenu

      @Nullable public net.minecraft.world.inventory.AbstractContainerMenu createMenu(int containerId, net.minecraft.world.entity.player.Inventory playerInventory, net.minecraft.world.entity.player.Player player)
    • getRenderBoundingBox

      public net.minecraft.world.phys.AABB getRenderBoundingBox()
      Description copied from class: BaseMachineBlockEntity
      Рендер-баундинг бокс по умолчанию. На Forge это @Override метода из BlockEntity, на Fabric — обычный public метод. Подклассы могут переопределить для мультиблоков с увеличенным размером.
      Specified by:
      getRenderBoundingBox in interface net.minecraftforge.common.extensions.IForgeBlockEntity
      Overrides:
      getRenderBoundingBox in class BaseMachineBlockEntity
    • getTank1

      public FluidTank getTank1()
    • getTank2

      public FluidTank getTank2()
    • getProgress

      public int getProgress()
    • getMaxProgress

      public int getMaxProgress()
    • getProgressScaled

      public int getProgressScaled(int scale)
    • isActive

      public boolean isActive()
      Fuer den Hot/Cold-Elektroden-Zustandswechsel im Renderer (siehe MachineArcFurnaceRenderer).