mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-12-14 20:20:30 +00:00
Default Forge/Common API to non-null
This commit is contained in:
parent
76710eec9d
commit
955b9c7d28
@ -7,6 +7,7 @@ import cc.tweaked.gradle.MinecraftConfigurations
|
|||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("cc-tweaked.java-convention")
|
id("cc-tweaked.java-convention")
|
||||||
|
id("cc-tweaked.errorprone")
|
||||||
id("net.minecraftforge.gradle")
|
id("net.minecraftforge.gradle")
|
||||||
id("org.parchmentmc.librarian.forgegradle")
|
id("org.parchmentmc.librarian.forgegradle")
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import cc.tweaked.gradle.MinecraftConfigurations
|
|||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("cc-tweaked.java-convention")
|
id("cc-tweaked.java-convention")
|
||||||
|
id("cc-tweaked.errorprone")
|
||||||
id("org.spongepowered.gradle.vanilla")
|
id("org.spongepowered.gradle.vanilla")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ import dan200.computercraft.api.turtle.ITurtleUpgrade;
|
|||||||
import dan200.computercraft.api.turtle.TurtleUpgradeSerialiser;
|
import dan200.computercraft.api.turtle.TurtleUpgradeSerialiser;
|
||||||
import dan200.computercraft.impl.client.ComputerCraftAPIClientService;
|
import dan200.computercraft.impl.client.ComputerCraftAPIClientService;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
public final class ComputerCraftAPIClient {
|
public final class ComputerCraftAPIClient {
|
||||||
private ComputerCraftAPIClient() {
|
private ComputerCraftAPIClient() {
|
||||||
@ -26,11 +25,10 @@ public final class ComputerCraftAPIClient {
|
|||||||
* @param modeller The upgrade modeller.
|
* @param modeller The upgrade modeller.
|
||||||
* @param <T> The type of the turtle upgrade.
|
* @param <T> The type of the turtle upgrade.
|
||||||
*/
|
*/
|
||||||
public static <T extends ITurtleUpgrade> void registerTurtleUpgradeModeller(@Nonnull TurtleUpgradeSerialiser<T> serialiser, @Nonnull TurtleUpgradeModeller<T> modeller) {
|
public static <T extends ITurtleUpgrade> void registerTurtleUpgradeModeller(TurtleUpgradeSerialiser<T> serialiser, TurtleUpgradeModeller<T> modeller) {
|
||||||
getInstance().registerTurtleUpgradeModeller(serialiser, modeller);
|
getInstance().registerTurtleUpgradeModeller(serialiser, modeller);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
private static ComputerCraftAPIClientService getInstance() {
|
private static ComputerCraftAPIClientService getInstance() {
|
||||||
return ComputerCraftAPIClientService.get();
|
return ComputerCraftAPIClientService.get();
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ import net.minecraft.client.resources.model.ModelResourceLocation;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -23,37 +22,35 @@ public final class TransformedModel {
|
|||||||
private final BakedModel model;
|
private final BakedModel model;
|
||||||
private final Transformation matrix;
|
private final Transformation matrix;
|
||||||
|
|
||||||
public TransformedModel(@Nonnull BakedModel model, @Nonnull Transformation matrix) {
|
public TransformedModel(BakedModel model, Transformation matrix) {
|
||||||
this.model = Objects.requireNonNull(model);
|
this.model = Objects.requireNonNull(model);
|
||||||
this.matrix = Objects.requireNonNull(matrix);
|
this.matrix = Objects.requireNonNull(matrix);
|
||||||
}
|
}
|
||||||
|
|
||||||
public TransformedModel(@Nonnull BakedModel model) {
|
public TransformedModel(BakedModel model) {
|
||||||
this.model = Objects.requireNonNull(model);
|
this.model = Objects.requireNonNull(model);
|
||||||
matrix = Transformation.identity();
|
matrix = Transformation.identity();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TransformedModel of(@Nonnull ModelResourceLocation location) {
|
public static TransformedModel of(ModelResourceLocation location) {
|
||||||
var modelManager = Minecraft.getInstance().getModelManager();
|
var modelManager = Minecraft.getInstance().getModelManager();
|
||||||
return new TransformedModel(modelManager.getModel(location));
|
return new TransformedModel(modelManager.getModel(location));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TransformedModel of(@Nonnull ResourceLocation location) {
|
public static TransformedModel of(ResourceLocation location) {
|
||||||
var modelManager = Minecraft.getInstance().getModelManager();
|
var modelManager = Minecraft.getInstance().getModelManager();
|
||||||
return new TransformedModel(ClientPlatformHelper.get().getModel(modelManager, location));
|
return new TransformedModel(ClientPlatformHelper.get().getModel(modelManager, location));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TransformedModel of(@Nonnull ItemStack item, @Nonnull Transformation transform) {
|
public static TransformedModel of(ItemStack item, Transformation transform) {
|
||||||
var model = Minecraft.getInstance().getItemRenderer().getItemModelShaper().getItemModel(item);
|
var model = Minecraft.getInstance().getItemRenderer().getItemModelShaper().getItemModel(item);
|
||||||
return new TransformedModel(model, transform);
|
return new TransformedModel(model, transform);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public BakedModel getModel() {
|
public BakedModel getModel() {
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public Transformation getMatrix() {
|
public Transformation getMatrix() {
|
||||||
return matrix;
|
return matrix;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@ import dan200.computercraft.api.turtle.TurtleUpgradeSerialiser;
|
|||||||
import net.minecraft.client.resources.model.ModelResourceLocation;
|
import net.minecraft.client.resources.model.ModelResourceLocation;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -34,8 +33,7 @@ public interface TurtleUpgradeModeller<T extends ITurtleUpgrade> {
|
|||||||
* @param side Which side of the turtle (left or right) the upgrade resides on.
|
* @param side Which side of the turtle (left or right) the upgrade resides on.
|
||||||
* @return The model that you wish to be used to render your upgrade.
|
* @return The model that you wish to be used to render your upgrade.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
TransformedModel getModel(T upgrade, @Nullable ITurtleAccess turtle, TurtleSide side);
|
||||||
TransformedModel getModel(@Nonnull T upgrade, @Nullable ITurtleAccess turtle, @Nonnull TurtleSide side);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A basic {@link TurtleUpgradeModeller} which renders using the upgrade's {@linkplain ITurtleUpgrade#getCraftingItem()
|
* A basic {@link TurtleUpgradeModeller} which renders using the upgrade's {@linkplain ITurtleUpgrade#getCraftingItem()
|
||||||
|
@ -12,7 +12,6 @@ import dan200.computercraft.api.turtle.TurtleUpgradeSerialiser;
|
|||||||
import dan200.computercraft.impl.Services;
|
import dan200.computercraft.impl.Services;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,7 +26,7 @@ public interface ComputerCraftAPIClientService {
|
|||||||
return instance == null ? Services.raise(ComputerCraftAPIClientService.class, Instance.ERROR) : instance;
|
return instance == null ? Services.raise(ComputerCraftAPIClientService.class, Instance.ERROR) : instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
<T extends ITurtleUpgrade> void registerTurtleUpgradeModeller(@Nonnull TurtleUpgradeSerialiser<T> serialiser, @Nonnull TurtleUpgradeModeller<T> modeller);
|
<T extends ITurtleUpgrade> void registerTurtleUpgradeModeller(TurtleUpgradeSerialiser<T> serialiser, TurtleUpgradeModeller<T> modeller);
|
||||||
|
|
||||||
final class Instance {
|
final class Instance {
|
||||||
static final @Nullable ComputerCraftAPIClientService INSTANCE;
|
static final @Nullable ComputerCraftAPIClientService INSTANCE;
|
||||||
|
@ -31,7 +31,6 @@ import net.minecraft.world.level.Level;
|
|||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,7 +42,6 @@ import javax.annotation.Nullable;
|
|||||||
public final class ComputerCraftAPI {
|
public final class ComputerCraftAPI {
|
||||||
public static final String MOD_ID = "computercraft";
|
public static final String MOD_ID = "computercraft";
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public static String getInstalledVersion() {
|
public static String getInstalledVersion() {
|
||||||
return getInstance().getInstalledVersion();
|
return getInstance().getInstalledVersion();
|
||||||
}
|
}
|
||||||
@ -61,7 +59,7 @@ public final class ComputerCraftAPI {
|
|||||||
* available for writing.
|
* available for writing.
|
||||||
* @see #createSaveDirMount(Level, String, long)
|
* @see #createSaveDirMount(Level, String, long)
|
||||||
*/
|
*/
|
||||||
public static int createUniqueNumberedSaveDir(@Nonnull Level world, @Nonnull String parentSubPath) {
|
public static int createUniqueNumberedSaveDir(Level world, String parentSubPath) {
|
||||||
return getInstance().createUniqueNumberedSaveDir(world, parentSubPath);
|
return getInstance().createUniqueNumberedSaveDir(world, parentSubPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +82,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @see IWritableMount
|
* @see IWritableMount
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static IWritableMount createSaveDirMount(@Nonnull Level world, @Nonnull String subPath, long capacity) {
|
public static IWritableMount createSaveDirMount(Level world, String subPath, long capacity) {
|
||||||
return getInstance().createSaveDirMount(world, subPath, capacity);
|
return getInstance().createSaveDirMount(world, subPath, capacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,7 +105,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @see IMount
|
* @see IMount
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static IMount createResourceMount(@Nonnull String domain, @Nonnull String subPath) {
|
public static IMount createResourceMount(String domain, String subPath) {
|
||||||
return getInstance().createResourceMount(domain, subPath);
|
return getInstance().createResourceMount(domain, subPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,7 +118,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @deprecated Use {@code dan200.computercraft.api.ForgeComputerCraftAPI#registerPeripheralProvider(IPeripheralProvider)} instead.
|
* @deprecated Use {@code dan200.computercraft.api.ForgeComputerCraftAPI#registerPeripheralProvider(IPeripheralProvider)} instead.
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
@Deprecated(forRemoval = true)
|
||||||
public static void registerPeripheralProvider(@Nonnull IPeripheralProvider provider) {
|
public static void registerPeripheralProvider(IPeripheralProvider provider) {
|
||||||
getInstance().registerPeripheralProvider(provider);
|
getInstance().registerPeripheralProvider(provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +128,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @param source The method source to register.
|
* @param source The method source to register.
|
||||||
* @see GenericSource
|
* @see GenericSource
|
||||||
*/
|
*/
|
||||||
public static void registerGenericSource(@Nonnull GenericSource source) {
|
public static void registerGenericSource(GenericSource source) {
|
||||||
getInstance().registerGenericSource(source);
|
getInstance().registerGenericSource(source);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +140,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @deprecated Use {@code dan200.computercraft.api.ForgeComputerCraftAPI} instead.
|
* @deprecated Use {@code dan200.computercraft.api.ForgeComputerCraftAPI} instead.
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
@Deprecated(forRemoval = true)
|
||||||
public static void registerGenericCapability(@Nonnull Capability<?> capability) {
|
public static void registerGenericCapability(Capability<?> capability) {
|
||||||
getInstance().registerGenericCapability(capability);
|
getInstance().registerGenericCapability(capability);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +150,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @param provider The bundled redstone provider to register.
|
* @param provider The bundled redstone provider to register.
|
||||||
* @see IBundledRedstoneProvider
|
* @see IBundledRedstoneProvider
|
||||||
*/
|
*/
|
||||||
public static void registerBundledRedstoneProvider(@Nonnull IBundledRedstoneProvider provider) {
|
public static void registerBundledRedstoneProvider(IBundledRedstoneProvider provider) {
|
||||||
getInstance().registerBundledRedstoneProvider(provider);
|
getInstance().registerBundledRedstoneProvider(provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,7 +164,7 @@ public final class ComputerCraftAPI {
|
|||||||
* If there is no block capable of emitting bundled redstone at the location, -1 will be returned.
|
* If there is no block capable of emitting bundled redstone at the location, -1 will be returned.
|
||||||
* @see IBundledRedstoneProvider
|
* @see IBundledRedstoneProvider
|
||||||
*/
|
*/
|
||||||
public static int getBundledRedstoneOutput(@Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side) {
|
public static int getBundledRedstoneOutput(Level world, BlockPos pos, Direction side) {
|
||||||
return getInstance().getBundledRedstoneOutput(world, pos, side);
|
return getInstance().getBundledRedstoneOutput(world, pos, side);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +174,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @param provider The media provider to register.
|
* @param provider The media provider to register.
|
||||||
* @see IMediaProvider
|
* @see IMediaProvider
|
||||||
*/
|
*/
|
||||||
public static void registerMediaProvider(@Nonnull IMediaProvider provider) {
|
public static void registerMediaProvider(IMediaProvider provider) {
|
||||||
getInstance().registerMediaProvider(provider);
|
getInstance().registerMediaProvider(provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,7 +187,7 @@ public final class ComputerCraftAPI {
|
|||||||
return getInstance().getWirelessNetwork();
|
return getInstance().getWirelessNetwork();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerAPIFactory(@Nonnull ILuaAPIFactory factory) {
|
public static void registerAPIFactory(ILuaAPIFactory factory) {
|
||||||
getInstance().registerAPIFactory(factory);
|
getInstance().registerAPIFactory(factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,7 +202,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @deprecated Use {@link DetailRegistry#addProvider(IDetailProvider)} to register your provider.
|
* @deprecated Use {@link DetailRegistry#addProvider(IDetailProvider)} to register your provider.
|
||||||
*/
|
*/
|
||||||
@Deprecated(forRemoval = true)
|
@Deprecated(forRemoval = true)
|
||||||
public static <T> void registerDetailProvider(@Nonnull Class<T> type, @Nonnull IDetailProvider<T> provider) {
|
public static <T> void registerDetailProvider(Class<T> type, IDetailProvider<T> provider) {
|
||||||
getInstance().registerDetailProvider(type, provider);
|
getInstance().registerDetailProvider(type, provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,8 +213,7 @@ public final class ComputerCraftAPI {
|
|||||||
* @return The element's node
|
* @return The element's node
|
||||||
* @see IWiredElement#getNode()
|
* @see IWiredElement#getNode()
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public static IWiredNode createWiredNodeForElement(IWiredElement element) {
|
||||||
public static IWiredNode createWiredNodeForElement(@Nonnull IWiredElement element) {
|
|
||||||
return getInstance().createWiredNodeForElement(element);
|
return getInstance().createWiredNodeForElement(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,17 +227,15 @@ public final class ComputerCraftAPI {
|
|||||||
* @see IWiredElement#getNode()
|
* @see IWiredElement#getNode()
|
||||||
* @deprecated Use {@code dan200.computercraft.api.ForgeComputerCraftAPI#getWiredElementAt(BlockGetter, BlockPos, Direction)}
|
* @deprecated Use {@code dan200.computercraft.api.ForgeComputerCraftAPI#getWiredElementAt(BlockGetter, BlockPos, Direction)}
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
@Deprecated(forRemoval = true)
|
@Deprecated(forRemoval = true)
|
||||||
public static LazyOptional<IWiredElement> getWiredElementAt(@Nonnull BlockGetter world, @Nonnull BlockPos pos, @Nonnull Direction side) {
|
public static LazyOptional<IWiredElement> getWiredElementAt(BlockGetter world, BlockPos pos, Direction side) {
|
||||||
return getInstance().getWiredElementAt(world, pos, side);
|
return getInstance().getWiredElementAt(world, pos, side);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerRefuelHandler(@Nonnull TurtleRefuelHandler handler) {
|
public static void registerRefuelHandler(TurtleRefuelHandler handler) {
|
||||||
getInstance().registerRefuelHandler(handler);
|
getInstance().registerRefuelHandler(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
private static ComputerCraftAPIService getInstance() {
|
private static ComputerCraftAPIService getInstance() {
|
||||||
return ComputerCraftAPIService.get();
|
return ComputerCraftAPIService.get();
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ package dan200.computercraft.api.detail;
|
|||||||
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 javax.annotation.Nonnull;
|
import javax.annotation.Nullable;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -20,7 +20,7 @@ import java.util.Objects;
|
|||||||
*/
|
*/
|
||||||
public abstract class BasicItemDetailProvider<T> implements IDetailProvider<ItemStack> {
|
public abstract class BasicItemDetailProvider<T> implements IDetailProvider<ItemStack> {
|
||||||
private final Class<T> itemType;
|
private final Class<T> itemType;
|
||||||
private final String namespace;
|
private final @Nullable String namespace;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new item detail provider. Meta will be inserted into a new sub-map named as per {@code namespace}.
|
* Create a new item detail provider. Meta will be inserted into a new sub-map named as per {@code namespace}.
|
||||||
@ -28,7 +28,7 @@ public abstract class BasicItemDetailProvider<T> implements IDetailProvider<Item
|
|||||||
* @param itemType The type the stack's item must have.
|
* @param itemType The type the stack's item must have.
|
||||||
* @param namespace The namespace to use for this provider.
|
* @param namespace The namespace to use for this provider.
|
||||||
*/
|
*/
|
||||||
public BasicItemDetailProvider(String namespace, @Nonnull Class<T> itemType) {
|
public BasicItemDetailProvider(@Nullable String namespace, Class<T> itemType) {
|
||||||
Objects.requireNonNull(itemType);
|
Objects.requireNonNull(itemType);
|
||||||
this.itemType = itemType;
|
this.itemType = itemType;
|
||||||
this.namespace = namespace;
|
this.namespace = namespace;
|
||||||
@ -39,7 +39,7 @@ public abstract class BasicItemDetailProvider<T> implements IDetailProvider<Item
|
|||||||
*
|
*
|
||||||
* @param itemType The type the stack's item must have.
|
* @param itemType The type the stack's item must have.
|
||||||
*/
|
*/
|
||||||
public BasicItemDetailProvider(@Nonnull Class<T> itemType) {
|
public BasicItemDetailProvider(Class<T> itemType) {
|
||||||
this(null, itemType);
|
this(null, itemType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,11 +54,12 @@ public abstract class BasicItemDetailProvider<T> implements IDetailProvider<Item
|
|||||||
* @param stack The item stack to provide details for.
|
* @param stack The item stack to provide details for.
|
||||||
* @param item The item to provide details for.
|
* @param item The item to provide details for.
|
||||||
*/
|
*/
|
||||||
public abstract void provideDetails(@Nonnull Map<? super String, Object> data, @Nonnull ItemStack stack,
|
public abstract void provideDetails(
|
||||||
@Nonnull T item);
|
Map<? super String, Object> data, ItemStack stack, T item
|
||||||
|
);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void provideDetails(@Nonnull Map<? super String, Object> data, @Nonnull ItemStack stack) {
|
public void provideDetails(Map<? super String, Object> data, ItemStack stack) {
|
||||||
var item = stack.getItem();
|
var item = stack.getItem();
|
||||||
if (!itemType.isInstance(item)) return;
|
if (!itemType.isInstance(item)) return;
|
||||||
|
|
||||||
|
@ -10,7 +10,6 @@ import net.minecraft.world.level.Level;
|
|||||||
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 javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,9 +21,9 @@ import javax.annotation.Nullable;
|
|||||||
* @param blockEntity The block entity at this position, if it exists.
|
* @param blockEntity The block entity at this position, if it exists.
|
||||||
*/
|
*/
|
||||||
public record BlockReference(
|
public record BlockReference(
|
||||||
@Nonnull Level level,
|
Level level,
|
||||||
@Nonnull BlockPos pos,
|
BlockPos pos,
|
||||||
@Nonnull BlockState state,
|
BlockState state,
|
||||||
@Nullable BlockEntity blockEntity
|
@Nullable BlockEntity blockEntity
|
||||||
) {
|
) {
|
||||||
public BlockReference(Level level, BlockPos pos) {
|
public BlockReference(Level level, BlockPos pos) {
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.detail;
|
package dan200.computercraft.api.detail;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,5 +29,5 @@ public interface IDetailProvider<T> {
|
|||||||
* @param data The full details to be returned. New properties should be added to this map.
|
* @param data The full details to be returned. New properties should be added to this map.
|
||||||
* @param object The object to provide details for.
|
* @param object The object to provide details for.
|
||||||
*/
|
*/
|
||||||
void provideDetails(@Nonnull Map<? super String, Object> data, @Nonnull T object);
|
void provideDetails(Map<? super String, Object> data, T object);
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ 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 javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,7 +27,7 @@ public interface IMedia {
|
|||||||
* @return The label. ie: "Dan's Programs".
|
* @return The label. ie: "Dan's Programs".
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
String getLabel(@Nonnull ItemStack stack);
|
String getLabel(ItemStack stack);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a string representing the label of this item. Will be called vi {@code disk.setLabel()} in lua.
|
* Set a string representing the label of this item. Will be called vi {@code disk.setLabel()} in lua.
|
||||||
@ -37,7 +36,7 @@ public interface IMedia {
|
|||||||
* @param label The string to set the label to.
|
* @param label The string to set the label to.
|
||||||
* @return true if the label was updated, false if the label may not be modified.
|
* @return true if the label was updated, false if the label may not be modified.
|
||||||
*/
|
*/
|
||||||
default boolean setLabel(@Nonnull ItemStack stack, @Nullable String label) {
|
default boolean setLabel(ItemStack stack, @Nullable String label) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +48,7 @@ public interface IMedia {
|
|||||||
* @return The name, or null if this item does not represent an item with audio.
|
* @return The name, or null if this item does not represent an item with audio.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
default String getAudioTitle(@Nonnull ItemStack stack) {
|
default String getAudioTitle(ItemStack stack) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +59,7 @@ public interface IMedia {
|
|||||||
* @return The name, or null if this item does not represent an item with audio.
|
* @return The name, or null if this item does not represent an item with audio.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
default SoundEvent getAudio(@Nonnull ItemStack stack) {
|
default SoundEvent getAudio(ItemStack stack) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +77,7 @@ public interface IMedia {
|
|||||||
* @see dan200.computercraft.api.ComputerCraftAPI#createResourceMount(String, String)
|
* @see dan200.computercraft.api.ComputerCraftAPI#createResourceMount(String, String)
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
default IMount createDataMount(@Nonnull ItemStack stack, @Nonnull Level world) {
|
default IMount createDataMount(ItemStack stack, Level world) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ package dan200.computercraft.api.media;
|
|||||||
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,5 +24,5 @@ public interface IMediaProvider {
|
|||||||
* @see dan200.computercraft.api.ComputerCraftAPI#registerMediaProvider(IMediaProvider)
|
* @see dan200.computercraft.api.ComputerCraftAPI#registerMediaProvider(IMediaProvider)
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
IMedia getMedia(@Nonnull ItemStack stack);
|
IMedia getMedia(ItemStack stack);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.network;
|
package dan200.computercraft.api.network;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A packet network represents a collection of devices which can send and receive packets.
|
* A packet network represents a collection of devices which can send and receive packets.
|
||||||
@ -19,14 +18,14 @@ public interface IPacketNetwork {
|
|||||||
*
|
*
|
||||||
* @param receiver The receiver to register to the network.
|
* @param receiver The receiver to register to the network.
|
||||||
*/
|
*/
|
||||||
void addReceiver(@Nonnull IPacketReceiver receiver);
|
void addReceiver(IPacketReceiver receiver);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a receiver from the network.
|
* Remove a receiver from the network.
|
||||||
*
|
*
|
||||||
* @param receiver The device to remove from the network.
|
* @param receiver The device to remove from the network.
|
||||||
*/
|
*/
|
||||||
void removeReceiver(@Nonnull IPacketReceiver receiver);
|
void removeReceiver(IPacketReceiver receiver);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine whether this network is wireless.
|
* Determine whether this network is wireless.
|
||||||
@ -44,7 +43,7 @@ public interface IPacketNetwork {
|
|||||||
* @see #transmitInterdimensional(Packet)
|
* @see #transmitInterdimensional(Packet)
|
||||||
* @see IPacketReceiver#receiveSameDimension(Packet, double)
|
* @see IPacketReceiver#receiveSameDimension(Packet, double)
|
||||||
*/
|
*/
|
||||||
void transmitSameDimension(@Nonnull Packet packet, double range);
|
void transmitSameDimension(Packet packet, double range);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Submit a packet for transmitting across the network. This will route the packet through the network, sending it
|
* Submit a packet for transmitting across the network. This will route the packet through the network, sending it
|
||||||
@ -54,5 +53,5 @@ public interface IPacketNetwork {
|
|||||||
* @see #transmitSameDimension(Packet, double)
|
* @see #transmitSameDimension(Packet, double)
|
||||||
* @see IPacketReceiver#receiveDifferentDimension(Packet)
|
* @see IPacketReceiver#receiveDifferentDimension(Packet)
|
||||||
*/
|
*/
|
||||||
void transmitInterdimensional(@Nonnull Packet packet);
|
void transmitInterdimensional(Packet packet);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ package dan200.computercraft.api.network;
|
|||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object on an {@link IPacketNetwork}, capable of receiving packets.
|
* An object on an {@link IPacketNetwork}, capable of receiving packets.
|
||||||
@ -19,7 +18,6 @@ public interface IPacketReceiver {
|
|||||||
*
|
*
|
||||||
* @return The receivers's world.
|
* @return The receivers's world.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Level getLevel();
|
Level getLevel();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,7 +25,6 @@ public interface IPacketReceiver {
|
|||||||
*
|
*
|
||||||
* @return The receiver's position.
|
* @return The receiver's position.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Vec3 getPosition();
|
Vec3 getPosition();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -67,7 +64,7 @@ public interface IPacketReceiver {
|
|||||||
* @see IPacketNetwork#transmitSameDimension(Packet, double)
|
* @see IPacketNetwork#transmitSameDimension(Packet, double)
|
||||||
* @see IPacketNetwork#transmitInterdimensional(Packet)
|
* @see IPacketNetwork#transmitInterdimensional(Packet)
|
||||||
*/
|
*/
|
||||||
void receiveSameDimension(@Nonnull Packet packet, double distance);
|
void receiveSameDimension(Packet packet, double distance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Receive a network packet from a different dimension.
|
* Receive a network packet from a different dimension.
|
||||||
@ -79,5 +76,5 @@ public interface IPacketReceiver {
|
|||||||
* @see IPacketNetwork#transmitSameDimension(Packet, double)
|
* @see IPacketNetwork#transmitSameDimension(Packet, double)
|
||||||
* @see #isInterdimensional()
|
* @see #isInterdimensional()
|
||||||
*/
|
*/
|
||||||
void receiveDifferentDimension(@Nonnull Packet packet);
|
void receiveDifferentDimension(Packet packet);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ package dan200.computercraft.api.network;
|
|||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object on a {@link IPacketNetwork}, capable of sending packets.
|
* An object on a {@link IPacketNetwork}, capable of sending packets.
|
||||||
@ -19,7 +18,6 @@ public interface IPacketSender {
|
|||||||
*
|
*
|
||||||
* @return The sender's world.
|
* @return The sender's world.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Level getLevel();
|
Level getLevel();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -27,7 +25,6 @@ public interface IPacketSender {
|
|||||||
*
|
*
|
||||||
* @return The sender's position.
|
* @return The sender's position.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Vec3 getPosition();
|
Vec3 getPosition();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -36,6 +33,5 @@ public interface IPacketSender {
|
|||||||
*
|
*
|
||||||
* @return This device's id.
|
* @return This device's id.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
String getSenderID();
|
String getSenderID();
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ package dan200.computercraft.api.network.wired;
|
|||||||
|
|
||||||
import dan200.computercraft.api.ComputerCraftAPI;
|
import dan200.computercraft.api.ComputerCraftAPI;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object which may be part of a wired network.
|
* An object which may be part of a wired network.
|
||||||
@ -27,6 +26,6 @@ public interface IWiredElement extends IWiredSender {
|
|||||||
* @param change The change which occurred.
|
* @param change The change which occurred.
|
||||||
* @see IWiredNetworkChange
|
* @see IWiredNetworkChange
|
||||||
*/
|
*/
|
||||||
default void networkChanged(@Nonnull IWiredNetworkChange change) {
|
default void networkChanged(IWiredNetworkChange change) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ package dan200.computercraft.api.network.wired;
|
|||||||
|
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,7 +37,7 @@ public interface IWiredNetwork {
|
|||||||
* @see IWiredNode#connectTo(IWiredNode)
|
* @see IWiredNode#connectTo(IWiredNode)
|
||||||
* @see IWiredNetwork#connect(IWiredNode, IWiredNode)
|
* @see IWiredNetwork#connect(IWiredNode, IWiredNode)
|
||||||
*/
|
*/
|
||||||
boolean connect(@Nonnull IWiredNode left, @Nonnull IWiredNode right);
|
boolean connect(IWiredNode left, IWiredNode right);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy a connection between this node and another.
|
* Destroy a connection between this node and another.
|
||||||
@ -53,7 +52,7 @@ public interface IWiredNetwork {
|
|||||||
* @see IWiredNode#disconnectFrom(IWiredNode)
|
* @see IWiredNode#disconnectFrom(IWiredNode)
|
||||||
* @see IWiredNetwork#connect(IWiredNode, IWiredNode)
|
* @see IWiredNetwork#connect(IWiredNode, IWiredNode)
|
||||||
*/
|
*/
|
||||||
boolean disconnect(@Nonnull IWiredNode left, @Nonnull IWiredNode right);
|
boolean disconnect(IWiredNode left, IWiredNode right);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sever all connections this node has, removing it from this network.
|
* Sever all connections this node has, removing it from this network.
|
||||||
@ -67,7 +66,7 @@ public interface IWiredNetwork {
|
|||||||
* @throws IllegalArgumentException If the node is not in the network.
|
* @throws IllegalArgumentException If the node is not in the network.
|
||||||
* @see IWiredNode#remove()
|
* @see IWiredNode#remove()
|
||||||
*/
|
*/
|
||||||
boolean remove(@Nonnull IWiredNode node);
|
boolean remove(IWiredNode node);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the peripherals a node provides.
|
* Update the peripherals a node provides.
|
||||||
@ -80,5 +79,5 @@ public interface IWiredNetwork {
|
|||||||
* @throws IllegalArgumentException If the node is not in the network.
|
* @throws IllegalArgumentException If the node is not in the network.
|
||||||
* @see IWiredNode#updatePeripherals(Map)
|
* @see IWiredNode#updatePeripherals(Map)
|
||||||
*/
|
*/
|
||||||
void updatePeripherals(@Nonnull IWiredNode node, @Nonnull Map<String, IPeripheral> peripherals);
|
void updatePeripherals(IWiredNode node, Map<String, IPeripheral> peripherals);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ package dan200.computercraft.api.network.wired;
|
|||||||
|
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,7 +21,6 @@ public interface IWiredNetworkChange {
|
|||||||
*
|
*
|
||||||
* @return The set of removed peripherals.
|
* @return The set of removed peripherals.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Map<String, IPeripheral> peripheralsRemoved();
|
Map<String, IPeripheral> peripheralsRemoved();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,6 +29,5 @@ public interface IWiredNetworkChange {
|
|||||||
*
|
*
|
||||||
* @return The set of added peripherals.
|
* @return The set of added peripherals.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Map<String, IPeripheral> peripheralsAdded();
|
Map<String, IPeripheral> peripheralsAdded();
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ package dan200.computercraft.api.network.wired;
|
|||||||
import dan200.computercraft.api.network.IPacketNetwork;
|
import dan200.computercraft.api.network.IPacketNetwork;
|
||||||
import dan200.computercraft.api.peripheral.IPeripheral;
|
import dan200.computercraft.api.peripheral.IPeripheral;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,7 +29,6 @@ public interface IWiredNode extends IPacketNetwork {
|
|||||||
*
|
*
|
||||||
* @return This node's element.
|
* @return This node's element.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
IWiredElement getElement();
|
IWiredElement getElement();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -41,7 +39,6 @@ public interface IWiredNode extends IPacketNetwork {
|
|||||||
*
|
*
|
||||||
* @return This node's network.
|
* @return This node's network.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
IWiredNetwork getNetwork();
|
IWiredNetwork getNetwork();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,7 +51,7 @@ public interface IWiredNode extends IPacketNetwork {
|
|||||||
* @see IWiredNetwork#connect(IWiredNode, IWiredNode)
|
* @see IWiredNetwork#connect(IWiredNode, IWiredNode)
|
||||||
* @see IWiredNode#disconnectFrom(IWiredNode)
|
* @see IWiredNode#disconnectFrom(IWiredNode)
|
||||||
*/
|
*/
|
||||||
default boolean connectTo(@Nonnull IWiredNode node) {
|
default boolean connectTo(IWiredNode node) {
|
||||||
return getNetwork().connect(this, node);
|
return getNetwork().connect(this, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +66,7 @@ public interface IWiredNode extends IPacketNetwork {
|
|||||||
* @see IWiredNetwork#disconnect(IWiredNode, IWiredNode)
|
* @see IWiredNetwork#disconnect(IWiredNode, IWiredNode)
|
||||||
* @see IWiredNode#connectTo(IWiredNode)
|
* @see IWiredNode#connectTo(IWiredNode)
|
||||||
*/
|
*/
|
||||||
default boolean disconnectFrom(@Nonnull IWiredNode node) {
|
default boolean disconnectFrom(IWiredNode node) {
|
||||||
return getNetwork().disconnect(this, node);
|
return getNetwork().disconnect(this, node);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,7 +94,7 @@ public interface IWiredNode extends IPacketNetwork {
|
|||||||
* @param peripherals The new peripherals for this node.
|
* @param peripherals The new peripherals for this node.
|
||||||
* @see IWiredNetwork#updatePeripherals(IWiredNode, Map)
|
* @see IWiredNetwork#updatePeripherals(IWiredNode, Map)
|
||||||
*/
|
*/
|
||||||
default void updatePeripherals(@Nonnull Map<String, IPeripheral> peripherals) {
|
default void updatePeripherals(Map<String, IPeripheral> peripherals) {
|
||||||
getNetwork().updatePeripherals(this, peripherals);
|
getNetwork().updatePeripherals(this, peripherals);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ package dan200.computercraft.api.network.wired;
|
|||||||
|
|
||||||
import dan200.computercraft.api.network.IPacketSender;
|
import dan200.computercraft.api.network.IPacketSender;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object on a {@link IWiredNetwork} capable of sending packets.
|
* An object on a {@link IWiredNetwork} capable of sending packets.
|
||||||
@ -24,6 +23,5 @@ public interface IWiredSender extends IPacketSender {
|
|||||||
*
|
*
|
||||||
* @return The node for this element.
|
* @return The node for this element.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
IWiredNode getNode();
|
IWiredNode getNode();
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ import net.minecraft.world.level.Level;
|
|||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This interface is used to create peripheral implementations for blocks.
|
* This interface is used to create peripheral implementations for blocks.
|
||||||
@ -34,6 +33,5 @@ public interface IPeripheralProvider {
|
|||||||
* @param side The side to get the peripheral from.
|
* @param side The side to get the peripheral from.
|
||||||
* @return A peripheral, or {@link LazyOptional#empty()} if there is not a peripheral here you'd like to handle.
|
* @return A peripheral, or {@link LazyOptional#empty()} if there is not a peripheral here you'd like to handle.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
LazyOptional<IPeripheral> getPeripheral(Level world, BlockPos pos, Direction side);
|
||||||
LazyOptional<IPeripheral> getPeripheral(@Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side);
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@ import dan200.computercraft.api.upgrades.IUpgradeBase;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A base class for {@link IPocketUpgrade}s.
|
* A base class for {@link IPocketUpgrade}s.
|
||||||
@ -31,19 +30,16 @@ public abstract class AbstractPocketUpgrade implements IPocketUpgrade {
|
|||||||
this(id, IUpgradeBase.getDefaultAdjective(id), stack);
|
this(id, IUpgradeBase.getDefaultAdjective(id), stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final ResourceLocation getUpgradeID() {
|
public final ResourceLocation getUpgradeID() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final String getUnlocalisedAdjective() {
|
public final String getUnlocalisedAdjective() {
|
||||||
return adjective;
|
return adjective;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final ItemStack getCraftingItem() {
|
public final ItemStack getCraftingItem() {
|
||||||
return stack;
|
return stack;
|
||||||
|
@ -10,7 +10,6 @@ import net.minecraft.nbt.CompoundTag;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -72,7 +71,6 @@ public interface IPocketAccess {
|
|||||||
* @return The upgrade's NBT.
|
* @return The upgrade's NBT.
|
||||||
* @see #updateUpgradeNBTData()
|
* @see #updateUpgradeNBTData()
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
CompoundTag getUpgradeNBTData();
|
CompoundTag getUpgradeNBTData();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -92,6 +90,5 @@ public interface IPocketAccess {
|
|||||||
*
|
*
|
||||||
* @return A collection of all upgrade names.
|
* @return A collection of all upgrade names.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Map<ResourceLocation, IPeripheral> getUpgrades();
|
Map<ResourceLocation, IPeripheral> getUpgrades();
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@ import dan200.computercraft.api.peripheral.IPeripheral;
|
|||||||
import dan200.computercraft.api.upgrades.IUpgradeBase;
|
import dan200.computercraft.api.upgrades.IUpgradeBase;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,7 +36,7 @@ public interface IPocketUpgrade extends IUpgradeBase {
|
|||||||
* @see #update(IPocketAccess, IPeripheral)
|
* @see #update(IPocketAccess, IPeripheral)
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
IPeripheral createPeripheral(@Nonnull IPocketAccess access);
|
IPeripheral createPeripheral(IPocketAccess access);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the pocket computer item stack updates.
|
* Called when the pocket computer item stack updates.
|
||||||
@ -46,7 +45,7 @@ public interface IPocketUpgrade extends IUpgradeBase {
|
|||||||
* @param peripheral The peripheral for this upgrade.
|
* @param peripheral The peripheral for this upgrade.
|
||||||
* @see #createPeripheral(IPocketAccess)
|
* @see #createPeripheral(IPocketAccess)
|
||||||
*/
|
*/
|
||||||
default void update(@Nonnull IPocketAccess access, @Nullable IPeripheral peripheral) {
|
default void update(IPocketAccess access, @Nullable IPeripheral peripheral) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,7 +59,7 @@ public interface IPocketUpgrade extends IUpgradeBase {
|
|||||||
* access the GUI.
|
* access the GUI.
|
||||||
* @see #createPeripheral(IPocketAccess)
|
* @see #createPeripheral(IPocketAccess)
|
||||||
*/
|
*/
|
||||||
default boolean onRightClick(@Nonnull Level world, @Nonnull IPocketAccess access, @Nullable IPeripheral peripheral) {
|
default boolean onRightClick(Level world, IPocketAccess access, @Nullable IPeripheral peripheral) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ package dan200.computercraft.api.pocket;
|
|||||||
import dan200.computercraft.api.upgrades.UpgradeDataProvider;
|
import dan200.computercraft.api.upgrades.UpgradeDataProvider;
|
||||||
import net.minecraft.data.DataGenerator;
|
import net.minecraft.data.DataGenerator;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,7 +19,7 @@ import java.util.function.Consumer;
|
|||||||
* @see PocketUpgradeSerialiser
|
* @see PocketUpgradeSerialiser
|
||||||
*/
|
*/
|
||||||
public abstract class PocketUpgradeDataProvider extends UpgradeDataProvider<IPocketUpgrade, PocketUpgradeSerialiser<?>> {
|
public abstract class PocketUpgradeDataProvider extends UpgradeDataProvider<IPocketUpgrade, PocketUpgradeSerialiser<?>> {
|
||||||
public PocketUpgradeDataProvider(@Nonnull DataGenerator generator) {
|
public PocketUpgradeDataProvider(DataGenerator generator) {
|
||||||
super(generator, "Pocket Computer Upgrades", "computercraft/pocket_upgrades", PocketUpgradeSerialiser.REGISTRY_ID);
|
super(generator, "Pocket Computer Upgrades", "computercraft/pocket_upgrades", PocketUpgradeSerialiser.REGISTRY_ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
|
|||||||
import net.minecraftforge.registries.IForgeRegistry;
|
import net.minecraftforge.registries.IForgeRegistry;
|
||||||
import net.minecraftforge.registries.RegistryManager;
|
import net.minecraftforge.registries.RegistryManager;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@ -60,8 +59,7 @@ public interface PocketUpgradeSerialiser<T extends IPocketUpgrade> extends Upgra
|
|||||||
* @param <T> The type of the generated upgrade.
|
* @param <T> The type of the generated upgrade.
|
||||||
* @return The serialiser for this upgrade
|
* @return The serialiser for this upgrade
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
static <T extends IPocketUpgrade> PocketUpgradeSerialiser<T> simple(Function<ResourceLocation, T> factory) {
|
||||||
static <T extends IPocketUpgrade> PocketUpgradeSerialiser<T> simple(@Nonnull Function<ResourceLocation, T> factory) {
|
|
||||||
final class Impl extends SimpleSerialiser<T> implements PocketUpgradeSerialiser<T> {
|
final class Impl extends SimpleSerialiser<T> implements PocketUpgradeSerialiser<T> {
|
||||||
private Impl(Function<ResourceLocation, T> constructor) {
|
private Impl(Function<ResourceLocation, T> constructor) {
|
||||||
super(constructor);
|
super(constructor);
|
||||||
@ -80,8 +78,7 @@ public interface PocketUpgradeSerialiser<T extends IPocketUpgrade> extends Upgra
|
|||||||
* @return The serialiser for this upgrade.
|
* @return The serialiser for this upgrade.
|
||||||
* @see #simple(Function) For upgrades whose crafting stack should not vary.
|
* @see #simple(Function) For upgrades whose crafting stack should not vary.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
static <T extends IPocketUpgrade> PocketUpgradeSerialiser<T> simpleWithCustomItem(BiFunction<ResourceLocation, ItemStack, T> factory) {
|
||||||
static <T extends IPocketUpgrade> PocketUpgradeSerialiser<T> simpleWithCustomItem(@Nonnull BiFunction<ResourceLocation, ItemStack, T> factory) {
|
|
||||||
final class Impl extends SerialiserWithCraftingItem<T> implements PocketUpgradeSerialiser<T> {
|
final class Impl extends SerialiserWithCraftingItem<T> implements PocketUpgradeSerialiser<T> {
|
||||||
private Impl(BiFunction<ResourceLocation, ItemStack, T> factory) {
|
private Impl(BiFunction<ResourceLocation, ItemStack, T> factory) {
|
||||||
super(factory);
|
super(factory);
|
||||||
|
@ -9,7 +9,6 @@ import net.minecraft.core.BlockPos;
|
|||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This interface is used to provide bundled redstone output for blocks.
|
* This interface is used to provide bundled redstone output for blocks.
|
||||||
@ -28,5 +27,5 @@ public interface IBundledRedstoneProvider {
|
|||||||
* handle this block.
|
* handle this block.
|
||||||
* @see dan200.computercraft.api.ComputerCraftAPI#registerBundledRedstoneProvider(IBundledRedstoneProvider)
|
* @see dan200.computercraft.api.ComputerCraftAPI#registerBundledRedstoneProvider(IBundledRedstoneProvider)
|
||||||
*/
|
*/
|
||||||
int getBundledRedstoneOutput(@Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side);
|
int getBundledRedstoneOutput(Level world, BlockPos pos, Direction side);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@ import dan200.computercraft.api.upgrades.IUpgradeBase;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A base class for {@link ITurtleUpgrade}s.
|
* A base class for {@link ITurtleUpgrade}s.
|
||||||
@ -33,25 +32,21 @@ public abstract class AbstractTurtleUpgrade implements ITurtleUpgrade {
|
|||||||
this(id, type, IUpgradeBase.getDefaultAdjective(id), stack);
|
this(id, type, IUpgradeBase.getDefaultAdjective(id), stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final ResourceLocation getUpgradeID() {
|
public final ResourceLocation getUpgradeID() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final String getUnlocalisedAdjective() {
|
public final String getUnlocalisedAdjective() {
|
||||||
return adjective;
|
return adjective;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final TurtleUpgradeType getType() {
|
public final TurtleUpgradeType getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final ItemStack getCraftingItem() {
|
public final ItemStack getCraftingItem() {
|
||||||
return stack;
|
return stack;
|
||||||
|
@ -17,7 +17,6 @@ import net.minecraft.world.level.Level;
|
|||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,7 +31,6 @@ public interface ITurtleAccess {
|
|||||||
*
|
*
|
||||||
* @return the world in which the turtle resides.
|
* @return the world in which the turtle resides.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Level getLevel();
|
Level getLevel();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -40,7 +38,6 @@ public interface ITurtleAccess {
|
|||||||
*
|
*
|
||||||
* @return a vector containing the integer co-ordinates at which the turtle resides.
|
* @return a vector containing the integer co-ordinates at which the turtle resides.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
BlockPos getPosition();
|
BlockPos getPosition();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,7 +66,7 @@ public interface ITurtleAccess {
|
|||||||
* was cancelled.
|
* was cancelled.
|
||||||
* @throws UnsupportedOperationException When attempting to teleport on the client side.
|
* @throws UnsupportedOperationException When attempting to teleport on the client side.
|
||||||
*/
|
*/
|
||||||
boolean teleportTo(@Nonnull Level world, @Nonnull BlockPos pos);
|
boolean teleportTo(Level world, BlockPos pos);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a vector containing the floating point co-ordinates at which the turtle is rendered.
|
* Returns a vector containing the floating point co-ordinates at which the turtle is rendered.
|
||||||
@ -79,7 +76,6 @@ public interface ITurtleAccess {
|
|||||||
* @return A vector containing the floating point co-ordinates at which the turtle resides.
|
* @return A vector containing the floating point co-ordinates at which the turtle resides.
|
||||||
* @see #getVisualYaw(float)
|
* @see #getVisualYaw(float)
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Vec3 getVisualPosition(float f);
|
Vec3 getVisualPosition(float f);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -97,7 +93,6 @@ public interface ITurtleAccess {
|
|||||||
* @return The world direction the turtle is currently facing.
|
* @return The world direction the turtle is currently facing.
|
||||||
* @see #setDirection(Direction)
|
* @see #setDirection(Direction)
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Direction getDirection();
|
Direction getDirection();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -107,7 +102,7 @@ public interface ITurtleAccess {
|
|||||||
* @param dir The new direction to set. This should be on either the x or z axis (so north, south, east or west).
|
* @param dir The new direction to set. This should be on either the x or z axis (so north, south, east or west).
|
||||||
* @see #getDirection()
|
* @see #getDirection()
|
||||||
*/
|
*/
|
||||||
void setDirection(@Nonnull Direction dir);
|
void setDirection(Direction dir);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the currently selected slot in the turtle's inventory.
|
* Get the currently selected slot in the turtle's inventory.
|
||||||
@ -163,7 +158,6 @@ public interface ITurtleAccess {
|
|||||||
* @return This turtle's inventory
|
* @return This turtle's inventory
|
||||||
* @see #getItemHandler()
|
* @see #getItemHandler()
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
Container getInventory();
|
Container getInventory();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -176,7 +170,6 @@ public interface ITurtleAccess {
|
|||||||
* @see IItemHandlerModifiable
|
* @see IItemHandlerModifiable
|
||||||
* @deprecated Use {@link #getInventory()} directly.
|
* @deprecated Use {@link #getInventory()} directly.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
@Deprecated(forRemoval = true)
|
@Deprecated(forRemoval = true)
|
||||||
IItemHandlerModifiable getItemHandler();
|
IItemHandlerModifiable getItemHandler();
|
||||||
|
|
||||||
@ -249,8 +242,7 @@ public interface ITurtleAccess {
|
|||||||
* @see ITurtleCommand
|
* @see ITurtleCommand
|
||||||
* @see MethodResult#pullEvent(String, ILuaCallback)
|
* @see MethodResult#pullEvent(String, ILuaCallback)
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
MethodResult executeCommand(ITurtleCommand command);
|
||||||
MethodResult executeCommand(@Nonnull ITurtleCommand command);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start playing a specific animation. This will prevent other turtle commands from executing until
|
* Start playing a specific animation. This will prevent other turtle commands from executing until
|
||||||
@ -260,7 +252,7 @@ public interface ITurtleAccess {
|
|||||||
* @throws UnsupportedOperationException When attempting to execute play an animation on the client side.
|
* @throws UnsupportedOperationException When attempting to execute play an animation on the client side.
|
||||||
* @see TurtleAnimation
|
* @see TurtleAnimation
|
||||||
*/
|
*/
|
||||||
void playAnimation(@Nonnull TurtleAnimation animation);
|
void playAnimation(TurtleAnimation animation);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the turtle on the specified side of the turtle, if there is one.
|
* Returns the turtle on the specified side of the turtle, if there is one.
|
||||||
@ -270,7 +262,7 @@ public interface ITurtleAccess {
|
|||||||
* @see #setUpgrade(TurtleSide, ITurtleUpgrade)
|
* @see #setUpgrade(TurtleSide, ITurtleUpgrade)
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
ITurtleUpgrade getUpgrade(@Nonnull TurtleSide side);
|
ITurtleUpgrade getUpgrade(TurtleSide side);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the upgrade for a given side, resetting peripherals and clearing upgrade specific data.
|
* Set the upgrade for a given side, resetting peripherals and clearing upgrade specific data.
|
||||||
@ -279,7 +271,7 @@ public interface ITurtleAccess {
|
|||||||
* @param upgrade The upgrade to set, may be {@code null} to clear.
|
* @param upgrade The upgrade to set, may be {@code null} to clear.
|
||||||
* @see #getUpgrade(TurtleSide)
|
* @see #getUpgrade(TurtleSide)
|
||||||
*/
|
*/
|
||||||
void setUpgrade(@Nonnull TurtleSide side, @Nullable ITurtleUpgrade upgrade);
|
void setUpgrade(TurtleSide side, @Nullable ITurtleUpgrade upgrade);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the peripheral created by the upgrade on the specified side of the turtle, if there is one.
|
* Returns the peripheral created by the upgrade on the specified side of the turtle, if there is one.
|
||||||
@ -288,7 +280,7 @@ public interface ITurtleAccess {
|
|||||||
* @return The peripheral created by the upgrade on the specified side of the turtle, {@code null} if none exists.
|
* @return The peripheral created by the upgrade on the specified side of the turtle, {@code null} if none exists.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
IPeripheral getPeripheral(@Nonnull TurtleSide side);
|
IPeripheral getPeripheral(TurtleSide side);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an upgrade-specific NBT compound, which can be used to store arbitrary data.
|
* Get an upgrade-specific NBT compound, which can be used to store arbitrary data.
|
||||||
@ -300,7 +292,6 @@ public interface ITurtleAccess {
|
|||||||
* @return The upgrade-specific data.
|
* @return The upgrade-specific data.
|
||||||
* @see #updateUpgradeNBTData(TurtleSide)
|
* @see #updateUpgradeNBTData(TurtleSide)
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
CompoundTag getUpgradeNBTData(@Nullable TurtleSide side);
|
CompoundTag getUpgradeNBTData(@Nullable TurtleSide side);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -310,5 +301,5 @@ public interface ITurtleAccess {
|
|||||||
* @param side The side to mark dirty.
|
* @param side The side to mark dirty.
|
||||||
* @see #updateUpgradeNBTData(TurtleSide)
|
* @see #updateUpgradeNBTData(TurtleSide)
|
||||||
*/
|
*/
|
||||||
void updateUpgradeNBTData(@Nonnull TurtleSide side);
|
void updateUpgradeNBTData(TurtleSide side);
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
*/
|
*/
|
||||||
package dan200.computercraft.api.turtle;
|
package dan200.computercraft.api.turtle;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An interface for objects executing custom turtle commands, used with {@link ITurtleAccess#executeCommand(ITurtleCommand)}.
|
* An interface for objects executing custom turtle commands, used with {@link ITurtleAccess#executeCommand(ITurtleCommand)}.
|
||||||
@ -27,6 +26,5 @@ public interface ITurtleCommand {
|
|||||||
* @see TurtleCommandResult#failure(String)
|
* @see TurtleCommandResult#failure(String)
|
||||||
* @see TurtleCommandResult
|
* @see TurtleCommandResult
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
TurtleCommandResult execute(ITurtleAccess turtle);
|
||||||
TurtleCommandResult execute(@Nonnull ITurtleAccess turtle);
|
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@ import dan200.computercraft.api.peripheral.IPeripheral;
|
|||||||
import dan200.computercraft.api.upgrades.IUpgradeBase;
|
import dan200.computercraft.api.upgrades.IUpgradeBase;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,7 +31,6 @@ public interface ITurtleUpgrade extends IUpgradeBase {
|
|||||||
* @return The type of upgrade this is.
|
* @return The type of upgrade this is.
|
||||||
* @see TurtleUpgradeType for the differences between them.
|
* @see TurtleUpgradeType for the differences between them.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
TurtleUpgradeType getType();
|
TurtleUpgradeType getType();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,7 +46,7 @@ public interface ITurtleUpgrade extends IUpgradeBase {
|
|||||||
* and this method is not expected to be called.
|
* and this method is not expected to be called.
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
default IPeripheral createPeripheral(@Nonnull ITurtleAccess turtle, @Nonnull TurtleSide side) {
|
default IPeripheral createPeripheral(ITurtleAccess turtle, TurtleSide side) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -70,8 +68,7 @@ public interface ITurtleUpgrade extends IUpgradeBase {
|
|||||||
* a swinging animation. You may return {@code null} if this turtle is a Peripheral and this method is not expected
|
* a swinging animation. You may return {@code null} if this turtle is a Peripheral and this method is not expected
|
||||||
* to be called.
|
* to be called.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
default TurtleCommandResult useTool(ITurtleAccess turtle, TurtleSide side, TurtleVerb verb, Direction direction) {
|
||||||
default TurtleCommandResult useTool(@Nonnull ITurtleAccess turtle, @Nonnull TurtleSide side, @Nonnull TurtleVerb verb, @Nonnull Direction direction) {
|
|
||||||
return TurtleCommandResult.failure();
|
return TurtleCommandResult.failure();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +78,6 @@ public interface ITurtleUpgrade extends IUpgradeBase {
|
|||||||
* @param turtle Access to the turtle that the upgrade resides on.
|
* @param turtle Access to the turtle that the upgrade resides on.
|
||||||
* @param side Which side of the turtle (left or right) the upgrade resides on.
|
* @param side Which side of the turtle (left or right) the upgrade resides on.
|
||||||
*/
|
*/
|
||||||
default void update(@Nonnull ITurtleAccess turtle, @Nonnull TurtleSide side) {
|
default void update(ITurtleAccess turtle, TurtleSide side) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ package dan200.computercraft.api.turtle;
|
|||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -25,7 +24,6 @@ public final class TurtleCommandResult {
|
|||||||
*
|
*
|
||||||
* @return A successful command result with no values.
|
* @return A successful command result with no values.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
public static TurtleCommandResult success() {
|
public static TurtleCommandResult success() {
|
||||||
return EMPTY_SUCCESS;
|
return EMPTY_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -36,7 +34,6 @@ public final class TurtleCommandResult {
|
|||||||
* @param results The results of executing this command.
|
* @param results The results of executing this command.
|
||||||
* @return A successful command result with the given values.
|
* @return A successful command result with the given values.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
public static TurtleCommandResult success(@Nullable Object[] results) {
|
public static TurtleCommandResult success(@Nullable Object[] results) {
|
||||||
if (results == null || results.length == 0) return EMPTY_SUCCESS;
|
if (results == null || results.length == 0) return EMPTY_SUCCESS;
|
||||||
return new TurtleCommandResult(true, null, results);
|
return new TurtleCommandResult(true, null, results);
|
||||||
@ -47,7 +44,6 @@ public final class TurtleCommandResult {
|
|||||||
*
|
*
|
||||||
* @return A failed command result with no message.
|
* @return A failed command result with no message.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
public static TurtleCommandResult failure() {
|
public static TurtleCommandResult failure() {
|
||||||
return EMPTY_FAILURE;
|
return EMPTY_FAILURE;
|
||||||
}
|
}
|
||||||
@ -58,17 +54,16 @@ public final class TurtleCommandResult {
|
|||||||
* @param errorMessage The error message to provide.
|
* @param errorMessage The error message to provide.
|
||||||
* @return A failed command result with a message.
|
* @return A failed command result with a message.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
public static TurtleCommandResult failure(@Nullable String errorMessage) {
|
public static TurtleCommandResult failure(@Nullable String errorMessage) {
|
||||||
if (errorMessage == null) return EMPTY_FAILURE;
|
if (errorMessage == null) return EMPTY_FAILURE;
|
||||||
return new TurtleCommandResult(false, errorMessage, null);
|
return new TurtleCommandResult(false, errorMessage, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final boolean success;
|
private final boolean success;
|
||||||
private final String errorMessage;
|
private final @Nullable String errorMessage;
|
||||||
private final Object[] results;
|
private final @Nullable Object[] results;
|
||||||
|
|
||||||
private TurtleCommandResult(boolean success, String errorMessage, Object[] results) {
|
private TurtleCommandResult(boolean success, @Nullable String errorMessage, @Nullable Object[] results) {
|
||||||
this.success = success;
|
this.success = success;
|
||||||
this.errorMessage = errorMessage;
|
this.errorMessage = errorMessage;
|
||||||
this.results = results;
|
this.results = results;
|
||||||
|
@ -17,7 +17,7 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
|
|||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nullable;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,8 +43,7 @@ public abstract class TurtleUpgradeDataProvider extends UpgradeDataProvider<ITur
|
|||||||
* to specify {@link ToolBuilder#damageMultiplier(float)} and {@link ToolBuilder#breakable(TagKey)}.
|
* to specify {@link ToolBuilder#damageMultiplier(float)} and {@link ToolBuilder#breakable(TagKey)}.
|
||||||
* @return A tool builder,
|
* @return A tool builder,
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public final ToolBuilder tool(ResourceLocation id, Item item) {
|
||||||
public final ToolBuilder tool(@Nonnull ResourceLocation id, @Nonnull Item item) {
|
|
||||||
return new ToolBuilder(id, existingSerialiser(TOOL_ID), item);
|
return new ToolBuilder(id, existingSerialiser(TOOL_ID), item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,10 +56,10 @@ public abstract class TurtleUpgradeDataProvider extends UpgradeDataProvider<ITur
|
|||||||
private final ResourceLocation id;
|
private final ResourceLocation id;
|
||||||
private final TurtleUpgradeSerialiser<?> serialiser;
|
private final TurtleUpgradeSerialiser<?> serialiser;
|
||||||
private final Item toolItem;
|
private final Item toolItem;
|
||||||
private String adjective;
|
private @Nullable String adjective;
|
||||||
private Item craftingItem;
|
private @Nullable Item craftingItem;
|
||||||
private Float damageMultiplier = null;
|
private @Nullable Float damageMultiplier = null;
|
||||||
private TagKey<Block> breakable;
|
private @Nullable TagKey<Block> breakable;
|
||||||
|
|
||||||
ToolBuilder(ResourceLocation id, TurtleUpgradeSerialiser<?> serialiser, Item toolItem) {
|
ToolBuilder(ResourceLocation id, TurtleUpgradeSerialiser<?> serialiser, Item toolItem) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
@ -75,8 +74,7 @@ public abstract class TurtleUpgradeDataProvider extends UpgradeDataProvider<ITur
|
|||||||
* @param adjective The new adjective to use.
|
* @param adjective The new adjective to use.
|
||||||
* @return The tool builder, for further use.
|
* @return The tool builder, for further use.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public ToolBuilder adjective(String adjective) {
|
||||||
public ToolBuilder adjective(@Nonnull String adjective) {
|
|
||||||
this.adjective = adjective;
|
this.adjective = adjective;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -88,8 +86,7 @@ public abstract class TurtleUpgradeDataProvider extends UpgradeDataProvider<ITur
|
|||||||
* @param craftingItem The item used to craft this upgrade.
|
* @param craftingItem The item used to craft this upgrade.
|
||||||
* @return The tool builder, for further use.
|
* @return The tool builder, for further use.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public ToolBuilder craftingItem(Item craftingItem) {
|
||||||
public ToolBuilder craftingItem(@Nonnull Item craftingItem) {
|
|
||||||
this.craftingItem = craftingItem;
|
this.craftingItem = craftingItem;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -115,7 +112,7 @@ public abstract class TurtleUpgradeDataProvider extends UpgradeDataProvider<ITur
|
|||||||
* @return The tool builder, for further use.
|
* @return The tool builder, for further use.
|
||||||
* @see ComputerCraftTags.Blocks
|
* @see ComputerCraftTags.Blocks
|
||||||
*/
|
*/
|
||||||
public ToolBuilder breakable(@Nonnull TagKey<Block> breakable) {
|
public ToolBuilder breakable(TagKey<Block> breakable) {
|
||||||
this.breakable = breakable;
|
this.breakable = breakable;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -125,7 +122,7 @@ public abstract class TurtleUpgradeDataProvider extends UpgradeDataProvider<ITur
|
|||||||
*
|
*
|
||||||
* @param add The callback given to {@link #addUpgrades(Consumer)}.
|
* @param add The callback given to {@link #addUpgrades(Consumer)}.
|
||||||
*/
|
*/
|
||||||
public void add(@Nonnull Consumer<Upgrade<TurtleUpgradeSerialiser<?>>> add) {
|
public void add(Consumer<Upgrade<TurtleUpgradeSerialiser<?>>> add) {
|
||||||
add.accept(new Upgrade<>(id, serialiser, s -> {
|
add.accept(new Upgrade<>(id, serialiser, s -> {
|
||||||
s.addProperty("item", PlatformHelper.get().getRegistryKey(Registry.ITEM_REGISTRY, toolItem).toString());
|
s.addProperty("item", PlatformHelper.get().getRegistryKey(Registry.ITEM_REGISTRY, toolItem).toString());
|
||||||
if (adjective != null) s.addProperty("adjective", adjective);
|
if (adjective != null) s.addProperty("adjective", adjective);
|
||||||
|
@ -19,7 +19,6 @@ import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
|
|||||||
import net.minecraftforge.registries.IForgeRegistry;
|
import net.minecraftforge.registries.IForgeRegistry;
|
||||||
import net.minecraftforge.registries.RegistryManager;
|
import net.minecraftforge.registries.RegistryManager;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
@ -95,8 +94,7 @@ public interface TurtleUpgradeSerialiser<T extends ITurtleUpgrade> extends Upgra
|
|||||||
* @param <T> The type of the generated upgrade.
|
* @param <T> The type of the generated upgrade.
|
||||||
* @return The serialiser for this upgrade
|
* @return The serialiser for this upgrade
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
static <T extends ITurtleUpgrade> TurtleUpgradeSerialiser<T> simple(Function<ResourceLocation, T> factory) {
|
||||||
static <T extends ITurtleUpgrade> TurtleUpgradeSerialiser<T> simple(@Nonnull Function<ResourceLocation, T> factory) {
|
|
||||||
final class Impl extends SimpleSerialiser<T> implements TurtleUpgradeSerialiser<T> {
|
final class Impl extends SimpleSerialiser<T> implements TurtleUpgradeSerialiser<T> {
|
||||||
private Impl(Function<ResourceLocation, T> constructor) {
|
private Impl(Function<ResourceLocation, T> constructor) {
|
||||||
super(constructor);
|
super(constructor);
|
||||||
@ -115,8 +113,7 @@ public interface TurtleUpgradeSerialiser<T extends ITurtleUpgrade> extends Upgra
|
|||||||
* @return The serialiser for this upgrade.
|
* @return The serialiser for this upgrade.
|
||||||
* @see #simple(Function) For upgrades whose crafting stack should not vary.
|
* @see #simple(Function) For upgrades whose crafting stack should not vary.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
static <T extends ITurtleUpgrade> TurtleUpgradeSerialiser<T> simpleWithCustomItem(BiFunction<ResourceLocation, ItemStack, T> factory) {
|
||||||
static <T extends ITurtleUpgrade> TurtleUpgradeSerialiser<T> simpleWithCustomItem(@Nonnull BiFunction<ResourceLocation, ItemStack, T> factory) {
|
|
||||||
final class Impl extends SerialiserWithCraftingItem<T> implements TurtleUpgradeSerialiser<T> {
|
final class Impl extends SerialiserWithCraftingItem<T> implements TurtleUpgradeSerialiser<T> {
|
||||||
private Impl(BiFunction<ResourceLocation, ItemStack, T> factory) {
|
private Impl(BiFunction<ResourceLocation, ItemStack, T> factory) {
|
||||||
super(factory);
|
super(factory);
|
||||||
|
@ -12,7 +12,7 @@ import net.minecraft.Util;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Common functionality between {@link ITurtleUpgrade} and {@link IPocketUpgrade}.
|
* Common functionality between {@link ITurtleUpgrade} and {@link IPocketUpgrade}.
|
||||||
@ -27,7 +27,6 @@ public interface IUpgradeBase {
|
|||||||
*
|
*
|
||||||
* @return The unique ID for this upgrade.
|
* @return The unique ID for this upgrade.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
ResourceLocation getUpgradeID();
|
ResourceLocation getUpgradeID();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -37,7 +36,6 @@ public interface IUpgradeBase {
|
|||||||
*
|
*
|
||||||
* @return The localisation key for this upgrade's adjective.
|
* @return The localisation key for this upgrade's adjective.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
String getUnlocalisedAdjective();
|
String getUnlocalisedAdjective();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,7 +49,6 @@ public interface IUpgradeBase {
|
|||||||
*
|
*
|
||||||
* @return The item stack to craft with, or {@link ItemStack#EMPTY} if it cannot be crafted.
|
* @return The item stack to craft with, or {@link ItemStack#EMPTY} if it cannot be crafted.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
ItemStack getCraftingItem();
|
ItemStack getCraftingItem();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -70,7 +67,7 @@ public interface IUpgradeBase {
|
|||||||
* {@link #getCraftingItem()}.
|
* {@link #getCraftingItem()}.
|
||||||
* @return If this stack may be used to equip this upgrade.
|
* @return If this stack may be used to equip this upgrade.
|
||||||
*/
|
*/
|
||||||
default boolean isItemSuitable(@Nonnull ItemStack stack) {
|
default boolean isItemSuitable(ItemStack stack) {
|
||||||
var crafting = getCraftingItem();
|
var crafting = getCraftingItem();
|
||||||
|
|
||||||
// A more expanded form of ItemStack.areShareTagsEqual, but allowing an empty tag to be equal to a
|
// A more expanded form of ItemStack.areShareTagsEqual, but allowing an empty tag to be equal to a
|
||||||
@ -78,7 +75,7 @@ public interface IUpgradeBase {
|
|||||||
var shareTag = PlatformHelper.get().getShareTag(stack);
|
var shareTag = PlatformHelper.get().getShareTag(stack);
|
||||||
var craftingShareTag = PlatformHelper.get().getShareTag(crafting);
|
var craftingShareTag = PlatformHelper.get().getShareTag(crafting);
|
||||||
if (shareTag == craftingShareTag) return true;
|
if (shareTag == craftingShareTag) return true;
|
||||||
if (shareTag == null) return craftingShareTag.isEmpty();
|
if (shareTag == null) return Objects.requireNonNull(craftingShareTag).isEmpty();
|
||||||
if (craftingShareTag == null) return shareTag.isEmpty();
|
if (craftingShareTag == null) return shareTag.isEmpty();
|
||||||
return shareTag.equals(craftingShareTag);
|
return shareTag.equals(craftingShareTag);
|
||||||
}
|
}
|
||||||
@ -91,8 +88,7 @@ public interface IUpgradeBase {
|
|||||||
* @return The generated adjective.
|
* @return The generated adjective.
|
||||||
* @see #getUnlocalisedAdjective()
|
* @see #getUnlocalisedAdjective()
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
static String getDefaultAdjective(ResourceLocation id) {
|
||||||
static String getDefaultAdjective(@Nonnull ResourceLocation id) {
|
|
||||||
return Util.makeDescriptionId("upgrade", id) + ".adjective";
|
return Util.makeDescriptionId("upgrade", id) + ".adjective";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ import net.minecraft.world.item.Item;
|
|||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nullable;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -45,9 +45,9 @@ public abstract class UpgradeDataProvider<T extends IUpgradeBase, R extends Upgr
|
|||||||
private final String folder;
|
private final String folder;
|
||||||
private final ResourceKey<Registry<R>> registry;
|
private final ResourceKey<Registry<R>> registry;
|
||||||
|
|
||||||
private List<T> upgrades;
|
private @Nullable List<T> upgrades;
|
||||||
|
|
||||||
protected UpgradeDataProvider(@Nonnull DataGenerator generator, @Nonnull String name, @Nonnull String folder, @Nonnull ResourceKey<Registry<R>> registry) {
|
protected UpgradeDataProvider(DataGenerator generator, String name, String folder, ResourceKey<Registry<R>> registry) {
|
||||||
this.generator = generator;
|
this.generator = generator;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.folder = folder;
|
this.folder = folder;
|
||||||
@ -61,8 +61,7 @@ public abstract class UpgradeDataProvider<T extends IUpgradeBase, R extends Upgr
|
|||||||
* @param serialiser The simple serialiser.
|
* @param serialiser The simple serialiser.
|
||||||
* @return The constructed upgrade, ready to be passed off to {@link #addUpgrades(Consumer)}'s consumer.
|
* @return The constructed upgrade, ready to be passed off to {@link #addUpgrades(Consumer)}'s consumer.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public final Upgrade<R> simple(ResourceLocation id, R serialiser) {
|
||||||
public final Upgrade<R> simple(@Nonnull ResourceLocation id, @Nonnull R serialiser) {
|
|
||||||
if (!(serialiser instanceof SimpleSerialiser)) {
|
if (!(serialiser instanceof SimpleSerialiser)) {
|
||||||
throw new IllegalStateException(serialiser + " must be a simple() seriaiser.");
|
throw new IllegalStateException(serialiser + " must be a simple() seriaiser.");
|
||||||
}
|
}
|
||||||
@ -79,8 +78,7 @@ public abstract class UpgradeDataProvider<T extends IUpgradeBase, R extends Upgr
|
|||||||
* @param item The crafting upgrade for this item.
|
* @param item The crafting upgrade for this item.
|
||||||
* @return The constructed upgrade, ready to be passed off to {@link #addUpgrades(Consumer)}'s consumer.
|
* @return The constructed upgrade, ready to be passed off to {@link #addUpgrades(Consumer)}'s consumer.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public final Upgrade<R> simpleWithCustomItem(ResourceLocation id, R serialiser, Item item) {
|
||||||
public final Upgrade<R> simpleWithCustomItem(@Nonnull ResourceLocation id, @Nonnull R serialiser, @Nonnull Item item) {
|
|
||||||
if (!(serialiser instanceof SerialiserWithCraftingItem)) {
|
if (!(serialiser instanceof SerialiserWithCraftingItem)) {
|
||||||
throw new IllegalStateException(serialiser + " must be a simpleWithCustomItem() serialiser.");
|
throw new IllegalStateException(serialiser + " must be a simpleWithCustomItem() serialiser.");
|
||||||
}
|
}
|
||||||
@ -95,17 +93,17 @@ public abstract class UpgradeDataProvider<T extends IUpgradeBase, R extends Upgr
|
|||||||
* <p>
|
* <p>
|
||||||
* <strong>Example usage:</strong>
|
* <strong>Example usage:</strong>
|
||||||
* <pre>{@code
|
* <pre>{@code
|
||||||
* protected void addUpgrades(@Nonnull Consumer<Upgrade<TurtleUpgradeSerialiser<?>>> addUpgrade) {
|
* protected void addUpgrades(Consumer<Upgrade<TurtleUpgradeSerialiser<?>>> addUpgrade) {
|
||||||
* simple(new ResourceLocation("mymod", "speaker"), SPEAKER_SERIALISER.get()).add(addUpgrade);
|
* simple(new ResourceLocation("mymod", "speaker"), SPEAKER_SERIALISER.get()).add(addUpgrade);
|
||||||
* }
|
* }
|
||||||
* }</pre>
|
* }</pre>
|
||||||
*
|
*
|
||||||
* @param addUpgrade A callback used to register an upgrade.
|
* @param addUpgrade A callback used to register an upgrade.
|
||||||
*/
|
*/
|
||||||
protected abstract void addUpgrades(@Nonnull Consumer<Upgrade<R>> addUpgrade);
|
protected abstract void addUpgrades(Consumer<Upgrade<R>> addUpgrade);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void run(@Nonnull CachedOutput cache) throws IOException {
|
public final void run(CachedOutput cache) throws IOException {
|
||||||
var base = generator.getOutputFolder().resolve("data");
|
var base = generator.getOutputFolder().resolve("data");
|
||||||
|
|
||||||
Set<ResourceLocation> seen = new HashSet<>();
|
Set<ResourceLocation> seen = new HashSet<>();
|
||||||
@ -134,20 +132,17 @@ public abstract class UpgradeDataProvider<T extends IUpgradeBase, R extends Upgr
|
|||||||
this.upgrades = upgrades;
|
this.upgrades = upgrades;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final String getName() {
|
public final String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
public final R existingSerialiser(ResourceLocation id) {
|
||||||
public final R existingSerialiser(@Nonnull ResourceLocation id) {
|
|
||||||
var result = PlatformHelper.get().getRegistryObject(registry, id);
|
var result = PlatformHelper.get().getRegistryObject(registry, id);
|
||||||
if (result == null) throw new IllegalArgumentException("No such serialiser " + registry);
|
if (result == null) throw new IllegalArgumentException("No such serialiser " + registry);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
public List<T> getGeneratedUpgrades() {
|
public List<T> getGeneratedUpgrades() {
|
||||||
if (upgrades == null) throw new IllegalStateException("Upgrades have not beeen generated yet");
|
if (upgrades == null) throw new IllegalStateException("Upgrades have not beeen generated yet");
|
||||||
return upgrades;
|
return upgrades;
|
||||||
@ -169,7 +164,7 @@ public abstract class UpgradeDataProvider<T extends IUpgradeBase, R extends Upgr
|
|||||||
*
|
*
|
||||||
* @param add The callback given to {@link #addUpgrades(Consumer)}
|
* @param add The callback given to {@link #addUpgrades(Consumer)}
|
||||||
*/
|
*/
|
||||||
public void add(@Nonnull Consumer<Upgrade<R>> add) {
|
public void add(Consumer<Upgrade<R>> add) {
|
||||||
add.accept(this);
|
add.accept(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ import dan200.computercraft.api.turtle.TurtleUpgradeSerialiser;
|
|||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base interface for upgrade serialisers. This should generally not be implemented directly, instead implementing one
|
* Base interface for upgrade serialisers. This should generally not be implemented directly, instead implementing one
|
||||||
@ -32,8 +31,7 @@ public interface UpgradeSerialiser<T extends IUpgradeBase> {
|
|||||||
* @return The constructed upgrade, with a {@link IUpgradeBase#getUpgradeID()} equal to {@code id}.
|
* @return The constructed upgrade, with a {@link IUpgradeBase#getUpgradeID()} equal to {@code id}.
|
||||||
* @see net.minecraft.util.GsonHelper For additional JSON helper methods.
|
* @see net.minecraft.util.GsonHelper For additional JSON helper methods.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
T fromJson(ResourceLocation id, JsonObject object);
|
||||||
T fromJson(@Nonnull ResourceLocation id, @Nonnull JsonObject object);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read this upgrade from a network packet, sent from the server.
|
* Read this upgrade from a network packet, sent from the server.
|
||||||
@ -42,8 +40,7 @@ public interface UpgradeSerialiser<T extends IUpgradeBase> {
|
|||||||
* @param buffer The buffer object to read this upgrade from.
|
* @param buffer The buffer object to read this upgrade from.
|
||||||
* @return The constructed upgrade, with a {@link IUpgradeBase#getUpgradeID()} equal to {@code id}.
|
* @return The constructed upgrade, with a {@link IUpgradeBase#getUpgradeID()} equal to {@code id}.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
T fromNetwork(ResourceLocation id, FriendlyByteBuf buffer);
|
||||||
T fromNetwork(@Nonnull ResourceLocation id, @Nonnull FriendlyByteBuf buffer);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write this upgrade to a network packet, to be sent to the client.
|
* Write this upgrade to a network packet, to be sent to the client.
|
||||||
@ -51,6 +48,6 @@ public interface UpgradeSerialiser<T extends IUpgradeBase> {
|
|||||||
* @param buffer The buffer object to write this upgrade to
|
* @param buffer The buffer object to write this upgrade to
|
||||||
* @param upgrade The upgrade to write.
|
* @param upgrade The upgrade to write.
|
||||||
*/
|
*/
|
||||||
void toNetwork(@Nonnull FriendlyByteBuf buffer, @Nonnull T upgrade);
|
void toNetwork(FriendlyByteBuf buffer, T upgrade);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@ import net.minecraftforge.common.capabilities.Capability;
|
|||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,46 +43,42 @@ public interface ComputerCraftAPIService {
|
|||||||
return instance == null ? Services.raise(ComputerCraftAPIService.class, Instance.ERROR) : instance;
|
return instance == null ? Services.raise(ComputerCraftAPIService.class, Instance.ERROR) : instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
String getInstalledVersion();
|
String getInstalledVersion();
|
||||||
|
|
||||||
int createUniqueNumberedSaveDir(@Nonnull Level world, @Nonnull String parentSubPath);
|
int createUniqueNumberedSaveDir(Level world, String parentSubPath);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
IWritableMount createSaveDirMount(@Nonnull Level world, @Nonnull String subPath, long capacity);
|
IWritableMount createSaveDirMount(Level world, String subPath, long capacity);
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
IMount createResourceMount(@Nonnull String domain, @Nonnull String subPath);
|
IMount createResourceMount(String domain, String subPath);
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
void registerPeripheralProvider(@Nonnull IPeripheralProvider provider);
|
void registerPeripheralProvider(IPeripheralProvider provider);
|
||||||
|
|
||||||
void registerGenericSource(@Nonnull GenericSource source);
|
void registerGenericSource(GenericSource source);
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
void registerGenericCapability(@Nonnull Capability<?> capability);
|
void registerGenericCapability(Capability<?> capability);
|
||||||
|
|
||||||
void registerBundledRedstoneProvider(@Nonnull IBundledRedstoneProvider provider);
|
void registerBundledRedstoneProvider(IBundledRedstoneProvider provider);
|
||||||
|
|
||||||
int getBundledRedstoneOutput(@Nonnull Level world, @Nonnull BlockPos pos, @Nonnull Direction side);
|
int getBundledRedstoneOutput(Level world, BlockPos pos, Direction side);
|
||||||
|
|
||||||
void registerMediaProvider(@Nonnull IMediaProvider provider);
|
void registerMediaProvider(IMediaProvider provider);
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
IPacketNetwork getWirelessNetwork();
|
IPacketNetwork getWirelessNetwork();
|
||||||
|
|
||||||
void registerAPIFactory(@Nonnull ILuaAPIFactory factory);
|
void registerAPIFactory(ILuaAPIFactory factory);
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
<T> void registerDetailProvider(@Nonnull Class<T> type, @Nonnull IDetailProvider<T> provider);
|
<T> void registerDetailProvider(Class<T> type, IDetailProvider<T> provider);
|
||||||
|
|
||||||
@Nonnull
|
IWiredNode createWiredNodeForElement(IWiredElement element);
|
||||||
IWiredNode createWiredNodeForElement(@Nonnull IWiredElement element);
|
|
||||||
|
|
||||||
@Nonnull
|
LazyOptional<IWiredElement> getWiredElementAt(BlockGetter world, BlockPos pos, Direction side);
|
||||||
LazyOptional<IWiredElement> getWiredElementAt(@Nonnull BlockGetter world, @Nonnull BlockPos pos, @Nonnull Direction side);
|
|
||||||
|
|
||||||
void registerRefuelHandler(@Nonnull TurtleRefuelHandler handler);
|
void registerRefuelHandler(TurtleRefuelHandler handler);
|
||||||
|
|
||||||
DetailRegistry<ItemStack> getItemStackDetailRegistry();
|
DetailRegistry<ItemStack> getItemStackDetailRegistry();
|
||||||
|
|
||||||
|
@ -71,6 +71,7 @@ public final class Services {
|
|||||||
* @see #tryLoad(Class)
|
* @see #tryLoad(Class)
|
||||||
* @see LoadedService#error()
|
* @see LoadedService#error()
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("DoNotCallSuggester")
|
||||||
public static <T> T raise(Class<T> klass, @Nullable Throwable e) {
|
public static <T> T raise(Class<T> klass, @Nullable Throwable e) {
|
||||||
// Throw a new exception so there's a useful stack trace there somewhere!
|
// Throw a new exception so there's a useful stack trace there somewhere!
|
||||||
throw new ServiceException("Failed to instantiate " + klass.getName(), e);
|
throw new ServiceException("Failed to instantiate " + klass.getName(), e);
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ComputerCraft - http://www.computercraft.info
|
||||||
|
* Copyright Daniel Ratcliffe, 2011-2022. Do not distribute without permission.
|
||||||
|
* Send enquiries to dratcliffe@gmail.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal interfaces for ComputerCraft's API.
|
||||||
|
*/
|
||||||
|
@ApiStatus.Internal
|
||||||
|
@DefaultQualifier(value = NonNull.class, locations = {
|
||||||
|
TypeUseLocation.RETURN,
|
||||||
|
TypeUseLocation.PARAMETER,
|
||||||
|
TypeUseLocation.FIELD,
|
||||||
|
})
|
||||||
|
package dan200.computercraft.impl;
|
||||||
|
|
||||||
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
|
import org.checkerframework.framework.qual.DefaultQualifier;
|
||||||
|
import org.checkerframework.framework.qual.TypeUseLocation;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
@ -14,7 +14,6 @@ import net.minecraft.util.GsonHelper;
|
|||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -32,22 +31,20 @@ public abstract class SerialiserWithCraftingItem<T extends IUpgradeBase> impleme
|
|||||||
this.factory = factory;
|
this.factory = factory;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final T fromJson(@Nonnull ResourceLocation id, @Nonnull JsonObject object) {
|
public final T fromJson(ResourceLocation id, JsonObject object) {
|
||||||
var item = GsonHelper.getAsItem(object, "item");
|
var item = GsonHelper.getAsItem(object, "item");
|
||||||
return factory.apply(id, new ItemStack(item));
|
return factory.apply(id, new ItemStack(item));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final T fromNetwork(@Nonnull ResourceLocation id, @Nonnull FriendlyByteBuf buffer) {
|
public final T fromNetwork(ResourceLocation id, FriendlyByteBuf buffer) {
|
||||||
var item = buffer.readItem();
|
var item = buffer.readItem();
|
||||||
return factory.apply(id, item);
|
return factory.apply(id, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void toNetwork(@Nonnull FriendlyByteBuf buffer, @Nonnull T upgrade) {
|
public final void toNetwork(FriendlyByteBuf buffer, T upgrade) {
|
||||||
buffer.writeItem(upgrade.getCraftingItem());
|
buffer.writeItem(upgrade.getCraftingItem());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,6 @@ import net.minecraft.network.FriendlyByteBuf;
|
|||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import org.jetbrains.annotations.ApiStatus;
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -30,19 +29,17 @@ public abstract class SimpleSerialiser<T extends IUpgradeBase> implements Upgrad
|
|||||||
this.constructor = constructor;
|
this.constructor = constructor;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
@Override
|
||||||
public final T fromJson(@Nonnull ResourceLocation id, @Nonnull JsonObject object) {
|
public final T fromJson(ResourceLocation id, JsonObject object) {
|
||||||
return constructor.apply(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
@Override
|
|
||||||
public final T fromNetwork(@Nonnull ResourceLocation id, @Nonnull FriendlyByteBuf buffer) {
|
|
||||||
return constructor.apply(id);
|
return constructor.apply(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void toNetwork(@Nonnull FriendlyByteBuf buffer, @Nonnull T upgrade) {
|
public final T fromNetwork(ResourceLocation id, FriendlyByteBuf buffer) {
|
||||||
|
return constructor.apply(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void toNetwork(FriendlyByteBuf buffer, T upgrade) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,6 @@ import net.minecraft.world.level.BlockGetter;
|
|||||||
import net.minecraftforge.common.capabilities.Capability;
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The forge-specific entrypoint for ComputerCraft's API.
|
* The forge-specific entrypoint for ComputerCraft's API.
|
||||||
*/
|
*/
|
||||||
@ -34,7 +32,7 @@ public final class ForgeComputerCraftAPI {
|
|||||||
* @see IPeripheral
|
* @see IPeripheral
|
||||||
* @see IPeripheralProvider
|
* @see IPeripheralProvider
|
||||||
*/
|
*/
|
||||||
public static void registerPeripheralProvider(@Nonnull IPeripheralProvider provider) {
|
public static void registerPeripheralProvider(IPeripheralProvider provider) {
|
||||||
getInstance().registerPeripheralProvider(provider);
|
getInstance().registerPeripheralProvider(provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +42,7 @@ public final class ForgeComputerCraftAPI {
|
|||||||
* @param capability The capability to register.
|
* @param capability The capability to register.
|
||||||
* @see GenericSource
|
* @see GenericSource
|
||||||
*/
|
*/
|
||||||
public static void registerGenericCapability(@Nonnull Capability<?> capability) {
|
public static void registerGenericCapability(Capability<?> capability) {
|
||||||
getInstance().registerGenericCapability(capability);
|
getInstance().registerGenericCapability(capability);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,12 +55,10 @@ public final class ForgeComputerCraftAPI {
|
|||||||
* @return The element's node
|
* @return The element's node
|
||||||
* @see IWiredElement#getNode()
|
* @see IWiredElement#getNode()
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
public static LazyOptional<IWiredElement> getWiredElementAt(BlockGetter world, BlockPos pos, Direction side) {
|
||||||
public static LazyOptional<IWiredElement> getWiredElementAt(@Nonnull BlockGetter world, @Nonnull BlockPos pos, @Nonnull Direction side) {
|
|
||||||
return getInstance().getWiredElementAt(world, pos, side);
|
return getInstance().getWiredElementAt(world, pos, side);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
|
||||||
private static ComputerCraftAPIForgeService getInstance() {
|
private static ComputerCraftAPIForgeService getInstance() {
|
||||||
return ComputerCraftAPIForgeService.get();
|
return ComputerCraftAPIForgeService.get();
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ package dan200.computercraft.api.turtle.event;
|
|||||||
import dan200.computercraft.api.turtle.ITurtleAccess;
|
import dan200.computercraft.api.turtle.ITurtleAccess;
|
||||||
import net.minecraftforge.eventbus.api.Event;
|
import net.minecraftforge.eventbus.api.Event;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -23,7 +22,7 @@ import java.util.Objects;
|
|||||||
public abstract class TurtleEvent extends Event {
|
public abstract class TurtleEvent extends Event {
|
||||||
private final ITurtleAccess turtle;
|
private final ITurtleAccess turtle;
|
||||||
|
|
||||||
protected TurtleEvent(@Nonnull ITurtleAccess turtle) {
|
protected TurtleEvent(ITurtleAccess turtle) {
|
||||||
Objects.requireNonNull(turtle, "turtle cannot be null");
|
Objects.requireNonNull(turtle, "turtle cannot be null");
|
||||||
this.turtle = turtle;
|
this.turtle = turtle;
|
||||||
}
|
}
|
||||||
@ -33,7 +32,6 @@ public abstract class TurtleEvent extends Event {
|
|||||||
*
|
*
|
||||||
* @return The access for this turtle.
|
* @return The access for this turtle.
|
||||||
*/
|
*/
|
||||||
@Nonnull
|
|
||||||
public ITurtleAccess getTurtle() {
|
public ITurtleAccess getTurtle() {
|
||||||
return turtle;
|
return turtle;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@ import dan200.computercraft.api.turtle.ITurtleAccess;
|
|||||||
import dan200.computercraft.api.turtle.TurtleRefuelHandler;
|
import dan200.computercraft.api.turtle.TurtleRefuelHandler;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -23,9 +22,9 @@ import java.util.Objects;
|
|||||||
@Deprecated(forRemoval = true)
|
@Deprecated(forRemoval = true)
|
||||||
public class TurtleRefuelEvent extends TurtleEvent {
|
public class TurtleRefuelEvent extends TurtleEvent {
|
||||||
private final ItemStack stack;
|
private final ItemStack stack;
|
||||||
private Handler handler;
|
private @Nullable Handler handler;
|
||||||
|
|
||||||
public TurtleRefuelEvent(@Nonnull ITurtleAccess turtle, @Nonnull ItemStack stack) {
|
public TurtleRefuelEvent(ITurtleAccess turtle, ItemStack stack) {
|
||||||
super(turtle);
|
super(turtle);
|
||||||
|
|
||||||
Objects.requireNonNull(turtle, "turtle cannot be null");
|
Objects.requireNonNull(turtle, "turtle cannot be null");
|
||||||
@ -82,6 +81,6 @@ public class TurtleRefuelEvent extends TurtleEvent {
|
|||||||
* items to consume.
|
* items to consume.
|
||||||
* @return The amount of fuel gained.
|
* @return The amount of fuel gained.
|
||||||
*/
|
*/
|
||||||
int refuel(@Nonnull ITurtleAccess turtle, @Nonnull ItemStack stack, int slot, int limit);
|
int refuel(ITurtleAccess turtle, ItemStack stack, int slot, int limit);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user