summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/proxy/ClientProxy.java
blob: 3da7ebd34c81c6d043edb1cff20a773b385cdf1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package darkknight.jewelrycraft.proxy;

import org.apache.logging.log4j.Level;

import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.registry.VillagerRegistry;
import darkknight.jewelrycraft.JewelrycraftMod;
import darkknight.jewelrycraft.block.BlockList;
import darkknight.jewelrycraft.block.render.BlockCrystalRenderer;
import darkknight.jewelrycraft.client.InventoryTabVanilla;
import darkknight.jewelrycraft.client.TabCurses;
import darkknight.jewelrycraft.client.TabJewelry;
import darkknight.jewelrycraft.client.TabRegistry;
import darkknight.jewelrycraft.entities.EntityHalfHeart;
import darkknight.jewelrycraft.entities.EntityHeart;
import darkknight.jewelrycraft.entities.renders.HeartRender;
import darkknight.jewelrycraft.events.KeyBindings;
import darkknight.jewelrycraft.events.PlayerRenderHandler;
import darkknight.jewelrycraft.events.ScreenHandler;
import darkknight.jewelrycraft.events.TextureEvent;
import darkknight.jewelrycraft.item.ItemList;
import darkknight.jewelrycraft.item.render.ItemRender;
import darkknight.jewelrycraft.model.*;
import darkknight.jewelrycraft.tileentity.*;
import darkknight.jewelrycraft.tileentity.renders.*;
import darkknight.jewelrycraft.util.JewelrycraftUtil;
import darkknight.jewelrycraft.util.Variables;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraftforge.common.MinecraftForge;

public class ClientProxy extends CommonProxy {
	public enum BlockRenderIDs {
		CRYSTAL;

		private final int ID;

		BlockRenderIDs() {
			ID = RenderingRegistry.getNextAvailableRenderId();
		}

		public int id() {
			return ID;
		}
	}

	@Override
	public void preInit() {
		TileEntityHandPedestalRender pedestalRender = new TileEntityHandPedestalRender(
				new ModelHandPedestal(Variables.PEDESTAL_TEXTURE), Variables.PEDESTAL_TEXTURE);
		TileEntityShadowHandRender shadowHandRender = new TileEntityShadowHandRender(
				new ModelShadowHand(Variables.SHADOW_HAND_TEXTURE), Variables.SHADOW_HAND_TEXTURE);

		JewelrycraftMod.logger.log(Level.INFO, "Binding Tileentities to their Special Rendered");
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySmelter.class, new TileEntitySmelterRender());
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMolder.class, new TileEntityMolderRender());
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJewelrsCraftingTable.class,
				new TileEntityJewelrsCraftingTableRender());
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDisplayer.class, new TileEntityDisplayerRender());
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowEye.class, new TileEntityShadowEyeRender());
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMidasTouch.class, new TileEntityMidasTouchRender());
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHandPedestal.class, pedestalRender);
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityShadowHand.class, shadowHandRender);

		JewelrycraftMod.logger.log(Level.INFO, "Registering Item Renderes");
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.displayer),
				new ItemRender(new TileEntityDisplayerRender(), new TileEntityDisplayer(), new ModelDisplayer()));
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.jewelCraftingTable),
				new ItemRender(new TileEntityJewelrsCraftingTableRender(), new TileEntityJewelrsCraftingTable(),
						new ModelJewlersCraftingBench()));
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.smelter),
				new ItemRender(new TileEntitySmelterRender(), new TileEntitySmelter(), new ModelSmelter()));
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.molder),
				new ItemRender(new TileEntityMolderRender(), new TileEntityMolder(), new ModelMolder()));
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowEye),
				new ItemRender(new TileEntityShadowEyeRender(), new TileEntityShadowEye(), new ModelShadowEye()));
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.handPedestal), new ItemRender(
				pedestalRender, new TileEntityHandPedestal(), new ModelHandPedestal(Variables.PEDESTAL_TEXTURE)));
		MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(BlockList.shadowHand), new ItemRender(
				shadowHandRender, new TileEntityShadowHand(), new ModelShadowHand(Variables.SHADOW_HAND_TEXTURE)));
		MinecraftForgeClient.registerItemRenderer(ItemList.goldObj, new ItemRender());

		VillagerRegistry.instance().registerVillagerSkin(3000, Variables.VILLAGER_TEXTURE);

		JewelrycraftMod.logger.log(Level.INFO, "Registering Entity Renders");
		RenderingRegistry.registerEntityRenderingHandler(EntityHeart.class, new HeartRender(new ModelHeart(), 0.25F));
		RenderingRegistry.registerEntityRenderingHandler(EntityHalfHeart.class,
				new HeartRender(new ModelHalfHeart(), 0.25F));

		RenderingRegistry.registerBlockHandler(new BlockCrystalRenderer());

		TabRegistry.registerTab(new InventoryTabVanilla());
		TabRegistry.registerTab(new TabJewelry());
		TabRegistry.registerTab(new TabCurses());
		MinecraftForge.EVENT_BUS.register(new TabRegistry());
		MinecraftForge.EVENT_BUS.register(new PlayerRenderHandler());
		MinecraftForge.EVENT_BUS.register(new ScreenHandler(Minecraft.getMinecraft()));
	}

	@Override
	public void init() {
		FMLCommonHandler.instance().bus().register(new KeyBindings());
		MinecraftForge.EVENT_BUS.register(new TextureEvent());
	}

	@Override
	public void postInit() {
		JewelrycraftMod.logger.log(Level.INFO, "Generating colors for each item");
		JewelrycraftUtil.generateColors();
	}
}