Interface TurtleUpgradeSerialiser<T extends ITurtleUpgrade>
- Type Parameters:
T- The type of turtle upgrade this is responsible for serialising.
- All Superinterfaces:
UpgradeSerialiser<T>
ITurtleUpgrade from disk and reads/writes it to a network packet.
These should be registered in a Registry while the game is loading, much like RecipeSerializers.
If your turtle upgrade doesn't have any associated configurable parameters (like most upgrades), you can use
simple(Function) or simpleWithCustomItem(BiFunction) to create a basic upgrade serialiser.
Example (Forge)
static final DeferredRegister<TurtleUpgradeSerialiser<?>> SERIALISERS = DeferredRegister.create( TurtleUpgradeSerialiser.TYPE, "my_mod" );
// Register a new upgrade serialiser called "my_upgrade".
public static final RegistryObject<TurtleUpgradeSerialiser<MyUpgrade>> MY_UPGRADE =
SERIALISERS.register( "my_upgrade", () -> TurtleUpgradeSerialiser.simple( MyUpgrade::new ) );
// Then in your constructor
SERIALISERS.register( bus );
We can then define a new upgrade using JSON by placing the following in data/<my_mod>/computercraft/turtle_upgrades/<my_upgrade_id>.json}.
{
"type": my_mod:my_upgrade",
}
Finally, we need to register a model for our upgrade. This is done with
ComputerCraftAPIClient.registerTurtleUpgradeModeller(dan200.computercraft.api.turtle.TurtleUpgradeSerialiser<T>, dan200.computercraft.api.client.turtle.TurtleUpgradeModeller<T>):
// Register our model inside FMLClientSetupEvent
ComputerCraftAPIClient.registerTurtleUpgradeModeller(MY_UPGRADE.get(), TurtleUpgradeModeller.flatItem())
TurtleUpgradeDataProvider provides a data provider to aid with generating these JSON files.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final net.minecraft.resources.ResourceKey<net.minecraft.core.Registry<TurtleUpgradeSerialiser<?>>>Deprecated, for removal: This API element is subject to removal in a future version. -
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic net.minecraft.resources.ResourceKey<net.minecraft.core.Registry<TurtleUpgradeSerialiser<?>>>The ID for the associated registry.static <T extends ITurtleUpgrade>
TurtleUpgradeSerialiser<T>Create an upgrade serialiser for a simple upgrade.static <T extends ITurtleUpgrade>
TurtleUpgradeSerialiser<T>simpleWithCustomItem(BiFunction<net.minecraft.resources.ResourceLocation, net.minecraft.world.item.ItemStack, T> factory) Create an upgrade serialiser for a simple upgrade whose crafting item can be specified.Methods inherited from interface dan200.computercraft.api.upgrades.UpgradeSerialiser
fromJson, fromNetwork, toNetwork
-
Field Details
-
REGISTRY_ID
@Deprecated(forRemoval=true) static final net.minecraft.resources.ResourceKey<net.minecraft.core.Registry<TurtleUpgradeSerialiser<?>>> REGISTRY_IDDeprecated, for removal: This API element is subject to removal in a future version.UseregistryId()instead.The ID for the associated registry.
-
-
Method Details
-
registryId
static net.minecraft.resources.ResourceKey<net.minecraft.core.Registry<TurtleUpgradeSerialiser<?>>> registryId()The ID for the associated registry.- Returns:
- The registry key.
-
simple
static <T extends ITurtleUpgrade> TurtleUpgradeSerialiser<T> simple(Function<net.minecraft.resources.ResourceLocation, T> factory) Create an upgrade serialiser for a simple upgrade. This is similar to aSimpleCraftingRecipeSerializer, but for upgrades.If you might want to vary the item, it's suggested you use
simpleWithCustomItem(BiFunction)instead.- Type Parameters:
T- The type of the generated upgrade.- Parameters:
factory- Generate a new upgrade with a specific ID.- Returns:
- The serialiser for this upgrade
-
simpleWithCustomItem
static <T extends ITurtleUpgrade> TurtleUpgradeSerialiser<T> simpleWithCustomItem(BiFunction<net.minecraft.resources.ResourceLocation, net.minecraft.world.item.ItemStack, T> factory) Create an upgrade serialiser for a simple upgrade whose crafting item can be specified.- Type Parameters:
T- The type of the generated upgrade.- Parameters:
factory- Generate a new upgrade with a specific ID and crafting item. The returned upgrade'sUpgradeBase.getCraftingItem()MUST equal the provided item.- Returns:
- The serialiser for this upgrade.
- See Also:
-
registryId()instead.