rename to SimpleRegistry

This commit is contained in:
TropheusJ 2025-02-15 19:44:59 -05:00
parent 51b3860f21
commit 3c9bfef30e
17 changed files with 57 additions and 56 deletions

View file

@ -2,7 +2,7 @@ package com.simibubi.create;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.content.contraptions.behaviour.DoorMovingInteraction; import com.simibubi.create.content.contraptions.behaviour.DoorMovingInteraction;
import com.simibubi.create.content.contraptions.behaviour.LeverMovingInteraction; import com.simibubi.create.content.contraptions.behaviour.LeverMovingInteraction;
import com.simibubi.create.content.contraptions.behaviour.MovingInteractionBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovingInteractionBehaviour;
@ -15,7 +15,7 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public class AllInteractionBehaviours { public class AllInteractionBehaviours {
public static final AttachedRegistry<Block, MovingInteractionBehaviour> REGISTRY = AttachedRegistry.create(); public static final SimpleRegistry<Block, MovingInteractionBehaviour> REGISTRY = SimpleRegistry.create();
@Nullable @Nullable
public static MovingInteractionBehaviour getBehaviour(BlockState state) { public static MovingInteractionBehaviour getBehaviour(BlockState state) {
@ -32,8 +32,8 @@ public class AllInteractionBehaviours {
static void registerDefaults() { static void registerDefaults() {
REGISTRY.register(Blocks.LEVER, new LeverMovingInteraction()); REGISTRY.register(Blocks.LEVER, new LeverMovingInteraction());
REGISTRY.registerProvider(AttachedRegistry.Provider.forBlockTag(BlockTags.WOODEN_DOORS, new DoorMovingInteraction())); REGISTRY.registerProvider(SimpleRegistry.Provider.forBlockTag(BlockTags.WOODEN_DOORS, new DoorMovingInteraction()));
REGISTRY.registerProvider(AttachedRegistry.Provider.forBlockTag(BlockTags.WOODEN_TRAPDOORS, new TrapdoorMovingInteraction())); REGISTRY.registerProvider(SimpleRegistry.Provider.forBlockTag(BlockTags.WOODEN_TRAPDOORS, new TrapdoorMovingInteraction()));
REGISTRY.registerProvider(AttachedRegistry.Provider.forBlockTag(BlockTags.FENCE_GATES, new TrapdoorMovingInteraction())); REGISTRY.registerProvider(SimpleRegistry.Provider.forBlockTag(BlockTags.FENCE_GATES, new TrapdoorMovingInteraction()));
} }
} }

View file

@ -2,7 +2,7 @@ package com.simibubi.create;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.content.contraptions.behaviour.BellMovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.BellMovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.CampfireMovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.CampfireMovementBehaviour;
import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementBehaviour;
@ -15,7 +15,7 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
public class AllMovementBehaviours { public class AllMovementBehaviours {
public static final AttachedRegistry<Block, MovementBehaviour> REGISTRY = AttachedRegistry.create(); public static final SimpleRegistry<Block, MovementBehaviour> REGISTRY = SimpleRegistry.create();
@Nullable @Nullable
public static MovementBehaviour getBehaviour(BlockState state) { public static MovementBehaviour getBehaviour(BlockState state) {

View file

@ -3,7 +3,7 @@ package com.simibubi.create.api.contraption.storage;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType; import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType;
import com.simibubi.create.api.contraption.storage.item.MountedItemStorageType; import com.simibubi.create.api.contraption.storage.item.MountedItemStorageType;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.impl.contraption.storage.MountedStorageTypeRegistryImpl; import com.simibubi.create.impl.contraption.storage.MountedStorageTypeRegistryImpl;
import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.builders.BlockBuilder;
import com.tterrag.registrate.util.entry.RegistryEntry; import com.tterrag.registrate.util.entry.RegistryEntry;
@ -23,8 +23,8 @@ public class MountedStorageTypeRegistries {
Create.asResource("mounted_fluid_storage_type") Create.asResource("mounted_fluid_storage_type")
); );
public static final AttachedRegistry<Block, MountedItemStorageType<?>> ITEM_STORAGES = MountedStorageTypeRegistryImpl.ITEM_STORAGES; public static final SimpleRegistry<Block, MountedItemStorageType<?>> ITEM_STORAGES = MountedStorageTypeRegistryImpl.ITEM_STORAGES;
public static final AttachedRegistry<Block, MountedFluidStorageType<?>> FLUID_STORAGES = MountedStorageTypeRegistryImpl.FLUID_STORAGES; public static final SimpleRegistry<Block, MountedFluidStorageType<?>> FLUID_STORAGES = MountedStorageTypeRegistryImpl.FLUID_STORAGES;
/** /**
* @throws NullPointerException if called before registry registration * @throws NullPointerException if called before registry registration

View file

@ -2,7 +2,7 @@ package com.simibubi.create.api.contraption.storage.fluid.registrate;
import com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries; import com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries;
import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType; import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.tterrag.registrate.AbstractRegistrate; import com.tterrag.registrate.AbstractRegistrate;
import com.tterrag.registrate.builders.AbstractBuilder; import com.tterrag.registrate.builders.AbstractBuilder;
import com.tterrag.registrate.builders.BuilderCallback; import com.tterrag.registrate.builders.BuilderCallback;
@ -25,7 +25,7 @@ public class MountedFluidStorageTypeBuilder<T extends MountedFluidStorageType<?>
} }
public MountedFluidStorageTypeBuilder<T, P> registerTo(TagKey<Block> tag) { public MountedFluidStorageTypeBuilder<T, P> registerTo(TagKey<Block> tag) {
MountedStorageTypeRegistries.FLUID_STORAGES.registerProvider(AttachedRegistry.Provider.forBlockTag(tag, this.type)); MountedStorageTypeRegistries.FLUID_STORAGES.registerProvider(SimpleRegistry.Provider.forBlockTag(tag, this.type));
return this; return this;
} }

View file

@ -2,7 +2,7 @@ package com.simibubi.create.api.contraption.storage.item.registrate;
import com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries; import com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries;
import com.simibubi.create.api.contraption.storage.item.MountedItemStorageType; import com.simibubi.create.api.contraption.storage.item.MountedItemStorageType;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.tterrag.registrate.AbstractRegistrate; import com.tterrag.registrate.AbstractRegistrate;
import com.tterrag.registrate.builders.AbstractBuilder; import com.tterrag.registrate.builders.AbstractBuilder;
import com.tterrag.registrate.builders.BuilderCallback; import com.tterrag.registrate.builders.BuilderCallback;
@ -25,7 +25,7 @@ public class MountedItemStorageTypeBuilder<T extends MountedItemStorageType<?>,
} }
public MountedItemStorageTypeBuilder<T, P> registerTo(TagKey<Block> tag) { public MountedItemStorageTypeBuilder<T, P> registerTo(TagKey<Block> tag) {
MountedStorageTypeRegistries.ITEM_STORAGES.registerProvider(AttachedRegistry.Provider.forBlockTag(tag, this.type)); MountedStorageTypeRegistries.ITEM_STORAGES.registerProvider(SimpleRegistry.Provider.forBlockTag(tag, this.type));
return this; return this;
} }

View file

@ -1,6 +1,6 @@
package com.simibubi.create.api.contraption.transformable; package com.simibubi.create.api.contraption.transformable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.content.contraptions.StructureTransform; import com.simibubi.create.content.contraptions.StructureTransform;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
@ -13,8 +13,8 @@ import net.minecraft.world.level.block.state.BlockState;
* These interfaces are alternatives to the {@link ITransformableBlock} and {@link ITransformableBlockEntity} interfaces. * These interfaces are alternatives to the {@link ITransformableBlock} and {@link ITransformableBlockEntity} interfaces.
*/ */
public class MovedBlockTransformerRegistries { public class MovedBlockTransformerRegistries {
public static final AttachedRegistry<Block, BlockTransformer> BLOCK_TRANSFORMERS = AttachedRegistry.create(); public static final SimpleRegistry<Block, BlockTransformer> BLOCK_TRANSFORMERS = SimpleRegistry.create();
public static final AttachedRegistry<BlockEntityType<?>, BlockEntityTransformer> BLOCK_ENTITY_TRANSFORMERS = AttachedRegistry.create(); public static final SimpleRegistry<BlockEntityType<?>, BlockEntityTransformer> BLOCK_ENTITY_TRANSFORMERS = SimpleRegistry.create();
@FunctionalInterface @FunctionalInterface
public interface BlockTransformer { public interface BlockTransformer {

View file

@ -4,7 +4,7 @@ import java.util.function.Function;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.impl.registry.AttachedRegistryImpl; import com.simibubi.create.impl.registry.SimpleRegistryImpl;
import com.simibubi.create.impl.registry.TagProviderImpl; import com.simibubi.create.impl.registry.TagProviderImpl;
import net.minecraft.core.Holder; import net.minecraft.core.Holder;
@ -13,12 +13,13 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
/** /**
* A mapping of registered objects to something else. * A simple registry mapping between objects. Provides simple registration functionality, as well as lazy providers.
* This class is thread-safe, and may be safely used during parallel mod init. * This class is thread-safe, and may be safely used during parallel mod init.
*/ */
public interface AttachedRegistry<K, V> { public interface SimpleRegistry<K, V> {
/** /**
* Register an association between a key and a value. * Register an association between a key and a value.
* Direct registrations here always take priority over providers.
* @throws IllegalArgumentException if the object already has an associated value * @throws IllegalArgumentException if the object already has an associated value
*/ */
void register(K object, V value); void register(K object, V value);
@ -41,8 +42,8 @@ public interface AttachedRegistry<K, V> {
@Nullable @Nullable
V get(K object); V get(K object);
static <K, V> AttachedRegistry<K, V> create() { static <K, V> SimpleRegistry<K, V> create() {
return new AttachedRegistryImpl<>(); return new SimpleRegistryImpl<>();
} }
/** /**
@ -50,7 +51,7 @@ public interface AttachedRegistry<K, V> {
* associated value, all providers will be queried in reverse-registration order. * associated value, all providers will be queried in reverse-registration order.
* <p> * <p>
* The values returned by providers are cached so that repeated queries always return the same value. * The values returned by providers are cached so that repeated queries always return the same value.
* To invalidate the cache of a provider, call {@link AttachedRegistry#invalidateProvider(Provider)}. * To invalidate the cache of a provider, call {@link SimpleRegistry#invalidateProvider(Provider)}.
*/ */
@FunctionalInterface @FunctionalInterface
interface Provider<K, V> { interface Provider<K, V> {
@ -58,11 +59,11 @@ public interface AttachedRegistry<K, V> {
V get(K object); V get(K object);
/** /**
* Called by the AttachedRegistry this provider is registered to after it's registered. * Called by the SimpleRegistry this provider is registered to after it's registered.
* This is useful for behavior that should only happen if a provider is actually registered, * This is useful for behavior that should only happen if a provider is actually registered,
* such as registering event listeners. * such as registering event listeners.
*/ */
default void onRegister(AttachedRegistry<K, V> registry) { default void onRegister(SimpleRegistry<K, V> registry) {
} }
/** /**

View file

@ -1,6 +1,6 @@
package com.simibubi.create.api.schematic.nbt; package com.simibubi.create.api.schematic.nbt;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
@ -14,7 +14,7 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
* This is provided as an alternative to {@link IPartialSafeNBT}. * This is provided as an alternative to {@link IPartialSafeNBT}.
*/ */
public class SafeNbtWriterRegistry { public class SafeNbtWriterRegistry {
public static final AttachedRegistry<BlockEntityType<?>, SafeNbtWriter> REGISTRY = AttachedRegistry.create(); public static final SimpleRegistry<BlockEntityType<?>, SafeNbtWriter> REGISTRY = SimpleRegistry.create();
@FunctionalInterface @FunctionalInterface
public interface SafeNbtWriter { public interface SafeNbtWriter {

View file

@ -2,7 +2,7 @@ package com.simibubi.create.api.schematic.requirement;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.content.schematics.requirement.ItemRequirement; import com.simibubi.create.content.schematics.requirement.ItemRequirement;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
@ -24,9 +24,9 @@ import net.minecraft.world.level.block.state.BlockState;
* </ul> * </ul>
*/ */
public class SchematicRequirementRegistries { public class SchematicRequirementRegistries {
public static final AttachedRegistry<Block, BlockRequirement> BLOCKS = AttachedRegistry.create(); public static final SimpleRegistry<Block, BlockRequirement> BLOCKS = SimpleRegistry.create();
public static final AttachedRegistry<BlockEntityType<?>, BlockEntityRequirement> BLOCK_ENTITIES = AttachedRegistry.create(); public static final SimpleRegistry<BlockEntityType<?>, BlockEntityRequirement> BLOCK_ENTITIES = SimpleRegistry.create();
public static final AttachedRegistry<EntityType<?>, EntityRequirement> ENTITIES = AttachedRegistry.create(); public static final SimpleRegistry<EntityType<?>, EntityRequirement> ENTITIES = SimpleRegistry.create();
@FunctionalInterface @FunctionalInterface
public interface BlockRequirement { public interface BlockRequirement {

View file

@ -5,7 +5,7 @@ import java.util.function.Supplier;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.infrastructure.config.AllConfigs; import com.simibubi.create.infrastructure.config.AllConfigs;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
@ -17,7 +17,7 @@ import net.minecraftforge.common.extensions.IForgeBlock;
public enum ContraptionMovementSetting { public enum ContraptionMovementSetting {
MOVABLE, NO_PICKUP, UNMOVABLE; MOVABLE, NO_PICKUP, UNMOVABLE;
public static final AttachedRegistry<Block, Supplier<ContraptionMovementSetting>> REGISTRY = AttachedRegistry.create(); public static final SimpleRegistry<Block, Supplier<ContraptionMovementSetting>> REGISTRY = SimpleRegistry.create();
@Nullable @Nullable
public static ContraptionMovementSetting get(Block block) { public static ContraptionMovementSetting get(Block block) {

View file

@ -2,7 +2,7 @@ package com.simibubi.create.content.fluids.tank;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.AllTags.AllBlockTags;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel; import com.simibubi.create.content.processing.burner.BlazeBurnerBlock.HeatLevel;
import com.simibubi.create.foundation.utility.BlockHelper; import com.simibubi.create.foundation.utility.BlockHelper;
@ -16,7 +16,7 @@ public class BoilerHeaters {
public static final int PASSIVE_HEAT = 0; public static final int PASSIVE_HEAT = 0;
public static final int NO_HEAT = -1; public static final int NO_HEAT = -1;
public static final AttachedRegistry<Block, Heater> REGISTRY = AttachedRegistry.create(); public static final SimpleRegistry<Block, Heater> REGISTRY = SimpleRegistry.create();
public static final Heater PASSIVE_HEATER = (level, pos, state) -> BlockHelper.isNotUnheated(state) ? PASSIVE_HEAT : NO_HEAT; public static final Heater PASSIVE_HEATER = (level, pos, state) -> BlockHelper.isNotUnheated(state) ? PASSIVE_HEAT : NO_HEAT;
@ -44,7 +44,7 @@ public class BoilerHeaters {
return PASSIVE_HEAT; return PASSIVE_HEAT;
}); });
REGISTRY.registerProvider(AttachedRegistry.Provider.forBlockTag(AllBlockTags.PASSIVE_BOILER_HEATERS.tag, PASSIVE_HEATER)); REGISTRY.registerProvider(SimpleRegistry.Provider.forBlockTag(AllBlockTags.PASSIVE_BOILER_HEATERS.tag, PASSIVE_HEATER));
} }
@FunctionalInterface @FunctionalInterface

View file

@ -9,7 +9,7 @@ import java.util.Map;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.compat.Mods; import com.simibubi.create.compat.Mods;
import com.simibubi.create.content.redstone.displayLink.source.ComputerDisplaySource; import com.simibubi.create.content.redstone.displayLink.source.ComputerDisplaySource;
import com.simibubi.create.content.redstone.displayLink.source.DeathCounterDisplaySource; import com.simibubi.create.content.redstone.displayLink.source.DeathCounterDisplaySource;
@ -38,11 +38,11 @@ import net.minecraftforge.registries.ForgeRegistries;
public class AllDisplayBehaviours { public class AllDisplayBehaviours {
public static final Map<ResourceLocation, DisplayBehaviour> GATHERER_BEHAVIOURS = new HashMap<>(); public static final Map<ResourceLocation, DisplayBehaviour> GATHERER_BEHAVIOURS = new HashMap<>();
private static final AttachedRegistry<Block, List<DisplaySource>> SOURCES_BY_BLOCK = AttachedRegistry.create(); private static final SimpleRegistry<Block, List<DisplaySource>> SOURCES_BY_BLOCK = SimpleRegistry.create();
private static final AttachedRegistry<BlockEntityType<?>, List<DisplaySource>> SOURCES_BY_BLOCK_ENTITY = AttachedRegistry.create(); private static final SimpleRegistry<BlockEntityType<?>, List<DisplaySource>> SOURCES_BY_BLOCK_ENTITY = SimpleRegistry.create();
private static final AttachedRegistry<Block, DisplayTarget> TARGETS_BY_BLOCK = AttachedRegistry.create(); private static final SimpleRegistry<Block, DisplayTarget> TARGETS_BY_BLOCK = SimpleRegistry.create();
private static final AttachedRegistry<BlockEntityType<?>, DisplayTarget> TARGETS_BY_BLOCK_ENTITY = AttachedRegistry.create(); private static final SimpleRegistry<BlockEntityType<?>, DisplayTarget> TARGETS_BY_BLOCK_ENTITY = SimpleRegistry.create();
public static DisplayBehaviour register(ResourceLocation id, DisplayBehaviour behaviour) { public static DisplayBehaviour register(ResourceLocation id, DisplayBehaviour behaviour) {
behaviour.id = id; behaviour.id = id;

View file

@ -5,7 +5,7 @@ import java.util.function.Function;
import java.util.function.UnaryOperator; import java.util.function.UnaryOperator;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import com.simibubi.create.compat.Mods; import com.simibubi.create.compat.Mods;
import com.simibubi.create.compat.betterend.BetterEndPortalCompat; import com.simibubi.create.compat.betterend.BetterEndPortalCompat;
import com.simibubi.create.content.contraptions.glue.SuperGlueEntity; import com.simibubi.create.content.contraptions.glue.SuperGlueEntity;
@ -49,7 +49,7 @@ public class AllPortalTracks {
/** /**
* Registry mapping portal blocks to their respective {@link PortalTrackProvider}s. * Registry mapping portal blocks to their respective {@link PortalTrackProvider}s.
*/ */
public static final AttachedRegistry<Block, PortalTrackProvider> REGISTRY = AttachedRegistry.create(); public static final SimpleRegistry<Block, PortalTrackProvider> REGISTRY = SimpleRegistry.create();
/** /**
* Registers a portal track integration for a given block identified by its {@link ResourceLocation}, if it exists. * Registers a portal track integration for a given block identified by its {@link ResourceLocation}, if it exists.

View file

@ -2,7 +2,7 @@ package com.simibubi.create.foundation.item;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
@ -10,7 +10,7 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent;
@FunctionalInterface @FunctionalInterface
public interface TooltipModifier { public interface TooltipModifier {
AttachedRegistry<Item, TooltipModifier> REGISTRY = AttachedRegistry.create(); SimpleRegistry<Item, TooltipModifier> REGISTRY = SimpleRegistry.create();
TooltipModifier EMPTY = new TooltipModifier() { TooltipModifier EMPTY = new TooltipModifier() {
@Override @Override

View file

@ -10,7 +10,7 @@ import com.simibubi.create.AllTags;
import com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries; import com.simibubi.create.api.contraption.storage.MountedStorageTypeRegistries;
import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType; import com.simibubi.create.api.contraption.storage.fluid.MountedFluidStorageType;
import com.simibubi.create.api.contraption.storage.item.MountedItemStorageType; import com.simibubi.create.api.contraption.storage.item.MountedItemStorageType;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import net.minecraft.Util; import net.minecraft.Util;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
@ -26,12 +26,12 @@ import net.minecraftforge.registries.RegistryBuilder;
@ApiStatus.Internal @ApiStatus.Internal
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class MountedStorageTypeRegistryImpl { public class MountedStorageTypeRegistryImpl {
public static final AttachedRegistry<Block, MountedItemStorageType<?>> ITEM_STORAGES = Util.make(() -> { public static final SimpleRegistry<Block, MountedItemStorageType<?>> ITEM_STORAGES = Util.make(() -> {
AttachedRegistry<Block, MountedItemStorageType<?>> registry = AttachedRegistry.create(); SimpleRegistry<Block, MountedItemStorageType<?>> registry = SimpleRegistry.create();
registry.registerProvider(ItemFallbackProvider.INSTANCE); registry.registerProvider(ItemFallbackProvider.INSTANCE);
return registry; return registry;
}); });
public static final AttachedRegistry<Block, MountedFluidStorageType<?>> FLUID_STORAGES = AttachedRegistry.create(); public static final SimpleRegistry<Block, MountedFluidStorageType<?>> FLUID_STORAGES = SimpleRegistry.create();
private static IForgeRegistry<MountedItemStorageType<?>> itemsRegistry; private static IForgeRegistry<MountedItemStorageType<?>> itemsRegistry;
private static IForgeRegistry<MountedFluidStorageType<?>> fluidsRegistry; private static IForgeRegistry<MountedFluidStorageType<?>> fluidsRegistry;
@ -58,7 +58,7 @@ public class MountedStorageTypeRegistryImpl {
); );
} }
private enum ItemFallbackProvider implements AttachedRegistry.Provider<Block, MountedItemStorageType<?>> { private enum ItemFallbackProvider implements SimpleRegistry.Provider<Block, MountedItemStorageType<?>> {
INSTANCE; INSTANCE;
@Override @Override
@ -70,7 +70,7 @@ public class MountedStorageTypeRegistryImpl {
} }
@Override @Override
public void onRegister(AttachedRegistry<Block, MountedItemStorageType<?>> registry) { public void onRegister(SimpleRegistry<Block, MountedItemStorageType<?>> registry) {
MinecraftForge.EVENT_BUS.addListener((TagsUpdatedEvent event) -> { MinecraftForge.EVENT_BUS.addListener((TagsUpdatedEvent event) -> {
if (event.shouldUpdateStaticData()) { if (event.shouldUpdateStaticData()) {
registry.invalidateProvider(this); registry.invalidateProvider(this);

View file

@ -10,10 +10,10 @@ import java.util.Set;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
// methods are synchronized since registrations can happen during parallel mod loading // methods are synchronized since registrations can happen during parallel mod loading
public class AttachedRegistryImpl<K, V> implements AttachedRegistry<K, V> { public class SimpleRegistryImpl<K, V> implements SimpleRegistry<K, V> {
private static final Object nullMarker = new Object(); private static final Object nullMarker = new Object();
private final Map<K, V> registrations = new IdentityHashMap<>(); private final Map<K, V> registrations = new IdentityHashMap<>();

View file

@ -4,7 +4,7 @@ import java.util.function.Function;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import com.simibubi.create.api.registry.AttachedRegistry; import com.simibubi.create.api.registry.SimpleRegistry;
import net.minecraft.core.Holder; import net.minecraft.core.Holder;
import net.minecraft.tags.TagKey; import net.minecraft.tags.TagKey;
@ -12,7 +12,7 @@ import net.minecraft.tags.TagKey;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.TagsUpdatedEvent; import net.minecraftforge.event.TagsUpdatedEvent;
public class TagProviderImpl<K, V> implements AttachedRegistry.Provider<K, V> { public class TagProviderImpl<K, V> implements SimpleRegistry.Provider<K, V> {
private final TagKey<K> tag; private final TagKey<K> tag;
private final Function<K, Holder<K>> holderGetter; private final Function<K, Holder<K>> holderGetter;
private final V value; private final V value;
@ -31,7 +31,7 @@ public class TagProviderImpl<K, V> implements AttachedRegistry.Provider<K, V> {
} }
@Override @Override
public void onRegister(AttachedRegistry<K, V> registry) { public void onRegister(SimpleRegistry<K, V> registry) {
MinecraftForge.EVENT_BUS.addListener((TagsUpdatedEvent event) -> { MinecraftForge.EVENT_BUS.addListener((TagsUpdatedEvent event) -> {
if (event.shouldUpdateStaticData()) { if (event.shouldUpdateStaticData()) {
registry.invalidateProvider(this); registry.invalidateProvider(this);