mod works !!!
|
@ -16,6 +16,7 @@ repositories {
|
||||||
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
|
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
|
||||||
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
|
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
|
||||||
// for more information about repositories.
|
// for more information about repositories.
|
||||||
|
maven { url "https://maven.shedaniel.me" }
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -29,6 +30,9 @@ dependencies {
|
||||||
|
|
||||||
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
|
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
|
||||||
// You may need to force-disable transitiveness on them.
|
// 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 {
|
processResources {
|
||||||
|
|
|
@ -14,3 +14,4 @@ org.gradle.jvmargs=-Xmx1G
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
fabric_version=0.39.2+1.17
|
fabric_version=0.39.2+1.17
|
||||||
|
cloth_config_version=5.0.38
|
25
src/main/java/dk/palmoe/immersivetools/ImmersiveTools.java
Normal 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");
|
||||||
|
}
|
||||||
|
}
|
11
src/main/java/dk/palmoe/immersivetools/Util.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
65
src/main/java/dk/palmoe/immersivetools/init/ItemInit.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
13
src/main/java/dk/palmoe/immersivetools/item/CopperArmor.java
Normal 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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";
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
|
@ -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";
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 net.minecraft.client.gui.screen.TitleScreen;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
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;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
@Mixin(TitleScreen.class)
|
@Mixin(TitleScreen.class)
|
||||||
public class ExampleMixin {
|
public class ImmersiveToolsMixin {
|
||||||
@Inject(at = @At("HEAD"), method = "init()V")
|
@Inject(at = @At("HEAD"), method = "init()V")
|
||||||
private void init(CallbackInfo info) {
|
private void init(CallbackInfo info) {
|
||||||
ExampleMod.LOGGER.info("This line is printed by an example mod mixin!");
|
// TODO: Remove mixing if unused
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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!");
|
|
||||||
}
|
|
||||||
}
|
|
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 453 B |
13
src/main/resources/assets/immersivetools/lang/en_us.json
Normal 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"
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_axe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_boots"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_chestplate"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_helmet"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_hoe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_leggings"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_pickaxe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_shovel"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/copper_sword"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/flint_axe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/flint_hoe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/flint_pickaxe"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/flint_shovel"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/handheld",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "immersivetools:item/flint_sword"
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 292 B |
After Width: | Height: | Size: 264 B |
After Width: | Height: | Size: 334 B |
After Width: | Height: | Size: 247 B |
After Width: | Height: | Size: 254 B |
After Width: | Height: | Size: 269 B |
After Width: | Height: | Size: 298 B |
After Width: | Height: | Size: 260 B |
After Width: | Height: | Size: 336 B |
After Width: | Height: | Size: 282 B |
After Width: | Height: | Size: 259 B |
After Width: | Height: | Size: 332 B |
After Width: | Height: | Size: 241 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 572 B |
4
src/main/resources/data/fabric/tags/items/axes.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": ["immersivetools:copper_axe", "immersivetools:flint_axe"]
|
||||||
|
}
|
4
src/main/resources/data/fabric/tags/items/hoes.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": ["immersivetools:copper_hoe", "immersivetools:flint_hoe"]
|
||||||
|
}
|
4
src/main/resources/data/fabric/tags/items/pickaxes.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": ["immersivetools:copper_pickaxe", "immersivetools:flint_pickaxe"]
|
||||||
|
}
|
4
src/main/resources/data/fabric/tags/items/shovels.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": ["immersivetools:copper_shovel", "immersivetools:flint_shovel"]
|
||||||
|
}
|
4
src/main/resources/data/fabric/tags/items/swords.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": ["immersivetools:copper_sword", "immersivetools:flint_sword"]
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/copper_armor.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "defense",
|
||||||
|
"level": 2,
|
||||||
|
"item": "minecraft:armor",
|
||||||
|
"material": "copper"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/copper_axe.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "farming",
|
||||||
|
"level": 2,
|
||||||
|
"item": "minecraft:axe",
|
||||||
|
"material": "copper"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/copper_hoe.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "farming",
|
||||||
|
"level": 2,
|
||||||
|
"item": "minecraft:hoe",
|
||||||
|
"material": "copper"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/copper_pickaxe.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "mining",
|
||||||
|
"level": 2,
|
||||||
|
"item": "minecraft:tool",
|
||||||
|
"material": "copper"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/copper_sword.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "strength",
|
||||||
|
"level": 2,
|
||||||
|
"item": "minecraft:sword",
|
||||||
|
"material": "copper"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/flint_axe.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "farming",
|
||||||
|
"level": 1,
|
||||||
|
"item": "minecraft:axe",
|
||||||
|
"material": "flit"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/flint_hoe.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "farming",
|
||||||
|
"level": 1,
|
||||||
|
"item": "minecraft:hoe",
|
||||||
|
"material": "hoe"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/flint_pickaxe.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "mining",
|
||||||
|
"level": 1,
|
||||||
|
"item": "minecraft:tool",
|
||||||
|
"material": "flint"
|
||||||
|
}
|
7
src/main/resources/data/levelz/item/flint_sword.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"skill": "strength",
|
||||||
|
"level": 1,
|
||||||
|
"item": "minecraft:sword",
|
||||||
|
"material": "flint"
|
||||||
|
}
|
|
@ -1,30 +1,24 @@
|
||||||
{
|
{
|
||||||
"schemaVersion": 1,
|
"schemaVersion": 1,
|
||||||
"id": "modid",
|
"id": "immersivetools",
|
||||||
"version": "${version}",
|
"version": "${version}",
|
||||||
|
|
||||||
"name": "Example Mod",
|
"name": "Immersive Tools",
|
||||||
"description": "This is an example description! Tell everyone what your mod is about!",
|
"description": "A small mod that adds flint- and copper tools with appropriate material tags and LevelZ support.",
|
||||||
"authors": [
|
"authors": ["vodofrede"],
|
||||||
"Me!"
|
|
||||||
],
|
|
||||||
"contact": {
|
"contact": {
|
||||||
"homepage": "https://fabricmc.net/",
|
"homepage": "",
|
||||||
"sources": "https://github.com/FabricMC/fabric-example-mod"
|
"sources": ""
|
||||||
},
|
},
|
||||||
|
|
||||||
"license": "CC0-1.0",
|
"license": "BSD-3-Clause",
|
||||||
"icon": "assets/modid/icon.png",
|
"icon": "assets/immersivetools/icon.png",
|
||||||
|
|
||||||
"environment": "*",
|
"environment": "*",
|
||||||
"entrypoints": {
|
"entrypoints": {
|
||||||
"main": [
|
"main": ["dk.palmoe.immersivetools.ImmersiveTools"]
|
||||||
"net.fabricmc.example.ExampleMod"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"mixins": [
|
"mixins": ["immersivetools.mixins.json"],
|
||||||
"modid.mixins.json"
|
|
||||||
],
|
|
||||||
|
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.11.3",
|
"fabricloader": ">=0.11.3",
|
||||||
|
|
11
src/main/resources/immersivetools.mixins.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"required": true,
|
||||||
|
"minVersion": "0.8",
|
||||||
|
"package": "dk.palmoe.immersivetools.mixin",
|
||||||
|
"compatibilityLevel": "JAVA_16",
|
||||||
|
"mixins": [],
|
||||||
|
"client": ["ImmersiveToolsMixin"],
|
||||||
|
"injectors": {
|
||||||
|
"defaultRequire": 1
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
"required": true,
|
|
||||||
"minVersion": "0.8",
|
|
||||||
"package": "net.fabricmc.example.mixin",
|
|
||||||
"compatibilityLevel": "JAVA_16",
|
|
||||||
"mixins": [
|
|
||||||
],
|
|
||||||
"client": [
|
|
||||||
"ExampleMixin"
|
|
||||||
],
|
|
||||||
"injectors": {
|
|
||||||
"defaultRequire": 1
|
|
||||||
}
|
|
||||||
}
|
|