package com.thebrokenrail.energonrelics.api.block.entity.helper; import com.thebrokenrail.energonrelics.api.block.entity.core.EnergyProviderBlockEntity; import com.thebrokenrail.energonrelics.api.energy.Action; import net.minecraft.block.entity.BlockEntityType; /** * Simple Implementation Of A Energy Generator */ public abstract class EnergyGeneratorBlockEntity extends EnergyProviderBlockEntity implements EnergyGenerator { public EnergyGeneratorBlockEntity(BlockEntityType type) { super(type); } private long energy = 0; @Override public boolean isEnergyProvider() { return true; } @Override public long getEnergy() { return energy; } @Override public void setEnergy(long value) { if (value < 0) { throw new UnsupportedOperationException(); } energy = value; } @Override protected void handlePropagatedAction(Action.PropagatedAction action) { super.handlePropagatedAction(action); handlePropagatedActionWithGenerator(action); } @Override public abstract long getDisplayEnergy(); }