package com.thebrokenrail.energonrelics.block.forcefield.util; import com.thebrokenrail.energonrelics.block.entity.forcefield.FieldProjectorBlockEntity; import com.thebrokenrail.energonrelics.api.block.energy.FacingEnergyBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; import net.minecraft.state.property.Properties; import java.util.function.Function; public class FieldProjectorBlock extends FacingEnergyBlock { public static final BooleanProperty POWERED = Properties.POWERED; private final Function block; public FieldProjectorBlock(Function block) { super(FabricBlockSettings.copy(Blocks.IRON_BLOCK)); setDefaultState(getDefaultState().with(POWERED, false)); this.block = block; } @Override protected void appendProperties(StateManager.Builder builder) { super.appendProperties(builder); builder.add(POWERED); } @Override protected Function, BlockEntity> getFactory() { if (block == null) { throw new UnsupportedOperationException(); } return type -> new FieldProjectorBlockEntity(type, block); } }