Annotate?

This commit is contained in:
DBotThePony 2021-09-10 10:23:32 +07:00
parent 27b721b22e
commit e74ce49694
Signed by: DBot
GPG Key ID: DCC23B5715498507
55 changed files with 253 additions and 48 deletions

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
@ -22,7 +23,10 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockAndroidStation extends BlockMattery implements EntityBlock {
private final VoxelShape SHAPE = BlockShapes.ANDROID_STATION.computeShape();
@ -41,6 +45,7 @@ public class BlockAndroidStation extends BlockMattery implements EntityBlock {
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_151964_, BlockGetter p_151965_, BlockPos p_151966_, CollisionContext p_151967_) {
return SHAPE;
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
@ -22,8 +23,11 @@ import ru.dbotthepony.mc.otm.block.entity.BlockEntityBatteryBank;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockBatteryBank extends BlockMatteryRotatable implements EntityBlock {
public static final BooleanProperty[] BATTERY_SLOTS_PROPS = new BooleanProperty[] {
BooleanProperty.create("battery_0"),
@ -85,6 +89,7 @@ public class BlockBatteryBank extends BlockMatteryRotatable implements EntityBlo
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_.getValue(FACING).ordinal());
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
@ -18,7 +19,10 @@ import ru.dbotthepony.mc.otm.block.entity.BlockEntityBlackHole;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockBlackHole extends Block implements EntityBlock {
public BlockBlackHole() {
super(Properties.of(
@ -29,6 +33,7 @@ public class BlockBlackHole extends Block implements EntityBlock {
public static final VoxelShape SHAPE = BlockShapes.BLACK_HOLE.computeShape();
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPE;
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.Container;
import net.minecraft.world.Containers;
@ -14,7 +15,10 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityCargoCrate;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockCargoCrate extends BlockMatteryRotatable implements EntityBlock {
public static final BooleanProperty IS_OPEN = BooleanProperty.create("open");
@ -37,6 +41,7 @@ public class BlockCargoCrate extends BlockMatteryRotatable implements EntityBloc
}
@Override
@SuppressWarnings("deprecation")
public void onRemove(BlockState old_block_state, Level level, BlockPos block_pos, BlockState new_block_state, boolean p_51542_) {
if (!old_block_state.is(new_block_state.getBlock())) {
BlockEntity blockentity = level.getBlockEntity(block_pos);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
@ -7,7 +8,10 @@ import net.minecraft.world.level.block.state.BlockState;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityDriveRack;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockDriveRack extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
@ -14,9 +15,12 @@ import ru.dbotthepony.mc.otm.Registry;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityDriveViewer;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import static ru.dbotthepony.mc.otm.block.entity.worker.WorkerState.SEMI_WORKER_STATE;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockDriveViewer extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.block.EntityBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
@ -7,7 +8,10 @@ import net.minecraft.world.level.block.state.BlockState;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityItemMonitor;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockItemMonitor extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
@ -14,7 +15,10 @@ import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterBottler;
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterBottler extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block;
import com.google.common.collect.ImmutableMap;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
@ -22,8 +23,11 @@ import ru.dbotthepony.mc.otm.capability.matter.IMatterGridCell;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterCable;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.ArrayList;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterCable extends Block implements EntityBlock {
@Nullable
@Override
@ -157,6 +161,7 @@ public class BlockMatterCable extends Block implements EntityBlock {
);
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
VoxelShape get = SHAPES.get(p_60555_);
return get != null ? get : CORE_SHAPE;

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
@ -16,8 +17,11 @@ import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterCapacitorBank;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterCapacitorBank extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override
@ -58,6 +62,7 @@ public class BlockMatterCapacitorBank extends BlockMatteryRotatable implements E
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_.getValue(FACING).ordinal());
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
@ -19,8 +20,11 @@ import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterDecomposer extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override
@ -56,6 +60,7 @@ public class BlockMatterDecomposer extends BlockMatteryRotatable implements Enti
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_.getValue(FACING).ordinal());
}

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block;
import com.google.common.collect.ImmutableMap;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
@ -17,7 +18,10 @@ import net.minecraft.world.phys.shapes.VoxelShape;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityMatterPanel;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterPanel extends BlockMattery implements EntityBlock {
@Nullable
@Override
@ -97,6 +101,7 @@ public class BlockMatterPanel extends BlockMattery implements EntityBlock {
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_);
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
@ -20,8 +21,11 @@ import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterReplicator extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override
@ -57,6 +61,7 @@ public class BlockMatterReplicator extends BlockMatteryRotatable implements Enti
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_.getValue(FACING).ordinal());
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
@ -20,8 +21,11 @@ import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockMatterScanner extends BlockMatteryRotatable implements EntityBlock {
@Nullable
@Override
@ -57,6 +61,7 @@ public class BlockMatterScanner extends BlockMatteryRotatable implements EntityB
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_.getValue(FACING).ordinal());
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
@ -18,7 +19,10 @@ import net.minecraft.world.phys.BlockHitResult;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityMattery;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public abstract class BlockMattery extends Block {
public BlockMattery(Properties p_49795_) {
super(p_49795_);
@ -38,6 +42,7 @@ public abstract class BlockMattery extends Block {
}
@Override
@SuppressWarnings("deprecation")
public InteractionResult use(BlockState p_60503_, Level level, BlockPos pos, Player ply, InteractionHand p_60507_, BlockHitResult p_60508_) {
if (this instanceof EntityBlock && !level.isClientSide && level.getBlockEntity(pos) instanceof MenuProvider tile) {
ply.openMenu(tile);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.block.Block;
@ -10,8 +11,11 @@ import org.apache.commons.lang3.ArrayUtils;
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Arrays;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public abstract class BlockMatteryRotatable extends BlockMattery {
public static final EnumProperty<Direction> FACING = EnumProperty.create(
"facing",

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.item.context.BlockPlaceContext;
@ -16,8 +17,11 @@ import ru.dbotthepony.mc.otm.block.entity.BlockEntityPatternStorage;
import ru.dbotthepony.mc.otm.shapes.BlockShapes;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockPatternStorage extends BlockMatteryRotatable implements EntityBlock {
public static final BooleanProperty[] PATTERN_STORAGE_DISKS_PROPS = new BooleanProperty[] {
BooleanProperty.create("disk_0"),
@ -69,6 +73,7 @@ public class BlockPatternStorage extends BlockMatteryRotatable implements Entity
}
@Override
@SuppressWarnings("deprecation")
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return SHAPES.get(p_60555_.getValue(FACING).ordinal());
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
@ -19,10 +20,13 @@ import ru.dbotthepony.mc.otm.capability.MatteryMachineEnergyStorage;
import ru.dbotthepony.mc.otm.menu.AndroidStationMenu;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.List;
import java.util.Optional;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityAndroidStation extends BlockEntityMatteryPowered implements MenuProvider {
@Nullable
@Override

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -29,9 +30,12 @@ import ru.dbotthepony.mc.otm.menu.BatteryBankMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.Optional;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityBatteryBank extends BlockEntityMattery {
// 6 на 2
public final MatteryContainer battery_container = new MatteryContainer(this::setChanged, 6 * 2) {

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.client.Minecraft;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
@ -35,10 +36,13 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability;
import ru.dbotthepony.mc.otm.matter.MatterRegistry;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Optional;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityBlackHole extends BlockEntity {
public BlockEntityBlackHole(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.BLACK_HOLE, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
@ -16,7 +17,10 @@ import ru.dbotthepony.mc.otm.container.MatteryContainer;
import ru.dbotthepony.mc.otm.menu.CargoCrateMenu;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityCargoCrate extends BlockEntityMattery {
private static final TranslatableComponent NAME = new TranslatableComponent("block.overdrive_that_matters.cargo_crate");
public int open_amount = 0;

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
@ -23,8 +24,11 @@ import ru.dbotthepony.mc.otm.container.MatteryContainer;
import ru.dbotthepony.mc.otm.menu.DriveViewerMenu;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityDriveViewer extends BlockEntityMatteryPowered {
public static final BigDecimal MTE_PER_OPERATION = new BigDecimal("3.125");

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
@ -20,8 +21,11 @@ import ru.dbotthepony.mc.otm.menu.ItemMonitorMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityItemMonitor extends BlockEntityMatteryPowered {
public BlockEntityItemMonitor(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.ITEM_MONITOR, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -29,8 +30,11 @@ import ru.dbotthepony.mc.otm.menu.MatterBottlerMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterBottler extends BlockEntityMatteryPowered implements IMatterGridCell {
public BlockEntityMatterBottler(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.MATTER_BOTTLER, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.Level;
@ -18,7 +19,10 @@ import ru.dbotthepony.mc.otm.capability.matter.IPatternStorage;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterCable extends BlockEntity implements IMatterGridCell {
public BlockEntityMatterCable(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.MATTER_CABLE, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -26,9 +27,12 @@ import ru.dbotthepony.mc.otm.menu.MatterCapacitorBankMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.Optional;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterCapacitorBank extends BlockEntityMattery implements IMatterGridCell {
public final IMatterHandler matter = new IMatterHandler() {
@Nonnull

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -32,8 +33,11 @@ import ru.dbotthepony.mc.otm.menu.MatterDecomposerMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterDecomposer extends BlockEntityMatteryWorker implements IMatterGridCell {
private static final TranslatableComponent MACHINE_NAME = new TranslatableComponent("block.overdrive_that_matters.matter_decomposer");
private boolean valid = true;

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -22,9 +23,12 @@ import ru.dbotthepony.mc.otm.menu.MatterPanelMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.*;
import java.util.stream.Collectors;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterPanel extends BlockEntityMattery implements IMatterGridCell, IMatterTaskProvider {
public BlockEntityMatterPanel(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.MATTER_PANEL, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -29,8 +30,11 @@ import ru.dbotthepony.mc.otm.menu.MatterReplicatorMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterReplicator extends BlockEntityMatteryWorker implements IMatterGridCell {
public BlockEntityMatterReplicator(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.MATTER_REPLICATOR, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -28,10 +29,13 @@ import ru.dbotthepony.mc.otm.menu.MatterScannerMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.UUID;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityMatterScanner extends BlockEntityMatteryWorker implements IMatterGridCell {
private static final TranslatableComponent NAME = new TranslatableComponent("block.overdrive_that_matters.matter_scanner");

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.StringTag;
@ -16,8 +17,11 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.LevelChunk;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.UUID;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public abstract class BlockEntityMattery extends BlockEntity implements MenuProvider {
protected Component display_name;

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -17,9 +18,12 @@ import ru.dbotthepony.mc.otm.container.MatteryContainer;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.Optional;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
abstract public class BlockEntityMatteryPowered extends BlockEntityMattery {
protected MatteryMachineEnergyStorage energy = null;
protected final LazyOptional<MatteryMachineEnergyStorage> energy_resolver = LazyOptional.of(() -> energy);;

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.block.entity;
import com.google.common.collect.ImmutableList;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
@ -27,9 +28,12 @@ import ru.dbotthepony.mc.otm.menu.PatternStorageMenu;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.ArrayList;
import java.util.Collection;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class BlockEntityPatternStorage extends BlockEntityMattery implements IMatterGridCell, IPatternStorage {
public BlockEntityPatternStorage(BlockPos p_155229_, BlockState p_155230_) {
super(Registry.BlockEntities.PATTERN_STORAGE, p_155229_, p_155230_);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity.worker;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.DoubleTag;
@ -13,17 +14,18 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
abstract public class BlockEntityMatteryWorker extends BlockEntityMatteryPowered {
public BlockEntityMatteryWorker(BlockEntityType<?> p_155228_, BlockPos p_155229_, BlockState p_155230_) {
super(p_155228_, p_155229_, p_155230_);
}
@Nonnull
protected abstract BigDecimal getBaseConsumption();
@Nonnull
protected BigDecimal consumptionPerWork() {
return getBaseConsumption();
}
@ -79,7 +81,6 @@ abstract public class BlockEntityMatteryWorker extends BlockEntityMatteryPowered
* @return whenever machine can finish it's job. return false if machine for whatever reason can't finish it's job,
* waiting on conditions to be met
*/
@Nonnull
abstract protected MachineJobStatus onJobFinish(MachineJob job);
/**

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.block.entity.worker;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.DoubleTag;
import net.minecraft.nbt.StringTag;
@ -7,8 +8,11 @@ import net.minecraft.nbt.Tag;
import net.minecraft.world.item.ItemStack;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public record MachineJob(ItemStack stack, double ticks_processing_time, BigDecimal power_consumption_multiplier,
CompoundTag data) {
public MachineJob(ItemStack stack, double ticks_processing_time, BigDecimal power_consumption_multiplier, CompoundTag data) {

View File

@ -1,5 +1,11 @@
package ru.dbotthepony.mc.otm.block.entity.worker;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public record MachineJobStatus(boolean valid, int throttle) {
public MachineJobStatus() {
this(true, 0);

View File

@ -1,7 +1,12 @@
package ru.dbotthepony.mc.otm.block.entity.worker;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public record WorkTickContext(MachineJob job, BigDecimal required_power, BigDecimal extracted_power,
BigDecimal work_speed) {

View File

@ -1,10 +1,14 @@
package ru.dbotthepony.mc.otm.block.entity.worker;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.util.StringRepresentable;
import net.minecraft.world.level.block.state.properties.EnumProperty;
import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public enum WorkerState implements StringRepresentable {
IDLE,
WORKING,

View File

@ -1,74 +1,64 @@
package ru.dbotthepony.mc.otm.capability;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraftforge.energy.IEnergyStorage;
import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
// IEnergyStorage for direct compat with Forge Energy
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IMatteryEnergyStorage extends IEnergyStorage {
// such as cables. This is something that would work only with energy storage
@Nonnull
BigDecimal extractEnergyOuter(BigDecimal howMuch, boolean simulate);
// for internal needs, e.g. for work
// CAN also be used by something that does evil
// e.g. sucking out energy anomaly should use this
@Nonnull
BigDecimal extractEnergyInner(BigDecimal howMuch, boolean simulate);
// energy is received from outside, e.g. cables
@Nonnull
BigDecimal receiveEnergyOuter(BigDecimal howMuch, boolean simulate);
// energy is received from inside, e.g. generator generates power
@Nonnull
BigDecimal receiveEnergyInner(BigDecimal howMuch, boolean simulate);
@Nonnull
default BigDecimal extractEnergyOuter(long howMuch, boolean simulate) {
return extractEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal extractEnergyOuter(int howMuch, boolean simulate) {
return extractEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal receiveEnergyOuter(long howMuch, boolean simulate) {
return receiveEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal receiveEnergyOuter(int howMuch, boolean simulate) {
return receiveEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal extractEnergyInner(long howMuch, boolean simulate) {
return receiveEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal extractEnergyInner(int howMuch, boolean simulate) {
return receiveEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal receiveEnergyInner(long howMuch, boolean simulate) {
return receiveEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
default BigDecimal receiveEnergyInner(int howMuch, boolean simulate) {
return receiveEnergyOuter(new BigDecimal(howMuch, MatteryCapability.ROUND_RULES), simulate);
}
@Nonnull
BigDecimal getBatteryLevel();
@Nonnull
BigDecimal getMaxBatteryLevel();
default BigDecimal getMissingPower() {

View File

@ -1,12 +1,16 @@
package ru.dbotthepony.mc.otm.capability;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraftforge.common.util.INBTSerializable;
import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class MatteryMachineEnergyStorage implements IMatteryEnergyStorage, INBTSerializable<CompoundTag> {
public enum MachineType {
WORKER,

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.capability.android;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
@ -34,9 +35,12 @@ import ru.dbotthepony.mc.otm.network.android.AndroidFeaturePacket;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.*;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class AndroidCapability implements ICapabilityProvider, IAndroidCapability, INBTSerializable<CompoundTag> {
protected final LivingEntity ent;
protected BigDecimal energy_stored = new BigDecimal(0);
@ -54,7 +58,7 @@ public class AndroidCapability implements ICapabilityProvider, IAndroidCapabilit
protected boolean network_first = false;
protected boolean addFeature(@Nonnull AndroidFeature feature) {
protected boolean addFeature(AndroidFeature feature) {
if (features.containsKey(feature.type))
return false;
@ -72,6 +76,7 @@ public class AndroidCapability implements ICapabilityProvider, IAndroidCapabilit
}
@Override
@SuppressWarnings("unchecked")
public <T extends AndroidFeature> T addFeature(@Nonnull AndroidFeatureType<T> feature) {
var get = features.get(feature);
@ -128,6 +133,7 @@ public class AndroidCapability implements ICapabilityProvider, IAndroidCapabilit
}
@Nullable
@SuppressWarnings("unchecked")
public <T extends AndroidFeature> T getFeature(AndroidFeatureType<T> feature) {
return (T) features.get(feature);
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.capability.android;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.Tag;
@ -18,10 +19,13 @@ import ru.dbotthepony.mc.otm.network.android.AndroidResearchPacket;
import ru.dbotthepony.mc.otm.network.android.AndroidStatusPacket;
import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Objects;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class AndroidCapabilityPlayer extends AndroidCapability {
public boolean is_android = false;
private boolean network_is_android = false;
@ -112,6 +116,7 @@ public class AndroidCapabilityPlayer extends AndroidCapability {
return tag;
}
@SuppressWarnings("unchecked")
public <T extends AndroidResearch> T getResearch(AndroidResearchType<T> type) {
for (var instance : research_list) {
if (instance.type == type) {

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.capability.android;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.item.ItemStack;
@ -11,21 +12,24 @@ import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
import java.util.Optional;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IAndroidCapability extends IMatteryEnergyStorage, INBTSerializable<CompoundTag> {
void tick();
void tickClient();
LivingEntity getEntity();
<T extends AndroidFeature> T addFeature(@Nonnull AndroidFeatureType<T> feature);
boolean removeFeature(@Nonnull AndroidFeatureType<?> feature);
<T extends AndroidFeature> T addFeature(AndroidFeatureType<T> feature);
boolean removeFeature(AndroidFeatureType<?> feature);
boolean hasFeature(@Nullable AndroidFeatureType<?> feature);
boolean hasFeatureLevel(@Nullable AndroidFeatureType<?> feature, int level);
@Nullable
<T extends AndroidFeature> T getFeature(AndroidFeatureType<T> feature);
@Nonnull
default <T extends AndroidFeature> Optional<T> getFeatureO(AndroidFeatureType<T> feature) {
var get = getFeature(feature);
return get != null ? Optional.of(get) : Optional.empty();
@ -36,9 +40,8 @@ public interface IAndroidCapability extends IMatteryEnergyStorage, INBTSerializa
}
default void onHurt(LivingHurtEvent event) {}
@Nonnull
ItemStack getBatteryItemStack();
void setBatteryItemStack(@Nonnull ItemStack stack);
void setBatteryItemStack(ItemStack stack);
void invalidateNetworkState(); // tell capability that player forgot everything, and everything needs to be re-networked

View File

@ -1,6 +1,7 @@
package ru.dbotthepony.mc.otm.capability.drive;
import net.minecraft.CrashReport;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.ReportedException;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtIo;
@ -14,6 +15,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
@ -38,15 +40,17 @@ import java.util.function.Supplier;
* 3. net.minecraft.world.level.saveddata.SaveData is for storing everything inside one dat file, which
* is performance tanking, because we have to write *entire* NBT on each save, not the data of Drive which got changed
*/
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class DrivePool {
private static final Logger LOGGER = LogManager.getLogger();
public static class Entry {
public final UUID id;
public final IMatteryDrive drive;
public final IMatteryDrive<?> drive;
public long last_access = System.currentTimeMillis();
Entry(UUID id, IMatteryDrive drive) {
Entry(UUID id, IMatteryDrive<?> drive) {
this.id = id;
this.drive = drive;
}
@ -63,7 +67,7 @@ public class DrivePool {
return tag;
}
public IMatteryDrive access() {
public IMatteryDrive<?> access() {
last_access = System.currentTimeMillis();
return drive;
}
@ -75,7 +79,7 @@ public class DrivePool {
private static ReportedException exception;
public static final String DATA_PATH = "data/otm_drives";
public static <T extends IMatteryDrive> T get(UUID id, Function<CompoundTag, T> factory_stored, Supplier<T> factory_empty) {
public static <T extends IMatteryDrive<?>> T get(UUID id, Function<CompoundTag, T> factory_stored, Supplier<T> factory_empty) {
var get = pool.get(id);
if (get != null) {
@ -103,14 +107,14 @@ public class DrivePool {
return factorize;
}
public static void put(UUID id, IMatteryDrive drive) {
public static void put(UUID id, IMatteryDrive<?> drive) {
pool.put(id, new Entry(id, drive));
}
private record BacklogLine(UUID file, CompoundTag tag, IMatteryDrive drive) {
private record BacklogLine(UUID file, CompoundTag tag, IMatteryDrive<?> drive) {
@Override
public boolean equals(Object obj) {
return obj instanceof BacklogLine line && line.file.equals(file);
return obj instanceof BacklogLine line && line.file.equals(file) || obj instanceof UUID uuid && uuid.equals(file);
}
}

View File

@ -1,12 +1,16 @@
package ru.dbotthepony.mc.otm.capability.drive;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import ru.dbotthepony.mc.otm.storage.IStorageTuple;
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.List;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IItemMatteryDrive extends IMatteryDrive<ItemStackWrapper> {
/**
* @param item

View File

@ -1,9 +1,13 @@
package ru.dbotthepony.mc.otm.capability.drive;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.item.ItemStack;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.UUID;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IItemViewListener {
void addViewItem(ItemStack stack, UUID id_upstream);
void changeViewItem(UUID id_upstream, int new_count);

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.SectionPos;
@ -9,7 +10,10 @@ import net.minecraft.world.level.chunk.LevelChunk;
import ru.dbotthepony.mc.otm.matter.MatterGrid;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IMatterGridCell extends IMatterGridListener {
@Nullable
MatterGrid getMatterGrid();

View File

@ -1,5 +1,11 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.ParametersAreNonnullByDefault;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IMatterGridListener {
default void onPatternAdded(PatternState state) { }
default void onPatternRemoved(PatternState state) { }

View File

@ -1,8 +1,13 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IMatterHandler {
enum MatterDirection {
RECEIVE, // consumer
@ -10,25 +15,17 @@ public interface IMatterHandler {
BIDIRECTIONAL // storage
}
@Nonnull
BigDecimal getStoredMatter();
@Nonnull
BigDecimal getMaxStoredMatter();
@Nonnull
BigDecimal receiveMatterOuter(BigDecimal howMuch, boolean simulate);
@Nonnull
BigDecimal receiveMatterInner(BigDecimal howMuch, boolean simulate);
@Nonnull
BigDecimal extractMatterOuter(BigDecimal howMuch, boolean simulate);
@Nonnull
BigDecimal extractMatterInner(BigDecimal howMuch, boolean simulate);
@Nonnull
MatterDirection getDirection();
@Nonnull
default BigDecimal getMissingMatter() {
return getMaxStoredMatter().subtract(getStoredMatter());
}

View File

@ -1,21 +1,24 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Collection;
import java.util.UUID;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IMatterTaskProvider {
/**
* @return immutable collection of tasks that can be allocated by a worker
*/
@Nonnull
Collection<MatterTask> getTasks();
/**
* @return immutable collection of all stored tasks, even fully allocated by workers
*/
@Nonnull
Collection<MatterTask> getAllTasks();
/**

View File

@ -1,30 +1,30 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.world.item.Item;
import ru.dbotthepony.mc.otm.capability.matter.PatternInsertStatus;
import ru.dbotthepony.mc.otm.capability.matter.PatternState;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Collection;
import java.util.UUID;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public interface IPatternStorage {
/**
* @return unmodifiable collection of stored patterns
*/
@Nonnull
Collection<PatternState> getStoredPatterns();
@Nonnull
default Collection<PatternState> findPatterns(Item item) {
return findPatterns((item2) -> item.equals(item2.item()));
}
@Nonnull
default Collection<PatternState> findPatterns(Predicate<PatternState> predicate) {
return getStoredPatterns().stream().filter(predicate).collect(Collectors.toList());
}
@ -59,7 +59,7 @@ public interface IPatternStorage {
return null;
}
default boolean hasPattern(@Nonnull PatternState state) {
default boolean hasPattern(PatternState state) {
return getPattern(state.id()) != null;
}

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.nbt.CompoundTag;
import net.minecraftforge.common.util.INBTSerializable;
import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler;
@ -7,8 +8,11 @@ import ru.dbotthepony.mc.otm.matter.MatterRegistry;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.math.BigDecimal;
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public class MatterHandlerCapability implements IMatterHandler, INBTSerializable<CompoundTag> {
protected final Runnable listener;
protected BigDecimal stored = BigDecimal.ZERO;

View File

@ -1,5 +1,6 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.Tag;
import net.minecraft.network.FriendlyByteBuf;
@ -12,11 +13,14 @@ import net.minecraftforge.registries.RegistryManager;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Objects;
import java.util.UUID;
public record MatterTask(@Nonnull UUID id, @Nullable UUID pattern, @Nonnull Item item, int in_progress, int finished, int required) {
public MatterTask(@Nonnull UUID id, @Nullable UUID pattern, @Nonnull Item item, int in_progress, int finished, int required) {
@MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault
public record MatterTask(UUID id, @Nullable UUID pattern, Item item, int in_progress, int finished, int required) {
public MatterTask(UUID id, @Nullable UUID pattern, Item item, int in_progress, int finished, int required) {
this.id = id;
this.pattern = pattern;
this.item = item;

View File

@ -1,7 +1,10 @@
package ru.dbotthepony.mc.otm.capability.matter;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
/**
* status: FAIL, UPDATED or INSERTED

View File

@ -10,7 +10,7 @@ import java.util.Optional;
* Interface implements all methods required for storage system functioning and interaction
* with your kind of items/objects/whatever.
*
* You can either implement this interface directly (hard dependency, discouraged, unless you do direct addon to this storage system)
* You can either implement this interface directly (hard dependency, discouraged, unless you do an addon to this storage system)
* or create a record class (preferred), which encapsulate your storage object.
*/
@MethodsReturnNonnullByDefault