Switch to plain old nbt, some annotations
This commit is contained in:
parent
d695bcfa85
commit
ea96bc9af3
8 changed files with 89 additions and 86 deletions
|
@ -129,4 +129,14 @@ public class DetachedRiftBlockEntity extends RiftBlockEntity {
|
||||||
public void setUnregisterDisabled(boolean unregisterDisabled) {
|
public void setUnregisterDisabled(boolean unregisterDisabled) {
|
||||||
this.unregisterDisabled = unregisterDisabled;
|
this.unregisterDisabled = unregisterDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLocked() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setLocked(boolean locked) {
|
||||||
|
// NO-OP
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import net.minecraft.util.JsonHelper;
|
||||||
import net.minecraft.util.math.EulerAngle;
|
import net.minecraft.util.math.EulerAngle;
|
||||||
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
|
import org.dimdev.dimdoors.DimensionalDoorsInitializer;
|
||||||
import org.dimdev.dimdoors.block.CoordinateTransformerBlock;
|
import org.dimdev.dimdoors.block.CoordinateTransformerBlock;
|
||||||
|
import org.dimdev.dimdoors.item.RiftKeyItem;
|
||||||
import org.dimdev.dimdoors.rift.registry.Rift;
|
import org.dimdev.dimdoors.rift.registry.Rift;
|
||||||
import org.dimdev.dimdoors.util.EntityUtils;
|
import org.dimdev.dimdoors.util.EntityUtils;
|
||||||
import org.dimdev.dimdoors.util.TeleportUtil;
|
import org.dimdev.dimdoors.util.TeleportUtil;
|
||||||
|
@ -52,16 +53,21 @@ public class EntranceRiftBlockEntity extends RiftBlockEntity {
|
||||||
if (this.isLocked()) {
|
if (this.isLocked()) {
|
||||||
if (entity instanceof LivingEntity) {
|
if (entity instanceof LivingEntity) {
|
||||||
ItemStack stack = ((LivingEntity) entity).getStackInHand(((LivingEntity) entity).getActiveHand());
|
ItemStack stack = ((LivingEntity) entity).getStackInHand(((LivingEntity) entity).getActiveHand());
|
||||||
RiftKeyIdsComponent component = RiftKeyIdsComponent.get(stack);
|
|
||||||
Rift rift = this.asRift();
|
Rift rift = this.asRift();
|
||||||
if (!component.hasId(rift.getId())) {
|
|
||||||
|
if (RiftKeyItem.has(stack, rift.getId())) {
|
||||||
|
return innerTeleport(entity);
|
||||||
|
}
|
||||||
|
|
||||||
EntityUtils.chat(entity, new TranslatableText("rifts.isLocked"));
|
EntityUtils.chat(entity, new TranslatableText("rifts.isLocked"));
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return false;
|
return innerTeleport(entity);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean innerTeleport(Entity entity) {
|
||||||
boolean status = super.teleport(entity);
|
boolean status = super.teleport(entity);
|
||||||
|
|
||||||
if (this.riftStateChanged && !this.data.isAlwaysDelete()) {
|
if (this.riftStateChanged && !this.data.isAlwaysDelete()) {
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
package org.dimdev.dimdoors.item;
|
package org.dimdev.dimdoors.item;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.dimdev.dimdoors.block.RiftProvider;
|
import org.dimdev.dimdoors.block.RiftProvider;
|
||||||
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
|
import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity;
|
||||||
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
|
import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
|
||||||
|
import org.dimdev.dimdoors.mixin.ListTagAccessor;
|
||||||
import org.dimdev.dimdoors.rift.registry.Rift;
|
import org.dimdev.dimdoors.rift.registry.Rift;
|
||||||
import org.dimdev.dimdoors.util.EntityUtils;
|
import org.dimdev.dimdoors.util.EntityUtils;
|
||||||
import org.dimdev.dimdoors.util.Location;
|
import org.dimdev.dimdoors.util.Location;
|
||||||
import org.dimdev.dimdoors.world.level.component.RiftKeyIdsComponent;
|
|
||||||
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
|
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -19,12 +21,16 @@ import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.ItemUsageContext;
|
import net.minecraft.item.ItemUsageContext;
|
||||||
|
import net.minecraft.nbt.IntArrayTag;
|
||||||
import net.minecraft.text.LiteralText;
|
import net.minecraft.text.LiteralText;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
import net.minecraft.text.TranslatableText;
|
import net.minecraft.text.TranslatableText;
|
||||||
import net.minecraft.util.ActionResult;
|
import net.minecraft.util.ActionResult;
|
||||||
|
import net.minecraft.util.dynamic.DynamicSerializableUuid;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import net.fabricmc.fabric.api.util.NbtType;
|
||||||
|
|
||||||
public class RiftKeyItem extends Item {
|
public class RiftKeyItem extends Item {
|
||||||
public RiftKeyItem(Settings settings) {
|
public RiftKeyItem(Settings settings) {
|
||||||
super(settings);
|
super(settings);
|
||||||
|
@ -32,11 +38,12 @@ public class RiftKeyItem extends Item {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip, TooltipContext context) {
|
public void appendTooltip(ItemStack stack, @Nullable World world, List<Text> tooltip, TooltipContext context) {
|
||||||
RiftKeyIdsComponent component = RiftKeyIdsComponent.get(stack);
|
if (isEmpty(stack)) {
|
||||||
if (context.isAdvanced() && !component.isEmpty()) {
|
tooltip.add(new TranslatableText("item.dimdoors.rift_key.no_links"));
|
||||||
|
} else if (context.isAdvanced()) {
|
||||||
tooltip.add(LiteralText.EMPTY);
|
tooltip.add(LiteralText.EMPTY);
|
||||||
tooltip.add(new TranslatableText("item.dimdoors.rift_key.ids"));
|
tooltip.add(new TranslatableText("item.dimdoors.rift_key.ids"));
|
||||||
for (UUID id : component.getIds()) {
|
for (UUID id : getIds(stack)) {
|
||||||
tooltip.add(new LiteralText(" " + id.toString()));
|
tooltip.add(new LiteralText(" " + id.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,7 +52,12 @@ public class RiftKeyItem extends Item {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasGlint(ItemStack stack) {
|
public boolean hasGlint(ItemStack stack) {
|
||||||
return RiftKeyIdsComponent.get(stack).isEmpty();
|
return !isEmpty(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shouldSyncTagToClient() {
|
||||||
|
return super.shouldSyncTagToClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -53,6 +65,13 @@ public class RiftKeyItem extends Item {
|
||||||
return 30;
|
return 30;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getDefaultStack() {
|
||||||
|
ItemStack stack = super.getDefaultStack();
|
||||||
|
stack.putSubTag("Ids", ListTagAccessor.createListTag(new ArrayList<>(), (byte) NbtType.INT_ARRAY));
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult useOnBlock(ItemUsageContext context) {
|
public ActionResult useOnBlock(ItemUsageContext context) {
|
||||||
if (context.getWorld().isClient) {
|
if (context.getWorld().isClient) {
|
||||||
|
@ -61,7 +80,6 @@ public class RiftKeyItem extends Item {
|
||||||
PlayerEntity player = context.getPlayer();
|
PlayerEntity player = context.getPlayer();
|
||||||
BlockState state = context.getWorld().getBlockState(context.getBlockPos());
|
BlockState state = context.getWorld().getBlockState(context.getBlockPos());
|
||||||
if (player != null && state.getBlock() instanceof RiftProvider && player.isSneaky()) {
|
if (player != null && state.getBlock() instanceof RiftProvider && player.isSneaky()) {
|
||||||
RiftKeyIdsComponent component = RiftKeyIdsComponent.get(context.getStack());
|
|
||||||
RiftBlockEntity riftBlockEntity = ((RiftProvider<?>) state.getBlock()).getRift(context.getWorld(), context.getBlockPos(), state);
|
RiftBlockEntity riftBlockEntity = ((RiftProvider<?>) state.getBlock()).getRift(context.getWorld(), context.getBlockPos(), state);
|
||||||
if (riftBlockEntity.isDetached()) {
|
if (riftBlockEntity.isDetached()) {
|
||||||
return super.useOnBlock(context);
|
return super.useOnBlock(context);
|
||||||
|
@ -69,17 +87,17 @@ public class RiftKeyItem extends Item {
|
||||||
EntranceRiftBlockEntity entranceRiftBlockEntity = ((EntranceRiftBlockEntity) riftBlockEntity);
|
EntranceRiftBlockEntity entranceRiftBlockEntity = ((EntranceRiftBlockEntity) riftBlockEntity);
|
||||||
Rift rift = DimensionalRegistry.getRiftRegistry().getRift(new Location(entranceRiftBlockEntity.getWorld().getRegistryKey(), entranceRiftBlockEntity.getPos()));
|
Rift rift = DimensionalRegistry.getRiftRegistry().getRift(new Location(entranceRiftBlockEntity.getWorld().getRegistryKey(), entranceRiftBlockEntity.getPos()));
|
||||||
if (entranceRiftBlockEntity.isLocked()) {
|
if (entranceRiftBlockEntity.isLocked()) {
|
||||||
if (!component.remove(rift.getId())) {
|
if (tryRemove(context.getStack(), rift.getId())) {
|
||||||
EntityUtils.chat(player, new TranslatableText("rifts.cantUnlock"));
|
|
||||||
} else {
|
|
||||||
entranceRiftBlockEntity.setLocked(false);
|
entranceRiftBlockEntity.setLocked(false);
|
||||||
entranceRiftBlockEntity.markDirty();
|
entranceRiftBlockEntity.markDirty();
|
||||||
EntityUtils.chat(player, new TranslatableText("rifts.unlocked"));
|
EntityUtils.chat(player, new TranslatableText("rifts.unlocked"));
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
|
} else {
|
||||||
|
EntityUtils.chat(player, new TranslatableText("rifts.cantUnlock"));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
entranceRiftBlockEntity.setLocked(true);
|
entranceRiftBlockEntity.setLocked(true);
|
||||||
component.addId(rift.getId());
|
add(context.getStack(), rift.getId());
|
||||||
entranceRiftBlockEntity.markDirty();
|
entranceRiftBlockEntity.markDirty();
|
||||||
EntityUtils.chat(player, new TranslatableText("rifts.locked"));
|
EntityUtils.chat(player, new TranslatableText("rifts.locked"));
|
||||||
return ActionResult.SUCCESS;
|
return ActionResult.SUCCESS;
|
||||||
|
@ -87,4 +105,32 @@ public class RiftKeyItem extends Item {
|
||||||
}
|
}
|
||||||
return super.useOnBlock(context);
|
return super.useOnBlock(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean tryRemove(ItemStack stack, UUID id) {
|
||||||
|
IntArrayTag arrayTag = new IntArrayTag(DynamicSerializableUuid.toIntArray(id));
|
||||||
|
return stack.getOrCreateTag().getList("Ids", NbtType.LIST).remove(arrayTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void add(ItemStack stack, UUID id) {
|
||||||
|
IntArrayTag arrayTag = new IntArrayTag(DynamicSerializableUuid.toIntArray(id));
|
||||||
|
if (!has(stack, id)) stack.getOrCreateTag().getList("Ids", NbtType.LIST).add(arrayTag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean has(ItemStack stack, UUID id) {
|
||||||
|
return stack.getOrCreateTag().getList("Ids", NbtType.INT_ARRAY).contains(new IntArrayTag(DynamicSerializableUuid.toIntArray(id)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isEmpty(ItemStack stack) {
|
||||||
|
return stack.getOrCreateTag().getList("Ids", NbtType.INT_ARRAY).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<UUID> getIds(ItemStack stack) {
|
||||||
|
return stack.getOrCreateTag()
|
||||||
|
.getList("ids", NbtType.INT_ARRAY)
|
||||||
|
.stream()
|
||||||
|
.map(IntArrayTag.class::cast)
|
||||||
|
.map(IntArrayTag::getIntArray)
|
||||||
|
.map(DynamicSerializableUuid::toUuid)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
package org.dimdev.dimdoors.util.math;
|
package org.dimdev.dimdoors.util.math;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
import net.minecraft.util.Pair;
|
import net.minecraft.util.Pair;
|
||||||
|
@ -9,6 +15,7 @@ import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import net.minecraft.util.math.MathHelper;
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
public interface Equation {
|
public interface Equation {
|
||||||
double FALSE = 0d;
|
double FALSE = 0d;
|
||||||
double TRUE = 1d;
|
double TRUE = 1d;
|
||||||
|
@ -132,7 +139,7 @@ public interface Equation {
|
||||||
throw new EquationParseException("\"" + equationString + "\" could not be parsed");
|
throw new EquationParseException("\"" + equationString + "\" could not be parsed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
private interface EquationParser {
|
private interface EquationParser {
|
||||||
Optional<Equation> tryParse(String toParse) throws EquationParseException;
|
Optional<Equation> tryParse(String toParse) throws EquationParseException;
|
||||||
}
|
}
|
||||||
|
@ -240,7 +247,7 @@ public interface Equation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FunctionalInterface
|
||||||
private interface TriFunction<T, U, V, R> {
|
private interface TriFunction<T, U, V, R> {
|
||||||
R apply(T t, U u, V v);
|
R apply(T t, U u, V v);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,14 +13,12 @@ import dev.onyxstudios.cca.api.v3.level.LevelComponentInitializer;
|
||||||
import org.dimdev.dimdoors.item.ModItems;
|
import org.dimdev.dimdoors.item.ModItems;
|
||||||
import org.dimdev.dimdoors.world.level.component.ChunkLazilyGeneratedComponent;
|
import org.dimdev.dimdoors.world.level.component.ChunkLazilyGeneratedComponent;
|
||||||
import org.dimdev.dimdoors.world.level.component.CounterComponent;
|
import org.dimdev.dimdoors.world.level.component.CounterComponent;
|
||||||
import org.dimdev.dimdoors.world.level.component.RiftKeyIdsComponent;
|
|
||||||
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
|
import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry;
|
||||||
|
|
||||||
@SuppressWarnings("UnstableApiUsage")
|
@SuppressWarnings("UnstableApiUsage")
|
||||||
public class DimensionalDoorsComponents implements LevelComponentInitializer, ItemComponentInitializer, ChunkComponentInitializer {
|
public class DimensionalDoorsComponents implements LevelComponentInitializer, ItemComponentInitializer, ChunkComponentInitializer {
|
||||||
public static final ComponentKey<DimensionalRegistry> DIMENSIONAL_REGISTRY_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:dimensional_registry"), DimensionalRegistry.class);
|
public static final ComponentKey<DimensionalRegistry> DIMENSIONAL_REGISTRY_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:dimensional_registry"), DimensionalRegistry.class);
|
||||||
public static final ComponentKey<CounterComponent> COUNTER_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:counter"), CounterComponent.class);
|
public static final ComponentKey<CounterComponent> COUNTER_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:counter"), CounterComponent.class);
|
||||||
public static final ComponentKey<RiftKeyIdsComponent> RIFT_KEY_IDS_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:rift_key_ids"), RiftKeyIdsComponent.class);
|
|
||||||
public static final ComponentKey<ChunkLazilyGeneratedComponent> CHUNK_LAZILY_GENERATED_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:chunk_lazily_generated"), ChunkLazilyGeneratedComponent.class);
|
public static final ComponentKey<ChunkLazilyGeneratedComponent> CHUNK_LAZILY_GENERATED_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:chunk_lazily_generated"), ChunkLazilyGeneratedComponent.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -31,7 +29,6 @@ public class DimensionalDoorsComponents implements LevelComponentInitializer, It
|
||||||
@Override
|
@Override
|
||||||
public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) {
|
public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) {
|
||||||
registry.register(ModItems.RIFT_CONFIGURATION_TOOL, COUNTER_COMPONENT_KEY, CounterComponent::new);
|
registry.register(ModItems.RIFT_CONFIGURATION_TOOL, COUNTER_COMPONENT_KEY, CounterComponent::new);
|
||||||
registry.register(ModItems.RIFT_KEY, RIFT_KEY_IDS_COMPONENT_KEY, RiftKeyIdsComponent::new);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
package org.dimdev.dimdoors.world.level.component;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
import dev.onyxstudios.cca.api.v3.item.ItemComponent;
|
|
||||||
import org.dimdev.dimdoors.mixin.ListTagAccessor;
|
|
||||||
import org.dimdev.dimdoors.world.level.DimensionalDoorsComponents;
|
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.nbt.IntArrayTag;
|
|
||||||
import net.minecraft.nbt.ListTag;
|
|
||||||
import net.minecraft.nbt.NbtOps;
|
|
||||||
import net.minecraft.util.dynamic.DynamicSerializableUuid;
|
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.util.NbtType;
|
|
||||||
|
|
||||||
public class RiftKeyIdsComponent extends ItemComponent {
|
|
||||||
public RiftKeyIdsComponent(ItemStack stack) {
|
|
||||||
super(stack);
|
|
||||||
if (!hasTag("ids")) {
|
|
||||||
this.putList("ids", ListTagAccessor.createListTag(new ArrayList<>(), (byte) NbtType.INT_ARRAY));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addId(UUID uuid) {
|
|
||||||
if (!hasId(uuid)) this.getList("ids", NbtType.INT_ARRAY).add(new IntArrayTag(DynamicSerializableUuid.toIntArray(uuid)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addAll(Iterable<UUID> uuids) {
|
|
||||||
uuids.forEach(this::addId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasId(UUID uuid) {
|
|
||||||
return this.getList("ids", NbtType.INT_ARRAY).contains(new IntArrayTag(DynamicSerializableUuid.toIntArray(uuid)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean remove(UUID uuid) {
|
|
||||||
return this.getList("ids", NbtType.INT_ARRAY).remove(new IntArrayTag(DynamicSerializableUuid.toIntArray(uuid)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isEmpty() {
|
|
||||||
return this.getList("ids", NbtType.INT_ARRAY).isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<UUID> getIds() {
|
|
||||||
return this.getList("ids", NbtType.INT_ARRAY)
|
|
||||||
.stream()
|
|
||||||
.map(IntArrayTag.class::cast)
|
|
||||||
.map(IntArrayTag::getIntArray)
|
|
||||||
.map(DynamicSerializableUuid::toUuid)
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
|
|
||||||
public static RiftKeyIdsComponent get(ItemStack stack) {
|
|
||||||
return DimensionalDoorsComponents.RIFT_KEY_IDS_COMPONENT_KEY.get(stack);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -26,7 +26,7 @@ import org.dimdev.dimdoors.world.pocket.PrivateRegistry;
|
||||||
import static org.dimdev.dimdoors.DimensionalDoorsInitializer.getServer;
|
import static org.dimdev.dimdoors.DimensionalDoorsInitializer.getServer;
|
||||||
|
|
||||||
public class DimensionalRegistry implements ComponentV3 {
|
public class DimensionalRegistry implements ComponentV3 {
|
||||||
public static final int RIFT_DATA_VERSION = 1; // Increment this number every time
|
public static final int RIFT_DATA_VERSION = 1; // Increment this number every time a new schema is added
|
||||||
private Map<RegistryKey<World>, PocketDirectory> pocketRegistry = new HashMap<>();
|
private Map<RegistryKey<World>, PocketDirectory> pocketRegistry = new HashMap<>();
|
||||||
private RiftRegistry riftRegistry = new RiftRegistry();
|
private RiftRegistry riftRegistry = new RiftRegistry();
|
||||||
private PrivateRegistry privateRegistry = new PrivateRegistry();
|
private PrivateRegistry privateRegistry = new PrivateRegistry();
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
"cardinal-components": [
|
"cardinal-components": [
|
||||||
"dimdoors:dimensional_registry",
|
"dimdoors:dimensional_registry",
|
||||||
"dimdoors:counter",
|
"dimdoors:counter",
|
||||||
"dimdoors:rift_key_ids",
|
|
||||||
"dimdoors:chunk_lazily_generated"
|
"dimdoors:chunk_lazily_generated"
|
||||||
],
|
],
|
||||||
"waila:plugins": {
|
"waila:plugins": {
|
||||||
|
|
Loading…
Reference in a new issue