Add working state to bottler
This commit is contained in:
parent
a85ee9fb98
commit
26a1388c3d
@ -2,13 +2,16 @@ package ru.dbotthepony.mc.otm.block;
|
|||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.EntityBlock;
|
import net.minecraft.world.level.block.EntityBlock;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityTicker;
|
import net.minecraft.world.level.block.entity.BlockEntityTicker;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
import ru.dbotthepony.mc.otm.Registry;
|
import ru.dbotthepony.mc.otm.Registry;
|
||||||
import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterBottler;
|
import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterBottler;
|
||||||
|
import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatteryPoweredWorker;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
@ -24,4 +27,10 @@ public class BlockMatterBottler extends BlockMatteryRotatable implements EntityB
|
|||||||
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level p_153212_, BlockState p_153213_, BlockEntityType<T> p_153214_) {
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level p_153212_, BlockState p_153213_, BlockEntityType<T> p_153214_) {
|
||||||
return p_153212_.isClientSide || p_153214_ != Registry.BlockEntities.MATTER_BOTTLER ? null : BlockEntityMatterBottler::tick;
|
return p_153212_.isClientSide || p_153214_ != Registry.BlockEntities.MATTER_BOTTLER ? null : BlockEntityMatterBottler::tick;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(BlockEntityMatteryPoweredWorker.WORKER_STATE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
|||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
@ -254,6 +255,10 @@ public class BlockEntityMatterBottler extends BlockEntityMatteryPowered implemen
|
|||||||
|
|
||||||
if (tile.work_flow) {
|
if (tile.work_flow) {
|
||||||
if (capability != null) {
|
if (capability != null) {
|
||||||
|
if (tile.getBlockState().getValue(BlockEntityMatteryPoweredWorker.WORKER_STATE) != BlockEntityMatteryPoweredWorker.WorkerState.WORKING) {
|
||||||
|
level.setBlock(tile.getBlockPos(), tile.getBlockState().setValue(BlockEntityMatteryPoweredWorker.WORKER_STATE, BlockEntityMatteryPoweredWorker.WorkerState.WORKING), Block.UPDATE_CLIENTS);
|
||||||
|
}
|
||||||
|
|
||||||
if (tile.matter.getStoredMatter().compareTo(MATTER_EXCHANGE_RATE) < 0) {
|
if (tile.matter.getStoredMatter().compareTo(MATTER_EXCHANGE_RATE) < 0) {
|
||||||
if (tile.grid != null) {
|
if (tile.grid != null) {
|
||||||
var extracted = tile.grid.extractMatter(
|
var extracted = tile.grid.extractMatter(
|
||||||
@ -292,9 +297,17 @@ public class BlockEntityMatterBottler extends BlockEntityMatteryPowered implemen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (tile.getBlockState().getValue(BlockEntityMatteryPoweredWorker.WORKER_STATE) != BlockEntityMatteryPoweredWorker.WorkerState.IDLE) {
|
||||||
|
level.setBlock(tile.getBlockPos(), tile.getBlockState().setValue(BlockEntityMatteryPoweredWorker.WORKER_STATE, BlockEntityMatteryPoweredWorker.WorkerState.IDLE), Block.UPDATE_CLIENTS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (capability != null) {
|
if (capability != null) {
|
||||||
|
if (tile.getBlockState().getValue(BlockEntityMatteryPoweredWorker.WORKER_STATE) != BlockEntityMatteryPoweredWorker.WorkerState.WORKING) {
|
||||||
|
level.setBlock(tile.getBlockPos(), tile.getBlockState().setValue(BlockEntityMatteryPoweredWorker.WORKER_STATE, BlockEntityMatteryPoweredWorker.WorkerState.WORKING), Block.UPDATE_CLIENTS);
|
||||||
|
}
|
||||||
|
|
||||||
var energy = tile.energy.extractEnergyInner(ENERGY_CONSUMPTION, true);
|
var energy = tile.energy.extractEnergyInner(ENERGY_CONSUMPTION, true);
|
||||||
|
|
||||||
if (energy.compareTo(BigDecimal.ZERO) > 0) {
|
if (energy.compareTo(BigDecimal.ZERO) > 0) {
|
||||||
@ -316,6 +329,10 @@ public class BlockEntityMatterBottler extends BlockEntityMatteryPowered implemen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (tile.getBlockState().getValue(BlockEntityMatteryPoweredWorker.WORKER_STATE) != BlockEntityMatteryPoweredWorker.WorkerState.IDLE) {
|
||||||
|
level.setBlock(tile.getBlockPos(), tile.getBlockState().setValue(BlockEntityMatteryPoweredWorker.WORKER_STATE, BlockEntityMatteryPoweredWorker.WorkerState.IDLE), Block.UPDATE_CLIENTS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tile.matter.getStoredMatter().compareTo(BigDecimal.ZERO) > 0 && tile.grid != null) {
|
if (tile.matter.getStoredMatter().compareTo(BigDecimal.ZERO) > 0 && tile.grid != null) {
|
||||||
|
Loading…
Reference in New Issue
Block a user