/* * This file is part of TechReborn, licensed under the MIT License (MIT). * * Copyright (c) 2018 TechReborn * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package techreborn.events; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.item.Item; import net.minecraft.util.Identifier; import reborncore.client.models.ModelCompound; import reborncore.client.models.RebornModelRegistry; import techreborn.TechReborn; import techreborn.config.ConfigTechReborn; import techreborn.init.TRContent; import techreborn.init.TRContent.*; import java.util.Arrays; /** * @author drcrazy * */ @Environment(EnvType.CLIENT) public class ModelRegistryEventHandler { public static void registerModels() { registerBlocks(); registerFluidBlocks(); registerItems(); //RebornModelRegistry.registerModels(TechReborn.MOD_ID); } private static void registerBlocks() { RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, TRContent.REFINED_IRON_FENCE)); RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, TRContent.RUBBER_SAPLING)); for (Ores value : Ores.values()) { RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, value.block).setFileName("ore").setInvVariant("type=" + value.name)); } for (StorageBlocks value : StorageBlocks.values()) { RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, value.block).setFileName("storage_block").setInvVariant("type=" + value.name)); } for (MachineBlocks value : MachineBlocks.values()) { RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, value.frame).setFileName("machine_block").setInvVariant("type=" + value.name + "_machine_frame")); RebornModelRegistry.registerModel(new ModelCompound(TechReborn.MOD_ID, value.casing).setFileName("machine_block").setInvVariant("type=" + value.name + "_machine_casing")); } /* ResourceLocation cableRL = new ResourceLocation(TechReborn.MOD_ID, "cable_inv"); for (Cables value : Cables.values()) { registerBlockstateMultiItem(cableRL, Item.getItemFromBlock(value.block), value.name); ModelLoader.setCustomStateMapper(value.block, new DefaultStateMapper() { @Override protected ModelResourceLocation getModelResourceLocation(IBlockState state) { Map, Comparable> map = Maps.newLinkedHashMap(state.getProperties()); String property = this.getPropertyString(map) + ",ztype=" + value.name; return new ModelResourceLocation(new ResourceLocation(TechReborn.MOD_ID, "cable_" + (value.cableThickness == 5 ? "thick" : "thin")), property); } }); } */ } private static void registerFluidBlocks() { /* registerFluidBlockModel(ModFluids.BLOCK_BERYLLIUM); registerFluidBlockModel(ModFluids.BLOCK_CALCIUM); registerFluidBlockModel(ModFluids.BLOCK_CALCIUM_CARBONATE); registerFluidBlockModel(ModFluids.BLOCK_CHLORITE); registerFluidBlockModel(ModFluids.BLOCK_DEUTERIUM); registerFluidBlockModel(ModFluids.BLOCK_GLYCERYL); registerFluidBlockModel(ModFluids.BLOCK_HELIUM); registerFluidBlockModel(ModFluids.BLOCK_HELIUM_3); registerFluidBlockModel(ModFluids.BLOCK_HELIUMPLASMA); registerFluidBlockModel(ModFluids.BLOCK_HYDROGEN); registerFluidBlockModel(ModFluids.BLOCK_LITHIUM); registerFluidBlockModel(ModFluids.BLOCK_MERCURY); registerFluidBlockModel(ModFluids.BLOCK_METHANE); registerFluidBlockModel(ModFluids.BLOCK_NITROCOAL_FUEL); registerFluidBlockModel(ModFluids.BLOCK_NITROFUEL); registerFluidBlockModel(ModFluids.BLOCK_NITROGEN); registerFluidBlockModel(ModFluids.BLOCK_NITROGENDIOXIDE); registerFluidBlockModel(ModFluids.BLOCK_POTASSIUM); registerFluidBlockModel(ModFluids.BLOCK_SILICON); registerFluidBlockModel(ModFluids.BLOCK_SODIUM); registerFluidBlockModel(ModFluids.BLOCK_SODIUMPERSULFATE); registerFluidBlockModel(ModFluids.BLOCK_TRITIUM); registerFluidBlockModel(ModFluids.BLOCK_WOLFRAMIUM); registerFluidBlockModel(ModFluids.BLOCK_CARBON); registerFluidBlockModel(ModFluids.BLOCK_CARBON_FIBER); registerFluidBlockModel(ModFluids.BLOCK_NITRO_CARBON); registerFluidBlockModel(ModFluids.BLOCK_SULFUR); registerFluidBlockModel(ModFluids.BLOCK_SODIUM_SULFIDE); registerFluidBlockModel(ModFluids.BLOCK_DIESEL); registerFluidBlockModel(ModFluids.BLOCK_NITRO_DIESEL); registerFluidBlockModel(ModFluids.BLOCK_OIL); registerFluidBlockModel(ModFluids.BLOCK_SULFURIC_ACID); registerFluidBlockModel(ModFluids.BLOCK_COMPRESSED_AIR); registerFluidBlockModel(ModFluids.BLOCK_ELECTROLYZED_WATER); */ } private static void registerItems() { // Armor register(TRContent.CLOAKING_DEVICE, "armor/cloaking_device"); register(TRContent.LAPOTRONIC_ORBPACK, "armor/lapotronic_orbpack"); register(TRContent.LITHIUM_ION_BATPACK, "armor/lithium_batpack"); // Battery register(TRContent.RED_CELL_BATTERY, "battery/re_battery"); register(TRContent.LITHIUM_ION_BATTERY, "battery/lithium_battery"); register(TRContent.ENERGY_CRYSTAL, "battery/energy_crystal"); register(TRContent.LAPOTRON_CRYSTAL, "battery/lapotron_crystal"); register(TRContent.LAPOTRONIC_ORB, "battery/lapotronic_orb"); // Tools register(TRContent.INDUSTRIAL_CHAINSAW, "tool/industrial_chainsaw"); register(TRContent.INDUSTRIAL_DRILL, "tool/industrial_drill"); register(TRContent.INDUSTRIAL_JACKHAMMER, "tool/industrial_jackhammer"); register(TRContent.DEBUG_TOOL, "tool/debug"); register(TRContent.ADVANCED_CHAINSAW, "tool/advanced_chainsaw"); register(TRContent.ADVANCED_DRILL, "tool/advanced_drill"); register(TRContent.ADVANCED_JACKHAMMER, "tool/advanced_jackhammer"); register(TRContent.ELECTRIC_TREE_TAP, "tool/electric_treetap"); register(TRContent.NANOSABER, "tool/nanosaber"); register(TRContent.OMNI_TOOL, "tool/omni_tool"); register(TRContent.ROCK_CUTTER, "tool/rock_cutter"); register(TRContent.BASIC_CHAINSAW, "tool/basic_chainsaw"); register(TRContent.BASIC_DRILL, "tool/basic_drill"); register(TRContent.BASIC_JACKHAMMER, "tool/basic_jackhammer"); register(TRContent.TREE_TAP, "tool/treetap"); register(TRContent.WRENCH, "tool/wrench"); // Other register(TRContent.FREQUENCY_TRANSMITTER, "misc/frequency_transmitter"); register(TRContent.SCRAP_BOX, "misc/scrapbox"); register(TRContent.MANUAL, "misc/manual"); // Gem armor & tools if (ConfigTechReborn.enableGemArmorAndTools) { Identifier armourRL = new Identifier(TechReborn.MOD_ID, "items/armour"); registerBlockstateMultiItem(armourRL, TRContent.RUBY_HELMET, "ruby_helmet"); registerBlockstateMultiItem(armourRL, TRContent.RUBY_CHESTPLATE, "ruby_chestplate"); registerBlockstateMultiItem(armourRL, TRContent.RUBY_LEGGINGS, "ruby_leggings"); registerBlockstateMultiItem(armourRL, TRContent.RUBY_BOOTS, "ruby_boots"); registerBlockstateMultiItem(armourRL, TRContent.SAPPHIRE_HELMET, "sapphire_helmet"); registerBlockstateMultiItem(armourRL, TRContent.SAPPHIRE_CHESTPLATE, "sapphire_chestplate"); registerBlockstateMultiItem(armourRL, TRContent.SAPPHIRE_LEGGINGS, "sapphire_leggings"); registerBlockstateMultiItem(armourRL, TRContent.SAPPHIRE_BOOTS, "sapphire_boots"); registerBlockstateMultiItem(armourRL, TRContent.PERIDOT_HELMET, "peridot_helmet"); registerBlockstateMultiItem(armourRL, TRContent.PERIDOT_CHESTPLATE, "peridot_chestplate"); registerBlockstateMultiItem(armourRL, TRContent.PERIDOT_LEGGINGS, "peridot_leggings"); registerBlockstateMultiItem(armourRL, TRContent.PERIDOT_BOOTS, "peridot_boots"); registerBlockstateMultiItem(armourRL, TRContent.BRONZE_HELMET, "bronze_helmet"); registerBlockstateMultiItem(armourRL, TRContent.BRONZE_CHESTPLATE, "bronze_chestplate"); registerBlockstateMultiItem(armourRL, TRContent.BRONZE_LEGGINGS, "bronze_leggings"); registerBlockstateMultiItem(armourRL, TRContent.BRONZE_BOOTS, "bronze_boots"); Identifier toolRL = new Identifier(TechReborn.MOD_ID, "items/tool"); registerBlockstateMultiItem(toolRL, TRContent.RUBY_PICKAXE, "ruby_pickaxe"); registerBlockstateMultiItem(toolRL, TRContent.RUBY_SWORD, "ruby_sword"); registerBlockstateMultiItem(toolRL, TRContent.RUBY_AXE, "ruby_axe"); registerBlockstateMultiItem(toolRL, TRContent.RUBY_SPADE, "ruby_spade"); registerBlockstateMultiItem(toolRL, TRContent.RUBY_HOE, "ruby_hoe"); registerBlockstateMultiItem(toolRL, TRContent.SAPPHIRE_PICKAXE, "sapphire_pickaxe"); registerBlockstateMultiItem(toolRL, TRContent.SAPPHIRE_SWORD, "sapphire_sword"); registerBlockstateMultiItem(toolRL, TRContent.SAPPHIRE_AXE, "sapphire_axe"); registerBlockstateMultiItem(toolRL, TRContent.SAPPHIRE_SPADE, "sapphire_spade"); registerBlockstateMultiItem(toolRL, TRContent.SAPPHIRE_HOE, "sapphire_hoe"); registerBlockstateMultiItem(toolRL, TRContent.PERIDOT_PICKAXE, "peridot_pickaxe"); registerBlockstateMultiItem(toolRL, TRContent.PERIDOT_SWORD, "peridot_sword"); registerBlockstateMultiItem(toolRL, TRContent.PERIDOT_AXE, "peridot_axe"); registerBlockstateMultiItem(toolRL, TRContent.PERIDOT_SPADE, "peridot_spade"); registerBlockstateMultiItem(toolRL, TRContent.PERIDOT_HOE, "peridot_hoe"); registerBlockstateMultiItem(toolRL, TRContent.BRONZE_PICKAXE, "bronze_pickaxe"); registerBlockstateMultiItem(toolRL, TRContent.BRONZE_SWORD, "bronze_sword"); registerBlockstateMultiItem(toolRL, TRContent.BRONZE_AXE, "bronze_axe"); registerBlockstateMultiItem(toolRL, TRContent.BRONZE_SPADE, "bronze_spade"); registerBlockstateMultiItem(toolRL, TRContent.BRONZE_HOE, "bronze_hoe"); } Identifier dustsRL = new Identifier(TechReborn.MOD_ID, "items/material/dust"); Arrays.stream(Dusts.values()).forEach(value -> registerBlockstateMultiItem(dustsRL, value.item, value.name)); Identifier dustsSmallRL = new Identifier(TechReborn.MOD_ID, "items/material/small_dust"); Arrays.stream(SmallDusts.values()).forEach(value -> registerBlockstateMultiItem(dustsSmallRL, value.item, value.name)); Identifier gemsRL = new Identifier(TechReborn.MOD_ID, "items/material/gem"); Arrays.stream(Gems.values()).forEach(value -> registerBlockstateMultiItem(gemsRL, value.item, value.name)); Identifier ingotsRL = new Identifier(TechReborn.MOD_ID, "items/material/ingot"); Arrays.stream(Ingots.values()).forEach(value -> registerBlockstateMultiItem(ingotsRL, value.item, value.name)); Identifier nuggetsRL = new Identifier(TechReborn.MOD_ID, "items/material/nugget"); Arrays.stream(Nuggets.values()).forEach(value -> registerBlockstateMultiItem(nuggetsRL, value.item, value.name)); Identifier partsRL = new Identifier(TechReborn.MOD_ID, "items/material/part"); Arrays.stream(Parts.values()).forEach(value -> registerBlockstateMultiItem(partsRL, value.item, value.name)); Identifier platesRL = new Identifier(TechReborn.MOD_ID, "items/material/plate"); Arrays.stream(Plates.values()).forEach(value -> registerBlockstateMultiItem(platesRL, value.item, value.name)); Identifier upgradeRL = new Identifier(TechReborn.MOD_ID, "items/misc/upgrades"); Arrays.stream(Upgrades.values()).forEach(value -> registerBlockstateMultiItem(upgradeRL, value.item, value.name)); } /* private static void registerFluidBlockModel(BlockFluidTechReborn block) { String name = block.getTranslationKey().substring(5).toLowerCase(); Item item = Item.getItemFromBlock(block); ModelResourceLocation location = new ModelResourceLocation( new ResourceLocation(TechReborn.MOD_ID, "fluids"), name); ModelLoader.registerItemVariants(item); ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition() { @Override public ModelResourceLocation getModelLocation(ItemStack stack) { return location; } }); ModelLoader.setCustomStateMapper(block, new StateMapperBase() { @Override protected ModelResourceLocation getModelResourceLocation(IBlockState state) { return location; } }); } */ private static void register(Item item, String modelPath) { //RebornModelRegistry.registerItemModel(item, modelPath); } private static void registerBlockstateMultiItem(Identifier RL, Item item, String variantName) { //ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(RL, "type=" + variantName)); } }