package com.team.futurecraft;
import com.team.futurecraft.entity.ChunkEntity;
import com.team.futurecraft.rendering.entity.RenderChunkEntity;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemModelMesher;
import net.minecraft.client.resources.model.ModelBakery;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class StartupClientOnly {
public static void preInit() {
}
/**
* Initializes the client side.
* Register Item rendering and any other rendering here.
*/
public static void init() {
RenderingRegistry.registerEntityRenderingHandler(ChunkEntity.class, new RenderChunkEntity(Minecraft.getMinecraft().getRenderManager()));
//metal blocks
registerItemRendering("steel_plating");
registerItemRendering("steel_vent");
//earth ores
registerItemRendering("malachite");
registerItemRendering("cassiterite");
registerItemRendering("bauxite");
//selena blocks
registerMetaItemRendering("selena_stone",
"selena_stone",
"selena_bricks",
"selena_cobblestone",
"selena_malachite",
"selena_cassiterite",
"selena_bauxite");
registerItemRendering("selena_dirt");
//desert blocks
registerMetaItemRendering("desert_stone",
"desert_stone",
"desert_bricks",
"desert_cobblestone",
"desert_malachite",
"desert_cassiterite",
"desert_bauxite");
registerItemRendering("desert_dirt");
//machines
registerItemRendering("alloy_furnace");
registerItemRendering("alloy_furnace_lit");
registerItemRendering("generator");
registerItemRendering("generator_lit");
registerItemRendering("battery");
registerItemRendering("creative_battery");
//rocket parts
registerItemRendering("rocket_core");
//misc
registerItemRendering("navigator");
registerItemRendering("dirty_ice");
//<=======Items=======>
//ingots
registerItemRendering("copper_ingot");
registerItemRendering("tin_ingot");
registerItemRendering("bronze_ingot");
registerItemRendering("steel_ingot");
//bronze tools
registerItemRendering("bronze_sword");
registerItemRendering("bronze_shovel");
registerItemRendering("bronze_axe");
registerItemRendering("bronze_pickaxe");
registerItemRendering("bronze_hoe");
//steel tools
registerItemRendering("steel_sword");
registerItemRendering("steel_shovel");
registerItemRendering("steel_axe");
registerItemRendering("steel_pickaxe");
registerItemRendering("steel_hoe");
//space suit
registerItemRendering("space_suit_helmet");
registerItemRendering("space_suit_chestplate");
registerItemRendering("space_suit_leggings");
registerItemRendering("space_suit_boots");
//misc
registerItemRendering("stone_channel");
registerItemRendering("stone_cast");
registerItemRendering("multimeter");
registerItemRendering("laser");
registerItemRendering("creative_tab");
}
/**Registers a new ItemModel.
*
* Will only work if the itemModel json
* file has the same name as the registered
* blocks/items id.
*
* @param name The itemModel/block name
*/
private static void registerItemRendering(Item item, int meta, String modelName) {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, new ModelResourceLocation(FutureCraft.MODID + ":" + modelName, "inventory"));
}
private static void registerMetaItemRendering(String name, String... modelNames) {
Item item = GameRegistry.findItem(FutureCraft.MODID, name);
ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
String[] newModelNames = new String[modelNames.length];
for (int i = 0; i < modelNames.length; i++) {
newModelNames[i] = FutureCraft.MODID + ":" + modelNames[i];
}
ModelBakery.addVariantName(item, newModelNames);
for (int i = 0; i < modelNames.length; i++) {
mesher.register(item, i, new ModelResourceLocation(FutureCraft.MODID + ":" + modelNames[i], "inventory"));
}
}
private static void registerItemRendering(String name) {
registerItemRendering(GameRegistry.findItem(FutureCraft.MODID, name), 0, name);
}
}