diff --git a/src/main/java/net/Chipperfluff/chipi/ChipiMod.java b/src/main/java/net/Chipperfluff/chipi/ChipiMod.java index 04297c4..d74da3e 100644 --- a/src/main/java/net/Chipperfluff/chipi/ChipiMod.java +++ b/src/main/java/net/Chipperfluff/chipi/ChipiMod.java @@ -16,6 +16,14 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.GameRules; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.world.gen.GenerationStep; + +import net.Chipperfluff.chipi.advancement.ModCriteria; + public class ChipiMod implements ModInitializer { public static final String MOD_ID = "chipi"; @@ -31,6 +39,16 @@ public class ChipiMod implements ModInitializer { ModBlocks.register(); ModItems.register(); + ModCriteria.register(); + + BiomeModifications.addFeature( + BiomeSelectors.foundInOverworld(), + GenerationStep.Feature.UNDERGROUND_ORES, + RegistryKey.of( + RegistryKeys.PLACED_FEATURE, + new Identifier("chipi", "chipper_ore") + ) + ); CommandRegistrationCallback.EVENT.register( (dispatcher, registryAccess, environment) -> diff --git a/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java b/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java new file mode 100644 index 0000000..288e84d --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/advancement/ModCriteria.java @@ -0,0 +1,11 @@ +package net.Chipperfluff.chipi.advancement; + +import net.minecraft.advancement.criterion.Criteria; + +public class ModCriteria { + + public static final PortalActivatedTrigger PORTAL_ACTIVATED = + Criteria.register(new PortalActivatedTrigger()); + + public static void register() {} +} diff --git a/src/main/java/net/Chipperfluff/chipi/advancement/PortalActivatedTrigger.java b/src/main/java/net/Chipperfluff/chipi/advancement/PortalActivatedTrigger.java new file mode 100644 index 0000000..20e9c27 --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/advancement/PortalActivatedTrigger.java @@ -0,0 +1,39 @@ +package net.Chipperfluff.chipi.advancement; + +import com.google.gson.JsonObject; +import net.minecraft.advancement.AdvancementCriterion; +import net.minecraft.advancement.criterion.AbstractCriterion; +import net.minecraft.advancement.criterion.CriterionConditions; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Identifier; +import net.Chipperfluff.chipi.ChipiMod; + +public class PortalActivatedTrigger extends AbstractCriterion { + + public static final Identifier ID = + new Identifier(ChipiMod.MOD_ID, "portal_activated"); + + @Override + public Identifier getId() { + return ID; + } + + @Override + protected Conditions conditionsFromJson( + JsonObject obj, + net.minecraft.advancement.criterion.CriterionConditionsParser parser + ) { + return new Conditions(); + } + + public void trigger(ServerPlayerEntity player) { + this.trigger(player, conditions -> true); + } + + // ================= CONDITIONS ================= + public static class Conditions extends CriterionConditions { + public Conditions() { + super(ID, null); + } + } +} diff --git a/src/main/java/net/Chipperfluff/chipi/advancement/PortalDestroyedTrigger.java b/src/main/java/net/Chipperfluff/chipi/advancement/PortalDestroyedTrigger.java new file mode 100644 index 0000000..e163729 --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/advancement/PortalDestroyedTrigger.java @@ -0,0 +1,39 @@ +package net.Chipperfluff.chipi.advancement; + +import com.google.gson.JsonObject; +import net.minecraft.advancement.AdvancementCriterion; +import net.minecraft.advancement.criterion.AbstractCriterion; +import net.minecraft.advancement.criterion.CriterionConditions; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.util.Identifier; +import net.Chipperfluff.chipi.ChipiMod; + +public class PortalDestroyedTrigger extends AbstractCriterion { + + public static final Identifier ID = + new Identifier(ChipiMod.MOD_ID, "portal_destroyed"); + + @Override + public Identifier getId() { + return ID; + } + + @Override + protected Conditions conditionsFromJson( + JsonObject obj, + net.minecraft.advancement.criterion.CriterionConditionsParser parser + ) { + return new Conditions(); + } + + public void trigger(ServerPlayerEntity player) { + this.trigger(player, conditions -> true); + } + + // ================= CONDITIONS ================= + public static class Conditions extends CriterionConditions { + public Conditions() { + super(ID, null); + } + } +} diff --git a/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java b/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java index 46af6d3..b030ec6 100644 --- a/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java +++ b/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalBlock.java @@ -18,7 +18,7 @@ import net.minecraft.world.World; import net.minecraft.world.TeleportTarget; import net.minecraft.network.packet.s2c.play.PositionFlag; import java.util.EnumSet; - +import net.Chipperfluff.chipi.advancement.ModCriteria; public class ChipperPortalBlock extends Block { @@ -78,6 +78,7 @@ public class ChipperPortalBlock extends Block { if (!player.isCreative()) { return 0.0F; // impossible to break } + ModCriteria.PORTAL_DESTROYED.trigger(player); return super.calcBlockBreakingDelta(state, player, world, pos); } } diff --git a/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalShape.java b/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalShape.java index c587801..4f48296 100644 --- a/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalShape.java +++ b/src/main/java/net/Chipperfluff/chipi/block/ChipperPortalShape.java @@ -5,6 +5,7 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; +import net.Chipperfluff.chipi.advancement.ModCriteria; public class ChipperPortalShape { @@ -25,6 +26,7 @@ public class ChipperPortalShape { ChipperPortalShape shape = new ChipperPortalShape(world, placedPos, axis); if (shape.isValid()) { shape.placePortal(); + ModCriteria.PORTAL_ACTIVATED.trigger(player); System.out.println("[CHIPI] portal created at " + placedPos + " axis=" + axis); return true; } diff --git a/src/main/java/net/Chipperfluff/chipi/block/ModBlocks.java b/src/main/java/net/Chipperfluff/chipi/block/ModBlocks.java index d3d86dc..510a59b 100644 --- a/src/main/java/net/Chipperfluff/chipi/block/ModBlocks.java +++ b/src/main/java/net/Chipperfluff/chipi/block/ModBlocks.java @@ -2,57 +2,66 @@ package net.Chipperfluff.chipi.block; import net.minecraft.block.Block; import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Blocks; +import net.minecraft.block.MapColor; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; -import net.Chipperfluff.chipi.ChipiMod; -import net.Chipperfluff.chipi.block.ChipperFrameBlock; -import net.Chipperfluff.chipi.block.ChipperPortalBlock; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.block.MapColor; +import net.Chipperfluff.chipi.ChipiMod; public class ModBlocks { - public static final Block VOID_BLOCK = register( - "void_block", - new VoidBlock( - AbstractBlock.Settings.create() - .strength(-1.0F, 3600000.0F) // vanilla unbreakable values - .mapColor(MapColor.BLACK) - .noCollision() - .dropsNothing() - ) + public static final Block VOID_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(ChipiMod.MOD_ID, "void_block"), + new VoidBlock( + AbstractBlock.Settings.create() + .strength(-1.0F, 3600000.0F) + .mapColor(MapColor.BLACK) + .noCollision() + .dropsNothing() + ) ); - public static final Block CHIPPER_FRAME = - register( - "chipper_frame", - new ChipperFrameBlock( - FabricBlockSettings - .create() - .strength(3.0f) - .requiresTool() - ) + public static final Block CHIPPER_FRAME = Registry.register( + Registries.BLOCK, + new Identifier(ChipiMod.MOD_ID, "chipper_frame"), + new ChipperFrameBlock( + FabricBlockSettings.create() + .strength(3.0f) + .requiresTool() + ) ); - public static final Block CHIPPER_PORTAL = register( - "chipper_portal", - new ChipperPortalBlock( - FabricBlockSettings - .create() - .noCollision() - .luminance(3) - .strength(-1.0f) - ) + public static final Block CHIPPER_PORTAL = Registry.register( + Registries.BLOCK, + new Identifier(ChipiMod.MOD_ID, "chipper_portal"), + new ChipperPortalBlock( + FabricBlockSettings.create() + .noCollision() + .luminance(3) + .strength(-1.0f) + ) ); - private static Block register(String name, Block block) { - return Registry.register( - Registries.BLOCK, - new Identifier(ChipiMod.MOD_ID, name), - block - ); - } + public static final Block CHIPPER_ORE = Registry.register( + Registries.BLOCK, + new Identifier(ChipiMod.MOD_ID, "chipper_ore"), + new Block(AbstractBlock.Settings + .copy(Blocks.IRON_ORE) + .requiresTool() + ) + ); + + public static final Block CHIPPER_ALLOY_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(ChipiMod.MOD_ID, "chipper_alloy_block"), + new Block(AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK) + .requiresTool() + ) + ); public static void register() {} } diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModItems.java b/src/main/java/net/Chipperfluff/chipi/item/ModItems.java index 535becd..fa9f2cf 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/ModItems.java +++ b/src/main/java/net/Chipperfluff/chipi/item/ModItems.java @@ -5,33 +5,69 @@ import net.minecraft.item.Item; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.Chipperfluff.chipi.ChipiMod; import net.Chipperfluff.chipi.block.ModBlocks; public class ModItems { - public static final Item VOID_BLOCK = register( - "void_block", - new BlockItem(ModBlocks.VOID_BLOCK, new Item.Settings()) + // ===== BLOCK ITEMS ===== + + public static final Item VOID_BLOCK = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "void_block"), + new BlockItem(ModBlocks.VOID_BLOCK, new FabricItemSettings()) ); - public static final Item CHIPPER_FRAME = register( - "chipper_frame", - new BlockItem(ModBlocks.CHIPPER_FRAME, new Item.Settings()) + public static final Item CHIPPER_FRAME = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "chipper_frame"), + new BlockItem(ModBlocks.CHIPPER_FRAME, new FabricItemSettings()) ); - public static final Item CHIPPER_PORTAL = register( - "chipper_portal", - new BlockItem(ModBlocks.CHIPPER_PORTAL, new Item.Settings()) + public static final Item CHIPPER_PORTAL = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "chipper_portal"), + new BlockItem(ModBlocks.CHIPPER_PORTAL, new FabricItemSettings()) ); - private static Item register(String name, Item item) { - return Registry.register( - Registries.ITEM, - new Identifier(ChipiMod.MOD_ID, name), - item - ); - } + public static final Item CHIPPER_ORE = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "chipper_ore"), + new BlockItem(ModBlocks.CHIPPER_ORE, new FabricItemSettings()) + ); + + public static final Item CHIPPER_ALLOY_BLOCK = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "chipper_alloy_block"), + new BlockItem(ModBlocks.CHIPPER_ALLOY_BLOCK, new FabricItemSettings()) + ); + + // ===== NORMAL ITEMS ===== + + public static final Item NUT = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "nut"), + new Item(new FabricItemSettings()) + ); + + public static final Item RAW_CHIPPER_ORE = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "raw_chipper_ore"), + new Item(new FabricItemSettings()) + ); + + public static final Item CHIPPER_INGOT = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "chipper_ingot"), + new Item(new FabricItemSettings()) + ); + + public static final Item CHIPPER_ALLOY = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "chipper_alloy"), + new Item(new FabricItemSettings()) + ); public static void register() {} } diff --git a/src/main/resources/assets/chipi/blockstates/chipper_alloy_block.json b/src/main/resources/assets/chipi/blockstates/chipper_alloy_block.json new file mode 100644 index 0000000..8cbdb70 --- /dev/null +++ b/src/main/resources/assets/chipi/blockstates/chipper_alloy_block.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "chipi:block/chipper_alloy_block" } + } +} diff --git a/src/main/resources/assets/chipi/blockstates/chipper_ore.json b/src/main/resources/assets/chipi/blockstates/chipper_ore.json new file mode 100644 index 0000000..49d81a1 --- /dev/null +++ b/src/main/resources/assets/chipi/blockstates/chipper_ore.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "chipi:block/chipper_ore" } + } +} diff --git a/src/main/resources/assets/chipi/models/block/chipper_alloy_block.json b/src/main/resources/assets/chipi/models/block/chipper_alloy_block.json new file mode 100644 index 0000000..28e5b04 --- /dev/null +++ b/src/main/resources/assets/chipi/models/block/chipper_alloy_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "chipi:block/chipper_alloy_block" + } +} diff --git a/src/main/resources/assets/chipi/models/block/chipper_ore.json b/src/main/resources/assets/chipi/models/block/chipper_ore.json new file mode 100644 index 0000000..d1385d4 --- /dev/null +++ b/src/main/resources/assets/chipi/models/block/chipper_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "chipi:block/chipper_ore" + } +} diff --git a/src/main/resources/assets/chipi/models/item/chipper_alloy.json b/src/main/resources/assets/chipi/models/item/chipper_alloy.json new file mode 100644 index 0000000..c4146fa --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/chipper_alloy.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "chipi:item/chipper_alloy" + } +} diff --git a/src/main/resources/assets/chipi/models/item/chipper_alloy_block.json b/src/main/resources/assets/chipi/models/item/chipper_alloy_block.json new file mode 100644 index 0000000..65114b4 --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/chipper_alloy_block.json @@ -0,0 +1,3 @@ +{ + "parent": "chipi:block/chipper_alloy_block" +} diff --git a/src/main/resources/assets/chipi/models/item/chipper_ingot.json b/src/main/resources/assets/chipi/models/item/chipper_ingot.json new file mode 100644 index 0000000..a2c454f --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/chipper_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "chipi:item/chipper_ingot" + } +} diff --git a/src/main/resources/assets/chipi/models/item/chipper_ore.json b/src/main/resources/assets/chipi/models/item/chipper_ore.json new file mode 100644 index 0000000..c233c4b --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/chipper_ore.json @@ -0,0 +1,3 @@ +{ + "parent": "chipi:block/chipper_ore" +} diff --git a/src/main/resources/assets/chipi/models/item/nut.json b/src/main/resources/assets/chipi/models/item/nut.json new file mode 100644 index 0000000..abdf20a --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/nut.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "chipi:item/nut" + } +} diff --git a/src/main/resources/assets/chipi/models/item/raw_chipper_ore.json b/src/main/resources/assets/chipi/models/item/raw_chipper_ore.json new file mode 100644 index 0000000..c80b21b --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/raw_chipper_ore.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "chipi:item/raw_chipper_ore" + } +} diff --git a/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png b/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png new file mode 100644 index 0000000..b92df13 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png differ diff --git a/src/main/resources/assets/chipi/textures/block/chipper_ore.png b/src/main/resources/assets/chipi/textures/block/chipper_ore.png new file mode 100644 index 0000000..ddf21e6 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/block/chipper_ore.png differ diff --git a/src/main/resources/assets/chipi/textures/item/chipper_alloy.png b/src/main/resources/assets/chipi/textures/item/chipper_alloy.png new file mode 100644 index 0000000..2374711 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/chipper_alloy.png differ diff --git a/src/main/resources/assets/chipi/textures/item/chipper_alloy_block.png b/src/main/resources/assets/chipi/textures/item/chipper_alloy_block.png new file mode 100644 index 0000000..b92df13 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/chipper_alloy_block.png differ diff --git a/src/main/resources/assets/chipi/textures/item/chipper_ingot.png b/src/main/resources/assets/chipi/textures/item/chipper_ingot.png new file mode 100644 index 0000000..f76f293 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/chipper_ingot.png differ diff --git a/src/main/resources/assets/chipi/textures/item/chipper_ore.png b/src/main/resources/assets/chipi/textures/item/chipper_ore.png new file mode 100644 index 0000000..ddf21e6 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/chipper_ore.png differ diff --git a/src/main/resources/assets/chipi/textures/item/nut.png b/src/main/resources/assets/chipi/textures/item/nut.png new file mode 100644 index 0000000..8140d43 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/nut.png differ diff --git a/src/main/resources/assets/chipi/textures/item/raw_chipper_ore.png b/src/main/resources/assets/chipi/textures/item/raw_chipper_ore.png new file mode 100644 index 0000000..4ad18e2 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/raw_chipper_ore.png differ diff --git a/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json b/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json new file mode 100644 index 0000000..df355e3 --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/enter_chipi_dimension.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:progression/light_portal", + "display": { + "icon": { "item": "chipi:chipper_portal" }, + "title": "What Have You Done", + "description": "Enter the Chipi Dimension", + "frame": "challenge" + }, + "criteria": { + "enter": { + "trigger": "minecraft:changed_dimension", + "conditions": { + "to": "chipi:chipi_dimension" + } + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/get_nut.json b/src/main/resources/data/chipi/advancements/progression/get_nut.json new file mode 100644 index 0000000..fb145d3 --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/get_nut.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:root", + "display": { + "icon": { "item": "chipi:nut" }, + "title": "Deez Nuts", + "description": "Obtain a Nut", + "frame": "task" + }, + "criteria": { + "nut": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [{ "items": ["chipi:nut"] }] + } + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json b/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json new file mode 100644 index 0000000..bdaf756 --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/get_raw_chipper_ore.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:root", + "display": { + "icon": { "item": "chipi:raw_chipper_ore" }, + "title": "What's This?", + "description": "Obtain Raw Chipper Ore", + "frame": "task" + }, + "criteria": { + "ore": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [{ "items": ["chipi:raw_chipper_ore"] }] + } + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/make_alloy.json b/src/main/resources/data/chipi/advancements/progression/make_alloy.json new file mode 100644 index 0000000..11b9e36 --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/make_alloy.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:progression/smelt_chipper_ore", + "display": { + "icon": { "item": "chipi:chipper_alloy" }, + "title": "Questionable Chemistry", + "description": "Create Chipper Alloy", + "frame": "task" + }, + "criteria": { + "alloy": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [{ "items": ["chipi:chipper_alloy"] }] + } + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json b/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json new file mode 100644 index 0000000..a6f5d1a --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/make_alloy_block.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:progression/make_alloy", + "display": { + "icon": { "item": "chipi:chipper_alloy_block" }, + "title": "Industrial Grade", + "description": "Craft a Chipper Alloy Block", + "frame": "task" + }, + "criteria": { + "block": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [{ "items": ["chipi:chipper_alloy_block"] }] + } + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json b/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json new file mode 100644 index 0000000..32d1877 --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/make_portal_frame.json @@ -0,0 +1,15 @@ +{ + "parent": "chipi:progression/activate_portal", + "display": { + "icon": { "item": "chipi:chipper_portal" }, + "title": "You Were Warned", + "description": "Destroy the Portal", + "frame": "challenge", + "hidden": true + }, + "criteria": { + "destroyed": { + "trigger": "chipi:portal_destroyed" + } + } +} diff --git a/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json b/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json new file mode 100644 index 0000000..bfec29e --- /dev/null +++ b/src/main/resources/data/chipi/advancements/progression/smelt_chipper_ore.json @@ -0,0 +1,17 @@ +{ + "parent": "chipi:progression/get_raw_chipper_ore", + "display": { + "icon": { "item": "chipi:chipper_ingot" }, + "title": "Refinement", + "description": "Smelt Chipper Ore", + "frame": "task" + }, + "criteria": { + "smelt": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [{ "items": ["chipi:chipper_ingot"] }] + } + } + } +} diff --git a/src/main/resources/data/chipi/advancements/root.json b/src/main/resources/data/chipi/advancements/root.json new file mode 100644 index 0000000..9c7d84f --- /dev/null +++ b/src/main/resources/data/chipi/advancements/root.json @@ -0,0 +1,14 @@ +{ + "display": { + "icon": { "item": "chipi:chipper_ingot" }, + "title": "Chipi", + "description": "Industrial stupidity begins", + "background": "minecraft:textures/block/stone.png", + "show_toast": false, + "announce_to_chat": false, + "hidden": false + }, + "criteria": { + "tick": { "trigger": "minecraft:tick" } + } +} diff --git a/src/main/resources/data/chipi/loot_tables/blocks/chipper_alloy_block.json b/src/main/resources/data/chipi/loot_tables/blocks/chipper_alloy_block.json new file mode 100644 index 0000000..78f42a2 --- /dev/null +++ b/src/main/resources/data/chipi/loot_tables/blocks/chipper_alloy_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "chipi:chipper_alloy_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/chipi/loot_tables/blocks/chipper_ore.json b/src/main/resources/data/chipi/loot_tables/blocks/chipper_ore.json new file mode 100644 index 0000000..a82d8c7 --- /dev/null +++ b/src/main/resources/data/chipi/loot_tables/blocks/chipper_ore.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "chipi:raw_chipper_ore" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/chipi/loot_tables/blocks/dirt.json b/src/main/resources/data/chipi/loot_tables/blocks/dirt.json new file mode 100644 index 0000000..ab6ecee --- /dev/null +++ b/src/main/resources/data/chipi/loot_tables/blocks/dirt.json @@ -0,0 +1,39 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:dirt" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "chipi:nut", + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.01 + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/src/main/resources/data/chipi/recipes/alloy.json b/src/main/resources/data/chipi/recipes/alloy.json new file mode 100644 index 0000000..a76b5b5 --- /dev/null +++ b/src/main/resources/data/chipi/recipes/alloy.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "chipi", + "category": "misc", + "ingredients": [ + { + "item": "chipi:chipper_ingot" + }, + { + "item": "minecraft:iron_ingot" + }, + { + "item": "minecraft:copper_ingot" + } + ], + "result": { + "item": "chipi:chipper_alloy" + } +} \ No newline at end of file diff --git a/src/main/resources/data/chipi/recipes/alloy_block.json b/src/main/resources/data/chipi/recipes/alloy_block.json new file mode 100644 index 0000000..1dc5d78 --- /dev/null +++ b/src/main/resources/data/chipi/recipes/alloy_block.json @@ -0,0 +1,37 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "chipi", + "category": "misc", + "ingredients": [ + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + }, + { + "item": "chipi:chipper_alloy" + } + ], + "result": { + "item": "chipi:chipper_alloy_block" + } +} \ No newline at end of file diff --git a/src/main/resources/data/chipi/recipes/chipperluff_ore_ingot_blast.json b/src/main/resources/data/chipi/recipes/chipperluff_ore_ingot_blast.json new file mode 100644 index 0000000..7f753b8 --- /dev/null +++ b/src/main/resources/data/chipi/recipes/chipperluff_ore_ingot_blast.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "group": "chipi", + "category": "misc", + "ingredient": { + "item": "chipi:raw_chipper_ore" + }, + "result": "chipi:chipper_ingot", + "experience": 20, + "cookingtime": 40 +} \ No newline at end of file diff --git a/src/main/resources/data/chipi/recipes/chipperluff_ore_ingot_smelting.json b/src/main/resources/data/chipi/recipes/chipperluff_ore_ingot_smelting.json new file mode 100644 index 0000000..10102e3 --- /dev/null +++ b/src/main/resources/data/chipi/recipes/chipperluff_ore_ingot_smelting.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "group": "chipi", + "category": "misc", + "ingredient": { + "item": "chipi:raw_chipper_ore" + }, + "result": "chipi:chipper_ingot", + "experience": 20, + "cookingtime": 80 +} \ No newline at end of file diff --git a/src/main/resources/data/chipi/recipes/porta_block.json b/src/main/resources/data/chipi/recipes/porta_block.json new file mode 100644 index 0000000..97f2553 --- /dev/null +++ b/src/main/resources/data/chipi/recipes/porta_block.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "chipi", + "category": "misc", + "pattern": [ + "XXX", + "XYX", + "XXX" + ], + "key": { + "X": { + "item": "chipi:chipper_alloy_block" + }, + "Y": { + "item": "chipi:nut" + } + }, + "result": { + "item": "chipi:chipper_frame", + "count": 1 + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/resources/data/chipi/worldgen/biome_modifier/chipper_ore.json b/src/main/resources/data/chipi/worldgen/biome_modifier/chipper_ore.json new file mode 100644 index 0000000..010384c --- /dev/null +++ b/src/main/resources/data/chipi/worldgen/biome_modifier/chipper_ore.json @@ -0,0 +1,8 @@ +{ + "type": "fabric:add_features", + "biomes": "minecraft:overworld", + "features": [ + "chipi:chipper_ore" + ], + "step": "underground_ores" +} diff --git a/src/main/resources/data/chipi/worldgen/configured_feature/chipper_ore.json b/src/main/resources/data/chipi/worldgen/configured_feature/chipper_ore.json new file mode 100644 index 0000000..521fd9f --- /dev/null +++ b/src/main/resources/data/chipi/worldgen/configured_feature/chipper_ore.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:ore", + "config": { + "size": 5, + "discard_chance_on_air_exposure": 0.0, + "targets": [ + { + "target": { + "predicate_type": "minecraft:tag_match", + "tag": "minecraft:stone_ore_replaceables" + }, + "state": { + "Name": "chipi:chipper_ore" + } + } + ] + } +} diff --git a/src/main/resources/data/chipi/worldgen/placed_feature/chipper_ore.json b/src/main/resources/data/chipi/worldgen/placed_feature/chipper_ore.json new file mode 100644 index 0000000..e021a54 --- /dev/null +++ b/src/main/resources/data/chipi/worldgen/placed_feature/chipper_ore.json @@ -0,0 +1,27 @@ +{ + "feature": "chipi:chipper_ore", + "placement": [ + { + "type": "minecraft:count", + "count": 30 + }, + { + "type": "minecraft:in_square" + }, + { + "type": "minecraft:height_range", + "height": { + "type": "minecraft:uniform", + "min_inclusive": { + "absolute": 40 + }, + "max_inclusive": { + "absolute": 64 + } + } + }, + { + "type": "minecraft:biome" + } + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/mineable/needs_iron_tool.json new file mode 100644 index 0000000..d820bb5 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/needs_iron_tool.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "chipi:chipper_ore", + "chipi:chipper_alloy_block" + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json new file mode 100644 index 0000000..d820bb5 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "chipi:chipper_ore", + "chipi:chipper_alloy_block" + ] +}