Files
Binnie/src/main/java/binnie/extratrees/block/ModuleBlocks.java
T
ah-OOG-ah f0f14bb278 Minor cleanups (#50)
* Finalize, minor alloc reduction

Also enable Jabel and generic injection

* Update dependencies.gradle

* Clean up Machine a bit

* spotless

more enhanced instanceof

* Update ModuleMachine.java

* More clen

* WARN: Removed exception catching

* Many, many tiny patches + birthday fix

* Spotless

* Spotless again

* Fix getLow and clamp tolerance value

* Revert event -> ignored on unused event parameters

* Rename instanceof variables

* Update Machine.java

* Use StringBuilder

* Cache getStack()

* Oops, Jabel can't handle that

* Spotless

* Spotless again

My IDE was fighting with it

* Remove unused elements + scream test success
2024-09-26 16:59:20 +02:00

155 lines
8.0 KiB
Java

package binnie.extratrees.block;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.RecipeSorter;
import net.minecraftforge.oredict.ShapedOreRecipe;
import binnie.core.BinnieCore;
import binnie.core.IInitializable;
import binnie.core.Mods;
import binnie.core.block.ItemMetadata;
import binnie.core.block.ItemMetadataRenderer;
import binnie.core.block.TileEntityMetadata;
import binnie.core.liquid.ILiquidType;
import binnie.extratrees.ExtraTrees;
import binnie.extratrees.block.decor.BlockFence;
import binnie.extratrees.block.decor.BlockGate;
import binnie.extratrees.block.decor.BlockMultiFence;
import binnie.extratrees.block.decor.FenceRenderer;
import binnie.extratrees.block.decor.FenceType;
import binnie.extratrees.block.decor.HedgeRenderer;
import binnie.extratrees.block.decor.MultiFenceRecipeEmbedded;
import binnie.extratrees.block.decor.MultiFenceRecipeSize;
import binnie.extratrees.block.decor.MultiFenceRecipeSolid;
import binnie.extratrees.item.ExtraTreeLiquid;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.registry.GameRegistry;
import forestry.api.recipes.RecipeManagers;
public class ModuleBlocks implements IInitializable {
public static int hedgeRenderID;
@Override
public void preInit() {
PlankType.setup();
ExtraTrees.blockPlanks = new BlockETPlanks();
ExtraTrees.blockFence = new BlockFence();
ExtraTrees.blockLog = new BlockETLog();
ExtraTrees.blockShrubLeaves = new BlockShrubLeaves();
ExtraTrees.blockGate = new BlockGate();
ExtraTrees.blockDoor = new BlockETDoor();
ExtraTrees.blockMultiFence = new BlockMultiFence();
ExtraTrees.blockSlab = new BlockETSlab(false);
ExtraTrees.blockDoubleSlab = new BlockETSlab(true);
ExtraTrees.blockStairs = new BlockETStairs(ExtraTrees.blockPlanks);
GameRegistry.registerBlock(ExtraTrees.blockPlanks, ItemMetadata.class, "planks");
GameRegistry.registerBlock(ExtraTrees.blockFence, ItemMetadata.class, "fence");
GameRegistry.registerBlock(ExtraTrees.blockMultiFence, ItemMetadata.class, "multifence");
BinnieCore.proxy.registerCustomItemRenderer(
Item.getItemFromBlock(ExtraTrees.blockMultiFence),
new ItemMetadataRenderer());
GameRegistry.registerBlock(ExtraTrees.blockLog, ItemMetadata.class, "log");
GameRegistry.registerBlock(ExtraTrees.blockGate, ItemMetadata.class, "gate");
GameRegistry.registerBlock(ExtraTrees.blockSlab, ItemETSlab.class, "slab");
GameRegistry.registerBlock(ExtraTrees.blockDoubleSlab, ItemETSlab.class, "doubleSlab");
GameRegistry.registerBlock(ExtraTrees.blockDoor, ItemETDoor.class, "door");
GameRegistry.registerBlock(ExtraTrees.blockStairs, ItemETStairs.class, "stairs");
BinnieCore.proxy
.registerCustomItemRenderer(Item.getItemFromBlock(ExtraTrees.blockStairs), new StairItemRenderer());
BinnieCore.proxy
.registerCustomItemRenderer(Item.getItemFromBlock(ExtraTrees.blockGate), new GateItemRenderer());
for (ILogType plank : ILogType.ExtraTreeLog.values()) {
OreDictionary.registerOre("logWood", plank.getItemStack());
}
GameRegistry.addSmelting(ExtraTrees.blockLog, new ItemStack(Items.coal, 1, 1), 0.15f);
for (IPlankType plank2 : PlankType.ExtraTreePlanks.values()) {
OreDictionary.registerOre("plankWood", plank2.getStack());
}
FMLInterModComms.sendMessage("Forestry", "add-fence-block", "ExtraTrees:fence");
FMLInterModComms.sendMessage("Forestry", "add-fence-block", "ExtraTrees:gate");
// FMLInterModComms.sendMessage("Forestry", "add-alveary-slab", "ExtraTrees:slab");
FMLInterModComms.sendMessage("Forestry", "add-fence-block", "ExtraTrees:multifence");
ModuleBlocks.hedgeRenderID = BinnieCore.proxy.getUniqueRenderID();
}
@Override
public void init() {
ExtraTrees.fenceID = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new FenceRenderer());
ExtraTrees.stairsID = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new StairsRenderer());
ExtraTrees.doorRenderId = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new DoorBlockRenderer());
ExtraTrees.branchRenderId = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new BranchBlockRenderer());
RenderingRegistry.registerBlockHandler(new HedgeRenderer());
RecipeSorter.register("extratrees:multifence", MultiFenceRecipeSize.class, RecipeSorter.Category.SHAPED, "");
RecipeSorter
.register("extratrees:multifence2", MultiFenceRecipeEmbedded.class, RecipeSorter.Category.SHAPED, "");
RecipeSorter.register("extratrees:multifence3", MultiFenceRecipeSolid.class, RecipeSorter.Category.SHAPED, "");
}
@Override
public void postInit() {
for (PlankType.ExtraTreePlanks plank : PlankType.ExtraTreePlanks.values()) {
ItemStack planks = plank.getStack();
ItemStack slabs = TileEntityMetadata.getItemStack(ExtraTrees.blockSlab, plank.ordinal());
ItemStack stairs = TileEntityMetadata.getItemStack(ExtraTrees.blockStairs, plank.ordinal());
stairs.stackSize = 4;
GameRegistry.addRecipe(stairs.copy(), "# ", "## ", "###", '#', planks.copy());
slabs.stackSize = 6;
CraftingManager.getInstance().getRecipeList()
.add(0, new ShapedOreRecipe(slabs.copy(), "###", '#', planks.copy()));
}
GameRegistry.addRecipe(new MultiFenceRecipeSize());
GameRegistry.addRecipe(new MultiFenceRecipeEmbedded());
GameRegistry.addRecipe(new MultiFenceRecipeSolid());
for (IPlankType plank2 : WoodManager.getAllPlankTypes()) {
ItemStack planks2 = plank2.getStack();
ItemStack fenceNormal = WoodManager.getFence(plank2, new FenceType(0), 1);
ItemStack gate = WoodManager.getGate(plank2);
ItemStack doorStandard = WoodManager.getDoor(plank2, DoorType.STANDARD);
ItemStack doorSolid = WoodManager.getDoor(plank2, DoorType.SOLID);
ItemStack doorSplit = WoodManager.getDoor(plank2, DoorType.DOUBLE);
ItemStack doorFull = WoodManager.getDoor(plank2, DoorType.FULL);
if (planks2 != null) {
gate.stackSize = 1;
GameRegistry.addRecipe(gate.copy(), "fpf", 'f', fenceNormal.copy(), 'p', planks2.copy());
fenceNormal.stackSize = 4;
GameRegistry.addRecipe(fenceNormal.copy(), "###", "# #", '#', planks2.copy());
GameRegistry.addRecipe(doorSolid.copy(), "###", "###", "###", '#', planks2.copy());
GameRegistry.addRecipe(doorStandard.copy(), "# #", "###", "###", '#', planks2.copy());
GameRegistry.addRecipe(doorSplit.copy(), "# #", "###", "# #", '#', planks2.copy());
GameRegistry.addRecipe(doorFull.copy(), "# #", "# #", "# #", '#', planks2.copy());
}
}
addSqueezer(ILogType.VanillaLog.Spruce, ExtraTreeLiquid.Resin, 50);
}
public void addSqueezer(ILogType log, ILiquidType liquid, int amount, float pulpChance) {
FluidStack liquidStack = liquid.get(amount);
RecipeManagers.squeezerManager.addRecipe(
10,
new ItemStack[] { log.getItemStack() },
liquidStack,
Mods.forestry.stack("woodPulp"),
(int) (100.0f * pulpChance));
}
public void addSqueezer(ILogType log, ILiquidType liquid, int amount) {
addSqueezer(log, liquid, amount, 0.5f);
}
}