2014-06-06 19:46:05 -08:00
|
|
|
package tconstruct.world;
|
|
|
|
|
|
2014-09-09 18:30:15 +10:00
|
|
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
|
|
|
|
import cpw.mods.fml.common.registry.VillagerRegistry;
|
2014-07-02 21:00:57 -08:00
|
|
|
import mantle.lib.client.MantleClientRegistry;
|
2014-06-06 19:46:05 -08:00
|
|
|
import net.minecraft.block.material.Material;
|
|
|
|
|
import net.minecraft.client.Minecraft;
|
2014-07-02 21:00:57 -08:00
|
|
|
import net.minecraft.client.model.ModelSlime;
|
2014-09-09 18:30:15 +10:00
|
|
|
import net.minecraft.client.particle.*;
|
|
|
|
|
import net.minecraft.init.*;
|
2014-07-02 21:00:57 -08:00
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
import net.minecraft.util.ResourceLocation;
|
|
|
|
|
import tconstruct.mechworks.model.CartRender;
|
|
|
|
|
import tconstruct.tools.TinkerTools;
|
2014-09-09 18:30:15 +10:00
|
|
|
import tconstruct.world.entity.*;
|
|
|
|
|
import tconstruct.world.model.*;
|
2014-06-06 19:46:05 -08:00
|
|
|
|
|
|
|
|
public class TinkerWorldProxyClient extends TinkerWorldProxyCommon
|
|
|
|
|
{
|
2014-07-02 21:00:57 -08:00
|
|
|
@Override
|
2014-09-09 18:30:15 +10:00
|
|
|
public void initialize ()
|
2014-07-02 21:00:57 -08:00
|
|
|
{
|
|
|
|
|
registerRenderer();
|
|
|
|
|
registerManualIcons();
|
|
|
|
|
registerManualRecipes();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void registerRenderer ()
|
2014-09-09 18:30:15 +10:00
|
|
|
{
|
2014-07-02 21:00:57 -08:00
|
|
|
RenderingRegistry.registerBlockHandler(new OreberryRender());
|
|
|
|
|
RenderingRegistry.registerBlockHandler(new BarricadeRender());
|
|
|
|
|
RenderingRegistry.registerBlockHandler(new RenderLandmine());
|
|
|
|
|
RenderingRegistry.registerBlockHandler(new PunjiRender());
|
|
|
|
|
RenderingRegistry.registerBlockHandler(new SlimeChannelRender());
|
|
|
|
|
RenderingRegistry.registerBlockHandler(new SlimePadRender());
|
|
|
|
|
|
|
|
|
|
// Entities
|
|
|
|
|
RenderingRegistry.registerEntityRenderingHandler(BlueSlime.class, new SlimeRender(new ModelSlime(16), new ModelSlime(0), 0.25F));
|
|
|
|
|
RenderingRegistry.registerEntityRenderingHandler(CartEntity.class, new CartRender());
|
|
|
|
|
|
|
|
|
|
VillagerRegistry.instance().registerVillagerSkin(78943, new ResourceLocation("tinker", "textures/mob/villagertools.png"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void registerManualIcons ()
|
|
|
|
|
{
|
2014-09-09 18:30:15 +10:00
|
|
|
|
2014-07-02 21:00:57 -08:00
|
|
|
}
|
2014-09-09 18:30:15 +10:00
|
|
|
|
2014-07-02 21:00:57 -08:00
|
|
|
void registerManualRecipes ()
|
|
|
|
|
{
|
|
|
|
|
ItemStack netherrack = new ItemStack(Blocks.netherrack);
|
|
|
|
|
ItemStack coal = new ItemStack(Items.coal);
|
|
|
|
|
ItemStack log = new ItemStack(Blocks.log, 1, 0);
|
|
|
|
|
|
|
|
|
|
ItemStack graveyardsoil = new ItemStack(TinkerTools.craftedSoil, 1, 3);
|
|
|
|
|
ItemStack consecratedsoil = new ItemStack(TinkerTools.craftedSoil, 1, 4);
|
|
|
|
|
|
|
|
|
|
MantleClientRegistry.registerManualSmallRecipe("slimechannel", new ItemStack(TinkerWorld.slimeChannel, 1, 0), new ItemStack(TinkerWorld.slimeGel, 1, 0), new ItemStack(Items.redstone), null, null);
|
2014-09-09 18:30:15 +10:00
|
|
|
MantleClientRegistry.registerManualSmallRecipe("bouncepad", new ItemStack(TinkerWorld.slimePad, 1, 0), new ItemStack(TinkerWorld.slimeChannel), new ItemStack(Items.slime_ball), null, null);
|
2014-07-02 21:00:57 -08:00
|
|
|
|
|
|
|
|
MantleClientRegistry.registerManualSmallRecipe("graveyardsoil", graveyardsoil, new ItemStack(Blocks.dirt), new ItemStack(Items.rotten_flesh), new ItemStack(Items.dye, 1, 15), null);
|
|
|
|
|
MantleClientRegistry.registerManualFurnaceRecipe("consecratedsoil", consecratedsoil, graveyardsoil);
|
|
|
|
|
|
|
|
|
|
// Traps
|
2014-09-09 22:26:42 +02:00
|
|
|
ItemStack reed = new ItemStack(Items.reeds);
|
|
|
|
|
MantleClientRegistry.registerManualLargeRecipe("punji", new ItemStack(TinkerWorld.punji, 5), reed, null, reed, null, reed, null, reed, null, reed);
|
2014-07-02 21:00:57 -08:00
|
|
|
MantleClientRegistry.registerManualSmallRecipe("barricade", new ItemStack(TinkerWorld.barricadeOak), null, log, null, log);
|
2014-09-09 18:30:15 +10:00
|
|
|
|
2014-07-02 21:00:57 -08:00
|
|
|
}
|
|
|
|
|
|
2014-06-06 19:46:05 -08:00
|
|
|
Minecraft mc = Minecraft.getMinecraft();
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void spawnParticle (String particle, double xPos, double yPos, double zPos, double velX, double velY, double velZ)
|
|
|
|
|
{
|
|
|
|
|
this.doSpawnParticle(particle, xPos, yPos, zPos, velX, velY, velZ);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public EntityFX doSpawnParticle (String par1Str, double par2, double par4, double par6, double par8, double par10, double par12)
|
|
|
|
|
{
|
|
|
|
|
if (this.mc == null)
|
|
|
|
|
this.mc = Minecraft.getMinecraft();
|
|
|
|
|
|
|
|
|
|
if (this.mc.renderViewEntity != null && this.mc.effectRenderer != null)
|
|
|
|
|
{
|
|
|
|
|
int i = this.mc.gameSettings.particleSetting;
|
|
|
|
|
|
|
|
|
|
if (i == 1 && mc.theWorld.rand.nextInt(3) == 0)
|
|
|
|
|
{
|
|
|
|
|
i = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double d6 = this.mc.renderViewEntity.posX - par2;
|
|
|
|
|
double d7 = this.mc.renderViewEntity.posY - par4;
|
|
|
|
|
double d8 = this.mc.renderViewEntity.posZ - par6;
|
|
|
|
|
EntityFX entityfx = null;
|
|
|
|
|
|
|
|
|
|
if (par1Str.equals("hugeexplosion"))
|
|
|
|
|
{
|
|
|
|
|
this.mc.effectRenderer.addEffect(entityfx = new EntityHugeExplodeFX(mc.theWorld, par2, par4, par6, par8, par10, par12));
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("largeexplode"))
|
|
|
|
|
{
|
|
|
|
|
this.mc.effectRenderer.addEffect(entityfx = new EntityLargeExplodeFX(mc.renderEngine, mc.theWorld, par2, par4, par6, par8, par10, par12));
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("fireworksSpark"))
|
|
|
|
|
{
|
|
|
|
|
this.mc.effectRenderer.addEffect(entityfx = new EntityFireworkSparkFX(mc.theWorld, par2, par4, par6, par8, par10, par12, this.mc.effectRenderer));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (entityfx != null)
|
|
|
|
|
{
|
|
|
|
|
return (EntityFX) entityfx;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
double d9 = 16.0D;
|
|
|
|
|
|
|
|
|
|
if (d6 * d6 + d7 * d7 + d8 * d8 > d9 * d9)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
else if (i > 1)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (par1Str.equals("bubble"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityBubbleFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("suspended"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySuspendFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("depthsuspend"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityAuraFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("townaura"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityAuraFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("crit"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityCritFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("smoke"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySmokeFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("mobSpell"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySpellParticleFX(mc.theWorld, par2, par4, par6, 0.0D, 0.0D, 0.0D);
|
|
|
|
|
((EntityFX) entityfx).setRBGColorF((float) par8, (float) par10, (float) par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("mobSpellAmbient"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySpellParticleFX(mc.theWorld, par2, par4, par6, 0.0D, 0.0D, 0.0D);
|
|
|
|
|
((EntityFX) entityfx).setAlphaF(0.15F);
|
|
|
|
|
((EntityFX) entityfx).setRBGColorF((float) par8, (float) par10, (float) par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("spell"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySpellParticleFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("instantSpell"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySpellParticleFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
((EntitySpellParticleFX) entityfx).setBaseSpellTextureIndex(144);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("witchMagic"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySpellParticleFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
((EntitySpellParticleFX) entityfx).setBaseSpellTextureIndex(144);
|
|
|
|
|
float f = mc.theWorld.rand.nextFloat() * 0.5F + 0.35F;
|
|
|
|
|
((EntityFX) entityfx).setRBGColorF(1.0F * f, 0.0F * f, 1.0F * f);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("note"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityNoteFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("portal"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityPortalFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("enchantmenttable"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityEnchantmentTableParticleFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("explode"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityExplodeFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("flame"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityFlameFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("lava"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityLavaFX(mc.theWorld, par2, par4, par6);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("footstep"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityFootStepFX(mc.renderEngine, mc.theWorld, par2, par4, par6);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("splash"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySplashFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("largesmoke"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySmokeFX(mc.theWorld, par2, par4, par6, par8, par10, par12, 2.5F);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("cloud"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityCloudFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("reddust"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityReddustFX(mc.theWorld, par2, par4, par6, (float) par8, (float) par10, (float) par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("snowballpoof"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityBreakingFX(mc.theWorld, par2, par4, par6, Items.snowball);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("dripWater"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityDropParticleFX(mc.theWorld, par2, par4, par6, Material.water);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("dripLava"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityDropParticleFX(mc.theWorld, par2, par4, par6, Material.lava);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("snowshovel"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntitySnowShovelFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("blueslime"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityBreakingFX(mc.theWorld, par2, par4, par6, TinkerWorld.strangeFood);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("heart"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityHeartFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("angryVillager"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityHeartFX(mc.theWorld, par2, par4 + 0.5D, par6, par8, par10, par12);
|
|
|
|
|
((EntityFX) entityfx).setParticleTextureIndex(81);
|
|
|
|
|
((EntityFX) entityfx).setRBGColorF(1.0F, 1.0F, 1.0F);
|
|
|
|
|
}
|
|
|
|
|
else if (par1Str.equals("happyVillager"))
|
|
|
|
|
{
|
|
|
|
|
entityfx = new EntityAuraFX(mc.theWorld, par2, par4, par6, par8, par10, par12);
|
|
|
|
|
((EntityFX) entityfx).setParticleTextureIndex(82);
|
|
|
|
|
((EntityFX) entityfx).setRBGColorF(1.0F, 1.0F, 1.0F);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (entityfx != null)
|
|
|
|
|
{
|
|
|
|
|
this.mc.effectRenderer.addEffect((EntityFX) entityfx);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (EntityFX) entityfx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|