Merge remote-tracking branch 'origin/1.17' into 1.17

This commit is contained in:
CreepyCre 2021-02-16 03:50:36 +01:00
commit 9d2c22bdf9
55 changed files with 691 additions and 35 deletions

View file

@ -84,7 +84,11 @@ dependencies {
includeCompile("io.github.BoogieMonster1O1", "OpenWorlds", "c57e3ef") includeCompile("io.github.BoogieMonster1O1", "OpenWorlds", "c57e3ef")
includeCompile("io.github.cottonmc", "LibGui", "3.3.2+1.16.4") includeCompile("io.github.cottonmc", "LibGui", "3.3.2+1.16.4")
includeCompile("me.shedaniel.cloth", "config-2", "5.0.0") includeCompile("me.shedaniel.cloth", "config-2", "5.0.0")
includeCompile("io.github.onyxstudios", "Cardinal-Components-API", "3.0.0-nightly.20w48a") includeCompile("io.github.onyxstudios.Cardinal-Components-API", "cardinal-components-base", "3.0.0-nightly.21w06a")
includeCompile("io.github.onyxstudios.Cardinal-Components-API", "cardinal-components-item", "3.0.0-nightly.21w06a")
includeCompile("io.github.onyxstudios.Cardinal-Components-API", "cardinal-components-level", "3.0.0-nightly.21w06a")
includeCompile("io.github.onyxstudios.Cardinal-Components-API", "cardinal-components-util", "3.0.0-nightly.21w06a")
includeCompile("io.github.onyxstudios.Cardinal-Components-API", "cardinal-components-world", "3.0.0-nightly.21w06a")
includeCompile("me.sargunvohra.mcmods", "autoconfig1u", "3.3.1") includeCompile("me.sargunvohra.mcmods", "autoconfig1u", "3.3.1")
includeCompile("dev.hephaestus", "seedy-behavior", "1.0.1") includeCompile("dev.hephaestus", "seedy-behavior", "1.0.1")
@ -105,7 +109,7 @@ archivesBaseName = "DimensionalDoors"
static def computeVersion(String version) { static def computeVersion(String version) {
if (version.contains("alpha")) { if (version.contains("alpha")) {
return version + "." + Calendar.getInstance().getTime().format("dd.MM.yyyy") return version + "-" + Calendar.getInstance().getTime().format("dd.MM.yyyy")
} }
return version return version
} }
@ -138,7 +142,7 @@ curseforge {
} }
project { project {
id = '284876' id = '284876'
changelog = 'This is a test release. Please back up your worlds before loading this mod. A changelog can be found at https://github.com/DimensionalDevelopment/DimDoors/commits/1.17' changelog = 'FOR TESTING ONLY. A changelog can be found at https://github.com/DimensionalDevelopment/DimDoors/commits/1.17'
releaseType = 'alpha' releaseType = 'alpha'
addGameVersion '1.17' addGameVersion '1.17'
mainArtifact(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) { mainArtifact(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) {

View file

@ -4,6 +4,6 @@ loader_version=0.10.8
fabric_version=0.29.3+1.16 fabric_version=0.29.3+1.16
mod_version=4.0.0+beta mod_version=4.0.0+alpha.1
org.gradle.jvmargs=-Xmx2048m org.gradle.jvmargs=-Xmx2048m

View file

@ -71,8 +71,6 @@ public final class ModConfig implements ConfigData {
public double riftCloseSpeed = 0.005; public double riftCloseSpeed = 0.005;
public double riftGrowthSpeed = 1; public double riftGrowthSpeed = 1;
public int depthSpreadFactor = 20; public int depthSpreadFactor = 20;
@RequiresRestart
public boolean useEnderPearlsInCrafting = false;
public double endermanSpawnChance = 0.001; public double endermanSpawnChance = 0.001;
public double endermanAggressiveChance = 0.5; public double endermanAggressiveChance = 0.5;
} }

View file

@ -95,13 +95,21 @@ public final class ModItems {
} }
)); ));
// public static final Item UNSTABLE_DIMENSIONAL_DOOR = register( new DimensionalDoorItem( // TODO
// ModBlocks.IRON_DIMENSIONAL_DOOR, @RegistryObject("unstable_dimensional_door")
// new Item.Settings().group(DIMENSIONAL_DOORS).maxCount(1), public static final Item UNSTABLE_DIMENSIONAL_DOOR = create(new DimensionalDoorItem(
// rift -> { ModBlocks.IRON_DIMENSIONAL_DOOR,
// TODO new Item.Settings().group(DIMENSIONAL_DOORS).maxCount(1),
// } rift -> rift.setDestination(RandomTarget.builder()
// )); .acceptedGroups(Collections.singleton(0))
.coordFactor(1)
.negativeDepthFactor(80)
.positiveDepthFactor(Double.MAX_VALUE)
.weightMaximum(100)
.noLink(false)
.noLinkBack(false)
.newRiftWeight(0.5F).build())
));
@RegistryObject("oak_dimensional_door") @RegistryObject("oak_dimensional_door")
public static final Item OAK_DIMENSIONAL_DOOR = create(new DimensionalDoorItem( public static final Item OAK_DIMENSIONAL_DOOR = create(new DimensionalDoorItem(

View file

@ -101,7 +101,8 @@ public class SchematicV2Handler {
loadJson(directoryPath, directoryIdParts, loader); loadJson(directoryPath, directoryIdParts, loader);
} }
} catch (IOException e) { } catch (IOException e) {
LOGGER.error("could not load pocket data in path " + path.toString() + " due to malformed json.", e); LOGGER.error("Could not load pocket data in path {}", path.toAbsolutePath());
LOGGER.error("Stacktrace: ", e);
} }
} else if(Files.isRegularFile(path) && path.getFileName().toString().endsWith(".json")) { } else if(Files.isRegularFile(path) && path.getFileName().toString().endsWith(".json")) {
String id = String.join("/", idParts); String id = String.join("/", idParts);
@ -109,7 +110,12 @@ public class SchematicV2Handler {
JsonElement json = GSON.fromJson(String.join("", Files.readAllLines(path)), JsonElement.class); JsonElement json = GSON.fromJson(String.join("", Files.readAllLines(path)), JsonElement.class);
loader.accept(id, JsonOps.INSTANCE.convertTo(NbtOps.INSTANCE, json)); loader.accept(id, JsonOps.INSTANCE.convertTo(NbtOps.INSTANCE, json));
} catch (IOException e) { } catch (IOException e) {
LOGGER.error("could not load pocket data in path " + path.toString() + " due to malformed json.", e); LOGGER.error("Could not load pocket data in path {}", path.toAbsolutePath());
LOGGER.error("Stacktrace: ", e);
} catch (RuntimeException e) {
LOGGER.error("Error parsing schematic json");
LOGGER.error("Erroring path: {}", path.toAbsolutePath());
throw e;
} }
} }
} }

View file

@ -39,9 +39,9 @@ public abstract class PocketGenerator implements Weighted<PocketGenerationParame
private static final int fallbackWeight = 5; // TODO: make config private static final int fallbackWeight = 5; // TODO: make config
private final List<Modifier> modifierList = new ArrayList<>(); private final List<Modifier> modifierList = new ArrayList<>();
private String weight; protected String weight;
private Equation weightEquation; protected Equation weightEquation;
private Boolean setupLoot; protected Boolean setupLoot;
private final List<String> tags = new ArrayList<>(); private final List<String> tags = new ArrayList<>();

View file

@ -14,6 +14,8 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
import com.google.common.base.MoreObjects;
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 org.dimdev.dimdoors.block.DimensionalDoorBlock; import org.dimdev.dimdoors.block.DimensionalDoorBlock;
@ -98,6 +100,23 @@ public class DimensionalDoorModifier implements Modifier {
return tag; return tag;
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("facing", facing)
.add("doorTypeString", doorTypeString)
.add("doorType", doorType)
.add("doorData", doorData)
.add("doorDataReference", doorDataReference)
.add("x", x)
.add("y", y)
.add("z", z)
.add("xEquation", xEquation)
.add("yEquation", yEquation)
.add("zEquation", zEquation)
.toString();
}
@Override @Override
public ModifierType<? extends Modifier> getType() { public ModifierType<? extends Modifier> getType() {
return ModifierType.DIMENSIONAL_DOOR_MODIFIER_TYPE; return ModifierType.DIMENSIONAL_DOOR_MODIFIER_TYPE;

View file

@ -19,7 +19,6 @@ import java.util.function.Supplier;
public interface Modifier { public interface Modifier {
Registry<ModifierType<? extends Modifier>> REGISTRY = FabricRegistryBuilder.from(new SimpleRegistry<ModifierType<? extends Modifier>>(RegistryKey.ofRegistry(new Identifier("dimdoors", "modifier_type")), Lifecycle.stable())).buildAndRegister(); Registry<ModifierType<? extends Modifier>> REGISTRY = FabricRegistryBuilder.from(new SimpleRegistry<ModifierType<? extends Modifier>>(RegistryKey.ofRegistry(new Identifier("dimdoors", "modifier_type")), Lifecycle.stable())).buildAndRegister();
static Modifier deserialize(CompoundTag tag) { static Modifier deserialize(CompoundTag tag) {
Identifier id = Identifier.tryParse(tag.getString("type")); // TODO: return some NONE Modifier if type cannot be found or deserialization fails. Identifier id = Identifier.tryParse(tag.getString("type")); // TODO: return some NONE Modifier if type cannot be found or deserialization fails.
return REGISTRY.get(id).fromTag(tag); return REGISTRY.get(id).fromTag(tag);

View file

@ -6,6 +6,7 @@ import java.util.Map;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag; import net.minecraft.nbt.ListTag;
import com.google.common.base.MoreObjects;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity; import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.rift.registry.PocketEntrancePointer; import org.dimdev.dimdoors.rift.registry.PocketEntrancePointer;
import org.dimdev.dimdoors.rift.targets.PocketEntranceMarker; import org.dimdev.dimdoors.rift.targets.PocketEntranceMarker;
@ -40,6 +41,12 @@ public class PocketEntranceModifier implements Modifier {
return tag; return tag;
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("id", id)
.toString();
}
@Override @Override
public ModifierType<? extends Modifier> getType() { public ModifierType<? extends Modifier> getType() {

View file

@ -5,6 +5,7 @@ import java.util.Optional;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.server.world.ServerWorld; import net.minecraft.server.world.ServerWorld;
import com.google.common.base.MoreObjects;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity; import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.rift.targets.LocalReference; import org.dimdev.dimdoors.rift.targets.LocalReference;
import org.dimdev.dimdoors.rift.targets.RiftReference; import org.dimdev.dimdoors.rift.targets.RiftReference;
@ -55,6 +56,14 @@ public class RelativeReferenceModifier implements Modifier {
} }
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("point_a", point_a)
.add("point_b", point_b)
.toString();
}
private boolean addLink(RiftBlockEntity rift, RiftReference link) { private boolean addLink(RiftBlockEntity rift, RiftReference link) {
rift.setDestination(link); rift.setDestination(link);
return true; return true;

View file

@ -11,6 +11,8 @@ import java.util.stream.IntStream;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.fabricmc.fabric.api.util.NbtType; import net.fabricmc.fabric.api.util.NbtType;
import com.google.common.base.MoreObjects;
import org.dimdev.dimdoors.block.entity.RiftBlockEntity; import org.dimdev.dimdoors.block.entity.RiftBlockEntity;
import org.dimdev.dimdoors.block.entity.RiftData; import org.dimdev.dimdoors.block.entity.RiftData;
import org.dimdev.dimdoors.pockets.SchematicV2Handler; import org.dimdev.dimdoors.pockets.SchematicV2Handler;
@ -70,6 +72,15 @@ public class RiftDataModifier implements Modifier {
return KEY; return KEY;
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("doorData", doorData)
.add("doorDataReference", doorDataReference)
.add("ids", ids)
.toString();
}
@Override @Override
public void apply(PocketGenerationParameters parameters, RiftManager manager) { public void apply(PocketGenerationParameters parameters, RiftManager manager) {
Map<String, Double> variableMap = manager.getPocket().toVariableMap(new HashMap<>()); Map<String, Double> variableMap = manager.getPocket().toVariableMap(new HashMap<>());

View file

@ -5,6 +5,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.google.common.base.MoreObjects;
import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.nbt.*; import net.minecraft.nbt.*;
@ -22,7 +23,7 @@ import org.dimdev.dimdoors.util.math.Equation;
import org.dimdev.dimdoors.util.schematic.v2.SchematicBlockPalette; import org.dimdev.dimdoors.util.schematic.v2.SchematicBlockPalette;
import org.dimdev.dimdoors.world.pocket.Pocket; import org.dimdev.dimdoors.world.pocket.Pocket;
public class ShellModifier implements Modifier{ public class ShellModifier implements Modifier {
private static final Logger LOGGER = LogManager.getLogger(); private static final Logger LOGGER = LogManager.getLogger();
public static final String KEY = "shell"; public static final String KEY = "shell";
@ -97,6 +98,13 @@ public class ShellModifier implements Modifier{
pocket.expand(thickness); pocket.expand(thickness);
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("layers", layers)
.toString();
}
public static class Layer { public static class Layer {
private final String blockStateString; private final String blockStateString;
private final String thickness; private final String thickness;
@ -136,4 +144,3 @@ public class ShellModifier implements Modifier{
} }
} }
} }

View file

@ -1,6 +1,8 @@
package org.dimdev.dimdoors.pockets.virtual.reference; package org.dimdev.dimdoors.pockets.virtual.reference;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import com.google.common.base.MoreObjects;
import org.dimdev.dimdoors.pockets.SchematicV2Handler; import org.dimdev.dimdoors.pockets.SchematicV2Handler;
import org.dimdev.dimdoors.pockets.generator.PocketGenerator; import org.dimdev.dimdoors.pockets.generator.PocketGenerator;
import org.dimdev.dimdoors.pockets.virtual.VirtualSingularPocket; import org.dimdev.dimdoors.pockets.virtual.VirtualSingularPocket;
@ -49,4 +51,14 @@ public class IdReference extends PocketGeneratorReference {
return KEY; return KEY;
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("id", id)
.add("weight", weight)
.add("weightEquation", weightEquation)
.add("setupLoot", setupLoot)
.add("modifierList", modifierList)
.toString();
}
} }

View file

@ -1,12 +1,11 @@
package org.dimdev.dimdoors.pockets.virtual.reference; package org.dimdev.dimdoors.pockets.virtual.reference;
import java.util.List;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
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 org.dimdev.dimdoors.pockets.generator.PocketGenerator; import org.dimdev.dimdoors.pockets.generator.PocketGenerator;
import org.dimdev.dimdoors.pockets.modifier.Modifier; import org.dimdev.dimdoors.pockets.modifier.Modifier;
import org.dimdev.dimdoors.pockets.modifier.RiftManager; import org.dimdev.dimdoors.pockets.modifier.RiftManager;
@ -16,17 +15,18 @@ import org.dimdev.dimdoors.util.math.Equation;
import org.dimdev.dimdoors.util.math.Equation.EquationParseException; import org.dimdev.dimdoors.util.math.Equation.EquationParseException;
import org.dimdev.dimdoors.world.pocket.Pocket; import org.dimdev.dimdoors.world.pocket.Pocket;
import java.util.List; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
public abstract class PocketGeneratorReference extends VirtualSingularPocket { public abstract class PocketGeneratorReference extends VirtualSingularPocket {
private static final Logger LOGGER = LogManager.getLogger(); private static final Logger LOGGER = LogManager.getLogger();
private static final String defaultWeightEquation = "5"; // TODO: make config private static final String defaultWeightEquation = "5"; // TODO: make config
private static final int fallbackWeight = 5; // TODO: make config private static final int fallbackWeight = 5; // TODO: make config
private String weight; protected String weight;
private Equation weightEquation; protected Equation weightEquation;
private Boolean setupLoot; protected Boolean setupLoot;
private final List<Modifier> modifierList = Lists.newArrayList(); protected final List<Modifier> modifierList = Lists.newArrayList();
private void parseWeight() { private void parseWeight() {
try { try {
@ -80,7 +80,12 @@ public abstract class PocketGeneratorReference extends VirtualSingularPocket {
@Override @Override
public double getWeight(PocketGenerationParameters parameters) { public double getWeight(PocketGenerationParameters parameters) {
return weightEquation != null ? this.weightEquation.apply(parameters.toVariableMap(Maps.newHashMap())) : peekReferencedPocketGenerator(parameters).getWeight(parameters); try {
return weightEquation != null ? this.weightEquation.apply(parameters.toVariableMap(Maps.newHashMap())) : peekReferencedPocketGenerator(parameters).getWeight(parameters);
} catch (RuntimeException e) {
LOGGER.error(this.toString());
throw new AssertionError(e);
}
} }
public void applyModifiers(PocketGenerationParameters parameters, RiftManager manager) { public void applyModifiers(PocketGenerationParameters parameters, RiftManager manager) {
@ -116,4 +121,7 @@ public abstract class PocketGeneratorReference extends VirtualSingularPocket {
public abstract PocketGenerator peekReferencedPocketGenerator(PocketGenerationParameters parameters); public abstract PocketGenerator peekReferencedPocketGenerator(PocketGenerationParameters parameters);
public abstract PocketGenerator getReferencedPocketGenerator(PocketGenerationParameters parameters); public abstract PocketGenerator getReferencedPocketGenerator(PocketGenerationParameters parameters);
@Override
public abstract String toString();
} }

View file

@ -4,6 +4,8 @@ import net.fabricmc.fabric.api.util.NbtType;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag; import net.minecraft.nbt.ListTag;
import net.minecraft.nbt.StringTag; import net.minecraft.nbt.StringTag;
import com.google.common.base.MoreObjects;
import org.dimdev.dimdoors.pockets.SchematicV2Handler; import org.dimdev.dimdoors.pockets.SchematicV2Handler;
import org.dimdev.dimdoors.pockets.generator.PocketGenerator; import org.dimdev.dimdoors.pockets.generator.PocketGenerator;
import org.dimdev.dimdoors.pockets.virtual.VirtualSingularPocket; import org.dimdev.dimdoors.pockets.virtual.VirtualSingularPocket;
@ -94,4 +96,18 @@ public class TagReference extends PocketGeneratorReference{
if (pockets == null) pockets = SchematicV2Handler.getInstance().getPocketsMatchingTags(required, blackList, exact); if (pockets == null) pockets = SchematicV2Handler.getInstance().getPocketsMatchingTags(required, blackList, exact);
return pockets.getNextRandomWeighted(parameters); return pockets.getNextRandomWeighted(parameters);
} }
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("weight", weight)
.add("weightEquation", weightEquation)
.add("setupLoot", setupLoot)
.add("modifierList", modifierList)
.add("required", required)
.add("blackList", blackList)
.add("exact", exact)
.add("pockets", pockets)
.toString();
}
} }

View file

@ -9,14 +9,12 @@ import org.dimdev.dimdoors.world.pocket.VirtualLocation;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
public class PublicPocketTarget extends RestoringTarget { public class PublicPocketTarget extends RestoringTarget {
private VirtualTarget wrappedDestination = null; private VirtualTarget wrappedDestination = null;
private PublicPocketTarget(VirtualTarget wrappedDestination) { private PublicPocketTarget(VirtualTarget wrappedDestination) {
this.wrappedDestination = wrappedDestination; this.wrappedDestination = wrappedDestination;
} }
public PublicPocketTarget() { public PublicPocketTarget() {
} }

View file

@ -93,6 +93,7 @@ public abstract class VirtualTarget implements Target {
VirtualTargetType<PrivatePocketExitTarget> PRIVATE_POCKET_EXIT = register("dimdoors:private_pocket_exit", a -> new PrivatePocketExitTarget(), a -> new CompoundTag(), PrivatePocketExitTarget.COLOR); VirtualTargetType<PrivatePocketExitTarget> PRIVATE_POCKET_EXIT = register("dimdoors:private_pocket_exit", a -> new PrivatePocketExitTarget(), a -> new CompoundTag(), PrivatePocketExitTarget.COLOR);
VirtualTargetType<RelativeReference> RELATIVE = register("dimdoors:relative", RelativeReference::fromTag, RelativeReference::toTag, VirtualTarget.COLOR); VirtualTargetType<RelativeReference> RELATIVE = register("dimdoors:relative", RelativeReference::fromTag, RelativeReference::toTag, VirtualTarget.COLOR);
VirtualTargetType<IdMarker> ID_MARKER = register("dimdoors:id_marker", IdMarker::fromTag, IdMarker::toTag, VirtualTarget.COLOR); VirtualTargetType<IdMarker> ID_MARKER = register("dimdoors:id_marker", IdMarker::fromTag, IdMarker::toTag, VirtualTarget.COLOR);
VirtualTargetType<UnstableTarget> UNSTABLE = register("dimdoors:unstable", tag -> new UnstableTarget(), t -> new CompoundTag(), VirtualTarget.COLOR);
VirtualTargetType<NoneTarget> NONE = register("dimdoors:none", tag -> NoneTarget.INSTANCE, i -> new CompoundTag(), COLOR); VirtualTargetType<NoneTarget> NONE = register("dimdoors:none", tag -> NoneTarget.INSTANCE, i -> new CompoundTag(), COLOR);
T fromTag(CompoundTag tag); T fromTag(CompoundTag tag);

View file

@ -109,7 +109,8 @@
"commands.dimdoors.saveschem.success": "Pocket %s has been successfully saved", "commands.dimdoors.saveschem.success": "Pocket %s has been successfully saved",
"commands.generic.dimdoors.not_in_pocket_dim": "You must be in a pocket dimension to use this command.", "commands.generic.dimdoors.not_in_pocket_dim": "You must be in a pocket dimension to use this command.",
"commands.generic.dimdoors.not_in_pocket": "You must be in a pocket to use this command.", "commands.generic.dimdoors.not_in_pocket": "You must be in a pocket to use this command.",
"rifts.unlinked": "This rift doesn't lead anywhere", "rifts.unlinked1": "This rift has closed",
"rifts.unlinked2": "This rift doesn't lead anywhere",
"rifts.destinations.escape.cannot_escape_limbo": "Nice try, but you'll need to either die or find some eternal fabric to get out of Limbo.", "rifts.destinations.escape.cannot_escape_limbo": "Nice try, but you'll need to either die or find some eternal fabric to get out of Limbo.",
"rifts.destinations.escape.not_in_pocket_dim": "You can only use this to escape from a pocket dimension!", "rifts.destinations.escape.not_in_pocket_dim": "You can only use this to escape from a pocket dimension!",
"rifts.destinations.escape.did_not_use_rift": "You didn't use a rift to enter the pocket dimension, so you ended up in Limbo!", "rifts.destinations.escape.did_not_use_rift": "You didn't use a rift to enter the pocket dimension, so you ended up in Limbo!",

View file

@ -8,7 +8,7 @@
}, },
"settings": { "settings": {
"bedrock_floor_position": 0, "bedrock_floor_position": 0,
"bedrock_roof_position": -1, "bedrock_roof_position": -2147483648,
"noise_caves_enabled": true, "noise_caves_enabled": true,
"aquifers_enabled": false, "aquifers_enabled": false,
"disable_mob_generation": false, "disable_mob_generation": false,

View file

@ -0,0 +1,24 @@
{
"type": "dimdoors:schematic",
"id": "v2/custom/cage_monolithless",
"setup_loot": true,
"modifiers": [
{
"layers": [
{
"block_state": "minecraft:barrier",
"thickness": "1"
}
],
"type": "dimdoors:shell"
},
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
}
],
"offset_x": "1",
"offset_y": "1",
"offset_z": "1"
}

View file

@ -0,0 +1,16 @@
{
"type": "dimdoors:schematic",
"id": "v2/custom/chain_crossing",
"modifiers": [
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
},
{
"type": "dimdoors:rift_data",
"ids": [1],
"rift_data": "rift_data/available_link"
}
]
}

View file

@ -0,0 +1,21 @@
{
"type": "dimdoors:schematic",
"id": "v2/custom/chain_t",
"modifiers": [
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
},
{
"type": "dimdoors:rift_data",
"ids": [1],
"rift_data": "rift_data/available_link"
},
{
"type": "dimdoors:rift_data",
"ids": [2],
"rift_data": "rift_data/available_link"
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "dimdoors:schematic",
"id": "v2/custom/decaying_chain_tunnel",
"modifiers": [
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
},
{
"type": "dimdoors:rift_data",
"ids": [1],
"rift_data": "rift_data/available_link"
}
]
}

View file

@ -0,0 +1,16 @@
{
"type": "dimdoors:schematic",
"id": "v2/custom/line_walker",
"modifiers": [
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
},
{
"type": "dimdoors:rift_data",
"ids": [1],
"rift_data": "rift_data/available_link"
}
]
}

View file

@ -0,0 +1,24 @@
{
"type": "dimdoors:schematic",
"setup_loot": true,
"id": "v2/custom/smile_6",
"modifiers": [
{
"layers": [
{
"block_state": "dimdoors:yellow_ancient_fabric",
"thickness": "1"
}
],
"type": "dimdoors:shell"
},
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
}
],
"offset_x": "1",
"offset_y": "1",
"offset_z": "1"
}

View file

@ -0,0 +1,22 @@
{
"type": "dimdoors:schematic",
"id": "v2/custom/white_fabric_maze",
"setup_loot": true,
"modifiers": [
{
"type": "dimdoors:rift_data",
"ids": [0],
"rift_data": "rift_data/pocket_entrance"
},
{
"type": "dimdoors:rift_data",
"ids": [1],
"rift_data": "rift_data/available_link"
},
{
"type": "dimdoors:rift_data",
"ids": [2],
"rift_data": "rift_data/available_link"
}
]
}

View file

@ -24,7 +24,7 @@
"type": "dimdoors:id" "type": "dimdoors:id"
}, },
{ {
"id": "custom/upwards_pillar", "id": "custom/upwards_pillars",
"type": "dimdoors:id" "type": "dimdoors:id"
}, },
{ {
@ -84,5 +84,33 @@
{ {
"id": "custom/river_road_twin_bridges", "id": "custom/river_road_twin_bridges",
"type": "dimdoors:id" "type": "dimdoors:id"
},
{
"id": "custom/white_fabric_maze",
"type": "dimdoors:id"
},
{
"id": "custom/decaying_chain_tunnel",
"type": "dimdoors:id"
},
{
"id": "custom/cage_monolithless",
"type": "dimdoors:id"
},
{
"id": "custom/chain_t",
"type": "dimdoors:id"
},
{
"id": "custom/line_walker",
"type": "dimdoors:id"
},
{
"id": "custom/chain_crossing",
"type": "dimdoors:id"
},
{
"id": "custom/smile_6",
"type": "dimdoors:id"
} }
] ]

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#X#"
],
"key": {
"#": {
"item": "dimdoors:gold_door"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:gold_dimensional_door",
"count": 1
}
}

View file

@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:gold_ingot"
}
},
"result": {
"item": "dimdoors:gold_door",
"count": 3
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#X#"
],
"key": {
"#": {
"item": "minecraft:iron_door"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:iron_dimensional_door",
"count": 1
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#X#"
],
"key": {
"#": {
"item": "dimdoors:quartz_door"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:quartz_dimensional_door",
"count": 1
}
}

View file

@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"##",
"##"
],
"key": {
"#": {
"item": "minecraft:quartz"
}
},
"result": {
"item": "dimdoors:quartz_door",
"count": 1
}
}

View file

@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "minecraft:ender_pearl"
},
{
"item": "minecraft:iron_sword"
},
{
"item": "minecraft:ender_pearl"
}
],
"result": {
"item": "dimdoors:rift_blade"
}
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:gold_ingot"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:rift_remover",
"count": 1
}
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"###",
"#X#",
"###"
],
"key": {
"#": {
"item": "minecraft:iron_ingot"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:rift_signature",
"count": 1
}
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"# #",
" X ",
"# #"
],
"key": {
"X": {
"item": "minecraft:ender_pearl"
},
"#": {
"item": "minecraft:diamond"
}
},
"result": {
"item": "dimdoors:rift_stabilizer",
"count": 1
}
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"# #",
" X ",
"# #"
],
"key": {
"X": {
"item": "dimdoors:rift_signature"
},
"#": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:stabilized_rift_signature",
"count": 1
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#X#"
],
"key": {
"#": {
"item": "minecraft:iron_door"
},
"X": {
"item": "minecraft:ender_eye"
}
},
"result": {
"item": "dimdoors:unstable_dimensional_door",
"count": 1
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#X#"
],
"key": {
"#": {
"tag": "#minecraft:wooden_doors"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:wood_dimensional_door",
"count": 1
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"#X"
],
"key": {
"#": {
"tag": "#minecraft:wooden_trapdoors"
},
"X": {
"item": "minecraft:ender_pearl"
}
},
"result": {
"item": "dimdoors:wood_dimensional_trapdoor",
"count": 1
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"X X",
"X X"
],
"key": {
"X": {
"item": "dimdoors:world_thread"
}
},
"result": {
"item": "dimdoors:world_thread_boots"
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"X X",
"XXX",
"XXX"
],
"key": {
"X": {
"item": "dimdoors:world_thread"
}
},
"result": {
"item": "dimdoors:world_thread_chestplate"
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"XXX",
"X X"
],
"key": {
"X": {
"item": "dimdoors:world_thread"
}
},
"result": {
"item": "dimdoors:world_thread_helmet"
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"XXX",
"X X",
"X X"
],
"key": {
"X": {
"item": "dimdoors:world_thread"
}
},
"result": {
"item": "dimdoors:world_thread_leggings"
}
}

View file

@ -0,0 +1,21 @@
{
"replace": false,
"values": [
"dimdoors:white_ancient_fabric",
"dimdoors:orange_ancient_fabric",
"dimdoors:magenta_ancient_fabric",
"dimdoors:light_blue_ancient_fabric",
"dimdoors:yellow_ancient_fabric",
"dimdoors:lime_ancient_fabric",
"dimdoors:pink_ancient_fabric",
"dimdoors:gray_ancient_fabric",
"dimdoors:light_gray_ancient_fabric",
"dimdoors:cyan_ancient_fabric",
"dimdoors:purple_ancient_fabric",
"dimdoors:blue_ancient_fabric",
"dimdoors:brown_ancient_fabric",
"dimdoors:green_ancient_fabric",
"dimdoors:red_ancient_fabric",
"dimdoors:black_ancient_fabric"
]
}

View file

@ -0,0 +1,21 @@
{
"replace": false,
"values": [
"dimdoors:white_fabric",
"dimdoors:orange_fabric",
"dimdoors:magenta_fabric",
"dimdoors:light_blue_fabric",
"dimdoors:yellow_fabric",
"dimdoors:lime_fabric",
"dimdoors:pink_fabric",
"dimdoors:gray_fabric",
"dimdoors:light_gray_fabric",
"dimdoors:cyan_fabric",
"dimdoors:purple_fabric",
"dimdoors:blue_fabric",
"dimdoors:brown_fabric",
"dimdoors:green_fabric",
"dimdoors:red_fabric",
"dimdoors:black_fabric"
]
}

View file

@ -0,0 +1,21 @@
{
"replace": false,
"values": [
"dimdoors:white_ancient_fabric",
"dimdoors:orange_ancient_fabric",
"dimdoors:magenta_ancient_fabric",
"dimdoors:light_blue_ancient_fabric",
"dimdoors:yellow_ancient_fabric",
"dimdoors:lime_ancient_fabric",
"dimdoors:pink_ancient_fabric",
"dimdoors:gray_ancient_fabric",
"dimdoors:light_gray_ancient_fabric",
"dimdoors:cyan_ancient_fabric",
"dimdoors:purple_ancient_fabric",
"dimdoors:blue_ancient_fabric",
"dimdoors:brown_ancient_fabric",
"dimdoors:green_ancient_fabric",
"dimdoors:red_ancient_fabric",
"dimdoors:black_ancient_fabric"
]
}

View file

@ -0,0 +1,21 @@
{
"replace": false,
"values": [
"dimdoors:white_fabric",
"dimdoors:orange_fabric",
"dimdoors:magenta_fabric",
"dimdoors:light_blue_fabric",
"dimdoors:yellow_fabric",
"dimdoors:lime_fabric",
"dimdoors:pink_fabric",
"dimdoors:gray_fabric",
"dimdoors:light_gray_fabric",
"dimdoors:cyan_fabric",
"dimdoors:purple_fabric",
"dimdoors:blue_fabric",
"dimdoors:brown_fabric",
"dimdoors:green_fabric",
"dimdoors:red_fabric",
"dimdoors:black_fabric"
]
}