filename:
common/src/main/java/rearth/oritech/block/entity/augmenter/AugmentResearchStationBlockEntity.java
branch:
1.21
back to repo
package rearth.oritech.block.entity.augmenter;
import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.state.property.Properties;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3i;
import net.minecraft.world.World;
import rearth.oritech.api.energy.EnergyApi;
import rearth.oritech.api.item.ItemApi;
import rearth.oritech.init.BlockEntitiesContent;
import rearth.oritech.util.MultiblockMachineController;
import java.util.ArrayList;
import java.util.List;
public class AugmentResearchStationBlockEntity extends BlockEntity implements MultiblockMachineController {
// multiblock
private final ArrayList<BlockPos> coreBlocksConnected = new ArrayList<>();
private float coreQuality = 1f;
public AugmentResearchStationBlockEntity(BlockPos pos, BlockState state) {
super(BlockEntitiesContent.AUGMENTER_RESEARCH_STATION_ENTITY, pos, state);
}
@Override
protected void writeNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryLookup) {
super.writeNbt(nbt, registryLookup);
addMultiblockToNbt(nbt);
}
@Override
protected void readNbt(NbtCompound nbt, RegistryWrapper.WrapperLookup registryLookup) {
super.readNbt(nbt, registryLookup);
loadMultiblockNbtData(nbt);
}
@Override
public List<Vec3i> getCorePositions() {
return List.of(
new Vec3i(0, 0, 1),
new Vec3i(0, 1, 1),
new Vec3i(0, 1, 0)
);
}
@Override
public Direction getFacingForMultiblock() {
var state = getCachedState();
return state.get(Properties.FACING).getOpposite();
}
@Override
public BlockPos getPosForMultiblock() {
return pos;
}
@Override
public World getWorldForMultiblock() {
return world;
}
@Override
public ArrayList<BlockPos> getConnectedCores() {
return coreBlocksConnected;
}
@Override
public void setCoreQuality(float quality) {
this.coreQuality = quality;
}
@Override
public float getCoreQuality() {
return coreQuality;
}
@Override
public ItemApi.InventoryStorage getInventoryForMultiblock() {
return null;
}
@Override
public EnergyApi.EnergyStorage getEnergyStorageForMultiblock(Direction direction) {
return null;
}
@Override
public void playSetupAnimation() {
}
}