Skip to content

Commit

Permalink
Updated to reflect changes introduced in v1.0.1 for minecraft 1.20
Browse files Browse the repository at this point in the history
  • Loading branch information
Sephta committed Jun 20, 2024
1 parent 3fef9a6 commit beb7454
Show file tree
Hide file tree
Showing 151 changed files with 3,079 additions and 385 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ yarn_mappings=1.19.4+build.2
loader_version=0.15.11

# Mod Properties
mod_version=1.0.0
mod_version=1.0.1
maven_group=net.stal.alloys
archives_base_name=stal-alloys
modid=stal-alloys
Expand Down
5 changes: 4 additions & 1 deletion src/main/java/net/stal/alloys/StalAlloysDataGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {

pack.addProvider(StalAlloysLootTableGenerator::new);
pack.addProvider(StalAlloysWorldGenerator::new);
pack.addProvider(StalAlloysItemTagProvider::new);
pack.addProvider(StalAlloysBlockTagProvider::new);
pack.addProvider(StalAlloysRecipeProvider::new);
}

@Override
Expand All @@ -27,4 +30,4 @@ public void buildRegistry(RegistryBuilder registryBuilder) {
registryBuilder.addRegistry(RegistryKeys.CONFIGURED_FEATURE, (context) -> StalAlloysConfiguredFeatures.bootstrap(context));
registryBuilder.addRegistry(RegistryKeys.PLACED_FEATURE, StalAlloysPlacedFeatures::bootstrap);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ public class AlloySmelterEntity extends BlockEntity implements NamedScreenHandle
private int mProgress = 0;
private int mMaxProgress = 200; // Number of ticks it takes to smelt
private int mFuel = 0;
private int mMaxFuel = 100000;
private static int mAddFuelAmount = 20000;
private int mMaxFuel = 24000;
private static int mAddFuelAmount = 3000;

private static final String mProgressPropertyNBTKey = "alloy_smelter.progress";
private static final String mFuelPropertyNBTKey = "alloy_smelter.fuel";
Expand Down Expand Up @@ -289,4 +289,4 @@ private static void dropExperience(ServerWorld world, Vec3d pos, int multiplier,
ExperienceOrbEntity.spawn(world, pos, amount);
}

}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package net.stal.alloys.datagen;

import java.util.concurrent.CompletableFuture;

import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
import net.minecraft.registry.RegistryWrapper.WrapperLookup;
import net.minecraft.registry.tag.BlockTags;
import net.stal.alloys.block.StalAlloysBlocks;

public class StalAlloysBlockTagProvider extends FabricTagProvider.BlockTagProvider {

public StalAlloysBlockTagProvider(FabricDataOutput output, CompletableFuture<WrapperLookup> registriesFuture) {
super(output, registriesFuture);
}

@Override
protected void configure(WrapperLookup arg) {
getOrCreateTagBuilder(BlockTags.PICKAXE_MINEABLE)
.add(
StalAlloysBlocks.STEEL_BLOCK,
StalAlloysBlocks.NICKEL_ORE,
StalAlloysBlocks.DEEPSLATE_NICKEL_ORE,
StalAlloysBlocks.NETHERRACK_NICKEL_ORE,
StalAlloysBlocks.CHROMIUM_ORE,
StalAlloysBlocks.DEEPSLATE_CHROMIUM_ORE,
StalAlloysBlocks.NETHERRACK_CHROMIUM_ORE,
StalAlloysBlocks.ZINC_ORE,
StalAlloysBlocks.DEEPSLATE_ZINC_ORE,
StalAlloysBlocks.TIN_ORE,
StalAlloysBlocks.DEEPSLATE_TIN_ORE,
StalAlloysBlocks.CARBON_ORE,
StalAlloysBlocks.DEEPSLATE_CARBON_ORE,
StalAlloysBlocks.NICKEL_BLOCK,
StalAlloysBlocks.CUT_NICKEL,
StalAlloysBlocks.CUT_NICKEL_SLAB,
StalAlloysBlocks.CUT_NICKEL_STAIRS,
StalAlloysBlocks.ZINC_BLOCK,
StalAlloysBlocks.CHROMIUM_BLOCK,
StalAlloysBlocks.ALLOY_SMELTER
);

getOrCreateTagBuilder(BlockTags.NEEDS_IRON_TOOL)
.add(
StalAlloysBlocks.STEEL_BLOCK,
StalAlloysBlocks.NICKEL_ORE,
StalAlloysBlocks.DEEPSLATE_NICKEL_ORE,
StalAlloysBlocks.NETHERRACK_NICKEL_ORE,
StalAlloysBlocks.CHROMIUM_ORE,
StalAlloysBlocks.DEEPSLATE_CHROMIUM_ORE,
StalAlloysBlocks.NETHERRACK_CHROMIUM_ORE,
StalAlloysBlocks.ZINC_ORE,
StalAlloysBlocks.DEEPSLATE_ZINC_ORE,
StalAlloysBlocks.TIN_ORE,
StalAlloysBlocks.DEEPSLATE_TIN_ORE,
StalAlloysBlocks.CARBON_ORE,
StalAlloysBlocks.DEEPSLATE_CARBON_ORE,
StalAlloysBlocks.NICKEL_BLOCK,
StalAlloysBlocks.CUT_NICKEL,
StalAlloysBlocks.CUT_NICKEL_SLAB,
StalAlloysBlocks.CUT_NICKEL_STAIRS,
StalAlloysBlocks.ZINC_BLOCK,
StalAlloysBlocks.CHROMIUM_BLOCK
);

getOrCreateTagBuilder(BlockTags.NEEDS_STONE_TOOL)
.add(
StalAlloysBlocks.ALLOY_SMELTER
);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package net.stal.alloys.datagen;

import java.util.concurrent.CompletableFuture;

import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
import net.minecraft.registry.RegistryWrapper.WrapperLookup;
import net.minecraft.registry.tag.ItemTags;
import net.stal.alloys.item.StalAlloysItems;

public class StalAlloysItemTagProvider extends FabricTagProvider.ItemTagProvider {

public StalAlloysItemTagProvider(FabricDataOutput output, CompletableFuture<WrapperLookup> completableFuture) {
super(output, completableFuture);
}

@Override
protected void configure(WrapperLookup arg) {
getOrCreateTagBuilder(ItemTags.TRIMMABLE_ARMOR)
.add(
StalAlloysItems.STAINLESS_STEEL_HELMET,
StalAlloysItems.STAINLESS_STEEL_CHESTPLATE,
StalAlloysItems.STAINLESS_STEEL_LEGGINGS,
StalAlloysItems.STAINLESS_STEEL_BOOTS,
StalAlloysItems.BRASS_HELMET,
StalAlloysItems.BRASS_CHESTPLATE,
StalAlloysItems.BRASS_LEGGINGS,
StalAlloysItems.BRASS_BOOTS
);
}

}
222 changes: 222 additions & 0 deletions src/main/java/net/stal/alloys/datagen/StalAlloysRecipeProvider.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
package net.stal.alloys.datagen;

import java.util.List;
import java.util.function.Consumer;

import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
import net.minecraft.data.server.recipe.RecipeJsonProvider;
import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder;
import net.minecraft.data.server.recipe.ShapelessRecipeJsonBuilder;
import net.minecraft.item.ItemConvertible;
import net.minecraft.item.Items;
import net.minecraft.recipe.book.RecipeCategory;
import net.minecraft.util.Identifier;
import net.stal.alloys.StalAlloys;
import net.stal.alloys.block.StalAlloysBlocks;
import net.stal.alloys.item.StalAlloysItems;

public class StalAlloysRecipeProvider extends FabricRecipeProvider{

public static final List<ItemConvertible> CHROMIUM_SMELTABLES = List.of(StalAlloysItems.RAW_CHROMIUM, StalAlloysBlocks.CHROMIUM_ORE, StalAlloysBlocks.DEEPSLATE_CHROMIUM_ORE, StalAlloysBlocks.NETHERRACK_CHROMIUM_ORE);
public static final List<ItemConvertible> NICKEL_SMELTABLES = List.of(StalAlloysItems.RAW_NICKEL, StalAlloysBlocks.NICKEL_ORE, StalAlloysBlocks.DEEPSLATE_NICKEL_ORE, StalAlloysBlocks.NETHERRACK_NICKEL_ORE);
public static final List<ItemConvertible> TIN_SMELTABLES = List.of(StalAlloysItems.RAW_TIN, StalAlloysBlocks.TIN_ORE, StalAlloysBlocks.DEEPSLATE_TIN_ORE);
public static final List<ItemConvertible> ZINC_SMELTABLES = List.of(StalAlloysItems.RAW_ZINC, StalAlloysBlocks.ZINC_ORE, StalAlloysBlocks.DEEPSLATE_ZINC_ORE);

public StalAlloysRecipeProvider(FabricDataOutput output) {
super(output);
}

@Override
public void generate(Consumer<RecipeJsonProvider> exporter) {
// Smelting recipes
offerSmelting(exporter, CHROMIUM_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.CHROMIUM_INGOT, 1.0F, 360, "chromium_ingot");
offerSmelting(exporter, NICKEL_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.NICKEL_INGOT, 1.0F, 200, "nickel_ingot");
offerSmelting(exporter, TIN_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.TIN_INGOT, 1.0F, 140, "tin_ingot");
offerSmelting(exporter, ZINC_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.ZINC_INGOT, 1.0F, 180, "zinc_ingot");

// Blasting recipes
offerBlasting(exporter, CHROMIUM_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.CHROMIUM_INGOT, 1.0F, 200, "chromium_ingot");
offerBlasting(exporter, NICKEL_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.NICKEL_INGOT, 1.0F, 160, "nickel_ingot");
offerBlasting(exporter, TIN_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.TIN_INGOT, 1.0F, 100, "tin_ingot");
offerBlasting(exporter, ZINC_SMELTABLES, RecipeCategory.MISC, StalAlloysItems.ZINC_INGOT, 1.0F, 100, "zinc_ingot");

// Reversible Block to Ingot conversion recipes
offerReversibleCompactingRecipes(exporter, RecipeCategory.BUILDING_BLOCKS, StalAlloysItems.CHROMIUM_INGOT, RecipeCategory.DECORATIONS, StalAlloysBlocks.CHROMIUM_BLOCK);
offerReversibleCompactingRecipes(exporter, RecipeCategory.BUILDING_BLOCKS, StalAlloysItems.NICKEL_INGOT, RecipeCategory.DECORATIONS, StalAlloysBlocks.NICKEL_BLOCK);
offerReversibleCompactingRecipes(exporter, RecipeCategory.BUILDING_BLOCKS, StalAlloysItems.ZINC_INGOT, RecipeCategory.DECORATIONS, StalAlloysBlocks.ZINC_BLOCK);
offerReversibleCompactingRecipes(exporter, RecipeCategory.BUILDING_BLOCKS, StalAlloysItems.STEEL_INGOT, RecipeCategory.DECORATIONS, StalAlloysBlocks.STEEL_BLOCK);

// Stone cutting recipes
offerStonecuttingRecipe(exporter, RecipeCategory.DECORATIONS, StalAlloysBlocks.CUT_NICKEL, StalAlloysBlocks.NICKEL_BLOCK, 4);
offerStonecuttingRecipe(exporter, RecipeCategory.DECORATIONS, StalAlloysBlocks.CUT_NICKEL_SLAB, StalAlloysBlocks.NICKEL_BLOCK, 8);
offerStonecuttingRecipe(exporter, RecipeCategory.DECORATIONS, StalAlloysBlocks.CUT_NICKEL_STAIRS, StalAlloysBlocks.NICKEL_BLOCK, 4);

// Shaped and Shapeless recipes
ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, StalAlloysBlocks.ALLOY_SMELTER, 1)
.pattern("###")
.pattern("#F#")
.pattern("CCC")
.input('#', Items.DEEPSLATE_TILES)
.input('F', Items.FURNACE)
.input('C', Items.COBBLED_DEEPSLATE)
.criterion(hasItem(Items.DEEPSLATE), conditionsFromItem(Items.DEEPSLATE))
.criterion(hasItem(Items.FURNACE), conditionsFromItem(Items.FURNACE))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "alloy_smelter"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRASS_BOOTS, 1)
.pattern("# #")
.pattern("# #")
.pattern(" ")
.input('#', StalAlloysItems.BRASS_INGOT)
.criterion(hasItem(StalAlloysItems.BRASS_INGOT), conditionsFromItem(StalAlloysItems.BRASS_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "brass_boots"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRASS_CHESTPLATE, 1)
.pattern("# #")
.pattern("###")
.pattern("###")
.input('#', StalAlloysItems.BRASS_INGOT)
.criterion(hasItem(StalAlloysItems.BRASS_INGOT), conditionsFromItem(StalAlloysItems.BRASS_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "brass_chestplate"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRASS_HELMET, 1)
.pattern("###")
.pattern("# #")
.pattern(" ")
.input('#', StalAlloysItems.BRASS_INGOT)
.criterion(hasItem(StalAlloysItems.BRASS_INGOT), conditionsFromItem(StalAlloysItems.BRASS_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "brass_helmet"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRASS_LEGGINGS, 1)
.pattern("###")
.pattern("# #")
.pattern("# #")
.input('#', StalAlloysItems.BRASS_INGOT)
.criterion(hasItem(StalAlloysItems.BRASS_INGOT), conditionsFromItem(StalAlloysItems.BRASS_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "brass_leggings"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.BRONZE_AXE, 1)
.pattern("## ")
.pattern("#S ")
.pattern(" S ")
.input('#', StalAlloysItems.BRONZE_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.BRONZE_INGOT), conditionsFromItem(StalAlloysItems.BRONZE_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "bronze_axe"));

ShapelessRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRONZE_DAGGER, 1)
.input(StalAlloysItems.BRONZE_INGOT, 1)
.input(Items.STICK, 1)
.criterion(hasItem(StalAlloysItems.BRONZE_INGOT), conditionsFromItem(StalAlloysItems.BRONZE_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "bronze_dagger"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRONZE_DIRK, 1)
.pattern(" #")
.pattern(" # ")
.pattern("S ")
.input('#', StalAlloysItems.BRONZE_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.BRONZE_INGOT), conditionsFromItem(StalAlloysItems.BRONZE_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "bronze_dirk"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.BRONZE_SWORD, 1)
.pattern(" # ")
.pattern(" # ")
.pattern(" S ")
.input('#', StalAlloysItems.BRONZE_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.BRONZE_INGOT), conditionsFromItem(StalAlloysItems.BRONZE_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "bronze_sword"));

ShapedRecipeJsonBuilder.create(RecipeCategory.MISC, StalAlloysItems.CARBON_PLATE, 1)
.pattern(" ")
.pattern("CCC")
.pattern("CCC")
.input('C', StalAlloysItems.RAW_CARBON)
.criterion(hasItem(StalAlloysItems.RAW_CARBON), conditionsFromItem(StalAlloysItems.RAW_CARBON))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "carbon_plate"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.COPPER_AXE, 1)
.pattern("## ")
.pattern("#S ")
.pattern(" S ")
.input('#', Items.COPPER_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(Items.COPPER_INGOT), conditionsFromItem(Items.COPPER_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "copper_axe"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.COPPER_HOE, 1)
.pattern("## ")
.pattern(" S ")
.pattern(" S ")
.input('#', Items.COPPER_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(Items.COPPER_INGOT), conditionsFromItem(Items.COPPER_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "copper_hoe"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.COPPER_PICKAXE, 1)
.pattern("###")
.pattern(" S ")
.pattern(" S ")
.input('#', Items.COPPER_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(Items.COPPER_INGOT), conditionsFromItem(Items.COPPER_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "copper_pickaxe"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.COPPER_SHOVEL, 1)
.pattern(" # ")
.pattern(" S ")
.pattern(" S ")
.input('#', Items.COPPER_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(Items.COPPER_INGOT), conditionsFromItem(Items.COPPER_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "copper_shovel"));

ShapedRecipeJsonBuilder.create(RecipeCategory.COMBAT, StalAlloysItems.COPPER_SWORD, 1)
.pattern(" # ")
.pattern(" # ")
.pattern(" S ")
.input('#', Items.COPPER_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(Items.COPPER_INGOT), conditionsFromItem(Items.COPPER_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "copper_sword"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.STEEL_AXE, 1)
.pattern("## ")
.pattern("#S ")
.pattern(" S ")
.input('#', StalAlloysItems.STEEL_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.STEEL_INGOT), conditionsFromItem(StalAlloysItems.STEEL_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "steel_axe"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.STEEL_HOE, 1)
.pattern("## ")
.pattern(" S ")
.pattern(" S ")
.input('#', StalAlloysItems.STEEL_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.STEEL_INGOT), conditionsFromItem(StalAlloysItems.STEEL_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "steel_hoe"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.STEEL_PICKAXE, 1)
.pattern("###")
.pattern(" S ")
.pattern(" S ")
.input('#', StalAlloysItems.STEEL_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.STEEL_INGOT), conditionsFromItem(StalAlloysItems.STEEL_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "steel_pickaxe"));

ShapedRecipeJsonBuilder.create(RecipeCategory.TOOLS, StalAlloysItems.STEEL_SHOVEL, 1)
.pattern(" # ")
.pattern(" S ")
.pattern(" S ")
.input('#', StalAlloysItems.STEEL_INGOT)
.input('S', Items.STICK)
.criterion(hasItem(StalAlloysItems.STEEL_INGOT), conditionsFromItem(StalAlloysItems.STEEL_INGOT))
.offerTo(exporter, new Identifier(StalAlloys.MOD_ID, "steel_shovel"));
}

}
3 changes: 1 addition & 2 deletions src/main/java/net/stal/alloys/item/StalAlloysItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.entity.EquipmentSlot;
import net.minecraft.item.*;
import net.minecraft.item.ArmorItem;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.util.Identifier;
Expand Down Expand Up @@ -40,7 +39,7 @@ public class StalAlloysItems {
public static final Item BRONZE_SWORD = registerItem("bronze_sword", new SwordItem(StalAlloysToolMaterials.BRONZE_ALLOY, 3, -2.0F, new FabricItemSettings()));
public static final Item BRONZE_AXE = registerItem("bronze_axe", new AxeItem(StalAlloysToolMaterials.BRONZE_ALLOY, 6, -3.0F, new FabricItemSettings()));
public static final Item BRONZE_DAGGER = registerItem("bronze_dagger", new SwordItem(StalAlloysToolMaterials.BRONZE_ALLOY, 2, -1.0F, new FabricItemSettings()));
public static final Item BRONZE_DIRK = registerItem("bronze_dirk", new SwordItem(StalAlloysToolMaterials.BRONZE_ALLOY, 2, -1.8F, new FabricItemSettings()));
public static final Item BRONZE_DIRK = registerItem("bronze_dirk", new SwordItem(StalAlloysToolMaterials.BRONZE_ALLOY, 2, -1.5F, new FabricItemSettings()));
public static final Item BRASS_INGOT = registerItem("brass_ingot", new Item(new FabricItemSettings()));

public static final Item STEEL_PICKAXE = registerItem("steel_pickaxe", new PickaxeItem(StalAlloysToolMaterials.STEEL_ALLOY, 1, -2.8F, new FabricItemSettings()));
Expand Down
Loading

0 comments on commit beb7454

Please sign in to comment.