mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-03-04 06:44:40 +01:00
rename to SimpleRegistry
This commit is contained in:
parent
51b3860f21
commit
3c9bfef30e
17 changed files with 57 additions and 56 deletions
|
@ -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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -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 {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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<>();
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue