Reorganized Imports/Packages

This commit is contained in:
Frank 2022-05-18 23:56:18 +02:00
parent a8beba9196
commit 770a5b4046
854 changed files with 42775 additions and 41811 deletions

View file

@ -0,0 +1,77 @@
package org.betterx.betterend.complexmaterials;
import net.minecraft.core.Registry;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.DyeItem;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.material.MaterialColor;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import com.google.common.collect.Maps;
import org.betterx.bclib.recipes.GridRecipe;
import org.betterx.bclib.util.BlocksHelper;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.config.Configs;
import org.betterx.betterend.registry.EndBlocks;
import java.util.Map;
import java.util.function.Function;
public class ColoredMaterial {
private static final Map<Integer, ItemLike> DYES = Maps.newHashMap();
private static final Map<Integer, String> COLORS = Maps.newHashMap();
private final Map<Integer, Block> colors = Maps.newHashMap();
public ColoredMaterial(Function<FabricBlockSettings, Block> constructor, Block source, boolean craftEight) {
this(constructor, source, COLORS, DYES, craftEight);
}
public ColoredMaterial(Function<FabricBlockSettings, Block> constructor,
Block source,
Map<Integer, String> colors,
Map<Integer, ItemLike> dyes,
boolean craftEight) {
String id = Registry.BLOCK.getKey(source).getPath();
colors.forEach((color, name) -> {
String blockName = id + "_" + name;
Block block = constructor.apply(FabricBlockSettings.copyOf(source).mapColor(MaterialColor.COLOR_BLACK));
EndBlocks.registerBlock(blockName, block);
if (craftEight) {
GridRecipe.make(BetterEnd.MOD_ID, blockName, block)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(8)
.setShape("###", "#D#", "###")
.addMaterial('#', source)
.addMaterial('D', dyes.get(color))
.build();
} else {
GridRecipe.make(BetterEnd.MOD_ID, blockName, block)
.checkConfig(Configs.RECIPE_CONFIG)
.setList("#D")
.addMaterial('#', source)
.addMaterial('D', dyes.get(color))
.build();
}
this.colors.put(color, block);
BlocksHelper.addBlockColor(block, color);
});
}
public Block getByColor(DyeColor color) {
return colors.get(color.getMaterialColor().col);
}
public Block getByColor(int color) {
return colors.get(color);
}
static {
for (DyeColor color : DyeColor.values()) {
int colorRGB = color.getMaterialColor().col;
COLORS.put(colorRGB, color.getName());
DYES.put(colorRGB, DyeItem.byColor(color));
}
}
}

View file

@ -0,0 +1,135 @@
package org.betterx.betterend.complexmaterials;
import net.minecraft.world.level.block.Block;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import org.betterx.bclib.api.tag.NamedBlockTags;
import org.betterx.bclib.api.tag.NamedItemTags;
import org.betterx.bclib.api.tag.TagAPI;
import org.betterx.bclib.blocks.BaseSlabBlock;
import org.betterx.bclib.blocks.BaseStairsBlock;
import org.betterx.bclib.blocks.BaseWallBlock;
import org.betterx.bclib.recipes.GridRecipe;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.blocks.EndPedestal;
import org.betterx.betterend.blocks.basis.LitBaseBlock;
import org.betterx.betterend.blocks.basis.LitPillarBlock;
import org.betterx.betterend.config.Configs;
import org.betterx.betterend.recipe.CraftingRecipes;
import org.betterx.betterend.registry.EndBlocks;
public class CrystalSubblocksMaterial {
public final Block polished;
public final Block tiles;
public final Block pillar;
public final Block stairs;
public final Block slab;
public final Block wall;
public final Block pedestal;
public final Block bricks;
public final Block brick_stairs;
public final Block brick_slab;
public final Block brick_wall;
public CrystalSubblocksMaterial(String name, Block source) {
FabricBlockSettings material = FabricBlockSettings.copyOf(source);
polished = EndBlocks.registerBlock(name + "_polished", new LitBaseBlock(material));
tiles = EndBlocks.registerBlock(name + "_tiles", new LitBaseBlock(material));
pillar = EndBlocks.registerBlock(name + "_pillar", new LitPillarBlock(material));
stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(source));
slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(source));
wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(source));
pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(source));
bricks = EndBlocks.registerBlock(name + "_bricks", new LitBaseBlock(material));
brick_stairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks));
brick_slab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks));
brick_wall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks));
// Recipes //
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks", bricks)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', source)
.setGroup("end_bricks")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_polished", polished)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', bricks)
.setGroup("end_tile")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_tiles", tiles)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', polished)
.setGroup("end_small_tile")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_pillar", pillar)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("#", "#")
.addMaterial('#', slab)
.setGroup("end_pillar")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("# ", "## ", "###")
.addMaterial('#', source)
.setGroup("end_stone_stairs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###")
.addMaterial('#', source)
.setGroup("end_stone_slabs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brick_stairs)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("# ", "## ", "###")
.addMaterial('#', bricks)
.setGroup("end_stone_stairs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brick_slab)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###")
.addMaterial('#', bricks)
.setGroup("end_stone_slabs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###", "###")
.addMaterial('#', source)
.setGroup("end_wall")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brick_wall)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###", "###")
.addMaterial('#', bricks)
.setGroup("end_wall")
.build();
CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar);
// Item Tags //
TagAPI.addItemTag(NamedItemTags.SLABS, slab, brick_slab);
TagAPI.addItemTag(NamedItemTags.STONE_BRICKS, bricks);
TagAPI.addItemTag(NamedItemTags.STONE_CRAFTING_MATERIALS, source);
TagAPI.addItemTag(NamedItemTags.STONE_TOOL_MATERIALS, source);
// Block Tags //
TagAPI.addBlockTag(NamedBlockTags.STONE_BRICKS, bricks);
TagAPI.addBlockTag(NamedBlockTags.WALLS, wall, brick_wall);
TagAPI.addBlockTag(NamedBlockTags.SLABS, slab, brick_slab);
}
}

View file

@ -0,0 +1,48 @@
package org.betterx.betterend.complexmaterials;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.MaterialColor;
import org.betterx.bclib.complexmaterials.WoodenComplexMaterial;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.config.Configs;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndItems;
public class EndWoodenComplexMaterial extends WoodenComplexMaterial {
private Block bark;
private Block log;
public EndWoodenComplexMaterial(String name, MaterialColor woodColor, MaterialColor planksColor) {
super(BetterEnd.MOD_ID, name, name, woodColor, planksColor);
}
public EndWoodenComplexMaterial init() {
return (EndWoodenComplexMaterial) super.init(EndBlocks.getBlockRegistry(),
EndItems.getItemRegistry(),
Configs.RECIPE_CONFIG);
}
public boolean isTreeLog(Block block) {
return block == getLog() || block == getBark();
}
public boolean isTreeLog(BlockState state) {
return isTreeLog(state.getBlock());
}
public Block getLog() {
if (log == null) {
log = getBlock("log");
}
return log;
}
public Block getBark() {
if (bark == null) {
bark = getBlock("bark");
}
return bark;
}
}

View file

@ -0,0 +1,508 @@
package org.betterx.betterend.complexmaterials;
import net.minecraft.tags.TagKey;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Item.Properties;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.Tier;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.MaterialColor;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import org.betterx.bclib.api.tag.CommonBlockTags;
import org.betterx.bclib.api.tag.NamedBlockTags;
import org.betterx.bclib.api.tag.NamedItemTags;
import org.betterx.bclib.api.tag.TagAPI;
import org.betterx.bclib.blocks.*;
import org.betterx.bclib.items.ModelProviderItem;
import org.betterx.bclib.items.tool.BaseAxeItem;
import org.betterx.bclib.items.tool.BaseHoeItem;
import org.betterx.bclib.items.tool.BaseShovelItem;
import org.betterx.bclib.items.tool.BaseSwordItem;
import org.betterx.bclib.recipes.AnvilRecipe;
import org.betterx.bclib.recipes.FurnaceRecipe;
import org.betterx.bclib.recipes.GridRecipe;
import org.betterx.bclib.recipes.SmithingTableRecipe;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.blocks.BulbVineLanternBlock;
import org.betterx.betterend.blocks.BulbVineLanternColoredBlock;
import org.betterx.betterend.blocks.ChandelierBlock;
import org.betterx.betterend.blocks.basis.EndAnvilBlock;
import org.betterx.betterend.config.Configs;
import org.betterx.betterend.item.EndArmorItem;
import org.betterx.betterend.item.tool.EndHammerItem;
import org.betterx.betterend.item.tool.EndPickaxe;
import org.betterx.betterend.recipe.builders.AlloyingRecipe;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndItems;
public class MetalMaterial {
public final Block ore;
public final Block block;
public final Block tile;
public final Block bars;
public final Block pressurePlate;
public final Block door;
public final Block trapdoor;
public final Block chain;
public final Block stairs;
public final Block slab;
public final Block chandelier;
public final Block bulb_lantern;
public final ColoredMaterial bulb_lantern_colored;
public final Block anvilBlock;
public final Item rawOre;
public final Item nugget;
public final Item ingot;
public final Item shovelHead;
public final Item pickaxeHead;
public final Item axeHead;
public final Item hoeHead;
public final Item swordBlade;
public final Item swordHandle;
public final Item shovel;
public final Item sword;
public final Item pickaxe;
public final Item axe;
public final Item hoe;
public final Item hammer;
public final Item forgedPlate;
public final Item helmet;
public final Item chestplate;
public final Item leggings;
public final Item boots;
public final TagKey<Item> alloyingOre;
public static MetalMaterial makeNormal(String name, MaterialColor color, Tier material, ArmorMaterial armor) {
return new MetalMaterial(
name,
true,
FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).mapColor(color),
EndItems.makeEndItemSettings(),
material,
armor
);
}
public static MetalMaterial makeNormal(String name,
MaterialColor color,
float hardness,
float resistance,
Tier material,
ArmorMaterial armor) {
return new MetalMaterial(
name,
true,
FabricBlockSettings.copyOf(Blocks.IRON_BLOCK)
.mapColor(color)
.hardness(hardness)
.resistance(resistance),
EndItems.makeEndItemSettings(),
material,
armor
);
}
public static MetalMaterial makeOreless(String name, MaterialColor color, Tier material, ArmorMaterial armor) {
return new MetalMaterial(
name,
false,
FabricBlockSettings.copyOf(Blocks.IRON_BLOCK).mapColor(color),
EndItems.makeEndItemSettings(),
material,
armor
);
}
public static MetalMaterial makeOreless(String name,
MaterialColor color,
float hardness,
float resistance,
Tier material,
ArmorMaterial armor) {
return new MetalMaterial(
name,
false,
FabricBlockSettings.copyOf(Blocks.IRON_BLOCK)
.mapColor(color)
.hardness(hardness)
.resistance(resistance),
EndItems.makeEndItemSettings(),
material,
armor
);
}
private MetalMaterial(String name,
boolean hasOre,
FabricBlockSettings settings,
Properties itemSettings,
Tier material,
ArmorMaterial armor) {
BlockBehaviour.Properties lanternProperties = FabricBlockSettings.copyOf(settings)
.hardness(1)
.resistance(1)
.luminance(15)
.sound(SoundType.LANTERN);
final int level = material.getLevel();
rawOre = hasOre ? EndItems.registerEndItem(name + "_raw", new ModelProviderItem(itemSettings)) : null;
ore = hasOre ? EndBlocks.registerBlock(name + "_ore", new BaseOreBlock(() -> rawOre, 1, 3, 1)) : null;
alloyingOre = hasOre ? TagAPI.makeItemTag(BetterEnd.MOD_ID, name + "_alloying") : null;
if (hasOre) {
TagAPI.addItemTag(alloyingOre, ore, rawOre);
}
block = EndBlocks.registerBlock(name + "_block", new BaseBlock(settings));
tile = EndBlocks.registerBlock(name + "_tile", new BaseBlock(settings));
stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(tile));
slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(tile));
door = EndBlocks.registerBlock(name + "_door", new BaseDoorBlock(block));
trapdoor = EndBlocks.registerBlock(name + "_trapdoor", new BaseTrapdoorBlock(block));
bars = EndBlocks.registerBlock(name + "_bars", new BaseMetalBarsBlock(block));
chain = EndBlocks.registerBlock(name + "_chain", new BaseChainBlock(block.defaultMaterialColor()));
pressurePlate = EndBlocks.registerBlock(name + "_plate", new WoodenPressurePlateBlock(block));
chandelier = EndBlocks.registerBlock(name + "_chandelier", new ChandelierBlock(block));
bulb_lantern = EndBlocks.registerBlock(name + "_bulb_lantern", new BulbVineLanternBlock(lanternProperties));
bulb_lantern_colored = new ColoredMaterial(BulbVineLanternColoredBlock::new, bulb_lantern, false);
nugget = EndItems.registerEndItem(name + "_nugget", new ModelProviderItem(itemSettings));
ingot = EndItems.registerEndItem(name + "_ingot", new ModelProviderItem(itemSettings));
shovelHead = EndItems.registerEndItem(name + "_shovel_head");
pickaxeHead = EndItems.registerEndItem(name + "_pickaxe_head");
axeHead = EndItems.registerEndItem(name + "_axe_head");
hoeHead = EndItems.registerEndItem(name + "_hoe_head");
swordBlade = EndItems.registerEndItem(name + "_sword_blade");
swordHandle = EndItems.registerEndItem(name + "_sword_handle");
shovel = EndItems.registerEndTool(name + "_shovel", new BaseShovelItem(material, 1.5F, -3.0F, itemSettings));
sword = EndItems.registerEndTool(name + "_sword", new BaseSwordItem(material, 3, -2.4F, itemSettings));
pickaxe = EndItems.registerEndTool(name + "_pickaxe", new EndPickaxe(material, 1, -2.8F, itemSettings));
axe = EndItems.registerEndTool(name + "_axe", new BaseAxeItem(material, 6.0F, -3.0F, itemSettings));
hoe = EndItems.registerEndTool(name + "_hoe", new BaseHoeItem(material, -3, 0.0F, itemSettings));
hammer = EndItems.registerEndTool(
name + "_hammer",
new EndHammerItem(material, 5.0F, -3.2F, 0.3D, itemSettings)
);
forgedPlate = EndItems.registerEndItem(name + "_forged_plate");
helmet = EndItems.registerEndItem(name + "_helmet", new EndArmorItem(armor, EquipmentSlot.HEAD, itemSettings));
chestplate = EndItems.registerEndItem(
name + "_chestplate",
new EndArmorItem(armor, EquipmentSlot.CHEST, itemSettings)
);
leggings = EndItems.registerEndItem(
name + "_leggings",
new EndArmorItem(armor, EquipmentSlot.LEGS, itemSettings)
);
boots = EndItems.registerEndItem(name + "_boots", new EndArmorItem(armor, EquipmentSlot.FEET, itemSettings));
anvilBlock = EndBlocks.registerBlock(
name + "_anvil",
new EndAnvilBlock(this, block.defaultMaterialColor(), level)
);
if (hasOre) {
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_ingot_furnace_ore", ore, ingot)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_ingot")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_ingot_furnace_raw", rawOre, ingot)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_ingot")
.buildWithBlasting();
AlloyingRecipe.Builder.create(name + "_ingot_alloy")
.setInput(alloyingOre, alloyingOre)
.setOutput(ingot, 3)
.setExpiriense(2.1F)
.build();
}
// Basic recipes
GridRecipe.make(BetterEnd.MOD_ID, name + "_ingot_from_nuggets", ingot)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "###", "###")
.addMaterial('#', nugget)
.setGroup("end_metal_ingots_nug")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_nuggets_from_ingot", nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(9)
.setList("#")
.addMaterial('#', ingot)
.setGroup("end_metal_nuggets_ing")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_block", block)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "###", "###")
.addMaterial('#', ingot)
.setGroup("end_metal_blocks")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_ingot_from_block", ingot)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(9)
.setList("#")
.addMaterial('#', block)
.setGroup("end_metal_ingots")
.build();
// Block recipes
GridRecipe.make(BetterEnd.MOD_ID, name + "_tile", tile)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', block)
.setGroup("end_metal_tiles")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bars", bars)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(16)
.setShape("###", "###")
.addMaterial('#', ingot)
.setGroup("end_metal_bars")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##")
.addMaterial('#', ingot)
.setGroup("end_metal_plates")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_door", door)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(3)
.setShape("##", "##", "##")
.addMaterial('#', ingot)
.setGroup("end_metal_doors")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_trapdoor", trapdoor)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##", "##")
.addMaterial('#', ingot)
.setGroup("end_metal_trapdoors")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("# ", "## ", "###")
.addMaterial('#', block, tile)
.setGroup("end_metal_stairs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###")
.addMaterial('#', block, tile)
.setGroup("end_metal_slabs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_chain", chain)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("N", "#", "N")
.addMaterial('#', ingot)
.addMaterial('N', nugget)
.setGroup("end_metal_chain")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_anvil", anvilBlock)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", " I ", "III")
.addMaterial('#', block, tile)
.addMaterial('I', ingot)
.setGroup("end_metal_anvil")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bulb_lantern", bulb_lantern)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("C", "I", "#")
.addMaterial('C', chain)
.addMaterial('I', ingot)
.addMaterial('#', EndItems.GLOWING_BULB)
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_chandelier", chandelier)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("I#I", " # ")
.addMaterial('#', ingot)
.addMaterial('I', EndItems.LUMECORN_ROD)
.setGroup("end_metal_chandelier")
.build();
// Tools & armor into nuggets
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_axe_nugget", axe, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_hoe_nugget", hoe, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_pickaxe_nugget", pickaxe, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_sword_nugget", sword, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_hammer_nugget", hammer, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_helmet_nugget", helmet, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_chestplate_nugget", chestplate, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_leggings_nugget", leggings, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
FurnaceRecipe.make(BetterEnd.MOD_ID, name + "_boots_nugget", boots, nugget)
.checkConfig(Configs.RECIPE_CONFIG)
.setGroup("end_nugget")
.buildWithBlasting();
// Tool parts from ingots
AnvilRecipe.create(name + "_shovel_head")
.checkConfig(Configs.RECIPE_CONFIG)
.setInput(ingot)
.setOutput(shovelHead)
.setAnvilLevel(level)
.setToolLevel(level)
.setDamage(level)
.build();
AnvilRecipe.create(name + "_pickaxe_head")
.checkConfig(Configs.RECIPE_CONFIG)
.setInput(ingot)
.setInputCount(3)
.setOutput(pickaxeHead)
.setAnvilLevel(level)
.setToolLevel(level)
.setDamage(level)
.build();
AnvilRecipe.create(name + "_axe_head")
.checkConfig(Configs.RECIPE_CONFIG)
.setInput(ingot)
.setInputCount(3)
.setOutput(axeHead)
.setAnvilLevel(level)
.setToolLevel(level)
.setDamage(level)
.build();
AnvilRecipe.create(name + "_hoe_head")
.checkConfig(Configs.RECIPE_CONFIG)
.setInput(ingot)
.setInputCount(2)
.setOutput(hoeHead)
.setAnvilLevel(level)
.setToolLevel(level)
.setDamage(level)
.build();
AnvilRecipe.create(name + "_sword_blade")
.checkConfig(Configs.RECIPE_CONFIG)
.setInput(ingot)
.setOutput(swordBlade)
.setAnvilLevel(level)
.setToolLevel(level)
.setDamage(level)
.build();
AnvilRecipe.create(name + "_forged_plate")
.checkConfig(Configs.RECIPE_CONFIG)
.setInput(ingot)
.setOutput(forgedPlate)
.setAnvilLevel(level)
.setToolLevel(level)
.setDamage(level)
.build();
// Tools from parts
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_hammer")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(hammer)
.setBase(block)
.setAddition(Items.STICK)
.build();
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_axe")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(axe)
.setBase(axeHead)
.setAddition(Items.STICK)
.build();
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_pickaxe")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(pickaxe)
.setBase(pickaxeHead)
.setAddition(Items.STICK)
.build();
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_hoe")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(hoe)
.setBase(hoeHead)
.setAddition(Items.STICK)
.build();
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_sword_handle")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(swordHandle)
.setBase(ingot)
.setAddition(Items.STICK)
.build();
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_sword")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(sword)
.setBase(swordBlade)
.setAddition(swordHandle)
.build();
SmithingTableRecipe.create(BetterEnd.MOD_ID, name + "_shovel")
.checkConfig(Configs.RECIPE_CONFIG)
.setResult(shovel)
.setBase(shovelHead)
.setAddition(Items.STICK)
.build();
// Armor crafting
GridRecipe.make(BetterEnd.MOD_ID, name + "_helmet", helmet)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "# #")
.addMaterial('#', forgedPlate)
.setGroup("end_metal_helmets")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_chestplate", chestplate)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("# #", "###", "###")
.addMaterial('#', forgedPlate)
.setGroup("end_metal_chestplates")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_leggings", leggings)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "# #", "# #")
.addMaterial('#', forgedPlate)
.setGroup("end_metal_leggings")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_boots", boots)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("# #", "# #")
.addMaterial('#', forgedPlate)
.setGroup("end_metal_boots")
.build();
TagAPI.addBlockTag(NamedBlockTags.ANVIL, anvilBlock);
TagAPI.addBlockTag(NamedBlockTags.BEACON_BASE_BLOCKS, block);
TagAPI.addItemTag(NamedItemTags.BEACON_PAYMENT_ITEMS, ingot);
TagAPI.addBlockTag(CommonBlockTags.DRAGON_IMMUNE, ore, bars);
}
}

View file

@ -0,0 +1,191 @@
package org.betterx.betterend.complexmaterials;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.MaterialColor;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import org.betterx.bclib.api.tag.*;
import org.betterx.bclib.blocks.*;
import org.betterx.bclib.recipes.GridRecipe;
import org.betterx.betterend.BetterEnd;
import org.betterx.betterend.blocks.EndPedestal;
import org.betterx.betterend.blocks.FlowerPotBlock;
import org.betterx.betterend.blocks.basis.StoneLanternBlock;
import org.betterx.betterend.config.Configs;
import org.betterx.betterend.recipe.CraftingRecipes;
import org.betterx.betterend.registry.EndBlocks;
import org.betterx.betterend.registry.EndItems;
public class StoneMaterial {
public final Block stone;
public final Block polished;
public final Block tiles;
public final Block pillar;
public final Block stairs;
public final Block slab;
public final Block wall;
public final Block button;
public final Block pressurePlate;
public final Block pedestal;
public final Block lantern;
public final Block bricks;
public final Block brickStairs;
public final Block brickSlab;
public final Block brickWall;
public final Block furnace;
public final Block flowerPot;
public StoneMaterial(String name, MaterialColor color) {
FabricBlockSettings material = FabricBlockSettings.copyOf(Blocks.END_STONE).mapColor(color);
stone = EndBlocks.registerBlock(name, new BaseBlock(material));
polished = EndBlocks.registerBlock(name + "_polished", new BaseBlock(material));
tiles = EndBlocks.registerBlock(name + "_tiles", new BaseBlock(material));
pillar = EndBlocks.registerBlock(name + "_pillar", new BaseRotatedPillarBlock(material));
stairs = EndBlocks.registerBlock(name + "_stairs", new BaseStairsBlock(stone));
slab = EndBlocks.registerBlock(name + "_slab", new BaseSlabBlock(stone));
wall = EndBlocks.registerBlock(name + "_wall", new BaseWallBlock(stone));
button = EndBlocks.registerBlock(name + "_button", new BaseStoneButtonBlock(stone));
pressurePlate = EndBlocks.registerBlock(name + "_plate", new StonePressurePlateBlock(stone));
pedestal = EndBlocks.registerBlock(name + "_pedestal", new EndPedestal(stone));
lantern = EndBlocks.registerBlock(name + "_lantern", new StoneLanternBlock(stone));
bricks = EndBlocks.registerBlock(name + "_bricks", new BaseBlock(material));
brickStairs = EndBlocks.registerBlock(name + "_bricks_stairs", new BaseStairsBlock(bricks));
brickSlab = EndBlocks.registerBlock(name + "_bricks_slab", new BaseSlabBlock(bricks));
brickWall = EndBlocks.registerBlock(name + "_bricks_wall", new BaseWallBlock(bricks));
furnace = EndBlocks.registerBlock(name + "_furnace", new BaseFurnaceBlock(bricks));
flowerPot = EndBlocks.registerBlock(name + "_flower_pot", new FlowerPotBlock(bricks));
// Recipes //
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks", bricks)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', stone)
.setGroup("end_bricks")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_polished", polished)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', bricks)
.setGroup("end_tile")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_tiles", tiles)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("##", "##")
.addMaterial('#', polished)
.setGroup("end_small_tile")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_pillar", pillar)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("#", "#")
.addMaterial('#', slab)
.setGroup("end_pillar")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_stairs", stairs)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("# ", "## ", "###")
.addMaterial('#', stone)
.setGroup("end_stone_stairs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_slab", slab)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###")
.addMaterial('#', stone)
.setGroup("end_stone_slabs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_stairs", brickStairs)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(4)
.setShape("# ", "## ", "###")
.addMaterial('#', bricks)
.setGroup("end_stone_stairs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_slab", brickSlab)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###")
.addMaterial('#', bricks)
.setGroup("end_stone_slabs")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_wall", wall)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###", "###")
.addMaterial('#', stone)
.setGroup("end_wall")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_bricks_wall", brickWall)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(6)
.setShape("###", "###")
.addMaterial('#', bricks)
.setGroup("end_wall")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_button", button)
.checkConfig(Configs.RECIPE_CONFIG)
.setList("#")
.addMaterial('#', stone)
.setGroup("end_stone_buttons")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_pressure_plate", pressurePlate)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("##")
.addMaterial('#', stone)
.setGroup("end_stone_plates")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_lantern", lantern)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("S", "#", "S")
.addMaterial('#', EndItems.CRYSTAL_SHARDS)
.addMaterial('S', slab, brickSlab)
.setGroup("end_stone_lanterns")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_furnace", furnace)
.checkConfig(Configs.RECIPE_CONFIG)
.setShape("###", "# #", "###")
.addMaterial('#', stone)
.setGroup("end_stone_ITEM_FURNACES")
.build();
GridRecipe.make(BetterEnd.MOD_ID, name + "_flower_pot", flowerPot)
.checkConfig(Configs.RECIPE_CONFIG)
.setOutputCount(3)
.setShape("# #", " # ")
.addMaterial('#', bricks)
.setGroup("end_pots")
.build();
CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar);
// Item Tags //
TagAPI.addItemTag(NamedItemTags.SLABS, slab, brickSlab);
TagAPI.addItemTag(NamedItemTags.STONE_BRICKS, bricks);
TagAPI.addItemTag(NamedItemTags.STONE_CRAFTING_MATERIALS, stone);
TagAPI.addItemTag(NamedItemTags.STONE_TOOL_MATERIALS, stone);
TagAPI.addItemTag(CommonItemTags.FURNACES, furnace);
// Block Tags //
TagAPI.addBlockTag(NamedBlockTags.STONE_BRICKS, bricks);
TagAPI.addBlockTag(NamedBlockTags.WALLS, wall, brickWall);
TagAPI.addBlockTag(NamedBlockTags.SLABS, slab, brickSlab);
TagAPI.addBlockTags(pressurePlate, NamedBlockTags.PRESSURE_PLATES, NamedBlockTags.STONE_PRESSURE_PLATES);
TagAPI.addBlockTag(CommonBlockTags.END_STONES, stone);
TagAPI.addBlockTag(CommonBlockTags.DRAGON_IMMUNE, stone, stairs, slab, wall);
TagAPI.addBlockTag(CommonBlockTags.END_STONES, stone);
TagAPI.addBlockTag(CommonBlockTags.END_STONES, stone);
}
}