@Override public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> items) { for (int i = 0; i < Type.values().length; i++) { if (enable[i]) { if (TEProps.creativeTabShowAllBlockLevels) { for (int j = 0; j <= CoreProps.LEVEL_MAX; j++) { items.add(itemBlock.setDefaultTag(new ItemStack(this, 1, i), j)); } } else { items.add(itemBlock.setDefaultTag(new ItemStack(this, 1, i), TEProps.creativeTabLevel)); } if (TEProps.creativeTabShowCreative) { items.add(itemBlock.setCreativeTag(new ItemStack(this, 1, i))); } } } }
@Override public List<BakedQuad> bakeItemQuads(EnumFacing face, ItemStack stack) { List<BakedQuad> quads = new ArrayList<>(); if (face != null && !stack.isEmpty()) { BakingVertexBuffer buffer = BakingVertexBuffer.create(); CCRenderState ccrs = CCRenderState.instance(); buffer.begin(0x07, DefaultVertexFormats.ITEM); ccrs.reset(); ccrs.bind(buffer); boolean creative = BlockMachine.itemBlock.isCreative(stack); int level = BlockMachine.itemBlock.getLevel(stack); IItemBlockTextureProvider provider = TEBlocks.blockMachine; renderFace(ccrs, face, provider.getTexture(face, stack), 0xFFFFFFFF); if (TEProps.renderMachineOverlay && level > 0) { renderFaceOverlay(ccrs, face, creative ? TETextures.MACHINE_OVERLAY_C : getOverlaySprite(face, level), 0xFFFFFFFF); } buffer.finishDrawing(); quads.addAll(buffer.bake()); } return quads; }
@Override public boolean preInit() { this.setRegistryName("machine"); ForgeRegistries.BLOCKS.register(this); itemBlock = new ItemBlockMachine(this); itemBlock.setRegistryName(this.getRegistryName()); ForgeRegistries.ITEMS.register(itemBlock); TileMachineBase.config(); TileFurnace.initialize(); TilePulverizer.initialize(); TileSawmill.initialize(); TileSmelter.initialize(); TileInsolator.initialize(); TileCompactor.initialize(); TileCrucible.initialize(); TileRefinery.initialize(); TileTransposer.initialize(); TileCharger.initialize(); TileCentrifuge.initialize(); TileCrafter.initialize(); TileBrewer.initialize(); TileEnchanter.initialize(); TilePrecipitator.initialize(); TileExtruder.initialize(); ThermalExpansion.proxy.addIModelRegister(this); return true; }
@Override public boolean initialize() { machineFurnace = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.FURNACE.getMetadata())); machinePulverizer = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.PULVERIZER.getMetadata())); machineSawmill = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.SAWMILL.getMetadata())); machineSmelter = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.SMELTER.getMetadata())); machineInsolator = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.INSOLATOR.getMetadata())); machineCompactor = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.COMPACTOR.getMetadata())); machineCrucible = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.CRUCIBLE.getMetadata())); machineRefinery = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.REFINERY.getMetadata())); machineTransposer = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.TRANSPOSER.getMetadata())); machineCharger = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.CHARGER.getMetadata())); machineCentrifuge = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.CENTRIFUGE.getMetadata())); machineCrafter = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.CRAFTER.getMetadata())); machineBrewer = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.BREWER.getMetadata())); machineEnchanter = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.ENCHANTER.getMetadata())); machinePrecipitator = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.PRECIPITATOR.getMetadata())); machineExtruder = itemBlock.setDefaultTag(new ItemStack(this, 1, Type.EXTRUDER.getMetadata())); addRecipes(); addUpgradeRecipes(); addClassicRecipes(); return true; }
@Override public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) { SecurityHelper.addOwnerInformation(stack, tooltip); if (StringHelper.displayShiftForDetail && !StringHelper.isShiftKeyDown()) { tooltip.add(StringHelper.shiftForDetails()); } if (!StringHelper.isShiftKeyDown()) { return; } SecurityHelper.addAccessInformation(stack, tooltip); String name = Type.values()[ItemHelper.getItemDamage(stack)].getName(); tooltip.add(StringHelper.getInfoText("info.thermalexpansion.machine." + name)); if (getLevel(stack) >= TEProps.levelRedstoneControl) { RedstoneControlHelper.addRSControlInformation(stack, tooltip); } }
}); ModelBakery.registerItemKeyGenerator(itemBlock, stack -> ModelBakery.defaultItemKeyGenerator.generateKey(stack) + ",creative=" + itemBlock.isCreative(stack) + ",level=" + itemBlock.getLevel(stack));
private void addUpgradeRecipes() { if (!enableUpgradeKitCrafting) { return; } for (int i = 0; i < Type.values().length; i++) { if (enable[i]) { ItemStack[] block = new ItemStack[5]; for (int j = 0; j < 5; j++) { block[j] = itemBlock.setDefaultTag(new ItemStack(this, 1, i), j); } for (int j = 0; j < 4; j++) { addShapelessUpgradeKitRecipe(block[j + 1], block[j], ItemUpgrade.upgradeIncremental[j]); } for (int j = 1; j < 4; j++) { for (int k = 0; k <= j; k++) { addShapelessUpgradeKitRecipe(block[j + 1], block[k], ItemUpgrade.upgradeFull[j]); } } } } }
machine[j] = (itemBlock.setDefaultTag(new ItemStack(this, 1, i), j));