diff --git a/build.gradle b/build.gradle index bf75b0ad..b7291ca4 100644 --- a/build.gradle +++ b/build.gradle @@ -115,10 +115,12 @@ dependencies { } modCompileOnly 'com.github.badasintended:wthit:3.0.0' modRuntime 'com.github.badasintended:wthit:3.0.0' + modCompileOnly "me.shedaniel.cloth.api:cloth-datagen-api-v1:2.0.0" + modRuntime "me.shedaniel.cloth.api:cloth-datagen-api-v1:2.0.0" datagenImplementation sourceSets.main.output datagenImplementation sourceSets.main.compileClasspath - datagenImplementation "me.shedaniel.cloth.api:cloth-datagen-api-v1:2.0.0" + datagenRuntimeOnly sourceSets.main.runtimeClasspath testImplementation('org.junit.jupiter:junit-jupiter:5.5.2') } @@ -155,7 +157,7 @@ curseforge { releaseType = 'alpha' addGameVersion '1.17' mainArtifact(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) { - displayName = "[${project.minecraft_version}] Dimensional Doors ${version}" + displayName = "[21w06a] Dimensional Doors ${version}" } afterEvaluate { uploadTask.dependsOn("remapJar") diff --git a/gradle.properties b/gradle.properties index 2bd1b2cc..f03acd9f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,3 @@ -minecraft_version=1.16.4 -yarn_mappings=1.16.4+build.7 -loader_version=0.10.8 - -fabric_version=0.29.3+1.16 - -mod_version=4.0.0+alpha.1 +mod_version=4.0.0+alpha.2 org.gradle.jvmargs=-Xmx2048m diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/AdvancementProvider.java b/src/datagen/java/org/dimdev/dimdoors/datagen/AdvancementProvider.java new file mode 100644 index 00000000..58b359a6 --- /dev/null +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/AdvancementProvider.java @@ -0,0 +1,61 @@ +package org.dimdev.dimdoors.datagen; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.function.Consumer; + +import com.google.common.collect.ImmutableList; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.minecraft.advancement.Advancement; +import net.minecraft.data.DataCache; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DataProvider; +import net.minecraft.util.Identifier; + +public class AdvancementProvider implements DataProvider { + private static final Logger LOGGER = LogManager.getLogger(); + private static final Gson GSON = (new GsonBuilder()).setPrettyPrinting().create(); + private final DataGenerator root; + private final List>> tabGenerators = ImmutableList.of(new AdvancementTab()); + + public AdvancementProvider(DataGenerator dataGenerator) { + this.root = dataGenerator; + } + + private static Path getOutput(Path root, Advancement advancement) { + return root.resolve("data/" + advancement.getId().getNamespace() + "/advancements/" + advancement.getId().getPath() + ".json"); + } + + @Override + public void run(DataCache dataCache) { + Path outputRoot = this.root.getOutput(); + Set ids = new HashSet<>(); + Consumer writer = advancement -> { + if (!ids.add(advancement.getId())) { + throw new IllegalStateException("Duplicate advancement " + advancement.getId()); + } + Path output = getOutput(outputRoot, advancement); + + try { + DataProvider.writeToPath(GSON, dataCache, advancement.createTask().toJson(), output); + } catch (IOException ex) { + LOGGER.error("Couldn't save advancement {}", output, ex); + } + }; + for (Consumer> generator : this.tabGenerators) { + generator.accept(writer); + } + } + + @Override + public String getName() { + return "Dimdoors Advancements"; + } +} diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/AdvancementTab.java b/src/datagen/java/org/dimdev/dimdoors/datagen/AdvancementTab.java new file mode 100644 index 00000000..db6d1b4a --- /dev/null +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/AdvancementTab.java @@ -0,0 +1,77 @@ +package org.dimdev.dimdoors.datagen; + +import java.util.function.Consumer; + +import org.dimdev.dimdoors.item.ModItems; +import org.dimdev.dimdoors.world.ModDimensions; + +import net.minecraft.advancement.Advancement; +import net.minecraft.advancement.AdvancementDisplay; +import net.minecraft.advancement.AdvancementFrame; +import net.minecraft.advancement.criterion.ChangedDimensionCriterion; +import net.minecraft.advancement.criterion.InventoryChangedCriterion; +import net.minecraft.item.ItemConvertible; +import net.minecraft.item.Items; +import net.minecraft.predicate.entity.EntityPredicate; +import net.minecraft.text.TranslatableText; +import net.minecraft.util.Identifier; + +public class AdvancementTab implements Consumer> { + static AdvancementDisplay makeDisplay(ItemConvertible item, String titleKey) { + return new AdvancementDisplay(item.asItem().getDefaultStack(), + new TranslatableText("dimdoors.advancement." + titleKey), + new TranslatableText("dimdoors.advancement." + titleKey + ".desc"), + new Identifier("dimdoors:textures/block/unravelled_fabric.png"), + AdvancementFrame.TASK, + true, + true, + false + ); + } + + static AdvancementDisplay makeDisplay(ItemConvertible item, String titleKey, AdvancementFrame advancementFrame) { + return new AdvancementDisplay(item.asItem().getDefaultStack(), + new TranslatableText("dimdoors.advancement." + titleKey), + new TranslatableText("dimdoors.advancement." + titleKey + ".desc"), + new Identifier("dimdoors:textures/block/unravelled_fabric.png"), + advancementFrame, + true, + true, + false + ); + } + + @Override + public void accept(Consumer advancementConsumer) { + Advancement root = Advancement.Task.create() + .display(makeDisplay(ModItems.RIFT_BLADE, "root")) + .criterion("inventory_changed", InventoryChangedCriterion.Conditions.items(Items.ENDER_PEARL)) + .build(advancementConsumer, "dimdoors:dimdoors/root"); + + Advancement.Task.create() + .display(makeDisplay(ModItems.IRON_DIMENSIONAL_DOOR, "public_pocket")) + .criterion("changed_dimension", ChangedDimensionCriterion.Conditions.to(ModDimensions.PUBLIC)) + .parent(root) + .build(advancementConsumer, "dimdoors:dimdoors/public_pocket"); + Advancement.Task.create() + .display(makeDisplay(ModItems.QUARTZ_DIMENSIONAL_DOOR, "private_pocket")) + .criterion("changed_dimension", ChangedDimensionCriterion.Conditions.to(ModDimensions.PERSONAL)) + .parent(root) + .build(advancementConsumer, "dimdoors:dimdoors/private_pocket"); + Advancement.Task.create() + .display(makeDisplay(ModItems.GOLD_DIMENSIONAL_DOOR, "dungeon")) + .criterion("changed_dimension", ChangedDimensionCriterion.Conditions.to(ModDimensions.DUNGEON)) + .parent(root) + .build(advancementConsumer, "dimdoors:dimdoors/dungeon"); + Advancement limbo = Advancement.Task.create() + .display(makeDisplay(ModItems.UNRAVELLED_FABRIC, "limbo")) + .criterion("changed_dimension", ChangedDimensionCriterion.Conditions.to(ModDimensions.LIMBO)) + .parent(root) + .build(advancementConsumer, "dimdoors:dimdoors/limbo"); + Advancement.Task.create() + .display(makeDisplay(ModItems.ETERNAL_FLUID_BUCKET, "escape_limbo")) + .criterion("changed_dimension", new ChangedDimensionCriterion.Conditions(EntityPredicate.Extended.EMPTY, ModDimensions.LIMBO, null)) + .parent(limbo) + .build(advancementConsumer, "dimdoors:dimdoors/escape_limbo"); + } +} diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/DatagenInitializer.java b/src/datagen/java/org/dimdev/dimdoors/datagen/DatagenInitializer.java index 6895a326..aa4beb02 100644 --- a/src/datagen/java/org/dimdev/dimdoors/datagen/DatagenInitializer.java +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/DatagenInitializer.java @@ -1,24 +1,40 @@ package org.dimdev.dimdoors.datagen; import java.nio.file.Paths; -import java.util.Map; +import java.util.Collections; -import me.shedaniel.cloth.api.datagen.v1.DataGeneratorHandler; -import me.shedaniel.cloth.api.datagen.v1.RecipeData; import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.item.ModItems; -import net.minecraft.block.Block; -import net.minecraft.util.DyeColor; +import net.minecraft.Bootstrap; +import net.minecraft.data.DataGenerator; -public class DatagenInitializer { - public static void main(String[] args) { - ModBlocks.init(); - ModItems.init(); - DataGeneratorHandler handler = DataGeneratorHandler.create(Paths.get("./generated")); - RecipeData recipes = handler.getRecipes(); - for (Map.Entry entry : ModBlocks.FABRIC_BLOCKS.entrySet()) { - // TODO +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; + +public class DatagenInitializer implements PreLaunchEntrypoint { + public static RecipeConsumer RECIPE_CONSUMER; + public static LootTableConsumer LOOT_TABLE_CONSUMER; + + // How to run the data generator:- + // - Duplicate the Minecraft Client run config + // - Change the module from DimensionalDoors.main to DimensionalDoors.datagen + // - Profit + @Override + public void onPreLaunch() { + try { + Bootstrap.initialize(); + ModBlocks.init(); + ModItems.init(); + DataGenerator dataGenerator = new DataGenerator(Paths.get("./generated"), Collections.emptyList()); + dataGenerator.install(new FabricRecipeProvider(dataGenerator)); + dataGenerator.install(new AdvancementProvider(dataGenerator)); + dataGenerator.install(new LootTableProvider(dataGenerator)); + dataGenerator.install(RECIPE_CONSUMER = new RecipeConsumer(dataGenerator)); + dataGenerator.install(LOOT_TABLE_CONSUMER = new LootTableConsumer(dataGenerator)); + dataGenerator.run(); + } catch (Exception e) { + throw new RuntimeException(e); } + System.exit(0); } } diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/FabricRecipeProvider.java b/src/datagen/java/org/dimdev/dimdoors/datagen/FabricRecipeProvider.java new file mode 100644 index 00000000..170878c8 --- /dev/null +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/FabricRecipeProvider.java @@ -0,0 +1,48 @@ +package org.dimdev.dimdoors.datagen; + +import java.util.Map; + +import org.dimdev.dimdoors.block.ModBlocks; +import org.dimdev.dimdoors.item.ModItems; + +import net.minecraft.advancement.criterion.InventoryChangedCriterion; +import net.minecraft.block.Block; +import net.minecraft.data.DataCache; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DataProvider; +import net.minecraft.data.server.recipe.ShapedRecipeJsonFactory; +import net.minecraft.item.DyeItem; +import net.minecraft.util.DyeColor; +import net.minecraft.util.Identifier; + +import static org.dimdev.dimdoors.datagen.DatagenInitializer.RECIPE_CONSUMER; + +public class FabricRecipeProvider implements DataProvider { + private final DataGenerator dataGenerator; + + public FabricRecipeProvider(DataGenerator dataGenerator) { + this.dataGenerator = dataGenerator; + } + + @Override + public void run(DataCache cache) { + for (Map.Entry entry : ModBlocks.FABRIC_BLOCKS.entrySet()) { + DyeColor dyeColor = entry.getKey(); + Block block = entry.getValue(); + ShapedRecipeJsonFactory.create(block) + .group("colored_fabric") + .criterion("inventory_changed", InventoryChangedCriterion.Conditions.items(ModItems.WORLD_THREAD)) + .pattern(" X ") + .pattern("XDX") + .pattern(" X ") + .input('X', ModItems.WORLD_THREAD) + .input('D', DyeItem.byColor(dyeColor)) + .offerTo(RECIPE_CONSUMER, new Identifier("dimdoors", dyeColor.getName() + "_fabric")); + } + } + + @Override + public String getName() { + return "Colored Fabric Recipes"; + } +} diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/LootTableConsumer.java b/src/datagen/java/org/dimdev/dimdoors/datagen/LootTableConsumer.java new file mode 100644 index 00000000..e347dd49 --- /dev/null +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/LootTableConsumer.java @@ -0,0 +1,95 @@ +/* + * This is free and unencumbered software released into the public domain. + * + * Anyone is free to copy, modify, publish, use, compile, sell, or + * distribute this software, either in source code form or as a compiled + * binary, for any purpose, commercial or non-commercial, and by any + * means. + * + * In jurisdictions that recognize copyright laws, the author or authors + * of this software dedicate any and all copyright interest in the + * software to the public domain. We make this dedication for the benefit + * of the public at large and to the detriment of our heirs and + * successors. We intend this dedication to be an overt act of + * relinquishment in perpetuity of all present and future rights to this + * software under copyright law. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * For more information, please refer to + */ + +package org.dimdev.dimdoors.datagen; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.Map; + +import com.google.common.collect.HashBasedTable; +import com.google.common.collect.Maps; +import com.google.common.collect.Table; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import me.shedaniel.cloth.api.datagen.v1.LootTableData; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import net.minecraft.data.DataCache; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DataProvider; +import net.minecraft.loot.LootManager; +import net.minecraft.loot.LootTable; +import net.minecraft.loot.context.LootContextType; +import net.minecraft.util.Identifier; + +public class LootTableConsumer implements DataProvider, LootTableData { + private static final Logger LOGGER = LogManager.getLogger(); + private final DataGenerator dataGenerator; + private static final Gson GSON = (new GsonBuilder()).setPrettyPrinting().disableHtmlEscaping().create(); + private final Table lootTables = HashBasedTable.create(); + + public LootTableConsumer(DataGenerator dataGenerator) { + this.dataGenerator = dataGenerator; + } + + @Override + public void register(LootContextType type, Identifier identifier, LootTable.Builder lootTable) { + this.lootTables.put(type, identifier, lootTable); + } + + @Override + public void run(DataCache cache) { + Path path = this.dataGenerator.getOutput(); + Map map = Maps.newHashMap(); + this.lootTables.rowMap().forEach((type, tableMap) -> tableMap.forEach((identifier, builder) -> { + if (map.put(identifier, builder.type(type).build()) != null) { + throw new IllegalStateException("Duplicate loot table " + identifier); + } + })); + + map.forEach((identifier, lootTable) -> { + Path outputPath = getOutput(path, identifier); + + try { + DataProvider.writeToPath(GSON, cache, LootManager.toJson(lootTable), outputPath); + } catch (IOException var6) { + LOGGER.error("Couldn't save loot table {}", outputPath, var6); + } + }); + } + + private static Path getOutput(Path rootOutput, Identifier lootTableId) { + return rootOutput.resolve("data/" + lootTableId.getNamespace() + "/loot_tables/" + lootTableId.getPath() + ".json"); + } + + @Override + public String getName() { + return "Loot Table Provider"; + } +} diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/LootTableProvider.java b/src/datagen/java/org/dimdev/dimdoors/datagen/LootTableProvider.java new file mode 100644 index 00000000..66c4b98e --- /dev/null +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/LootTableProvider.java @@ -0,0 +1,40 @@ +package org.dimdev.dimdoors.datagen; + +import java.io.IOException; + +import org.dimdev.dimdoors.block.ModBlocks; + +import net.minecraft.block.Block; +import net.minecraft.data.DataCache; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DataProvider; + +import static org.dimdev.dimdoors.datagen.DatagenInitializer.LOOT_TABLE_CONSUMER; + +public class LootTableProvider implements DataProvider { + private final DataGenerator dataGenerator; + + public LootTableProvider(DataGenerator dataGenerator) { + this.dataGenerator = dataGenerator; + } + + @Override + public void run(DataCache cache) throws IOException { + for (Block block : ModBlocks.FABRIC_BLOCKS.values()) { + LOOT_TABLE_CONSUMER.registerBlockDropSelfRequiresSilkTouch(block); + } + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.GOLD_DOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.QUARTZ_DOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.OAK_DIMENSIONAL_DOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.IRON_DIMENSIONAL_DOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.GOLD_DIMENSIONAL_DOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.QUARTZ_DIMENSIONAL_DOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.OAK_DIMENSIONAL_TRAPDOOR); + LOOT_TABLE_CONSUMER.registerBlockDropSelf(ModBlocks.MARKING_PLATE); + } + + @Override + public String getName() { + return "Dimdoors Loot Tables"; + } +} diff --git a/src/datagen/java/org/dimdev/dimdoors/datagen/RecipeConsumer.java b/src/datagen/java/org/dimdev/dimdoors/datagen/RecipeConsumer.java new file mode 100644 index 00000000..0d5c0d09 --- /dev/null +++ b/src/datagen/java/org/dimdev/dimdoors/datagen/RecipeConsumer.java @@ -0,0 +1,54 @@ +package org.dimdev.dimdoors.datagen; + +import java.io.IOException; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.Set; +import java.util.function.Consumer; + +import com.google.common.collect.Sets; +import com.google.gson.JsonObject; +import org.dimdev.dimdoors.mixin.RecipesProviderAccessor; + +import net.minecraft.data.DataCache; +import net.minecraft.data.DataGenerator; +import net.minecraft.data.DataProvider; +import net.minecraft.data.server.recipe.RecipeJsonProvider; +import net.minecraft.util.Identifier; + +public class RecipeConsumer implements DataProvider, Consumer { + private final DataGenerator dataGenerator; + + public RecipeConsumer(DataGenerator dataGenerator) { + this.dataGenerator = dataGenerator; + } + + private final Set recipes = new HashSet<>(); + + @Override + public void run(DataCache cache) throws IOException { + Path path = this.dataGenerator.getOutput(); + Set set = Sets.newHashSet(); + this.recipes.forEach((recipeJsonProvider) -> { + if (!set.add(recipeJsonProvider.getRecipeId())) { + throw new IllegalStateException("Duplicate recipe " + recipeJsonProvider.getRecipeId()); + } else { + RecipesProviderAccessor.callSaveRecipe(cache, recipeJsonProvider.toJson(), path.resolve("data/" + recipeJsonProvider.getRecipeId().getNamespace() + "/recipes/" + recipeJsonProvider.getRecipeId().getPath() + ".json")); + JsonObject jsonObject = recipeJsonProvider.toAdvancementJson(); + if (jsonObject != null) { + RecipesProviderAccessor.callSaveRecipeAdvancement(cache, jsonObject, path.resolve("data/" + recipeJsonProvider.getRecipeId().getNamespace() + "/advancements/" + recipeJsonProvider.getAdvancementId().getPath() + ".json")); + } + } + }); + } + + @Override + public String getName() { + return "Recipe Provider"; + } + + @Override + public void accept(RecipeJsonProvider recipeJsonProvider) { + this.recipes.add(recipeJsonProvider); + } +} diff --git a/src/datagen/resources/fabric.mod.json b/src/datagen/resources/fabric.mod.json new file mode 100644 index 00000000..f6275eb6 --- /dev/null +++ b/src/datagen/resources/fabric.mod.json @@ -0,0 +1,10 @@ +{ + "schemaVersion": 1, + "id": "dimdoors-datagen", + "version": "1.0.0", + "entrypoints": { + "preLaunch": [ + "org.dimdev.dimdoors.datagen.DatagenInitializer" + ] + } +} diff --git a/src/main/java/org/dimdev/dimdoors/ModConfig.java b/src/main/java/org/dimdev/dimdoors/ModConfig.java index 9d412fbf..1aef3f91 100644 --- a/src/main/java/org/dimdev/dimdoors/ModConfig.java +++ b/src/main/java/org/dimdev/dimdoors/ModConfig.java @@ -92,9 +92,9 @@ public final class ModConfig implements ConfigData { @RequiresRestart public int gatewayGenChance = 200; @RequiresRestart - public List clusterDimBlacklist = new LinkedList<>(); + public List clusterDimBlacklist = new LinkedList<>(); @RequiresRestart - public List gatewayDimBlacklist = new LinkedList<>(); + public List gatewayDimBlacklist = new LinkedList<>(); } public static class Dungeons { diff --git a/src/main/java/org/dimdev/dimdoors/block/DimensionalDoorBlock.java b/src/main/java/org/dimdev/dimdoors/block/DimensionalDoorBlock.java index f39d15d0..c3ea3459 100644 --- a/src/main/java/org/dimdev/dimdoors/block/DimensionalDoorBlock.java +++ b/src/main/java/org/dimdev/dimdoors/block/DimensionalDoorBlock.java @@ -1,6 +1,8 @@ package org.dimdev.dimdoors.block; import net.minecraft.util.math.Vec3d; + +import org.dimdev.dimdoors.DimensionalDoorsInitializer; import org.dimdev.dimdoors.block.entity.DetachedRiftBlockEntity; import org.dimdev.dimdoors.block.entity.EntranceRiftBlockEntity; import org.dimdev.dimdoors.util.math.MathUtil; @@ -37,8 +39,6 @@ public class DimensionalDoorBlock extends DoorBlock implements RiftProvider { public static DirectionProperty FACING = HorizontalFacingBlock.FACING; + public DimensionalPortalBlock(Settings settings) { super(settings); - setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); + this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); } @Override @@ -52,18 +53,18 @@ public class DimensionalPortalBlock extends Block implements RiftProvider builder) { diff --git a/src/main/java/org/dimdev/dimdoors/block/FabricBlock.java b/src/main/java/org/dimdev/dimdoors/block/FabricBlock.java index b5de821e..70be9824 100644 --- a/src/main/java/org/dimdev/dimdoors/block/FabricBlock.java +++ b/src/main/java/org/dimdev/dimdoors/block/FabricBlock.java @@ -1,8 +1,5 @@ package org.dimdev.dimdoors.block; -import java.util.HashMap; -import java.util.Map; - import net.minecraft.block.Block; import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.BlockState; @@ -19,11 +16,10 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import org.dimdev.dimdoors.util.InstanceMap; public class FabricBlock extends Block { FabricBlock(DyeColor color) { - super(FabricBlockSettings.of(Material.STONE, color).lightLevel(15)); + super(FabricBlockSettings.of(Material.STONE, color).strength(1.2F).luminance(15)); } @Override diff --git a/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java b/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java index f4c18b5e..3073e12f 100644 --- a/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java +++ b/src/main/java/org/dimdev/dimdoors/block/ModBlocks.java @@ -16,22 +16,23 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; public final class ModBlocks { private static final Map BLOCKS = Maps.newLinkedHashMap(); public static final Map FABRIC_BLOCKS = new HashMap<>(); - public static final Map ANCIENT_FABRIC_BLOCKS = new HashMap<>(); + private static final Map ANCIENT_FABRIC_BLOCKS = new HashMap<>(); - public static final Block GOLD_DOOR = register("dimdoors:gold_door", new DoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).nonOpaque())); - public static final Block QUARTZ_DOOR = register("dimdoors:quartz_door", new DoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).nonOpaque())); - public static final Block OAK_DIMENSIONAL_DOOR = register("dimdoors:oak_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).nonOpaque().lightLevel(state -> 10))); - public static final Block IRON_DIMENSIONAL_DOOR = register("dimdoors:iron_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.IRON_GRAY).nonOpaque().lightLevel(state -> 10))); - public static final Block GOLD_DIMENSIONAL_DOOR = register("dimdoors:gold_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).nonOpaque().lightLevel(state -> 10))); - public static final Block QUARTZ_DIMENSIONAL_DOOR = register("dimdoors:quartz_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).nonOpaque().lightLevel(state -> 10))); - public static final Block OAK_DIMENSIONAL_TRAPDOOR = register("dimdoors:wood_dimensional_trapdoor", new DimensionalTrapdoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).nonOpaque())); + public static final Block GOLD_DOOR = register("dimdoors:gold_door", new DoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque())); + public static final Block QUARTZ_DOOR = register("dimdoors:quartz_door", new DoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque())); + public static final Block OAK_DIMENSIONAL_DOOR = register("dimdoors:oak_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).strength(3.0F).breakByTool(FabricToolTags.AXES).breakByHand(true).nonOpaque().luminance(state -> 10))); + public static final Block IRON_DIMENSIONAL_DOOR = register("dimdoors:iron_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.IRON_GRAY).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque().luminance(state -> 10))); + public static final Block GOLD_DIMENSIONAL_DOOR = register("dimdoors:gold_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.METAL, MapColor.GOLD).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque().luminance(state -> 10))); + public static final Block QUARTZ_DIMENSIONAL_DOOR = register("dimdoors:quartz_dimensional_door", new DimensionalDoorBlock(FabricBlockSettings.of(Material.STONE, MapColor.OFF_WHITE).strength(5.0F).breakByHand(false).breakByTool(FabricToolTags.PICKAXES).nonOpaque().luminance(state -> 10))); + public static final Block OAK_DIMENSIONAL_TRAPDOOR = register("dimdoors:wood_dimensional_trapdoor", new DimensionalTrapdoorBlock(FabricBlockSettings.of(Material.WOOD, MapColor.OAK_TAN).strength(3.0F).breakByTool(FabricToolTags.AXES).breakByHand(true).nonOpaque())); - public static final Block DIMENSIONAL_PORTAL = register("dimdoors:dimensional_portal", new DimensionalPortalBlock(FabricBlockSettings.of(Material.AIR).collidable(false).nonOpaque().dropsNothing().lightLevel(10))); - public static final Block DETACHED_RIFT = register("dimdoors:detached_rift", new DetachedRiftBlock(FabricBlockSettings.of(Material.AIR).noCollision().nonOpaque())); + public static final Block DIMENSIONAL_PORTAL = register("dimdoors:dimensional_portal", new DimensionalPortalBlock(FabricBlockSettings.of(Material.AIR).collidable(false).strength(-1.0F, 3600000.0F).nonOpaque().dropsNothing().luminance(10))); + public static final Block DETACHED_RIFT = register("dimdoors:detached_rift", new DetachedRiftBlock(FabricBlockSettings.of(Material.AIR).strength(-1.0F, 3600000.0F).noCollision().nonOpaque())); public static final Block WHITE_FABRIC = registerFabric("dimdoors:white_fabric", DyeColor.WHITE); public static final Block ORANGE_FABRIC = registerFabric("dimdoors:orange_fabric", DyeColor.ORANGE); @@ -67,8 +68,8 @@ public final class ModBlocks { public static final Block RED_ANCIENT_FABRIC = registerAncientFabric("dimdoors:red_ancient_fabric", DyeColor.RED); public static final Block BLACK_ANCIENT_FABRIC = registerAncientFabric("dimdoors:black_ancient_fabric", DyeColor.BLACK); - public static final Block ETERNAL_FLUID = register("dimdoors:eternal_fluid", new EternalFluidBlock(FabricBlockSettings.of(Material.STONE, MapColor.RED).lightLevel(15))); - public static final Block UNRAVELLED_FABRIC = register("dimdoors:unravelled_fabric", new UnravelledFabricBlock(FabricBlockSettings.of(Material.STONE, MapColor.BLACK).lightLevel(15))); + public static final Block ETERNAL_FLUID = register("dimdoors:eternal_fluid", new EternalFluidBlock(FabricBlockSettings.of(Material.STONE, MapColor.RED).luminance(15))); + public static final Block UNRAVELLED_FABRIC = register("dimdoors:unravelled_fabric", new UnravelledFabricBlock(FabricBlockSettings.of(Material.STONE, MapColor.BLACK).ticksRandomly().luminance(15))); public static final Block MARKING_PLATE = register("dimdoors:marking_plate", new MarkingPlateBlock(FabricBlockSettings.of(Material.METAL, DyeColor.BLACK).nonOpaque())); @@ -98,7 +99,13 @@ public final class ModBlocks { @Environment(EnvType.CLIENT) public static void initClient() { - BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), ModBlocks.OAK_DIMENSIONAL_DOOR, ModBlocks.GOLD_DIMENSIONAL_DOOR, ModBlocks.IRON_DIMENSIONAL_DOOR, ModBlocks.OAK_DIMENSIONAL_TRAPDOOR, ModBlocks.QUARTZ_DIMENSIONAL_DOOR, ModBlocks.QUARTZ_DOOR); + BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), + ModBlocks.OAK_DIMENSIONAL_DOOR, + ModBlocks.GOLD_DIMENSIONAL_DOOR, + ModBlocks.IRON_DIMENSIONAL_DOOR, + ModBlocks.OAK_DIMENSIONAL_TRAPDOOR, + ModBlocks.QUARTZ_DIMENSIONAL_DOOR, + ModBlocks.QUARTZ_DOOR); } public static Block ancientFabricFromDye(DyeColor color) { diff --git a/src/main/java/org/dimdev/dimdoors/block/UnravelledFabricBlock.java b/src/main/java/org/dimdev/dimdoors/block/UnravelledFabricBlock.java index cee50752..b1550811 100644 --- a/src/main/java/org/dimdev/dimdoors/block/UnravelledFabricBlock.java +++ b/src/main/java/org/dimdev/dimdoors/block/UnravelledFabricBlock.java @@ -10,6 +10,7 @@ import net.minecraft.block.BlockState; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.world.TickPriority; import net.minecraft.world.WorldAccess; public class UnravelledFabricBlock extends Block { @@ -37,7 +38,7 @@ public class UnravelledFabricBlock extends Block { @Override public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) { if (world instanceof ServerWorld) { - this.randomTick(state, (ServerWorld) world, pos, new Random()); + world.getBlockTickScheduler().schedule(pos, this, 10, TickPriority.NORMAL); } return state; } diff --git a/src/main/java/org/dimdev/dimdoors/client/DefaultTransformation.java b/src/main/java/org/dimdev/dimdoors/client/DefaultTransformation.java index f3114848..88718245 100644 --- a/src/main/java/org/dimdev/dimdoors/client/DefaultTransformation.java +++ b/src/main/java/org/dimdev/dimdoors/client/DefaultTransformation.java @@ -5,15 +5,16 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3f; public enum DefaultTransformation implements Transformer { - NONE { + DOWN { @Override public void transform(MatrixStack matrices) { + } }, - DIMENSIONAL_PORTAL { + UP { @Override public void transform(MatrixStack matrices) { - matrices.translate(0, 0, 0.5F); + } }, NORTH_DOOR { @@ -43,6 +44,17 @@ public enum DefaultTransformation implements Transformer { matrices.multiply(Vec3f.NEGATIVE_Y.getDegreesQuaternion(90.0F)); matrices.translate(0, 0, -0.19F); } + }, + NONE { + @Override + public void transform(MatrixStack matrices) { + } + }, + DIMENSIONAL_PORTAL { + @Override + public void transform(MatrixStack matrices) { + matrices.translate(0, 0, 0.5F); + } }; private static final DefaultTransformation[] VALUES = values(); diff --git a/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java b/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java index 3a14b3b1..947f2eea 100644 --- a/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java +++ b/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java @@ -8,6 +8,9 @@ import org.dimdev.dimdoors.DimensionalDoorsInitializer; import org.dimdev.dimdoors.entity.MonolithEntity; import org.dimdev.dimdoors.item.ModItems; import org.dimdev.dimdoors.sound.ModSoundEvents; +import org.dimdev.dimdoors.util.Location; +import org.dimdev.dimdoors.util.TeleportUtil; +import org.dimdev.dimdoors.world.ModDimensions; import net.minecraft.entity.ai.TargetPredicate; import net.minecraft.entity.ai.goal.Goal; @@ -18,6 +21,8 @@ import net.minecraft.sound.SoundCategory; import net.minecraft.util.math.BlockPos; import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; + import static net.minecraft.predicate.entity.EntityPredicates.EXCEPT_SPECTATOR; import static org.dimdev.dimdoors.entity.MonolithEntity.MAX_AGGRO; @@ -65,7 +70,7 @@ public class MonolithAggroGoal extends Goal { Random random = new Random(); int i = random.nextInt(64); if (this.target instanceof ServerPlayerEntity) { - if (i < 6) { + if (i < 4) { this.target.getInventory().armor.get(0).damage(i, random, (ServerPlayerEntity) this.target); this.target.getInventory().armor.get(1).damage(i, random, (ServerPlayerEntity) this.target); this.target.getInventory().armor.get(2).damage(i, random, (ServerPlayerEntity) this.target); @@ -91,14 +96,13 @@ public class MonolithAggroGoal extends Goal { PacketByteBuf data = new PacketByteBuf(Unpooled.buffer()); data.writeInt(this.mob.getAggro()); - ServerSidePacketRegistry.INSTANCE.sendToPlayer(this.target, DimensionalDoorsInitializer.MONOLITH_PARTICLE_PACKET, data); + ServerPlayNetworking.send((ServerPlayerEntity) this.target, DimensionalDoorsInitializer.MONOLITH_PARTICLE_PACKET, data); } // Teleport the target player if various conditions are met if (this.mob.getAggro() >= MAX_AGGRO && DimensionalDoorsInitializer.getConfig().getMonolithsConfig().monolithTeleportation && !this.target.isCreative() && this.mob.isDangerous()) { this.mob.setAggro(0); - //Location destination = LimboDimension.getLimboSkySpawn(player); - //TeleportUtil.teleport(player, destination, 0, 0); + this.target.teleport(this.target.getX(), this.target.getY() + 256, this.target.getZ()); this.target.world.playSound(null, new BlockPos(this.target.getPos()), ModSoundEvents.CRACK, SoundCategory.HOSTILE, 13, 1); } } diff --git a/src/main/java/org/dimdev/dimdoors/item/ModItems.java b/src/main/java/org/dimdev/dimdoors/item/ModItems.java index 2397acc2..1d0faf43 100644 --- a/src/main/java/org/dimdev/dimdoors/item/ModItems.java +++ b/src/main/java/org/dimdev/dimdoors/item/ModItems.java @@ -95,7 +95,6 @@ public final class ModItems { } )); - // TODO @RegistryObject("unstable_dimensional_door") public static final Item UNSTABLE_DIMENSIONAL_DOOR = create(new DimensionalDoorItem( ModBlocks.IRON_DIMENSIONAL_DOOR, @@ -122,7 +121,9 @@ public final class ModItems { .negativeDepthFactor(80) .positiveDepthFactor(Double.MAX_VALUE) .weightMaximum(100) - .noLink(false).newRiftWeight(0).build() + .noLink(false) + .newRiftWeight(0) + .build() ) )); @@ -130,10 +131,18 @@ public final class ModItems { public static final Item OAK_DIMENSIONAL_TRAPDOOR = create(new DimensionalTrapdoorItem( ModBlocks.OAK_DIMENSIONAL_TRAPDOOR, new Item.Settings().group(DIMENSIONAL_DOORS).maxCount(1), - rift -> rift.setDestination(new EscapeTarget(false)) + rift -> rift.setDestination( + RandomTarget.builder() + .acceptedGroups(Collections.singleton(0)) + .coordFactor(1) + .negativeDepthFactor(80) + .positiveDepthFactor(Double.MAX_VALUE) + .weightMaximum(100) + .noLink(false) + .newRiftWeight(0) + .build()) )); - @RegistryObject("world_thread") public static final Item WORLD_THREAD = create(new Item(new Item.Settings().group(DIMENSIONAL_DOORS))); @@ -155,6 +164,9 @@ public final class ModItems { @RegistryObject("rift_stabilizer") public static final Item RIFT_STABILIZER = create(new RiftStabilizerItem(new Item.Settings().maxCount(1).maxDamage(6).group(DIMENSIONAL_DOORS))); + @RegistryObject("rift_key") + public static final Item RIFT_KEY = create(new RiftKeyItem(new Item.Settings().group(DIMENSIONAL_DOORS).maxCount(1))); + @RegistryObject("dimensional_eraser") public static final Item DIMENSIONAL_ERASER = create(new DimensionalEraserItem(new Item.Settings().maxDamage(100).group(DIMENSIONAL_DOORS))); diff --git a/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java b/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java index fe3576c7..8d07d9cc 100644 --- a/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java +++ b/src/main/java/org/dimdev/dimdoors/item/RiftBladeItem.java @@ -85,8 +85,7 @@ public class RiftBladeItem extends SwordItem { player.teleport(teleportPosition.getX(), teleportPosition.getY(), teleportPosition.getZ()); player.setYaw((float) (Math.random() * 2 * Math.PI)); - stack.damage(1, player, a -> { - }); + stack.damage(1, player, a -> a.sendToolBreakStatus(hand)); return new TypedActionResult<>(ActionResult.SUCCESS, stack); } else if (RaycastHelper.hitsDetachedRift(hit, world)) { BlockHitResult blockHitResult = (BlockHitResult) hit; diff --git a/src/main/java/org/dimdev/dimdoors/item/RiftKeyItem.java b/src/main/java/org/dimdev/dimdoors/item/RiftKeyItem.java new file mode 100644 index 00000000..1774d430 --- /dev/null +++ b/src/main/java/org/dimdev/dimdoors/item/RiftKeyItem.java @@ -0,0 +1,34 @@ +package org.dimdev.dimdoors.item; + +import java.util.List; + +import dev.onyxstudios.cca.api.v3.component.ComponentV3; +import org.jetbrains.annotations.Nullable; + +import net.minecraft.client.item.TooltipContext; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.text.Text; +import net.minecraft.world.World; + +public class RiftKeyItem extends Item { + public RiftKeyItem(Settings settings) { + super(settings); + } + + @Override + public void appendTooltip(ItemStack stack, @Nullable World world, List tooltip, TooltipContext context) { + super.appendTooltip(stack, world, tooltip, context); // TODO + } + + @Override + public boolean hasGlint(ItemStack stack) { + return super.hasGlint(stack); // TODO + } + + @Override + public int getMaxUseTime(ItemStack stack) { + return 30; + } +} diff --git a/src/main/java/org/dimdev/dimdoors/mixin/RecipesProviderAccessor.java b/src/main/java/org/dimdev/dimdoors/mixin/RecipesProviderAccessor.java new file mode 100644 index 00000000..28b84ef4 --- /dev/null +++ b/src/main/java/org/dimdev/dimdoors/mixin/RecipesProviderAccessor.java @@ -0,0 +1,23 @@ +package org.dimdev.dimdoors.mixin; + +import java.nio.file.Path; + +import com.google.gson.JsonObject; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +import net.minecraft.data.DataCache; +import net.minecraft.data.server.RecipesProvider; + +@Mixin(RecipesProvider.class) +public interface RecipesProviderAccessor { + @Invoker + static void callSaveRecipe(DataCache cache, JsonObject json, Path path) { + throw new UnsupportedOperationException(); + } + + @Invoker + static void callSaveRecipeAdvancement(DataCache cache, JsonObject json, Path path) { + throw new UnsupportedOperationException(); + } +} diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java index 1cfcf290..6beb2648 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java @@ -48,6 +48,13 @@ public abstract class SchematicV2Gateway implements Gateway, BiPredicate DIMENSIONAL_REGISTRY_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:dimensional_registry"), DimensionalRegistry.class); public static final ComponentKey COUNTER_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(new Identifier("dimdoors:counter"), Counter.class); - @Override public void registerLevelComponentFactories(LevelComponentFactoryRegistry registry) { registry.register(DIMENSIONAL_REGISTRY_COMPONENT_KEY, level -> new DimensionalRegistry()); diff --git a/src/main/resources/assets/dimdoors/blockstates/dimensional_trapdoor.json b/src/main/resources/assets/dimdoors/blockstates/wood_dimensional_trapdoor.json similarity index 100% rename from src/main/resources/assets/dimdoors/blockstates/dimensional_trapdoor.json rename to src/main/resources/assets/dimdoors/blockstates/wood_dimensional_trapdoor.json diff --git a/src/main/resources/assets/dimdoors/lang/en_us.json b/src/main/resources/assets/dimdoors/lang/en_us.json index db034ee7..a09699db 100644 --- a/src/main/resources/assets/dimdoors/lang/en_us.json +++ b/src/main/resources/assets/dimdoors/lang/en_us.json @@ -195,5 +195,17 @@ "dimdoors.config.screen.reload": "Reload Config", "dimdoors.linkProperties.oneWay": "One way: %s", "dimdoors.linkProperties.linksRemaining": "Remaining links: %s", - "dimdoors.color": "Color: " + "dimdoors.color": "Color: ", + "dimdoors.advancement.root": "Dimensional Doors", + "dimdoors.advancement.root.desc": "Venture into the depths", + "dimdoors.advancement.public_pocket": "Public Pockets", + "dimdoors.advancement.public_pocket.desc": "Enter a public pocket", + "dimdoors.advancement.private_pocket": "Private Pockets", + "dimdoors.advancement.private_pocket.desc": "Enter a private pocket", + "dimdoors.advancement.dungeon": "Dungeons", + "dimdoors.advancement.dungeon.desc": "Enter a dungeon", + "dimdoors.advancement.limbo": "Decay", + "dimdoors.advancement.limbo.desc": "Enter limbo", + "dimdoors.advancement.escape_limbo": "Escape", + "dimdoors.advancement.escape_limbo.desc": "Escape limbo" } diff --git a/src/main/resources/assets/dimdoors/lang/it_it.json b/src/main/resources/assets/dimdoors/lang/it_it.json index bff71463..c5f6616a 100644 --- a/src/main/resources/assets/dimdoors/lang/it_it.json +++ b/src/main/resources/assets/dimdoors/lang/it_it.json @@ -44,4 +44,4 @@ "item.unstable_dimensional_door.info": "Attenziione: Porta a una destinazione casuale", "item.oak_dimensional_door.info": "Piazzalo sul blocco sotto una \\nfrattura per creare un portale, \\no piazzalo da qualunque altra parte \\nin una dimensione tascabile per uscire.", "entity.dimdoors.monolith": "Monolito" -} \ No newline at end of file +} diff --git a/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_bottom.json b/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_bottom.json deleted file mode 100644 index 432f0cf6..00000000 --- a/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_bottom.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_bottom", - "textures": { - "texture": "dimdoors:block/dimensional_trapdoor" - } -} diff --git a/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_open.json b/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_open.json deleted file mode 100644 index 91aaa2dc..00000000 --- a/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_open.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_open", - "textures": { - "texture": "dimdoors:block/dimensional_trapdoor" - } -} diff --git a/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_top.json b/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_top.json deleted file mode 100644 index 7bd1c248..00000000 --- a/src/main/resources/assets/dimdoors/models/block/dimensional_trapdoor_top.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "block/trapdoor_top", - "textures": { - "texture": "dimdoors:block/dimensional_trapdoor" - } -} diff --git a/src/main/resources/assets/dimdoors/models/block/gold_door_bottom.json b/src/main/resources/assets/dimdoors/models/block/gold_door_bottom.json index a6022432..043b8879 100644 --- a/src/main/resources/assets/dimdoors/models/block/gold_door_bottom.json +++ b/src/main/resources/assets/dimdoors/models/block/gold_door_bottom.json @@ -1,7 +1,8 @@ { - "parent": "block/door_bottom", - "textures": { - "bottom": "dimdoors:block/gold_door_lower", - "top": "dimdoors:block/gold_door_upper" - } + "parent": "block/door_bottom", + "textures": { + "bottom": "dimdoors:block/gold_door_lower", + "top": "dimdoors:block/gold_door_upper", + "particle": "dimdoors:block/gold_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/gold_door_bottom_rh.json b/src/main/resources/assets/dimdoors/models/block/gold_door_bottom_rh.json index 5250aa62..3b82c250 100644 --- a/src/main/resources/assets/dimdoors/models/block/gold_door_bottom_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/gold_door_bottom_rh.json @@ -1,7 +1,8 @@ { - "parent": "block/door_bottom_rh", - "textures": { - "bottom": "dimdoors:block/gold_door_lower", - "top": "dimdoors:block/gold_door_upper" - } + "parent": "block/door_bottom_rh", + "textures": { + "bottom": "dimdoors:block/gold_door_lower", + "top": "dimdoors:block/gold_door_upper", + "particle": "dimdoors:block/gold_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/gold_door_top.json b/src/main/resources/assets/dimdoors/models/block/gold_door_top.json index 66259d6f..39162404 100644 --- a/src/main/resources/assets/dimdoors/models/block/gold_door_top.json +++ b/src/main/resources/assets/dimdoors/models/block/gold_door_top.json @@ -1,7 +1,8 @@ { - "parent": "block/door_top", - "textures": { - "bottom": "dimdoors:block/gold_door_lower", - "top": "dimdoors:block/gold_door_upper" - } + "parent": "block/door_top", + "textures": { + "bottom": "dimdoors:block/gold_door_lower", + "top": "dimdoors:block/gold_door_upper", + "particle": "dimdoors:block/gold_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/gold_door_top_rh.json b/src/main/resources/assets/dimdoors/models/block/gold_door_top_rh.json index a874f87b..c55a457d 100644 --- a/src/main/resources/assets/dimdoors/models/block/gold_door_top_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/gold_door_top_rh.json @@ -1,7 +1,8 @@ { - "parent": "block/door_top_rh", - "textures": { - "bottom": "dimdoors:block/gold_door_lower", - "top": "dimdoors:block/gold_door_upper" - } + "parent": "block/door_top_rh", + "textures": { + "bottom": "dimdoors:block/gold_door_lower", + "top": "dimdoors:block/gold_door_upper", + "particle": "dimdoors:block/gold_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom.json b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom.json index a391275e..a0293fba 100644 --- a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom.json +++ b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom.json @@ -1,7 +1,8 @@ { - "parent": "block/door_bottom", - "textures": { - "bottom": "dimdoors:block/iron_dimensional_door_lower", - "top": "dimdoors:block/iron_dimensional_door_upper" - } + "parent": "block/door_bottom", + "textures": { + "bottom": "dimdoors:block/iron_dimensional_door_lower", + "top": "dimdoors:block/iron_dimensional_door_upper", + "particle": "dimdoors:block/iron_dimensional_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom_rh.json b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom_rh.json index 862b3032..75eacb8c 100644 --- a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_bottom_rh.json @@ -1,7 +1,8 @@ { - "parent": "block/door_bottom_rh", - "textures": { - "bottom": "dimdoors:block/iron_dimensional_door_lower", - "top": "dimdoors:block/iron_dimensional_door_upper" - } + "parent": "block/door_bottom_rh", + "textures": { + "bottom": "dimdoors:block/iron_dimensional_door_lower", + "top": "dimdoors:block/iron_dimensional_door_upper", + "particle": "dimdoors:block/iron_dimensional_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top.json b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top.json index cffd8f77..fd8571e0 100644 --- a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top.json +++ b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top.json @@ -1,7 +1,8 @@ { - "parent": "block/door_top", - "textures": { - "bottom": "dimdoors:block/iron_dimensional_door_lower", - "top": "dimdoors:block/iron_dimensional_door_upper" - } + "parent": "block/door_top", + "textures": { + "bottom": "dimdoors:block/iron_dimensional_door_lower", + "top": "dimdoors:block/iron_dimensional_door_upper", + "particle": "dimdoors:block/iron_dimensional_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top_rh.json b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top_rh.json index f3b0735d..0bd4d8b9 100644 --- a/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/iron_dimensional_door_top_rh.json @@ -1,7 +1,8 @@ { - "parent": "block/door_top_rh", - "textures": { - "bottom": "dimdoors:block/iron_dimensional_door_lower", - "top": "dimdoors:block/iron_dimensional_door_upper" - } + "parent": "block/door_top_rh", + "textures": { + "bottom": "dimdoors:block/iron_dimensional_door_lower", + "top": "dimdoors:block/iron_dimensional_door_upper", + "particle": "dimdoors:block/iron_dimensional_door_lower" + } } diff --git a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom.json b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom.json index f2a150d2..ef5912f6 100644 --- a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom.json +++ b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom.json @@ -2,6 +2,7 @@ "parent": "block/door_bottom", "textures": { "bottom": "dimdoors:block/oak_dimensional_door_lower", - "top": "dimdoors:block/oak_dimensional_door_upper" + "top": "dimdoors:block/oak_dimensional_door_upper", + "particle": "dimdoors:block/oak_dimensional_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom_rh.json b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom_rh.json index 67e001b5..f3df5bff 100644 --- a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_bottom_rh.json @@ -2,6 +2,7 @@ "parent": "block/door_bottom_rh", "textures": { "bottom": "dimdoors:block/oak_dimensional_door_lower", - "top": "dimdoors:block/oak_dimensional_door_upper" + "top": "dimdoors:block/oak_dimensional_door_upper", + "particle": "dimdoors:block/oak_dimensional_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top.json b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top.json index d4314a53..3a3068df 100644 --- a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top.json +++ b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top.json @@ -2,6 +2,7 @@ "parent": "block/door_top", "textures": { "bottom": "dimdoors:block/oak_dimensional_door_lower", - "top": "dimdoors:block/oak_dimensional_door_upper" + "top": "dimdoors:block/oak_dimensional_door_upper", + "particle": "dimdoors:block/oak_dimensional_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top_rh.json b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top_rh.json index 759bf92e..53d3c1f8 100644 --- a/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/oak_dimensional_door_top_rh.json @@ -2,6 +2,7 @@ "parent": "block/door_top_rh", "textures": { "bottom": "dimdoors:block/oak_dimensional_door_lower", - "top": "dimdoors:block/oak_dimensional_door_upper" + "top": "dimdoors:block/oak_dimensional_door_upper", + "particle": "dimdoors:block/oak_dimensional_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom.json b/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom.json index ff6c390c..523eeaf5 100644 --- a/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom.json +++ b/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom.json @@ -2,6 +2,7 @@ "parent": "block/door_bottom", "textures": { "bottom": "dimdoors:block/quartz_door_lower", - "top": "dimdoors:block/quartz_door_upper" + "top": "dimdoors:block/quartz_door_upper", + "particle": "dimdoors:block/quartz_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom_rh.json b/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom_rh.json index 291c12cf..b492c5cc 100644 --- a/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/quartz_door_bottom_rh.json @@ -2,6 +2,7 @@ "parent": "block/door_bottom_rh", "textures": { "bottom": "dimdoors:block/quartz_door_lower", - "top": "dimdoors:block/quartz_door_upper" + "top": "dimdoors:block/quartz_door_upper", + "particle": "dimdoors:block/quartz_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/quartz_door_top.json b/src/main/resources/assets/dimdoors/models/block/quartz_door_top.json index c79ef4f8..be316260 100644 --- a/src/main/resources/assets/dimdoors/models/block/quartz_door_top.json +++ b/src/main/resources/assets/dimdoors/models/block/quartz_door_top.json @@ -2,6 +2,7 @@ "parent": "block/door_top", "textures": { "bottom": "dimdoors:block/quartz_door_lower", - "top": "dimdoors:block/quartz_door_upper" + "top": "dimdoors:block/quartz_door_upper", + "particle": "dimdoors:block/quartz_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/block/quartz_door_top_rh.json b/src/main/resources/assets/dimdoors/models/block/quartz_door_top_rh.json index df661843..5f00c475 100644 --- a/src/main/resources/assets/dimdoors/models/block/quartz_door_top_rh.json +++ b/src/main/resources/assets/dimdoors/models/block/quartz_door_top_rh.json @@ -2,6 +2,7 @@ "parent": "block/door_top_rh", "textures": { "bottom": "dimdoors:block/quartz_door_lower", - "top": "dimdoors:block/quartz_door_upper" + "top": "dimdoors:block/quartz_door_upper", + "particle": "dimdoors:block/quartz_door_lower" } } diff --git a/src/main/resources/assets/dimdoors/models/item/dimensional_trapdoor.json b/src/main/resources/assets/dimdoors/models/item/dimensional_trapdoor.json deleted file mode 100644 index e34957e4..00000000 --- a/src/main/resources/assets/dimdoors/models/item/dimensional_trapdoor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "dimdoors:block/dimensional_trapdoor_bottom" -} diff --git a/src/main/resources/assets/dimdoors/models/item/rift_key.json b/src/main/resources/assets/dimdoors/models/item/rift_key.json new file mode 100644 index 00000000..23200f40 --- /dev/null +++ b/src/main/resources/assets/dimdoors/models/item/rift_key.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "dimdoors:item/rift_key" + } +} diff --git a/src/main/resources/assets/dimdoors/models/item/wood_dimensional_trapdoor.json b/src/main/resources/assets/dimdoors/models/item/wood_dimensional_trapdoor.json new file mode 100644 index 00000000..4357c261 --- /dev/null +++ b/src/main/resources/assets/dimdoors/models/item/wood_dimensional_trapdoor.json @@ -0,0 +1,3 @@ +{ + "parent": "block/oak_trapdoor" +} diff --git a/src/main/resources/assets/dimdoors/textures/item/rift_key.png b/src/main/resources/assets/dimdoors/textures/item/rift_key.png new file mode 100644 index 00000000..e2f0a749 Binary files /dev/null and b/src/main/resources/assets/dimdoors/textures/item/rift_key.png differ diff --git a/src/main/resources/data/dimdoors/advancements/dimdoor/root.json b/src/main/resources/data/dimdoors/advancements/dimdoor/root.json deleted file mode 100644 index af109ab5..00000000 --- a/src/main/resources/data/dimdoors/advancements/dimdoor/root.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "display": { - "icon": { - "item": "dimdoors:unravelled_fabric" - }, - "title": { - "translate": "Space between Spaces" - }, - "description": { - "translate": "advancements.end.root.description" - }, - "background": "minecraft:textures/gui/advancements/backgrounds/end.png", - "show_toast": true, - "announce_to_chat": true - }, - "criteria": { - "entered_end": { - "trigger": "minecraft:changed_dimension", - "conditions": { - "to": "private_pockets" - } - } - } -} diff --git a/src/main/resources/data/dimdoors/advancements/dimdoors/dungeon.json b/src/main/resources/data/dimdoors/advancements/dimdoors/dungeon.json new file mode 100644 index 00000000..f2bba38a --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/dimdoors/dungeon.json @@ -0,0 +1,32 @@ +{ + "parent": "dimdoors:dimdoors/root", + "display": { + "icon": { + "item": "dimdoors:gold_dimensional_door" + }, + "title": { + "translate": "dimdoors.advancement.dungeon" + }, + "description": { + "translate": "dimdoors.advancement.dungeon.desc" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false, + "background": "dimdoors:textures/block/unravelled_fabric.png" + }, + "criteria": { + "changed_dimension": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "dimdoors:dungeon_pockets" + } + } + }, + "requirements": [ + [ + "changed_dimension" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/dimdoors/escape_limbo.json b/src/main/resources/data/dimdoors/advancements/dimdoors/escape_limbo.json new file mode 100644 index 00000000..2ae6c8ad --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/dimdoors/escape_limbo.json @@ -0,0 +1,32 @@ +{ + "parent": "dimdoors:dimdoors/limbo", + "display": { + "icon": { + "item": "dimdoors:eternal_fluid_bucket" + }, + "title": { + "translate": "dimdoors.advancement.escape_limbo" + }, + "description": { + "translate": "dimdoors.advancement.escape_limbo.desc" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false, + "background": "dimdoors:textures/block/unravelled_fabric.png" + }, + "criteria": { + "changed_dimension": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "from": "dimdoors:limbo" + } + } + }, + "requirements": [ + [ + "changed_dimension" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/dimdoors/limbo.json b/src/main/resources/data/dimdoors/advancements/dimdoors/limbo.json new file mode 100644 index 00000000..a9e2c6db --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/dimdoors/limbo.json @@ -0,0 +1,32 @@ +{ + "parent": "dimdoors:dimdoors/root", + "display": { + "icon": { + "item": "dimdoors:unravelled_fabric" + }, + "title": { + "translate": "dimdoors.advancement.limbo" + }, + "description": { + "translate": "dimdoors.advancement.limbo.desc" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false, + "background": "dimdoors:textures/block/unravelled_fabric.png" + }, + "criteria": { + "changed_dimension": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "dimdoors:limbo" + } + } + }, + "requirements": [ + [ + "changed_dimension" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/dimdoors/private_pocket.json b/src/main/resources/data/dimdoors/advancements/dimdoors/private_pocket.json new file mode 100644 index 00000000..76130823 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/dimdoors/private_pocket.json @@ -0,0 +1,32 @@ +{ + "parent": "dimdoors:dimdoors/root", + "display": { + "icon": { + "item": "dimdoors:quartz_dimensional_door" + }, + "title": { + "translate": "dimdoors.advancement.private_pocket" + }, + "description": { + "translate": "dimdoors.advancement.private_pocket.desc" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false, + "background": "dimdoors:textures/block/unravelled_fabric.png" + }, + "criteria": { + "changed_dimension": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "dimdoors:personal_pockets" + } + } + }, + "requirements": [ + [ + "changed_dimension" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/dimdoors/public_pocket.json b/src/main/resources/data/dimdoors/advancements/dimdoors/public_pocket.json new file mode 100644 index 00000000..57d78291 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/dimdoors/public_pocket.json @@ -0,0 +1,32 @@ +{ + "parent": "dimdoors:dimdoors/root", + "display": { + "icon": { + "item": "dimdoors:iron_dimensional_door" + }, + "title": { + "translate": "dimdoors.advancement.public_pocket" + }, + "description": { + "translate": "dimdoors.advancement.public_pocket.desc" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false, + "background": "dimdoors:textures/block/unravelled_fabric.png" + }, + "criteria": { + "changed_dimension": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "dimdoors:public_pockets" + } + } + }, + "requirements": [ + [ + "changed_dimension" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/dimdoors/root.json b/src/main/resources/data/dimdoors/advancements/dimdoors/root.json new file mode 100644 index 00000000..16ebf4e9 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/dimdoors/root.json @@ -0,0 +1,36 @@ +{ + "display": { + "icon": { + "item": "dimdoors:rift_blade", + "nbt": "{Damage:0}" + }, + "title": { + "translate": "dimdoors.advancement.root" + }, + "description": { + "translate": "dimdoors.advancement.root.desc" + }, + "frame": "task", + "show_toast": true, + "announce_to_chat": true, + "hidden": false, + "background": "dimdoors:textures/block/unravelled_fabric.png" + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "minecraft:ender_pearl" + } + ] + } + } + }, + "requirements": [ + [ + "inventory_changed" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/black_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/black_fabric.json new file mode 100644 index 00000000..982aa30c --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/black_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:black_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:black_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/blue_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/blue_fabric.json new file mode 100644 index 00000000..7f15a4e3 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/blue_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:blue_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:blue_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/brown_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/brown_fabric.json new file mode 100644 index 00000000..697be645 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/brown_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:brown_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:brown_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/cyan_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/cyan_fabric.json new file mode 100644 index 00000000..ff923d6e --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/cyan_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:cyan_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:cyan_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/gray_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/gray_fabric.json new file mode 100644 index 00000000..c060072e --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/gray_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:gray_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:gray_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/green_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/green_fabric.json new file mode 100644 index 00000000..5f2c25b6 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/green_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:green_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:green_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/light_blue_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/light_blue_fabric.json new file mode 100644 index 00000000..f83f4fe7 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/light_blue_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:light_blue_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:light_blue_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/light_gray_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/light_gray_fabric.json new file mode 100644 index 00000000..eab3e95f --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/light_gray_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:light_gray_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:light_gray_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/lime_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/lime_fabric.json new file mode 100644 index 00000000..ab645c92 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/lime_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:lime_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:lime_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/magenta_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/magenta_fabric.json new file mode 100644 index 00000000..8607e602 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/magenta_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:magenta_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:magenta_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/orange_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/orange_fabric.json new file mode 100644 index 00000000..d4cb9097 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/orange_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:orange_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:orange_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/pink_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/pink_fabric.json new file mode 100644 index 00000000..0d8601f6 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/pink_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:pink_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:pink_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/purple_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/purple_fabric.json new file mode 100644 index 00000000..890a80a5 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/purple_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:purple_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:purple_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/red_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/red_fabric.json new file mode 100644 index 00000000..b677b81e --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/red_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:red_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:red_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/white_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/white_fabric.json new file mode 100644 index 00000000..519a35a1 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/white_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:white_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:white_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/yellow_fabric.json b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/yellow_fabric.json new file mode 100644 index 00000000..e45b4e72 --- /dev/null +++ b/src/main/resources/data/dimdoors/advancements/recipes/dimdoors.dimensional_doors/yellow_fabric.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "dimdoors:yellow_fabric" + ] + }, + "criteria": { + "inventory_changed": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "dimdoors:world_thread" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "dimdoors:yellow_fabric" + } + } + }, + "requirements": [ + [ + "inventory_changed", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/black_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/black_fabric.json new file mode 100644 index 00000000..d412968e --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/black_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:black_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/blue_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/blue_fabric.json new file mode 100644 index 00000000..a9d030bf --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/blue_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:blue_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/brown_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/brown_fabric.json new file mode 100644 index 00000000..9aee6944 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/brown_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:brown_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/cyan_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/cyan_fabric.json new file mode 100644 index 00000000..a97e333f --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/cyan_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:cyan_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/gold_dimensional_door.json b/src/main/resources/data/dimdoors/loot_tables/blocks/gold_dimensional_door.json new file mode 100644 index 00000000..7c4c8562 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/gold_dimensional_door.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:gold_dimensional_door" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/gold_door.json b/src/main/resources/data/dimdoors/loot_tables/blocks/gold_door.json new file mode 100644 index 00000000..348d626c --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/gold_door.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:gold_door" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/gray_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/gray_fabric.json new file mode 100644 index 00000000..59cc2d06 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/gray_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:gray_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/green_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/green_fabric.json new file mode 100644 index 00000000..b604096f --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/green_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:green_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/iron_dimensional_door.json b/src/main/resources/data/dimdoors/loot_tables/blocks/iron_dimensional_door.json new file mode 100644 index 00000000..79d984f2 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/iron_dimensional_door.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:unstable_dimensional_door" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/light_blue_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/light_blue_fabric.json new file mode 100644 index 00000000..f6d82a27 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/light_blue_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:light_blue_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/light_gray_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/light_gray_fabric.json new file mode 100644 index 00000000..3be0099a --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/light_gray_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:light_gray_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/lime_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/lime_fabric.json new file mode 100644 index 00000000..d5bcbce9 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/lime_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:lime_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/magenta_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/magenta_fabric.json new file mode 100644 index 00000000..a4f1b7c7 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/magenta_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:magenta_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/marking_plate.json b/src/main/resources/data/dimdoors/loot_tables/blocks/marking_plate.json new file mode 100644 index 00000000..0b5854dd --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/marking_plate.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:marking_plate" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/oak_dimensional_door.json b/src/main/resources/data/dimdoors/loot_tables/blocks/oak_dimensional_door.json new file mode 100644 index 00000000..543683b9 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/oak_dimensional_door.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:oak_dimensional_door" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/orange_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/orange_fabric.json new file mode 100644 index 00000000..617662e5 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/orange_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:orange_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/pink_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/pink_fabric.json new file mode 100644 index 00000000..fb401d29 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/pink_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:pink_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/purple_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/purple_fabric.json new file mode 100644 index 00000000..7b91a99a --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/purple_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:purple_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/quartz_dimensional_door.json b/src/main/resources/data/dimdoors/loot_tables/blocks/quartz_dimensional_door.json new file mode 100644 index 00000000..95c892d6 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/quartz_dimensional_door.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:quartz_dimensional_door" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/quartz_door.json b/src/main/resources/data/dimdoors/loot_tables/blocks/quartz_door.json new file mode 100644 index 00000000..dacea1de --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/quartz_door.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:quartz_door" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/red_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/red_fabric.json new file mode 100644 index 00000000..c20312e6 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/red_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:red_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/white_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/white_fabric.json new file mode 100644 index 00000000..48b10f4f --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/white_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:white_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/wood_dimensional_trapdoor.json b/src/main/resources/data/dimdoors/loot_tables/blocks/wood_dimensional_trapdoor.json new file mode 100644 index 00000000..23c48703 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/wood_dimensional_trapdoor.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:wood_dimensional_trapdoor" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/loot_tables/blocks/yellow_fabric.json b/src/main/resources/data/dimdoors/loot_tables/blocks/yellow_fabric.json new file mode 100644 index 00000000..2d1dc918 --- /dev/null +++ b/src/main/resources/data/dimdoors/loot_tables/blocks/yellow_fabric.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "dimdoors:yellow_fabric" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom.json b/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom.json new file mode 100644 index 00000000..19ea3796 --- /dev/null +++ b/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom.json @@ -0,0 +1,21 @@ +{ + "type": "dimdoors:schematic", + "id": "v2/custom/lantredom", + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "rift_data/available_link" + }, + { + "type": "dimdoors:relative", + "point_a": 1, + "point_b": 3 + } + ] +} diff --git a/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom_end.json b/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom_end.json new file mode 100644 index 00000000..d3e16bd9 --- /dev/null +++ b/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom_end.json @@ -0,0 +1,21 @@ +{ + "type": "dimdoors:schematic", + "id": "v2/custom/lantredom_end", + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "rift_data/available_link" + }, + { + "type": "dimdoors:relative", + "point_a": 1, + "point_b": 3 + } + ] +} diff --git a/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom_red.json b/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom_red.json new file mode 100644 index 00000000..53351934 --- /dev/null +++ b/src/main/resources/data/dimdoors/pockets/generators/custom/lantredom_red.json @@ -0,0 +1,21 @@ +{ + "type": "dimdoors:schematic", + "id": "v2/custom/lantredom_red", + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "rift_data/available_link" + }, + { + "type": "dimdoors:relative", + "point_a": 1, + "point_b": 3 + } + ] +} diff --git a/src/main/resources/data/dimdoors/pockets/groups/dungeon.json b/src/main/resources/data/dimdoors/pockets/groups/dungeon.json index d2119acc..3fa24eac 100644 --- a/src/main/resources/data/dimdoors/pockets/groups/dungeon.json +++ b/src/main/resources/data/dimdoors/pockets/groups/dungeon.json @@ -112,5 +112,17 @@ { "id": "custom/smile_6", "type": "dimdoors:id" + }, + { + "id": "custom/lantredom", + "type": "dimdoors:id" + }, + { + "id": "custom/lantredom_end", + "type": "dimdoors:id" + }, + { + "id": "custom/lantredom_red", + "type": "dimdoors:id" } ] diff --git a/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom.schem b/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom.schem new file mode 100644 index 00000000..c887a7cb Binary files /dev/null and b/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom.schem differ diff --git a/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom_end.schem b/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom_end.schem new file mode 100644 index 00000000..32921c20 Binary files /dev/null and b/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom_end.schem differ diff --git a/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom_red.schem b/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom_red.schem new file mode 100644 index 00000000..7956c28e Binary files /dev/null and b/src/main/resources/data/dimdoors/pockets/schematic/v2/custom/lantredom_red.schem differ diff --git a/src/main/resources/data/dimdoors/recipes/black_fabric.json b/src/main/resources/data/dimdoors/recipes/black_fabric.json new file mode 100644 index 00000000..6bd21d62 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/black_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:black_dye" + } + }, + "result": { + "item": "dimdoors:black_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/blue_fabric.json b/src/main/resources/data/dimdoors/recipes/blue_fabric.json new file mode 100644 index 00000000..989a0385 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/blue_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:blue_dye" + } + }, + "result": { + "item": "dimdoors:blue_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/brown_fabric.json b/src/main/resources/data/dimdoors/recipes/brown_fabric.json new file mode 100644 index 00000000..def59621 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/brown_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:brown_dye" + } + }, + "result": { + "item": "dimdoors:brown_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/cyan_fabric.json b/src/main/resources/data/dimdoors/recipes/cyan_fabric.json new file mode 100644 index 00000000..3b8787e4 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/cyan_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:cyan_dye" + } + }, + "result": { + "item": "dimdoors:cyan_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/gray_fabric.json b/src/main/resources/data/dimdoors/recipes/gray_fabric.json new file mode 100644 index 00000000..cdb507cc --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/gray_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:gray_dye" + } + }, + "result": { + "item": "dimdoors:gray_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/green_fabric.json b/src/main/resources/data/dimdoors/recipes/green_fabric.json new file mode 100644 index 00000000..b8c1730e --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/green_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:green_dye" + } + }, + "result": { + "item": "dimdoors:green_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/light_blue_fabric.json b/src/main/resources/data/dimdoors/recipes/light_blue_fabric.json new file mode 100644 index 00000000..a51db1a4 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/light_blue_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:light_blue_dye" + } + }, + "result": { + "item": "dimdoors:light_blue_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/light_gray_fabric.json b/src/main/resources/data/dimdoors/recipes/light_gray_fabric.json new file mode 100644 index 00000000..9aeb047b --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/light_gray_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:light_gray_dye" + } + }, + "result": { + "item": "dimdoors:light_gray_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/lime_fabric.json b/src/main/resources/data/dimdoors/recipes/lime_fabric.json new file mode 100644 index 00000000..bbad5f88 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/lime_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:lime_dye" + } + }, + "result": { + "item": "dimdoors:lime_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/magenta_fabric.json b/src/main/resources/data/dimdoors/recipes/magenta_fabric.json new file mode 100644 index 00000000..8ceca088 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/magenta_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:magenta_dye" + } + }, + "result": { + "item": "dimdoors:magenta_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/wood_dimensional_door.json b/src/main/resources/data/dimdoors/recipes/oak_dimensional_door.json similarity index 69% rename from src/main/resources/data/dimdoors/recipes/wood_dimensional_door.json rename to src/main/resources/data/dimdoors/recipes/oak_dimensional_door.json index bd6abc19..4c42a8a4 100644 --- a/src/main/resources/data/dimdoors/recipes/wood_dimensional_door.json +++ b/src/main/resources/data/dimdoors/recipes/oak_dimensional_door.json @@ -5,14 +5,14 @@ ], "key": { "#": { - "tag": "#minecraft:wooden_doors" + "tag": "minecraft:wooden_doors" }, "X": { "item": "minecraft:ender_pearl" } }, "result": { - "item": "dimdoors:wood_dimensional_door", + "item": "dimdoors:oak_dimensional_door", "count": 1 } } diff --git a/src/main/resources/data/dimdoors/recipes/orange_fabric.json b/src/main/resources/data/dimdoors/recipes/orange_fabric.json new file mode 100644 index 00000000..71aee80b --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/orange_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:orange_dye" + } + }, + "result": { + "item": "dimdoors:orange_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/pink_fabric.json b/src/main/resources/data/dimdoors/recipes/pink_fabric.json new file mode 100644 index 00000000..4185d033 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/pink_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:pink_dye" + } + }, + "result": { + "item": "dimdoors:pink_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/purple_fabric.json b/src/main/resources/data/dimdoors/recipes/purple_fabric.json new file mode 100644 index 00000000..4e643c5f --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/purple_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:purple_dye" + } + }, + "result": { + "item": "dimdoors:purple_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/red_fabric.json b/src/main/resources/data/dimdoors/recipes/red_fabric.json new file mode 100644 index 00000000..71e91abb --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/red_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:red_dye" + } + }, + "result": { + "item": "dimdoors:red_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/white_fabric.json b/src/main/resources/data/dimdoors/recipes/white_fabric.json new file mode 100644 index 00000000..f6657300 --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/white_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:white_dye" + } + }, + "result": { + "item": "dimdoors:white_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/dimdoors/recipes/wood_dimensional_trapdoor.json b/src/main/resources/data/dimdoors/recipes/wood_dimensional_trapdoor.json index a59f754a..40b2e136 100644 --- a/src/main/resources/data/dimdoors/recipes/wood_dimensional_trapdoor.json +++ b/src/main/resources/data/dimdoors/recipes/wood_dimensional_trapdoor.json @@ -5,7 +5,7 @@ ], "key": { "#": { - "tag": "#minecraft:wooden_trapdoors" + "tag": "minecraft:wooden_trapdoors" }, "X": { "item": "minecraft:ender_pearl" diff --git a/src/main/resources/data/dimdoors/recipes/yellow_fabric.json b/src/main/resources/data/dimdoors/recipes/yellow_fabric.json new file mode 100644 index 00000000..d6f75e2b --- /dev/null +++ b/src/main/resources/data/dimdoors/recipes/yellow_fabric.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "colored_fabric", + "pattern": [ + " X ", + "XDX", + " X " + ], + "key": { + "X": { + "item": "dimdoors:world_thread" + }, + "D": { + "item": "minecraft:yellow_dye" + } + }, + "result": { + "item": "dimdoors:yellow_fabric" + } +} \ No newline at end of file diff --git a/src/main/resources/data/fabric/tags/items/swords.json b/src/main/resources/data/fabric/tags/items/swords.json new file mode 100644 index 00000000..c7687e0a --- /dev/null +++ b/src/main/resources/data/fabric/tags/items/swords.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "dimdoors:rift_blade" + ] +} diff --git a/src/main/resources/dimdoors.mixins.json b/src/main/resources/dimdoors.mixins.json index f205ef0a..16b57240 100644 --- a/src/main/resources/dimdoors.mixins.json +++ b/src/main/resources/dimdoors.mixins.json @@ -5,6 +5,7 @@ "mixins": [ "DefaultBiomeFeaturesMixin", "PlayerEntityMixin", + "RecipesProviderAccessor", "RegistryKeyMixin", "ServerPlayerEntityMixin", "accessor.BuiltinBiomesAccessor",