mod works !!!

This commit is contained in:
Frederik Palmø 2021-10-05 16:21:20 +02:00
parent b7133e8b3a
commit be8ed218a8
84 changed files with 842 additions and 75 deletions

View file

@ -16,6 +16,7 @@ repositories {
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
maven { url "https://maven.shedaniel.me" }
}
dependencies {
@ -29,6 +30,9 @@ dependencies {
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
// You may need to force-disable transitiveness on them.
modImplementation("me.shedaniel.cloth:cloth-config-fabric:${cloth_config_version}") {
exclude(group: "net.fabricmc.fabric-api")
}
}
processResources {

View file

@ -14,3 +14,4 @@ org.gradle.jvmargs=-Xmx1G
# Dependencies
fabric_version=0.39.2+1.17
cloth_config_version=5.0.38

View file

@ -0,0 +1,25 @@
package dk.palmoe.immersivetools;
import net.fabricmc.api.ModInitializer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import dk.palmoe.immersivetools.init.ItemInit;
public class ImmersiveTools implements ModInitializer {
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final Logger LOGGER = LogManager.getLogger("immersivetools");
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
ItemInit.init();
// TODO: remove when mod is done
LOGGER.info("Initialized Immersive Tools");
}
}

View file

@ -0,0 +1,11 @@
package dk.palmoe.immersivetools;
import net.minecraft.util.Identifier;
public class Util {
private static final String MOD_ID = "immersivetools";
public static Identifier ID(String path) {
return new Identifier(MOD_ID, path);
}
}

View file

@ -0,0 +1,65 @@
package dk.palmoe.immersivetools.init;
import dk.palmoe.immersivetools.Util;
import dk.palmoe.immersivetools.item.*;
import net.minecraft.util.registry.Registry;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
public class ItemInit {
// Copper
public static final CopperPickaxeItem COPPER_PICKAXE_ITEM = new CopperPickaxeItem(
new Item.Settings().group(ItemGroup.TOOLS));
public static final CopperAxeItem COPPER_AXE_ITEM = new CopperAxeItem(
new Item.Settings().group(ItemGroup.TOOLS));
public static final CopperShovelItem COPPER_SHOVEL_ITEM = new CopperShovelItem(
new Item.Settings().group(ItemGroup.TOOLS));
public static final CopperHoeItem COPPER_HOE_ITEM = new CopperHoeItem(
new Item.Settings().group(ItemGroup.TOOLS));
public static final CopperSwordItem COPPER_SWORD_ITEM = new CopperSwordItem(
new Item.Settings().group(ItemGroup.COMBAT));
public static final ArmorMaterial COPPER_ARMOR_MATERIAL = CopperArmorMaterial.getInstance();
public static final Item COPPER_HELMET = new CopperArmor(COPPER_ARMOR_MATERIAL, EquipmentSlot.HEAD,
new Item.Settings().group(ItemGroup.COMBAT));
public static final Item COPPER_CHESTPLATE = new CopperArmor(COPPER_ARMOR_MATERIAL, EquipmentSlot.CHEST,
new Item.Settings().group(ItemGroup.COMBAT));
public static final Item COPPER_LEGGINGS = new CopperArmor(COPPER_ARMOR_MATERIAL, EquipmentSlot.LEGS,
new Item.Settings().group(ItemGroup.COMBAT));
public static final Item COPPER_BOOTS = new CopperArmor(COPPER_ARMOR_MATERIAL, EquipmentSlot.FEET,
new Item.Settings().group(ItemGroup.COMBAT));
// Flint
public static final FlintPickaxeItem FLINT_PICKAXE_ITEM = new FlintPickaxeItem(
new Item.Settings().group(ItemGroup.TOOLS));
public static final FlintAxeItem FLINT_AXE_ITEM = new FlintAxeItem(new Item.Settings().group(ItemGroup.TOOLS));
public static final FlintShovelItem FLINT_SHOVEL_ITEM = new FlintShovelItem(
new Item.Settings().group(ItemGroup.TOOLS));
public static final FlintHoeItem FLINT_HOE_ITEM = new FlintHoeItem(new Item.Settings().group(ItemGroup.TOOLS));
public static final FlintSwordItem FLINT_SWORD_ITEM = new FlintSwordItem(
new Item.Settings().group(ItemGroup.COMBAT));
public static void init() {
// Copper
Registry.register(Registry.ITEM, Util.ID("copper_pickaxe"), COPPER_PICKAXE_ITEM);
Registry.register(Registry.ITEM, Util.ID("copper_axe"), COPPER_AXE_ITEM);
Registry.register(Registry.ITEM, Util.ID("copper_shovel"), COPPER_SHOVEL_ITEM);
Registry.register(Registry.ITEM, Util.ID("copper_hoe"), COPPER_HOE_ITEM);
Registry.register(Registry.ITEM, Util.ID("copper_sword"), COPPER_SWORD_ITEM);
Registry.register(Registry.ITEM, Util.ID("copper_helmet"), COPPER_HELMET);
Registry.register(Registry.ITEM, Util.ID("copper_chestplate"), COPPER_CHESTPLATE);
Registry.register(Registry.ITEM, Util.ID("copper_leggings"), COPPER_LEGGINGS);
Registry.register(Registry.ITEM, Util.ID("copper_boots"), COPPER_BOOTS);
// Flint
Registry.register(Registry.ITEM, Util.ID("flint_pickaxe"), FLINT_PICKAXE_ITEM);
Registry.register(Registry.ITEM, Util.ID("flint_axe"), FLINT_AXE_ITEM);
Registry.register(Registry.ITEM, Util.ID("flint_shovel"), FLINT_SHOVEL_ITEM);
Registry.register(Registry.ITEM, Util.ID("flint_hoe"), FLINT_HOE_ITEM);
Registry.register(Registry.ITEM, Util.ID("flint_sword"), FLINT_SWORD_ITEM);
}
}

View file

@ -0,0 +1,13 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorItem;
import net.minecraft.item.ArmorMaterial;
public class CopperArmor extends ArmorItem {
public CopperArmor(ArmorMaterial material, EquipmentSlot slot, Settings settings) {
super(material, slot, settings);
}
}

View file

@ -0,0 +1,67 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.ArmorMaterial;
import net.minecraft.recipe.Ingredient;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;
public class CopperArmorMaterial implements ArmorMaterial {
private static final int[] BASE_DURABILITY = new int[] { 13, 15, 16, 11 };
private static final int[] PROTECTION_VALUES = new int[] { 2, 5, 4, 1 };
private static CopperArmorMaterial INSTANCE = null;
private CopperArmorMaterial() {
}
public static CopperArmorMaterial getInstance() {
if (INSTANCE == null) {
INSTANCE = new CopperArmorMaterial();
}
return INSTANCE;
}
// TODO: Make copper armor properties configurable
@Override
public int getDurability(EquipmentSlot slot) {
return BASE_DURABILITY[slot.getEntitySlotId()] * 10;
}
@Override
public int getProtectionAmount(EquipmentSlot slot) {
return PROTECTION_VALUES[slot.getEntitySlotId()];
}
@Override
public int getEnchantability() {
return 18;
}
@Override
public SoundEvent getEquipSound() {
return SoundEvents.ITEM_ARMOR_EQUIP_IRON;
}
@Override
public Ingredient getRepairIngredient() {
// TODO: Make copper armor repairable
return null;
}
@Override
public String getName() {
return "copper";
}
@Override
public float getToughness() {
return 0;
}
@Override
public float getKnockbackResistance() {
return 0;
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.AxeItem;
public class CopperAxeItem extends AxeItem {
public CopperAxeItem(Settings settings) {
super(CopperToolMaterial.getInstance(), 7, -3.2f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.HoeItem;
public class CopperHoeItem extends HoeItem {
public CopperHoeItem(Settings settings) {
super(CopperToolMaterial.getInstance(), -2, -1f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.PickaxeItem;
public class CopperPickaxeItem extends PickaxeItem {
public CopperPickaxeItem(Settings settings) {
super(CopperToolMaterial.getInstance(), 1, -2.8f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.ShovelItem;
public class CopperShovelItem extends ShovelItem {
public CopperShovelItem(Settings settings) {
super(CopperToolMaterial.getInstance(), 1.5F, -3.0f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.SwordItem;
public class CopperSwordItem extends SwordItem {
public CopperSwordItem(Settings settings) {
super(CopperToolMaterial.getInstance(), 3, -2.4f, settings);
}
}

View file

@ -0,0 +1,59 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.ToolMaterial;
import net.minecraft.recipe.Ingredient;
public class CopperToolMaterial implements ToolMaterial {
private static CopperToolMaterial INSTANCE = null;
private CopperToolMaterial() {
}
public static CopperToolMaterial getInstance() {
if (INSTANCE == null) {
INSTANCE = new CopperToolMaterial();
}
return INSTANCE;
}
// TODO: Make tool properties configurable
@Override
public float getAttackDamage() {
// Dmg for sword is +3 of value below
return 2;
}
@Override
public int getDurability() {
// iron = 250, diamond = 1561, stone = 131
return 185;
}
@Override
public int getEnchantability() {
return 19;
}
@Override
public int getMiningLevel() {
return 2;
}
@Override
public float getMiningSpeedMultiplier() {
// 6 = iron, 8 = diamond
return 7;
}
@Override
public Ingredient getRepairIngredient() {
// TODO: set repair item
return null;
}
// LevelZ Compatibility
@Override
public String toString() {
return "COPPER";
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.AxeItem;
public class FlintAxeItem extends AxeItem {
public FlintAxeItem(Settings settings) {
super(FlintToolMaterial.getInstance(), 6, -3.2f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.HoeItem;
public class FlintHoeItem extends HoeItem {
public FlintHoeItem(Settings settings) {
super(FlintToolMaterial.getInstance(), -2, -1f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.PickaxeItem;
public class FlintPickaxeItem extends PickaxeItem {
public FlintPickaxeItem(Settings settings) {
super(FlintToolMaterial.getInstance(), 1, -2.8f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.ShovelItem;
public class FlintShovelItem extends ShovelItem {
public FlintShovelItem(Settings settings) {
super(FlintToolMaterial.getInstance(), 1.5F, -3.0f, settings);
}
}

View file

@ -0,0 +1,9 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.SwordItem;
public class FlintSwordItem extends SwordItem {
public FlintSwordItem(Settings settings) {
super(FlintToolMaterial.getInstance(), 3, -2.4f, settings);
}
}

View file

@ -0,0 +1,59 @@
package dk.palmoe.immersivetools.item;
import net.minecraft.item.ToolMaterial;
import net.minecraft.recipe.Ingredient;
public class FlintToolMaterial implements ToolMaterial {
private static FlintToolMaterial INSTANCE = null;
private FlintToolMaterial() {
}
public static FlintToolMaterial getInstance() {
if (INSTANCE == null) {
INSTANCE = new FlintToolMaterial();
}
return INSTANCE;
}
// TODO: Make tool properties configurable
@Override
public float getAttackDamage() {
// Dmg for sword is +3 of value below
return 1;
}
@Override
public int getDurability() {
// iron = 250, diamond = 1561, stone = 131
return 131;
}
@Override
public int getEnchantability() {
return 5;
}
@Override
public int getMiningLevel() {
return 1;
}
@Override
public float getMiningSpeedMultiplier() {
// 6 = iron, 8 = diamond
return 4;
}
@Override
public Ingredient getRepairIngredient() {
// TODO: set repair item
return null;
}
// LevelZ Compatibility
@Override
public String toString() {
return "FLINT";
}
}

View file

@ -1,6 +1,5 @@
package net.fabricmc.example.mixin;
package dk.palmoe.immersivetools.mixin;
import net.fabricmc.example.ExampleMod;
import net.minecraft.client.gui.screen.TitleScreen;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@ -8,9 +7,9 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(TitleScreen.class)
public class ExampleMixin {
public class ImmersiveToolsMixin {
@Inject(at = @At("HEAD"), method = "init()V")
private void init(CallbackInfo info) {
ExampleMod.LOGGER.info("This line is printed by an example mod mixin!");
// TODO: Remove mixing if unused
}
}

View file

@ -1,21 +0,0 @@
package net.fabricmc.example;
import net.fabricmc.api.ModInitializer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class ExampleMod implements ModInitializer {
// This logger is used to write text to the console and the log file.
// It is considered best practice to use your mod id as the logger's name.
// That way, it's clear which mod wrote info, warnings, and errors.
public static final Logger LOGGER = LogManager.getLogger("modid");
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
// However, some things (like resources) may still be uninitialized.
// Proceed with mild caution.
LOGGER.info("Hello Fabric world!");
}
}

View file

Before

Width:  |  Height:  |  Size: 453 B

After

Width:  |  Height:  |  Size: 453 B

View file

@ -0,0 +1,13 @@
{
"item.immersivetools.copper_pickaxe": "Copper Pickaxe",
"item.immersivetools.copper_axe": "Copper Axe",
"item.immersivetools.copper_shovel": "Copper Shovel",
"item.immersivetools.copper_hoe": "Copper Hoe",
"item.immersivetools.copper_sword": "Copper Sword",
"item.immersivetools.flint_pickaxe": "Flint Pickaxe",
"item.immersivetools.flint_axe": "Flint Axe",
"item.immersivetools.flint_shovel": "Flint Shovel",
"item.immersivetools.flint_hoe": "Flint Hoe",
"item.immersivetools.flint_sword": "Flint Sword"
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/copper_axe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "immersivetools:item/copper_boots"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "immersivetools:item/copper_chestplate"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "immersivetools:item/copper_helmet"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/copper_hoe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "immersivetools:item/copper_leggings"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/copper_pickaxe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/copper_shovel"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/copper_sword"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/flint_axe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/flint_hoe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/flint_pickaxe"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/flint_shovel"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/handheld",
"textures": {
"layer0": "immersivetools:item/flint_sword"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

View file

@ -0,0 +1,4 @@
{
"replace": false,
"values": ["immersivetools:copper_axe", "immersivetools:flint_axe"]
}

View file

@ -0,0 +1,4 @@
{
"replace": false,
"values": ["immersivetools:copper_hoe", "immersivetools:flint_hoe"]
}

View file

@ -0,0 +1,4 @@
{
"replace": false,
"values": ["immersivetools:copper_pickaxe", "immersivetools:flint_pickaxe"]
}

View file

@ -0,0 +1,4 @@
{
"replace": false,
"values": ["immersivetools:copper_shovel", "immersivetools:flint_shovel"]
}

View file

@ -0,0 +1,4 @@
{
"replace": false,
"values": ["immersivetools:copper_sword", "immersivetools:flint_sword"]
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["CC", "CS", " S"],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_axe",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["C C", "C C", " "],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_boots",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["C C", "CCC", "CCC"],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_chestplate",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["CCC", "C C", " "],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_helmet",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["CC", " S", " S"],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_hoe",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["CCC", "C C", "C C"],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_leggings",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["CCC", " S ", " S "],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_pickaxe",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["C", "S", "S"],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_shovel",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["C", "C", "S"],
"key": {
"C": {
"item": "minecraft:copper_ingot"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:copper_sword",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["FF", "FS", " S"],
"key": {
"F": {
"item": "minecraft:flint"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:flint_axe",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["FF", " S", " S"],
"key": {
"F": {
"item": "minecraft:flint"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:flint_hoe",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["FFF", " S ", " S "],
"key": {
"F": {
"item": "minecraft:flint"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:flint_pickaxe",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["F", "S", "S"],
"key": {
"F": {
"item": "minecraft:flint"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:flint_shovel",
"count": 1
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"pattern": ["F", "F", "S"],
"key": {
"F": {
"item": "minecraft:flint"
},
"S": {
"item": "minecraft:stick"
}
},
"result": {
"item": "immersivetools:flint_sword",
"count": 1
}
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "defense",
"level": 2,
"item": "minecraft:armor",
"material": "copper"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "farming",
"level": 2,
"item": "minecraft:axe",
"material": "copper"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "farming",
"level": 2,
"item": "minecraft:hoe",
"material": "copper"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "mining",
"level": 2,
"item": "minecraft:tool",
"material": "copper"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "strength",
"level": 2,
"item": "minecraft:sword",
"material": "copper"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "farming",
"level": 1,
"item": "minecraft:axe",
"material": "flit"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "farming",
"level": 1,
"item": "minecraft:hoe",
"material": "hoe"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "mining",
"level": 1,
"item": "minecraft:tool",
"material": "flint"
}

View file

@ -0,0 +1,7 @@
{
"replace": false,
"skill": "strength",
"level": 1,
"item": "minecraft:sword",
"material": "flint"
}

View file

@ -1,30 +1,24 @@
{
"schemaVersion": 1,
"id": "modid",
"id": "immersivetools",
"version": "${version}",
"name": "Example Mod",
"description": "This is an example description! Tell everyone what your mod is about!",
"authors": [
"Me!"
],
"name": "Immersive Tools",
"description": "A small mod that adds flint- and copper tools with appropriate material tags and LevelZ support.",
"authors": ["vodofrede"],
"contact": {
"homepage": "https://fabricmc.net/",
"sources": "https://github.com/FabricMC/fabric-example-mod"
"homepage": "",
"sources": ""
},
"license": "CC0-1.0",
"icon": "assets/modid/icon.png",
"license": "BSD-3-Clause",
"icon": "assets/immersivetools/icon.png",
"environment": "*",
"entrypoints": {
"main": [
"net.fabricmc.example.ExampleMod"
]
"main": ["dk.palmoe.immersivetools.ImmersiveTools"]
},
"mixins": [
"modid.mixins.json"
],
"mixins": ["immersivetools.mixins.json"],
"depends": {
"fabricloader": ">=0.11.3",

View file

@ -0,0 +1,11 @@
{
"required": true,
"minVersion": "0.8",
"package": "dk.palmoe.immersivetools.mixin",
"compatibilityLevel": "JAVA_16",
"mixins": [],
"client": ["ImmersiveToolsMixin"],
"injectors": {
"defaultRequire": 1
}
}

View file

@ -1,14 +0,0 @@
{
"required": true,
"minVersion": "0.8",
"package": "net.fabricmc.example.mixin",
"compatibilityLevel": "JAVA_16",
"mixins": [
],
"client": [
"ExampleMixin"
],
"injectors": {
"defaultRequire": 1
}
}