/*******************************************************************************
* AbyssalCraft
* Copyright (c) 2012 - 2017 Shinoow.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0.txt
*
* Contributors:
* Shinoow - implementation
******************************************************************************/
package com.shinoow.abyssalcraft.client;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFire;
import net.minecraft.block.BlockLeaves;
import net.minecraft.block.BlockSapling;
import net.minecraft.block.BlockTNT;
import net.minecraft.block.BlockWall;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.client.particle.Particle;
import net.minecraft.client.renderer.RenderItem;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMap;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.client.renderer.entity.RenderEntityItem;
import net.minecraft.client.renderer.entity.RenderPlayer;
import net.minecraft.client.renderer.entity.RenderSnowball;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.IThreadListener;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import com.shinoow.abyssalcraft.AbyssalCraft;
import com.shinoow.abyssalcraft.api.block.ACBlocks;
import com.shinoow.abyssalcraft.api.item.ACItems;
import com.shinoow.abyssalcraft.client.handlers.AbyssalCraftClientEventHooks;
import com.shinoow.abyssalcraft.client.model.block.*;
import com.shinoow.abyssalcraft.client.model.item.ModelDreadiumSamuraiArmor;
import com.shinoow.abyssalcraft.client.particles.CorBloodParticleFX;
import com.shinoow.abyssalcraft.client.particles.PEStreamParticleFX;
import com.shinoow.abyssalcraft.client.render.block.*;
import com.shinoow.abyssalcraft.client.render.entity.*;
import com.shinoow.abyssalcraft.client.render.entity.layers.LayerStarSpawnTentacles;
import com.shinoow.abyssalcraft.client.render.item.RenderCoraliumArrow;
import com.shinoow.abyssalcraft.common.CommonProxy;
import com.shinoow.abyssalcraft.common.blocks.BlockACSlab;
import com.shinoow.abyssalcraft.common.blocks.BlockCrystalCluster;
import com.shinoow.abyssalcraft.common.blocks.BlockCrystalCluster2;
import com.shinoow.abyssalcraft.common.blocks.BlockCrystalCluster.EnumCrystalType;
import com.shinoow.abyssalcraft.common.blocks.BlockCrystalCluster2.EnumCrystalType2;
import com.shinoow.abyssalcraft.common.blocks.tile.*;
import com.shinoow.abyssalcraft.common.entity.*;
import com.shinoow.abyssalcraft.common.entity.anti.*;
import com.shinoow.abyssalcraft.common.entity.demon.*;
import com.shinoow.abyssalcraft.init.BlockHandler;
import com.shinoow.abyssalcraft.init.ItemHandler;
import com.shinoow.abyssalcraft.lib.ACLib;
import com.shinoow.abyssalcraft.lib.client.render.TileEntityAltarBlockRenderer;
import com.shinoow.abyssalcraft.lib.client.render.TileEntityDirectionalRenderer;
import com.shinoow.abyssalcraft.lib.client.render.TileEntityPedestalBlockRenderer;
public class ClientProxy extends CommonProxy {
private static final ModelDreadiumSamuraiArmor chestPlate = new ModelDreadiumSamuraiArmor(1.0f);
private static final ModelDreadiumSamuraiArmor leggings = new ModelDreadiumSamuraiArmor(0.5f);
@Override
public void preInit() {
OBJLoader.INSTANCE.addDomain(AbyssalCraft.modid);
RenderingRegistry.registerEntityRenderingHandler(EntityEvilpig.class, manager -> new RenderEvilPig(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDepthsGhoul.class, manager -> new RenderDepthsGhoul(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAbyssalZombie.class, manager -> new RenderAbyssalZombie(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityODBPrimed.class, manager -> new RenderODB(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityODBcPrimed.class, manager -> new RenderODBc(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityJzahar.class, manager -> new RenderJzahar(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAbygolem.class, manager -> new RenderAbyssalniteGolem(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDreadgolem.class, manager -> new RenderDreadedAbyssalniteGolem(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDreadguard.class, manager -> new RenderDreadguard(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDragonMinion.class, manager -> new RenderDragonMinion(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDragonBoss.class, manager -> new RenderDragonBoss(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityPSDLTracker.class, manager -> new RenderSnowball(manager, ACItems.powerstone_tracker, Minecraft.getMinecraft().getRenderItem()));
RenderingRegistry.registerEntityRenderingHandler(EntityShadowCreature.class, manager -> new RenderShadowCreature(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityShadowMonster.class, manager -> new RenderShadowMonster(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDreadling.class, manager -> new RenderDreadling(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDreadSpawn.class, manager -> new RenderDreadSpawn(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDemonPig.class, manager -> new RenderDemonPig(manager));
RenderingRegistry.registerEntityRenderingHandler(EntitySkeletonGoliath.class, manager -> new RenderSkeletonGoliath(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityChagarothSpawn.class, manager -> new RenderChagarothSpawn(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityChagarothFist.class, manager -> new RenderChagarothFist(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityChagaroth.class, manager -> new RenderChagaroth(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityShadowBeast.class, manager -> new RenderShadowBeast(manager));
RenderingRegistry.registerEntityRenderingHandler(EntitySacthoth.class, manager -> new RenderSacthoth(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityRemnant.class, manager -> new RenderRemnant(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityOmotholGhoul.class, manager -> new RenderOmotholGhoul(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityCoraliumArrow.class, manager -> new RenderCoraliumArrow(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityGatekeeperMinion.class, manager -> new RenderGatekeeperMinion(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityGreaterDreadSpawn.class, manager -> new RenderGreaterDreadSpawn(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityLesserDreadbeast.class, manager -> new RenderLesserDreadbeast(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDreadSlug.class, manager -> new RenderSnowball(manager, ACItems.dread_fragment, Minecraft.getMinecraft().getRenderItem()));
RenderingRegistry.registerEntityRenderingHandler(EntityLesserShoggoth.class, manager -> new RenderLesserShoggoth(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityEvilCow.class, manager -> new RenderEvilCow(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityEvilChicken.class, manager -> new RenderEvilChicken(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDemonCow.class, manager -> new RenderDemonCow(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDemonChicken.class, manager -> new RenderDemonChicken(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityGatekeeperEssence.class, manager -> new RenderEntityItem(manager, Minecraft.getMinecraft().getRenderItem()));
RenderingRegistry.registerEntityRenderingHandler(EntityEvilSheep.class, manager -> new RenderEvilSheep(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityDemonSheep.class, manager -> new RenderDemonSheep(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityCoraliumSquid.class, manager -> new RenderCoraliumSquid(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityInkProjectile.class, manager -> new RenderSnowball(manager, Items.DYE, Minecraft.getMinecraft().getRenderItem()));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiAbyssalZombie.class, manager -> new RenderAntiAbyssalZombie(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiBat.class, manager -> new RenderAntiBat(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiChicken.class, manager -> new RenderAntiChicken(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiCow.class, manager -> new RenderAntiCow(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiCreeper.class, manager -> new RenderAntiCreeper(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiGhoul.class, manager -> new RenderAntiGhoul(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiPig.class, manager -> new RenderAntiPig(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiPlayer.class, manager -> new RenderAntiPlayer(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiSkeleton.class, manager -> new RenderAntiSkeleton(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiSpider.class, manager -> new RenderAntiSpider(manager));
RenderingRegistry.registerEntityRenderingHandler(EntityAntiZombie.class, manager -> new RenderAntiZombie(manager));
ModelBakery.registerItemVariants(ACItems.shoggoth_flesh, makerl("shoggothflesh_overworld", "shoggothflesh_abyssalwasteland",
"shoggothflesh_dreadlands", "shoggothflesh_omothol", "shoggothflesh_darkrealm"));
ModelBakery.registerItemVariants(ACItems.essence, makerl("essence_abyssalwasteland", "essence_dreadlands", "essence_omothol"));
ModelBakery.registerItemVariants(ACItems.skin, makerl("skin_abyssalwasteland", "skin_dreadlands", "skin_omothol"));
ModelBakery.registerItemVariants(ACItems.ritual_charm, makerl("ritualcharm_empty", "ritualcharm_range", "ritualcharm_duration", "ritualcharm_power"));
ModelBakery.registerItemVariants(ACItems.ingot_nugget, makerl("nugget_abyssalnite", "nugget_coralium", "nugget_dreadium", "nugget_ethaxium"));
ModelBakery.registerItemVariants(ACItems.staff_of_rending, makerl("drainstaff", "drainstaff_aw", "drainstaff_dl", "drainstaff_omt"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.ethaxium_brick), makerl("ethaxiumbrick_0", "ethaxiumbrick_1", "ethaxiumbrick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.dark_ethaxium_brick), makerl("darkethaxiumbrick_0", "darkethaxiumbrick_1", "darkethaxiumbrick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.tiered_energy_pedestal), makerl("tieredenergypedestal_0", "tieredenergypedestal_1",
"tieredenergypedestal_2", "tieredenergypedestal_3"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.tiered_sacrificial_altar), makerl("tieredsacrificialaltar_0", "tieredsacrificialaltar_1",
"tieredsacrificialaltar_2", "tieredsacrificialaltar_3"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.ritual_altar), makerl("ritualaltar_0", "ritualaltar_1", "ritualaltar_2", "ritualaltar_3",
"ritualaltar_4", "ritualaltar_5", "ritualaltar_6", "ritualaltar_7"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.ritual_pedestal), makerl("ritualpedestal_0", "ritualpedestal_1", "ritualpedestal_2",
"ritualpedestal_3", "ritualpedestal_4", "ritualpedestal_5", "ritualpedestal_6", "ritualpedestal_7"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.darkstone_brick), makerl("darkstone_brick_0", "darkstone_brick_1", "darkstone_brick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.abyssal_stone_brick), makerl("abybrick_0", "abybrick_1", "abybrick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.dreadstone_brick), makerl("dreadbrick_0", "dreadbrick_1", "dreadbrick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.abyssalnite_stone_brick), makerl("abydreadbrick_0", "abydreadbrick_1", "abydreadbrick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.coralium_stone_brick), makerl("cstonebrick_0", "cstonebrick_1", "cstonebrick_2"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.tiered_energy_collector), makerl("tieredenergycollector_0", "tieredenergycollector_1",
"tieredenergycollector_2", "tieredenergycollector_3"));
ModelBakery.registerItemVariants(Item.getItemFromBlock(ACBlocks.tiered_energy_container), makerl("tieredenergycontainer_0", "tieredenergycontainer_1",
"tieredenergycontainer_2", "tieredenergycontainer_3"));
registerFluidModel(ACBlocks.liquid_coralium, "cor");
registerFluidModel(ACBlocks.liquid_antimatter, "anti");
ModelLoader.setCustomStateMapper(ACBlocks.darklands_oak_leaves, new StateMap.Builder().ignore(new IProperty[] {BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.dreadlands_leaves, new StateMap.Builder().ignore(new IProperty[] {BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.oblivion_deathbomb, new StateMap.Builder().ignore(new IProperty[] {BlockTNT.EXPLODE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.odb_core, new StateMap.Builder().ignore(new IProperty[] {BlockTNT.EXPLODE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.darkstone_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.darkstone_cobblestone_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.abyssal_stone_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.darkstone_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.darklands_oak_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.dreadstone_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.abyssalnite_stone_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.coralium_stone_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.ethaxium_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.dark_ethaxium_brick_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.darklands_oak_sapling, new StateMap.Builder().ignore(new IProperty[] {BlockSapling.TYPE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.dreadlands_sapling, new StateMap.Builder().ignore(new IProperty[] {BlockSapling.TYPE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.mimic_fire, new StateMap.Builder().ignore(new IProperty[] {BlockFire.AGE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.darkstone_cobblestone_wall, new StateMap.Builder().ignore(new IProperty[] {BlockWall.VARIANT}).build());
ModelLoader.setCustomStateMapper(ACBlocks.crystal_cluster, new StateMap.Builder().ignore(new IProperty[]{BlockCrystalCluster.TYPE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.crystal_cluster2, new StateMap.Builder().ignore(new IProperty[]{BlockCrystalCluster2.TYPE}).build());
ModelLoader.setCustomStateMapper(ACBlocks.abyssal_cobblestone_wall, new StateMap.Builder().ignore(new IProperty[] {BlockWall.VARIANT}).build());
ModelLoader.setCustomStateMapper(ACBlocks.dreadstone_cobblestone_wall, new StateMap.Builder().ignore(new IProperty[] {BlockWall.VARIANT}).build());
ModelLoader.setCustomStateMapper(ACBlocks.abyssalnite_cobblestone_wall, new StateMap.Builder().ignore(new IProperty[] {BlockWall.VARIANT}).build());
ModelLoader.setCustomStateMapper(ACBlocks.coralium_cobblestone_wall, new StateMap.Builder().ignore(new IProperty[] {BlockWall.VARIANT}).build());
ModelLoader.setCustomStateMapper(ACBlocks.abyssal_cobblestone_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.dreadstone_cobblestone_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.abyssalnite_cobblestone_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomStateMapper(ACBlocks.coralium_cobblestone_slab, new StateMap.Builder().ignore(new IProperty[] {BlockACSlab.VARIANT_PROPERTY}).build());
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.cthulhu_statue), 0, new ModelResourceLocation("abyssalcraft:cthulhustatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_cthulhu_statue), 0, new ModelResourceLocation("abyssalcraft:cthulhustatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.hastur_statue), 0, new ModelResourceLocation("abyssalcraft:hasturstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_hastur_statue), 0, new ModelResourceLocation("abyssalcraft:hasturstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.jzahar_statue), 0, new ModelResourceLocation("abyssalcraft:jzaharstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_jzahar_statue), 0, new ModelResourceLocation("abyssalcraft:jzaharstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.azathoth_statue), 0, new ModelResourceLocation("abyssalcraft:azathothstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_azathoth_statue), 0, new ModelResourceLocation("abyssalcraft:azathothstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.nyarlathotep_statue), 0, new ModelResourceLocation("abyssalcraft:nyarlathotepstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_nyarlathotep_statue), 0, new ModelResourceLocation("abyssalcraft:nyarlathotepstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.yog_sothoth_statue), 0, new ModelResourceLocation("abyssalcraft:yogsothothstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_yog_sothoth_statue), 0, new ModelResourceLocation("abyssalcraft:yogsothothstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.shub_niggurath_statue), 0, new ModelResourceLocation("abyssalcraft:shubniggurathstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.decorative_shub_niggurath_statue), 0, new ModelResourceLocation("abyssalcraft:shubniggurathstatue", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.engraver), 0, new ModelResourceLocation("abyssalcraft:engraver", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.oblivion_deathbomb), 0, new ModelResourceLocation("abyssalcraft:odb", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.chagaroth_altar_top), 0, new ModelResourceLocation("abyssalcraft:dreadaltartop", "inventory"));
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(ACBlocks.chagaroth_altar_bottom), 0, new ModelResourceLocation("abyssalcraft:dreadaltarbottom", "inventory"));
ModelLoader.setCustomModelResourceLocation(ACItems.cudgel, 0, new ModelResourceLocation("abyssalcraft:cudgel", "inventory"));
ModelLoader.setCustomModelResourceLocation(ACItems.dreadium_katana, 0, new ModelResourceLocation("abyssalcraft:dreadkatana", "inventory"));
ModelLoader.setCustomModelResourceLocation(ACItems.staff_of_the_gatekeeper, 0, new ModelResourceLocation("abyssalcraft:staff", "inventory"));
MinecraftForge.EVENT_BUS.register(new AbyssalCraftClientEventHooks());
}
@Override
public void init(){
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityDGhead.class, new TileEntityDirectionalRenderer(new ModelDGhead(), "abyssalcraft:textures/model/depths_ghoul.png"));
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPhead.class, new TileEntityDirectionalRenderer(new ModelDGhead(), "abyssalcraft:textures/model/depths_ghoul_pete.png"));
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWhead.class, new TileEntityDirectionalRenderer(new ModelDGhead(), "abyssalcraft:textures/model/depths_ghoul_wilson.png"));
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOhead.class, new TileEntityDirectionalRenderer(new ModelDGhead(), "abyssalcraft:textures/model/depths_ghoul_orange.png"));
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRitualAltar.class, new TileEntityAltarBlockRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRitualPedestal.class, new TileEntityPedestalBlockRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEnergyPedestal.class, new TileEntityPedestalBlockRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySacrificialAltar.class, new TileEntityAltarBlockRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTieredEnergyPedestal.class, new TileEntityPedestalBlockRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTieredSacrificialAltar.class, new TileEntityAltarBlockRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityJzaharSpawner.class, new TileEntityJzaharSpawnerRenderer());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRendingPedestal.class, new TileEntityPedestalBlockRenderer());
registerItemRender(ItemHandler.devsword, 0);
registerItemRender(ACItems.oblivion_catalyst, 0);
registerItemRender(ACItems.gateway_key, 0);
registerItemRender(ACItems.powerstone_tracker, 0);
registerItemRender(ACItems.eye_of_the_abyss, 0);
registerItemRender(ACItems.dreaded_gateway_key, 0);
registerItemRender(ACItems.dreaded_shard_of_abyssalnite, 0);
registerItemRender(ACItems.dreaded_chunk_of_abyssalnite, 0);
registerItemRender(ACItems.chunk_of_abyssalnite, 0);
registerItemRender(ACItems.abyssalnite_ingot, 0);
registerItemRender(ACItems.coralium_gem, 0);
registerItemRender(ACItems.coralium_gem_cluster_2, 0);
registerItemRender(ACItems.coralium_gem_cluster_3, 0);
registerItemRender(ACItems.coralium_gem_cluster_4, 0);
registerItemRender(ACItems.coralium_gem_cluster_5, 0);
registerItemRender(ACItems.coralium_gem_cluster_6, 0);
registerItemRender(ACItems.coralium_gem_cluster_7, 0);
registerItemRender(ACItems.coralium_gem_cluster_8, 0);
registerItemRender(ACItems.coralium_gem_cluster_9, 0);
registerItemRender(ACItems.coralium_pearl, 0);
registerItemRender(ACItems.chunk_of_coralium, 0);
registerItemRender(ACItems.refined_coralium_ingot, 0);
registerItemRender(ACItems.coralium_plate, 0);
registerItemRender(ACItems.transmutation_gem, 0);
registerItemRender(ACItems.coralium_plagued_flesh, 0);
registerItemRender(ACItems.coralium_plagued_flesh_on_a_bone, 0);
registerItemRender(ACItems.darkstone_pickaxe, 0);
registerItemRender(ACItems.darkstone_axe, 0);
registerItemRender(ACItems.darkstone_shovel, 0);
registerItemRender(ACItems.darkstone_sword, 0);
registerItemRender(ACItems.darkstone_hoe, 0);
registerItemRender(ACItems.abyssalnite_pickaxe, 0);
registerItemRender(ACItems.abyssalnite_axe, 0);
registerItemRender(ACItems.abyssalnite_shovel, 0);
registerItemRender(ACItems.abyssalnite_sword, 0);
registerItemRender(ACItems.abyssalnite_hoe, 0);
registerItemRender(ACItems.refined_coralium_pickaxe, 0);
registerItemRender(ACItems.refined_coralium_axe, 0);
registerItemRender(ACItems.refined_coralium_shovel, 0);
registerItemRender(ACItems.refined_coralium_sword, 0);
registerItemRender(ACItems.refined_coralium_hoe, 0);
registerItemRender(ACItems.abyssalnite_boots, 0);
registerItemRender(ACItems.abyssalnite_helmet, 0);
registerItemRender(ACItems.abyssalnite_chestplate, 0);
registerItemRender(ACItems.abyssalnite_leggings, 0);
registerItemRender(ACItems.dreaded_abyssalnite_boots, 0);
registerItemRender(ACItems.dreaded_abyssalnite_helmet, 0);
registerItemRender(ACItems.dreaded_abyssalnite_chestplate, 0);
registerItemRender(ACItems.dreaded_abyssalnite_leggings, 0);
registerItemRender(ACItems.refined_coralium_boots, 0);
registerItemRender(ACItems.refined_coralium_helmet, 0);
registerItemRender(ACItems.refined_coralium_chestplate, 0);
registerItemRender(ACItems.refined_coralium_leggings, 0);
registerItemRender(ACItems.plated_coralium_boots, 0);
registerItemRender(ACItems.plated_coralium_helmet, 0);
registerItemRender(ACItems.plated_coralium_chestplate, 0);
registerItemRender(ACItems.plated_coralium_leggings, 0);
registerItemRender(ACItems.depths_boots, 0);
registerItemRender(ACItems.depths_helmet, 0);
registerItemRender(ACItems.depths_chestplate, 0);
registerItemRender(ACItems.depths_leggings, 0);
registerItemRender(ACItems.cobblestone_upgrade_kit, 0);
registerItemRender(ACItems.iron_upgrade_kit, 0);
registerItemRender(ACItems.gold_upgrade_kit, 0);
registerItemRender(ACItems.diamond_upgrade_kit, 0);
registerItemRender(ACItems.abyssalnite_upgrade_kit, 0);
registerItemRender(ACItems.coralium_upgrade_kit, 0);
registerItemRender(ACItems.mre, 0);
registerItemRender(ACItems.iron_plate, 0);
registerItemRender(ACItems.chicken_on_a_plate, 0);
registerItemRender(ACItems.pork_on_a_plate, 0);
registerItemRender(ACItems.beef_on_a_plate, 0);
registerItemRender(ACItems.fish_on_a_plate, 0);
registerItemRender(ACItems.dirty_plate, 0);
registerItemRender(ACItems.fried_egg, 0);
registerItemRender(ACItems.fried_egg_on_a_plate, 0);
registerItemRender(ACItems.washcloth, 0);
registerItemRender(ACItems.shadow_fragment, 0);
registerItemRender(ACItems.shadow_shard, 0);
registerItemRender(ACItems.shadow_gem, 0);
registerItemRender(ACItems.shard_of_oblivion, 0);
registerItemRender(ACItems.coralium_longbow, 0);
registerItemRender(ACItems.coralium_brick, 0);
registerItemRender(ACItems.dreadium_ingot, 0);
registerItemRender(ACItems.dread_fragment, 0);
registerItemRender(ACItems.dreadium_boots, 0);
registerItemRender(ACItems.dreadium_helmet, 0);
registerItemRender(ACItems.dreadium_chestplate, 0);
registerItemRender(ACItems.dreadium_leggings, 0);
registerItemRender(ACItems.dreadium_pickaxe, 0);
registerItemRender(ACItems.dreadium_axe, 0);
registerItemRender(ACItems.dreadium_shovel, 0);
registerItemRender(ACItems.dreadium_sword, 0);
registerItemRender(ACItems.dreadium_hoe, 0);
registerItemRender(ACItems.dreadium_upgrade_kit, 0);
registerItemRender(ACItems.carbon_cluster, 0);
registerItemRender(ACItems.dense_carbon_cluster, 0);
registerItemRender(ACItems.methane, 0);
registerItemRender(ACItems.nitre, 0);
registerItemRender(ACItems.sulfur, 0);
registerItemRenders(ACItems.crystal, 25);
registerItemRenders(ACItems.crystal_shard, 25);
registerItemRender(ACItems.dread_cloth, 0);
registerItemRender(ACItems.dreadium_plate, 0);
registerItemRender(ACItems.dreadium_katana_blade, 0);
registerItemRender(ACItems.dreadium_katana_hilt, 0);
registerItemRender(ACItems.dread_plagued_gateway_key, 0);
registerItemRender(ACItems.rlyehian_gateway_key, 0);
registerItemRender(ACItems.dreadium_samurai_boots, 0);
registerItemRender(ACItems.dreadium_samurai_helmet, 0);
registerItemRender(ACItems.dreadium_samurai_chestplate, 0);
registerItemRender(ACItems.dreadium_samurai_leggings, 0);
registerItemRender(ACItems.tin_ingot, 0);
registerItemRender(ACItems.copper_ingot, 0);
registerItemRender(ACItems.anti_beef, 0);
registerItemRender(ACItems.anti_chicken, 0);
registerItemRender(ACItems.anti_pork, 0);
registerItemRender(ACItems.rotten_anti_flesh, 0);
registerItemRender(ACItems.anti_bone, 0);
registerItemRender(ACItems.anti_spider_eye, 0);
registerItemRender(ACItems.sacthoths_soul_harvesting_blade, 0);
registerItemRender(ACItems.ethaxium_brick, 0);
registerItemRender(ACItems.ethaxium_ingot, 0);
registerItemRender(ACItems.life_crystal, 0);
registerItemRender(ACItems.ethaxium_boots, 0);
registerItemRender(ACItems.ethaxium_helmet, 0);
registerItemRender(ACItems.ethaxium_chestplate, 0);
registerItemRender(ACItems.ethaxium_leggings, 0);
registerItemRender(ACItems.ethaxium_pickaxe, 0);
registerItemRender(ACItems.ethaxium_axe, 0);
registerItemRender(ACItems.ethaxium_shovel, 0);
registerItemRender(ACItems.ethaxium_sword, 0);
registerItemRender(ACItems.ethaxium_hoe, 0);
registerItemRender(ACItems.ethaxium_upgrade_kit, 0);
registerItemRender(ACItems.coin, 0);
registerItemRender(ACItems.cthulhu_engraved_coin, 0);
registerItemRender(ACItems.elder_engraved_coin, 0);
registerItemRender(ACItems.jzahar_engraved_coin, 0);
registerItemRender(ACItems.blank_engraving, 0);
registerItemRender(ACItems.cthulhu_engraving, 0);
registerItemRender(ACItems.elder_engraving, 0);
registerItemRender(ACItems.jzahar_engraving, 0);
registerItemRender(ACItems.eldritch_scale, 0);
registerItemRender(ACItems.omothol_flesh, 0);
registerItemRender(ACItems.anti_plagued_flesh, 0);
registerItemRender(ACItems.anti_plagued_flesh_on_a_bone, 0);
registerItemRender(ACItems.necronomicon, 0);
registerItemRender(ACItems.abyssal_wasteland_necronomicon, 0);
registerItemRender(ACItems.dreadlands_necronomicon, 0);
registerItemRender(ACItems.omothol_necronomicon, 0);
registerItemRender(ACItems.abyssalnomicon, 0);
registerItemRender(ACItems.small_crystal_bag, 0);
registerItemRender(ACItems.medium_crystal_bag, 0);
registerItemRender(ACItems.large_crystal_bag, 0);
registerItemRender(ACItems.huge_crystal_bag, 0);
registerItemRender(ACItems.shoggoth_flesh, 0, "shoggothflesh_overworld");
registerItemRender(ACItems.shoggoth_flesh, 1, "shoggothflesh_abyssalwasteland");
registerItemRender(ACItems.shoggoth_flesh, 2, "shoggothflesh_dreadlands");
registerItemRender(ACItems.shoggoth_flesh, 3, "shoggothflesh_omothol");
registerItemRender(ACItems.shoggoth_flesh, 4, "shoggothflesh_darkrealm");
registerItemRender(ACItems.ingot_nugget, 0, "nugget_abyssalnite");
registerItemRender(ACItems.ingot_nugget, 1, "nugget_coralium");
registerItemRender(ACItems.ingot_nugget, 2, "nugget_dreadium");
registerItemRender(ACItems.ingot_nugget, 3, "nugget_ethaxium");
registerItemRender(ACItems.staff_of_rending, 0, "drainstaff");
registerItemRender(ACItems.staff_of_rending, 1, "drainstaff_aw");
registerItemRender(ACItems.staff_of_rending, 2, "drainstaff_dl");
registerItemRender(ACItems.staff_of_rending, 3, "drainstaff_omt");
registerItemRender(ACItems.essence, 0, "essence_abyssalwasteland");
registerItemRender(ACItems.essence, 1, "essence_dreadlands");
registerItemRender(ACItems.essence, 2, "essence_omothol");
registerItemRender(ACItems.skin, 0, "skin_abyssalwasteland");
registerItemRender(ACItems.skin, 1, "skin_dreadlands");
registerItemRender(ACItems.skin, 2, "skin_omothol");
registerItemRender(ACItems.ritual_charm, 0, "ritualcharm_empty");
registerItemRender(ACItems.ritual_charm, 1, "ritualcharm_range");
registerItemRender(ACItems.ritual_charm, 2, "ritualcharm_duration");
registerItemRender(ACItems.ritual_charm, 3, "ritualcharm_power");
registerItemRenders(ACItems.cthulhu_charm, 4);
registerItemRenders(ACItems.hastur_charm, 4);
registerItemRenders(ACItems.jzahar_charm, 4);
registerItemRenders(ACItems.azathoth_charm, 4);
registerItemRenders(ACItems.nyarlathotep_charm, 4);
registerItemRenders(ACItems.yog_sothoth_charm, 4);
registerItemRenders(ACItems.shub_niggurath_charm, 4);
registerItemRender(ACItems.hastur_engraved_coin, 0);
registerItemRender(ACItems.azathoth_engraved_coin, 0);
registerItemRender(ACItems.nyarlathotep_engraved_coin, 0);
registerItemRender(ACItems.yog_sothoth_engraved_coin, 0);
registerItemRender(ACItems.shub_niggurath_engraved_coin, 0);
registerItemRender(ACItems.hastur_engraving, 0);
registerItemRender(ACItems.azathoth_engraving, 0);
registerItemRender(ACItems.nyarlathotep_engraving, 0);
registerItemRender(ACItems.yog_sothoth_engraving, 0);
registerItemRender(ACItems.shub_niggurath_engraving, 0);
registerItemRender(ACItems.essence_of_the_gatekeeper, 0);
registerItemRender(ACItems.interdimensional_cage, 0);
registerItemRenders(ACItems.crystal_fragment, 25);
registerItemRender(ACBlocks.darkstone, 0);
registerItemRender(ACBlocks.darkstone_cobblestone, 0);
registerItemRender(ACBlocks.darkstone_brick, 0, "darkstone_brick_0");
registerItemRender(ACBlocks.darkstone_brick, 1, "darkstone_brick_1");
registerItemRender(ACBlocks.darkstone_brick, 2, "darkstone_brick_2");
registerItemRender(ACBlocks.glowing_darkstone_bricks, 0);
registerItemRender(ACBlocks.darkstone_brick_slab, 0);
registerItemRender(BlockHandler.Darkbrickslab2, 0);
registerItemRender(ACBlocks.darkstone_cobblestone_slab, 0);
registerItemRender(BlockHandler.Darkcobbleslab2, 0);
registerItemRender(ACBlocks.darklands_grass, 0);
registerItemRender(ACBlocks.darkstone_brick_stairs, 0);
registerItemRender(ACBlocks.darkstone_cobblestone_stairs, 0);
registerItemRender(ACBlocks.darklands_oak_leaves, 0);
registerItemRender(ACBlocks.darklands_oak_wood, 0);
registerItemRender(ACBlocks.darklands_oak_sapling, 0);
registerItemRender(ACBlocks.abyssal_stone, 0);
registerItemRender(ACBlocks.abyssal_stone_brick, 0, "abybrick_0");
registerItemRender(ACBlocks.abyssal_stone_brick, 1, "abybrick_1");
registerItemRender(ACBlocks.abyssal_stone_brick, 2, "abybrick_2");
registerItemRender(ACBlocks.abyssal_stone_brick_slab, 0);
registerItemRender(BlockHandler.abyslab2, 0);
registerItemRender(ACBlocks.abyssal_stone_brick_stairs, 0);
registerItemRender(ACBlocks.coralium_ore, 0);
registerItemRender(ACBlocks.abyssalnite_ore, 0);
registerItemRender(ACBlocks.abyssal_stone_brick_fence, 0);
registerItemRender(ACBlocks.darkstone_cobblestone_wall, 0);
registerItemRender(ACBlocks.block_of_abyssalnite, 0);
registerItemRender(ACBlocks.coralium_infused_stone, 0);
registerItemRender(ACBlocks.odb_core, 0);
registerItemRender(ACBlocks.wooden_crate, 0);
registerItemRender(ACBlocks.abyssal_gateway, 0);
registerItemRender(ACBlocks.darkstone_slab, 0);
registerItemRender(BlockHandler.Darkstoneslab2, 0);
registerItemRender(ACBlocks.coralium_fire, 0);
registerItemRender(ACBlocks.darkstone_button, 0);
registerItemRender(ACBlocks.darkstone_pressure_plate, 0);
registerItemRender(ACBlocks.darklands_oak_planks, 0);
registerItemRender(ACBlocks.darklands_oak_button, 0);
registerItemRender(ACBlocks.darklands_oak_pressure_plate, 0);
registerItemRender(ACBlocks.darklands_oak_stairs, 0);
registerItemRender(ACBlocks.darklands_oak_slab, 0);
registerItemRender(BlockHandler.DLTslab2, 0);
registerItemRender(ACBlocks.block_of_coralium, 0);
registerItemRender(ACBlocks.dreadlands_infused_powerstone, 0);
registerItemRender(ACBlocks.abyssal_coralium_ore, 0);
registerItemRender(BlockHandler.Altar, 0);
registerItemRender(ACBlocks.abyssal_stone_button, 0);
registerItemRender(ACBlocks.abyssal_stone_pressure_plate, 0);
registerItemRender(ACBlocks.darkstone_brick_fence, 0);
registerItemRender(ACBlocks.darklands_oak_fence, 0);
registerItemRender(ACBlocks.dreadstone, 0);
registerItemRender(ACBlocks.abyssalnite_stone, 0);
registerItemRender(ACBlocks.dreadlands_abyssalnite_ore, 0);
registerItemRender(ACBlocks.dreaded_abyssalnite_ore, 0);
registerItemRender(ACBlocks.dreadstone_brick, 0, "dreadbrick_0");
registerItemRender(ACBlocks.dreadstone_brick, 1, "dreadbrick_1");
registerItemRender(ACBlocks.dreadstone_brick, 2, "dreadbrick_2");
registerItemRender(ACBlocks.abyssalnite_stone_brick, 0, "abydreadbrick_0");
registerItemRender(ACBlocks.abyssalnite_stone_brick, 1, "abydreadbrick_1");
registerItemRender(ACBlocks.abyssalnite_stone_brick, 2, "abydreadbrick_2");
registerItemRender(ACBlocks.dreadlands_grass, 0);
registerItemRender(ACBlocks.dreadlands_log, 0);
registerItemRender(ACBlocks.dreadlands_leaves, 0);
registerItemRender(ACBlocks.dreadlands_sapling, 0);
registerItemRender(ACBlocks.dreadlands_planks, 0);
registerItemRender(ACBlocks.dreaded_gateway, 0);
registerItemRender(ACBlocks.dreaded_fire, 0);
registerItemRender(ACBlocks.depths_ghoul_head, 0);
registerItemRender(ACBlocks.pete_head, 0);
registerItemRender(ACBlocks.mr_wilson_head, 0);
registerItemRender(ACBlocks.dr_orange_head, 0);
registerItemRender(ACBlocks.dreadstone_brick_stairs, 0);
registerItemRender(ACBlocks.dreadstone_brick_fence, 0);
registerItemRender(ACBlocks.dreadstone_brick_slab, 0);
registerItemRender(BlockHandler.dreadbrickslab2, 0);
registerItemRender(ACBlocks.abyssalnite_stone_brick_stairs, 0);
registerItemRender(ACBlocks.abyssalnite_stone_brick_fence, 0);
registerItemRender(ACBlocks.abyssalnite_stone_brick_slab, 0);
registerItemRender(BlockHandler.abydreadbrickslab2, 0);
registerItemRender(ACBlocks.coralium_stone, 0);
registerItemRender(ACBlocks.coralium_stone_brick, 0, "cstonebrick_0");
registerItemRender(ACBlocks.coralium_stone_brick, 1, "cstonebrick_1");
registerItemRender(ACBlocks.coralium_stone_brick, 2, "cstonebrick_2");
registerItemRender(ACBlocks.coralium_stone_brick_fence, 0);
registerItemRender(ACBlocks.coralium_stone_brick_slab, 0);
registerItemRender(BlockHandler.cstonebrickslab2, 0);
registerItemRender(ACBlocks.coralium_stone_brick_stairs, 0);
registerItemRender(ACBlocks.coralium_stone_button, 0);
registerItemRender(ACBlocks.coralium_stone_pressure_plate, 0);
registerItemRender(ACBlocks.crystallizer_idle, 0);
registerItemRender(ACBlocks.crystallizer_active, 0);
registerItemRender(ACBlocks.block_of_dreadium, 0);
registerItemRender(ACBlocks.transmutator_idle, 0);
registerItemRender(ACBlocks.transmutator_active, 0);
registerItemRender(ACBlocks.dreadguard_spawner, 0);
registerItemRender(ACBlocks.chagaroth_spawner, 0);
registerItemRender(ACBlocks.jzahar_spawner, 0);
registerItemRender(ACBlocks.dreadlands_wood_fence, 0);
registerItemRender(ACBlocks.nitre_ore, 0);
registerItemRender(ACBlocks.abyssal_iron_ore, 0);
registerItemRender(ACBlocks.abyssal_gold_ore, 0);
registerItemRender(ACBlocks.abyssal_diamond_ore, 0);
registerItemRender(ACBlocks.abyssal_nitre_ore, 0);
registerItemRender(ACBlocks.abyssal_tin_ore, 0);
registerItemRender(ACBlocks.abyssal_copper_ore, 0);
registerItemRender(ACBlocks.pearlescent_coralium_ore, 0);
registerItemRender(ACBlocks.liquified_coralium_ore, 0);
registerItemRender(ACBlocks.solid_lava, 0);
registerItemRender(ACBlocks.ethaxium, 0);
registerItemRender(ACBlocks.ethaxium_brick, 0, "ethaxiumbrick_0");
registerItemRender(ACBlocks.ethaxium_brick, 1, "ethaxiumbrick_1");
registerItemRender(ACBlocks.ethaxium_brick, 2, "ethaxiumbrick_2");
registerItemRender(ACBlocks.ethaxium_pillar, 0);
registerItemRender(ACBlocks.ethaxium_brick_stairs, 0);
registerItemRender(ACBlocks.ethaxium_brick_slab, 0);
registerItemRender(BlockHandler.ethaxiumslab2, 0);
registerItemRender(ACBlocks.ethaxium_brick_fence, 0);
registerItemRender(ACBlocks.block_of_ethaxium, 0);
registerItemRender(ACBlocks.omothol_stone, 0);
registerItemRender(ACBlocks.omothol_gateway, 0);
registerItemRender(ACBlocks.omothol_fire, 0);
registerItemRender(BlockHandler.house, 0);
registerItemRender(ACBlocks.materializer, 0);
registerItemRender(ACBlocks.dark_ethaxium_brick, 0, "darkethaxiumbrick_0");
registerItemRender(ACBlocks.dark_ethaxium_brick, 1, "darkethaxiumbrick_1");
registerItemRender(ACBlocks.dark_ethaxium_brick, 2, "darkethaxiumbrick_2");
registerItemRender(ACBlocks.dark_ethaxium_pillar, 0);
registerItemRender(ACBlocks.dark_ethaxium_brick_stairs, 0);
registerItemRender(ACBlocks.dark_ethaxium_brick_slab, 0);
registerItemRender(BlockHandler.darkethaxiumslab2, 0);
registerItemRender(ACBlocks.dark_ethaxium_brick_fence, 0);
registerItemRender(ACBlocks.ritual_altar, 0, "ritualaltar_0");
registerItemRender(ACBlocks.ritual_altar, 1, "ritualaltar_1");
registerItemRender(ACBlocks.ritual_altar, 2, "ritualaltar_2");
registerItemRender(ACBlocks.ritual_altar, 3, "ritualaltar_3");
registerItemRender(ACBlocks.ritual_altar, 4, "ritualaltar_4");
registerItemRender(ACBlocks.ritual_altar, 5, "ritualaltar_5");
registerItemRender(ACBlocks.ritual_altar, 6, "ritualaltar_6");
registerItemRender(ACBlocks.ritual_altar, 7, "ritualaltar_7");
registerItemRender(ACBlocks.ritual_pedestal, 0, "ritualpedestal_0");
registerItemRender(ACBlocks.ritual_pedestal, 1, "ritualpedestal_1");
registerItemRender(ACBlocks.ritual_pedestal, 2, "ritualpedestal_2");
registerItemRender(ACBlocks.ritual_pedestal, 3, "ritualpedestal_3");
registerItemRender(ACBlocks.ritual_pedestal, 4, "ritualpedestal_4");
registerItemRender(ACBlocks.ritual_pedestal, 5, "ritualpedestal_5");
registerItemRender(ACBlocks.ritual_pedestal, 6, "ritualpedestal_6");
registerItemRender(ACBlocks.ritual_pedestal, 7, "ritualpedestal_7");
registerItemRender(ACBlocks.shoggoth_ooze, 0);
registerItemRender(ACBlocks.monolith_stone, 0);
registerItemRender(ACBlocks.shoggoth_biomass, 0);
registerItemRender(ACBlocks.energy_pedestal, 0);
registerItemRender(ACBlocks.monolith_pillar, 0);
registerItemRender(ACBlocks.sacrificial_altar, 0);
registerItemRender(ACBlocks.tiered_energy_pedestal, 0, "tieredenergypedestal_0");
registerItemRender(ACBlocks.tiered_energy_pedestal, 1, "tieredenergypedestal_1");
registerItemRender(ACBlocks.tiered_energy_pedestal, 2, "tieredenergypedestal_2");
registerItemRender(ACBlocks.tiered_energy_pedestal, 3, "tieredenergypedestal_3");
registerItemRender(ACBlocks.tiered_sacrificial_altar, 0, "tieredsacrificialaltar_0");
registerItemRender(ACBlocks.tiered_sacrificial_altar, 1, "tieredsacrificialaltar_1");
registerItemRender(ACBlocks.tiered_sacrificial_altar, 2, "tieredsacrificialaltar_2");
registerItemRender(ACBlocks.tiered_sacrificial_altar, 3, "tieredsacrificialaltar_3");
registerItemRender(ACBlocks.minion_of_the_gatekeeper_spawner, 0);
registerItemRender(ACBlocks.mimic_fire, 0);
registerItemRenders(ACBlocks.crystal_cluster, EnumCrystalType.values().length);
registerItemRenders(ACBlocks.crystal_cluster2, EnumCrystalType2.values().length);
registerItemRender(ACBlocks.energy_collector, 0);
registerItemRender(ACBlocks.energy_relay, 0);
registerItemRender(ACBlocks.energy_container, 0);
registerItemRender(ACBlocks.tiered_energy_collector, 0, "tieredenergycollector_0");
registerItemRender(ACBlocks.tiered_energy_collector, 1, "tieredenergycollector_1");
registerItemRender(ACBlocks.tiered_energy_collector, 2, "tieredenergycollector_2");
registerItemRender(ACBlocks.tiered_energy_collector, 3, "tieredenergycollector_3");
registerItemRender(ACBlocks.overworld_energy_relay, 0);
registerItemRender(ACBlocks.abyssal_wasteland_energy_relay, 0);
registerItemRender(ACBlocks.dreadlands_energy_relay, 0);
registerItemRender(ACBlocks.omothol_energy_relay, 0);
registerItemRender(ACBlocks.tiered_energy_container, 0, "tieredenergycontainer_0");
registerItemRender(ACBlocks.tiered_energy_container, 1, "tieredenergycontainer_1");
registerItemRender(ACBlocks.tiered_energy_container, 2, "tieredenergycontainer_2");
registerItemRender(ACBlocks.tiered_energy_container, 3, "tieredenergycontainer_3");
registerItemRender(ACBlocks.abyssal_sand, 0);
registerItemRender(ACBlocks.fused_abyssal_sand, 0);
registerItemRender(ACBlocks.abyssal_sand_glass, 0);
registerItemRender(ACBlocks.dreadlands_dirt, 0);
registerItemRender(ACBlocks.abyssal_cobblestone, 0);
registerItemRender(ACBlocks.dreadstone_cobblestone, 0);
registerItemRender(ACBlocks.abyssalnite_cobblestone, 0);
registerItemRender(ACBlocks.coralium_cobblestone, 0);
registerItemRender(ACBlocks.abyssal_cobblestone_stairs, 0);
registerItemRender(ACBlocks.abyssal_cobblestone_slab, 0);
registerItemRender(BlockHandler.abycobbleslab2, 0);
registerItemRender(ACBlocks.abyssal_cobblestone_wall, 0);
registerItemRender(ACBlocks.dreadstone_cobblestone_stairs, 0);
registerItemRender(ACBlocks.dreadstone_cobblestone_slab, 0);
registerItemRender(BlockHandler.dreadcobbleslab2, 0);
registerItemRender(ACBlocks.dreadstone_cobblestone_wall, 0);
registerItemRender(ACBlocks.abyssalnite_cobblestone_stairs, 0);
registerItemRender(ACBlocks.abyssalnite_cobblestone_slab, 0);
registerItemRender(BlockHandler.abydreadcobbleslab2, 0);
registerItemRender(ACBlocks.abyssalnite_cobblestone_wall, 0);
registerItemRender(ACBlocks.coralium_cobblestone_stairs, 0);
registerItemRender(ACBlocks.coralium_cobblestone_slab, 0);
registerItemRender(BlockHandler.cstonecobbleslab2, 0);
registerItemRender(ACBlocks.coralium_cobblestone_wall, 0);
registerItemRender(ACBlocks.luminous_thistle, 0);
registerItemRender(ACBlocks.wastelands_thorn, 0);
registerItemRender(ACBlocks.rending_pedestal, 0);
RenderPlayer render1 = Minecraft.getMinecraft().getRenderManager().getSkinMap().get("default");
render1.addLayer(new LayerStarSpawnTentacles(render1));
RenderPlayer render2 = Minecraft.getMinecraft().getRenderManager().getSkinMap().get("slim");
render2.addLayer(new LayerStarSpawnTentacles(render2));
Minecraft.getMinecraft().getItemColors().registerItemColorHandler((stack, tintIndex) -> ACLib.crystalColors[stack.getItemDamage()], ACItems.crystal, ACItems.crystal_shard, ACItems.crystal_fragment, Item.getItemFromBlock(ACBlocks.crystal_cluster));
Minecraft.getMinecraft().getItemColors().registerItemColorHandler((stack, tintIndex) -> ACLib.crystalColors[stack.getItemDamage() + 16], Item.getItemFromBlock(ACBlocks.crystal_cluster2));
Minecraft.getMinecraft().getItemColors().registerItemColorHandler((stack, tintIndex) -> 0xE8E8E8, ACItems.coin, ACItems.elder_engraved_coin, ACItems.cthulhu_engraved_coin, ACItems.hastur_engraved_coin, ACItems.jzahar_engraved_coin,
ACItems.azathoth_engraved_coin, ACItems.nyarlathotep_engraved_coin, ACItems.yog_sothoth_engraved_coin, ACItems.shub_niggurath_engraved_coin);
Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler((state, world, pos, tintIndex) -> ACLib.crystalColors[state.getBlock().getMetaFromState(state)], ACBlocks.crystal_cluster);
Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler((state, world, pos, tintIndex) -> ACLib.crystalColors[state.getBlock().getMetaFromState(state) + 16], ACBlocks.crystal_cluster2);
}
private void registerFluidModel(Block fluidBlock, String name) {
Item item = Item.getItemFromBlock(fluidBlock);
ModelBakery.registerItemVariants(item);
final ModelResourceLocation modelResourceLocation = new ModelResourceLocation("abyssalcraft:fluid", name);
ModelLoader.setCustomMeshDefinition(item, stack -> modelResourceLocation);
ModelLoader.setCustomStateMapper(fluidBlock, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState p_178132_1_) {
return modelResourceLocation;
}
});
}
protected void registerItemRender(Item item, int meta, String res){
RenderItem render = Minecraft.getMinecraft().getRenderItem();
render.getItemModelMesher().register(item, meta, new ModelResourceLocation("abyssalcraft:" + res, "inventory"));
}
protected void registerItemRender(Item item, int meta){
registerItemRender(item, meta, item.getUnlocalizedName().substring(5));
}
protected void registerItemRenders(Item item, int metas){
for(int i = 0; i < metas; i++)
registerItemRender(item, i);
}
protected void registerItemRender(Block block, int meta, String res){
registerItemRender(Item.getItemFromBlock(block), meta, res);
}
protected void registerItemRender(Block block, int meta){
registerItemRender(block, meta, block.getUnlocalizedName().substring(5));
}
protected void registerItemRenders(Block block, int metas){
for(int i = 0; i < metas; i++)
registerItemRender(block, i);
}
private ResourceLocation[] makerl(String...strings){
ResourceLocation[] res = new ResourceLocation[strings.length];
for(int i = 0; i < strings.length; i++)
res[i] = new ResourceLocation("abyssalcraft", strings[i]);
return res;
}
@Override
public ModelBiped getArmorModel(int id){
switch (id) {
case 0:
return chestPlate;
case 1:
return leggings;
default:
break;
}
return chestPlate;
}
@Override
public EntityPlayer getPlayerEntity(MessageContext ctx) {
// Note that if you simply return 'Minecraft.getMinecraft().thePlayer',
// your packets will not work because you will be getting a client
// player even when you are on the server! Sounds absurd, but it's true.
// Solution is to double-check side before returning the player:
return ctx.side.isClient() ? Minecraft.getMinecraft().player : super.getPlayerEntity(ctx);
}
@Override
public IThreadListener getThreadFromContext(MessageContext ctx) {
return ctx.side.isClient() ? Minecraft.getMinecraft() : super.getThreadFromContext(ctx);
}
@Override
public void spawnParticle(String particleName, World world, double posX, double posY, double posZ, double velX, double velY, double velZ)
{
if(particleName.equals("CorBlood")){
spawnParticleLegacy(particleName, posX, posY, posZ, velX, velY, velZ);
return;
}
if(particleName.equals("PEStream"))
switch(world.rand.nextInt(3)){
case 0:
Minecraft.getMinecraft().effectRenderer.addEffect(new PEStreamParticleFX(world, posX, posY, posZ, velX, velY, velZ, 65, 63, 170));
break;
case 1:
Minecraft.getMinecraft().effectRenderer.addEffect(new PEStreamParticleFX(world, posX, posY, posZ, velX, velY, velZ, 41, 89, 48));
break;
case 2:
Minecraft.getMinecraft().effectRenderer.addEffect(new PEStreamParticleFX(world, posX, posY, posZ, velX, velY, velZ, 39, 80, 135));
break;
default:
Minecraft.getMinecraft().effectRenderer.addEffect(new PEStreamParticleFX(world, posX, posY, posZ, velX, velY, velZ, 3, 122, 120));
break;
}
}
public void spawnParticleLegacy(String particleName, double posX, double posY, double posZ, double velX, double velY, double velZ){
Minecraft mc = Minecraft.getMinecraft();
World theWorld = mc.world;
if (mc != null && mc.getRenderViewEntity() != null && mc.effectRenderer != null)
{
int var14 = mc.gameSettings.particleSetting;
if (var14 == 1 && theWorld.rand.nextInt(3) == 0)
var14 = 2;
double var15 = mc.getRenderViewEntity().posX - posX;
double var17 = mc.getRenderViewEntity().posY - posY;
double var19 = mc.getRenderViewEntity().posZ - posZ;
Particle var21 = null;
double var22 = 16.0D;
if (var15 * var15 + var17 * var17 + var19 * var19 > var22 * var22)
return;
else if (var14 > 1)
return;
else
{
if (particleName.equals("CorBlood"))
{
var21 = new CorBloodParticleFX(theWorld, posX, posY, posZ, (float)velX, (float)velY, (float)velZ);
var21.setRBGColorF(0, 1, 1);
}
mc.effectRenderer.addEffect(var21);
return;
}
}
}
}