Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
fuj1n committed Oct 8, 2013
1 parent 6a7b576 commit 7076c78
Show file tree
Hide file tree
Showing 24 changed files with 887 additions and 91 deletions.
5 changes: 5 additions & 0 deletions resources/assets/tinker/lang/en_US.xml
Expand Up @@ -186,6 +186,11 @@
<entry key="item.tconstruct.Materials.AlumiteNugget.name">Alumite Nugget</entry>
<entry key="item.tconstruct.Materials.SteelNugget.name">Steel Nugget</entry>

<entry key="item.tconstruct.ArmorPattern.helmet.name">Helmet Cast</entry>
<entry key="item.tconstruct.ArmorPattern.chestplate.name">Chestplate Cast</entry>
<entry key="item.tconstruct.ArmorPattern.leggings.name">Leggings Cast</entry>
<entry key="item.tconstruct.ArmorPattern.boots.name">Boots Cast</entry>

<entry key="item.tconstruct.jerky.beef.name">Beef Jerky</entry>
<entry key="item.tconstruct.jerky.pig.name">Bacon Jerky</entry>
<entry key="item.tconstruct.jerky.chicken.name">Chicken Jerky</entry>
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 14 additions & 32 deletions src/tconstruct/TConstruct.java
@@ -1,46 +1,27 @@
package tconstruct;

import cpw.mods.fml.common.*;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.network.*;
import cpw.mods.fml.common.registry.*;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.crash.CallableMinecraftVersion;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.MinecraftForge;
import tconstruct.client.event.EventCloakRender;
import tconstruct.common.TContent;
import tconstruct.common.TProxyCommon;
import tconstruct.common.*;
import tconstruct.library.TConstructRegistry;
import tconstruct.library.crafting.Detailing;
import tconstruct.library.crafting.LiquidCasting;
import tconstruct.library.crafting.*;
import tconstruct.library.util.TabTools;
import tconstruct.util.TCraftingHandler;
import tconstruct.util.TEventHandler;
import tconstruct.util.config.BOPConfig;
import tconstruct.util.config.DimensionBlacklist;
import tconstruct.util.config.PHConstruct;
import tconstruct.util.config.TwilightForestConfig;
import tconstruct.util.*;
import tconstruct.util.config.*;
import tconstruct.util.landmine.behavior.Behavior;
import tconstruct.util.landmine.behavior.stackCombo.SpecialStackHandler;
import tconstruct.util.player.TPlayerHandler;
import tconstruct.worldgen.SlimeIslandGen;
import tconstruct.worldgen.TBaseWorldGenerator;
import tconstruct.worldgen.TerrainGenEventHandler;
import tconstruct.worldgen.village.ComponentSmeltery;
import tconstruct.worldgen.village.ComponentToolWorkshop;
import tconstruct.worldgen.village.TVillageTrades;
import tconstruct.worldgen.village.VillageSmelteryHandler;
import tconstruct.worldgen.village.VillageToolStationHandler;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry;
import cpw.mods.fml.common.versioning.ComparableVersion;
import cpw.mods.fml.relauncher.Side;
import tconstruct.worldgen.*;
import tconstruct.worldgen.village.*;

/** TConstruct, the tool mod.
* Craft your tools with style, then modify until the original is gone!
Expand Down Expand Up @@ -163,6 +144,7 @@ public void init (FMLInitializationEvent event)
@EventHandler
public void postInit (FMLPostInitializationEvent evt)
{
proxy.postInit();
Behavior.registerBuiltInBehaviors();
SpecialStackHandler.registerBuiltInStackHandlers();
content.modIntegration();
Expand Down
7 changes: 7 additions & 0 deletions src/tconstruct/client/TProxyClient.java
Expand Up @@ -27,6 +27,7 @@
import org.w3c.dom.Document;
import tconstruct.TConstruct;
import tconstruct.blocks.logic.*;
import tconstruct.client.armor.RenderArmorCast;
import tconstruct.client.block.*;
import tconstruct.client.entity.*;
import tconstruct.client.entity.projectile.*;
Expand Down Expand Up @@ -939,4 +940,10 @@ else if (par1Str.equals("happyVillager"))
return null;
}
}

@Override
public void postInit() {
MinecraftForgeClient.registerItemRenderer(TContent.armorPattern.itemID, new RenderArmorCast());
}

}
231 changes: 231 additions & 0 deletions src/tconstruct/client/armor/RenderArmorCast.java
@@ -0,0 +1,231 @@
package tconstruct.client.armor;

import java.util.*;

import org.lwjgl.opengl.*;

import tconstruct.items.ArmorPattern;

import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.*;
import net.minecraft.client.renderer.texture.TextureManager;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraftforge.client.IItemRenderer;
import net.minecraftforge.common.ForgeDirection;

public class RenderArmorCast implements IItemRenderer {

@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
return type != ItemRenderType.FIRST_PERSON_MAP;
}

@Override
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) {
switch (helper) {
case BLOCK_3D:
return true;
case ENTITY_BOBBING:
return true;
case ENTITY_ROTATION:
return true;
case EQUIPPED_BLOCK:
return true;
case INVENTORY_BLOCK:
return true;
default:
return false;
}
}

@Override
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
RenderBlocks renderer = Minecraft.getMinecraft().renderGlobal.globalRenderBlocks;
Tessellator tessellator = Tessellator.instance;
Icon baseIcon = item.getItem() instanceof ArmorPattern ? ((ArmorPattern) item.getItem()).getBaseIcon() : item.getIconIndex();
GL11.glPushMatrix();
switch (type) {
case ENTITY:
GL11.glScalef(0.8F, 0.33F, 0.8F);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
break;
case INVENTORY:
GL11.glScalef(1F, 0.6F, 1F);
GL11.glTranslatef(0F, -0.1F, 0F);
break;
case EQUIPPED:
GL11.glScalef(1F, 0.6F, 1F);
break;
case EQUIPPED_FIRST_PERSON:
GL11.glScalef(1F, 0.6F, 1F);
break;
default:
break;
}
renderer.setRenderBounds(0.1F, 0.1F, 0.1F, 0.9F, 0.83F, 0.9F);
renderCube(tessellator, renderer, baseIcon);
renderer.setRenderBounds(0.1F, 0.1F, 0.1F, 0.9F, 1.0F, 0.9F);
ArrayList<ForgeDirection> sides = new ArrayList<ForgeDirection>();
sides.add(ForgeDirection.NORTH);
sides.add(ForgeDirection.SOUTH);
sides.add(ForgeDirection.EAST);
sides.add(ForgeDirection.WEST);
renderSelectedCube(tessellator, renderer, baseIcon, sides);
renderCastTop(item, type);

GL11.glPopMatrix();
}

public void renderCube(Tessellator tessellator, RenderBlocks renderer, Icon icon) {
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0F, 0F);
renderer.renderFaceXNeg((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(1F, 0F, 0F);
renderer.renderFaceXPos((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, -1F, 0F);
renderer.renderFaceYNeg((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, 1F, 0F);
renderer.renderFaceYPos((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, 0F, -1F);
renderer.renderFaceZNeg((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, 0F, 1F);
renderer.renderFaceZPos((Block) null, 0F, 0F, 0F, icon);
tessellator.draw();
}

public void renderSelectedCube(Tessellator tessellator, RenderBlocks renderer, Icon icon, List<ForgeDirection> sidesToRender) {
tessellator.startDrawingQuads();
tessellator.setNormal(-1F, 0F, 0F);
if (sidesToRender.contains(ForgeDirection.WEST))
renderer.renderFaceXNeg((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(1F, 0F, 0F);
if (sidesToRender.contains(ForgeDirection.EAST))
renderer.renderFaceXPos((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, -1F, 0F);
if (sidesToRender.contains(ForgeDirection.DOWN))
renderer.renderFaceYNeg((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, 1F, 0F);
if (sidesToRender.contains(ForgeDirection.UP))
renderer.renderFaceYPos((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, 0F, -1F);
if (sidesToRender.contains(ForgeDirection.SOUTH))
renderer.renderFaceZNeg((Block) null, 0F, 0F, 0F, icon);
tessellator.setNormal(0F, 0F, 1F);
if (sidesToRender.contains(ForgeDirection.NORTH))
renderer.renderFaceZPos((Block) null, 0F, 0F, 0F, icon);
tessellator.draw();
}

public void renderCastTop(ItemStack par1ItemStack, ItemRenderType type) {
GL11.glPushMatrix();
Icon icon = par1ItemStack.getIconIndex();

if (icon == null) {
GL11.glPopMatrix();
return;
}
TextureManager texturemanager = Minecraft.getMinecraft().renderEngine;
texturemanager.bindTexture(texturemanager.getResourceLocation(par1ItemStack.getItemSpriteNumber()));
Tessellator tessellator = Tessellator.instance;
float f = icon.getMinU();
float f1 = icon.getMaxU();
float f2 = icon.getMinV();
float f3 = icon.getMaxV();
float f4 = 0.0F;
float f5 = 0.3F;
GL11.glTranslatef(-f4, -f5, 0.0F);
float f6 = 1.5F;
GL11.glRotatef(90F, 90F, 0F, 0F);
GL11.glScalef(0.9F, 0.9F, 2F);
GL11.glTranslatef(0.05F, 0.05F, -0.6F);
renderItemIn2D(tessellator, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
GL11.glScalef(0.8F, 0.8F, 0.9F);
GL11.glTranslatef(0.125F, 0.125F, 0.05F);
renderItemIn2D(tessellator, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);
GL11.glScalef(0.6F, 0.6F, 0.6F);
GL11.glTranslatef(0.335F, 0.335F, 0.05F);
renderItemIn2D(tessellator, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 0.0625F);

GL11.glPopMatrix();
}

public static void renderItemIn2D(Tessellator par0Tessellator, float par1, float par2, float par3, float par4, float par5, float par6, float par7) {
par0Tessellator.startDrawingQuads();
par0Tessellator.setNormal(0.0F, 0.0F, 1.0F);
par0Tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, (double) par1, (double) par4);
par0Tessellator.addVertexWithUV(1.0D, 0.0D, 0.0D, (double) par3, (double) par4);
par0Tessellator.addVertexWithUV(1.0D, 1.0D, 0.0D, (double) par3, (double) par2);
par0Tessellator.addVertexWithUV(0.0D, 1.0D, 0.0D, (double) par1, (double) par2);
par0Tessellator.draw();
par0Tessellator.startDrawingQuads();
par0Tessellator.setNormal(0.0F, 0.0F, -1.0F);
par0Tessellator.addVertexWithUV(0.0D, 1.0D, (double) (0.0F - par7), (double) par1, (double) par2);
par0Tessellator.addVertexWithUV(1.0D, 1.0D, (double) (0.0F - par7), (double) par3, (double) par2);
par0Tessellator.addVertexWithUV(1.0D, 0.0D, (double) (0.0F - par7), (double) par3, (double) par4);
par0Tessellator.addVertexWithUV(0.0D, 0.0D, (double) (0.0F - par7), (double) par1, (double) par4);
par0Tessellator.draw();
float f5 = 0.5F * (par1 - par3) / (float) par5;
float f6 = 0.5F * (par4 - par2) / (float) par6;
par0Tessellator.startDrawingQuads();
par0Tessellator.setNormal(-1.0F, 0.0F, 0.0F);
int k;
float f7;
float f8;

for (k = 0; k < par5; ++k) {
f7 = (float) k / (float) par5;
f8 = par1 + (par3 - par1) * f7 - f5;
par0Tessellator.addVertexWithUV((double) f7, 0.0D, (double) (0.0F - par7), (double) f8, (double) par4);
par0Tessellator.addVertexWithUV((double) f7, 0.0D, 0.0D, (double) f8, (double) par4);
par0Tessellator.addVertexWithUV((double) f7, 1.0D, 0.0D, (double) f8, (double) par2);
par0Tessellator.addVertexWithUV((double) f7, 1.0D, (double) (0.0F - par7), (double) f8, (double) par2);
}

par0Tessellator.draw();
par0Tessellator.startDrawingQuads();
par0Tessellator.setNormal(1.0F, 0.0F, 0.0F);
float f9;

for (k = 0; k < par5; ++k) {
f7 = (float) k / (float) par5;
f8 = par1 + (par3 - par1) * f7 - f5;
f9 = f7 + 1.0F / (float) par5;
par0Tessellator.addVertexWithUV((double) f9, 1.0D, (double) (0.0F - par7), (double) f8, (double) par2);
par0Tessellator.addVertexWithUV((double) f9, 1.0D, 0.0D, (double) f8, (double) par2);
par0Tessellator.addVertexWithUV((double) f9, 0.0D, 0.0D, (double) f8, (double) par4);
par0Tessellator.addVertexWithUV((double) f9, 0.0D, (double) (0.0F - par7), (double) f8, (double) par4);
}

par0Tessellator.draw();
par0Tessellator.startDrawingQuads();
par0Tessellator.setNormal(0.0F, 1.0F, 0.0F);

for (k = 0; k < par6; ++k) {
f7 = (float) k / (float) par6;
f8 = par4 + (par2 - par4) * f7 - f6;
f9 = f7 + 1.0F / (float) par6;
par0Tessellator.addVertexWithUV(0.0D, (double) f9, 0.0D, (double) par1, (double) f8);
par0Tessellator.addVertexWithUV(1.0D, (double) f9, 0.0D, (double) par3, (double) f8);
par0Tessellator.addVertexWithUV(1.0D, (double) f9, (double) (0.0F - par7), (double) par3, (double) f8);
par0Tessellator.addVertexWithUV(0.0D, (double) f9, (double) (0.0F - par7), (double) par1, (double) f8);
}

par0Tessellator.draw();
par0Tessellator.startDrawingQuads();
par0Tessellator.setNormal(0.0F, -1.0F, 0.0F);

for (k = 0; k < par6; ++k) {
f7 = (float) k / (float) par6;
f8 = par4 + (par2 - par4) * f7 - f6;
par0Tessellator.addVertexWithUV(1.0D, (double) f7, 0.0D, (double) par3, (double) f8);
par0Tessellator.addVertexWithUV(0.0D, (double) f7, 0.0D, (double) par1, (double) f8);
par0Tessellator.addVertexWithUV(0.0D, (double) f7, (double) (0.0F - par7), (double) par1, (double) f8);
par0Tessellator.addVertexWithUV(1.0D, (double) f7, (double) (0.0F - par7), (double) par3, (double) f8);
}

par0Tessellator.draw();
}

}
20 changes: 10 additions & 10 deletions src/tconstruct/client/block/CastingBasinSpecialRender.java
@@ -1,19 +1,14 @@
package tconstruct.client.block;

import net.minecraft.client.renderer.entity.RenderItem;
import net.minecraft.client.renderer.entity.RenderManager;
import cpw.mods.fml.relauncher.*;
import net.minecraft.client.renderer.entity.*;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.item.*;
import net.minecraft.tileentity.TileEntity;

import org.lwjgl.opengl.GL11;

import tconstruct.blocks.logic.CastingBasinLogic;
import tconstruct.entity.FancyEntityItem;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import tconstruct.library.ItemBlocklike;

/* Special renderer, only used for drawing tools */

Expand Down Expand Up @@ -58,7 +53,12 @@ void renderItem (CastingBasinLogic logic, ItemStack stack)
{
GL11.glScalef(1.6F, 1.6F, 1.6F);
GL11.glTranslatef(0F, 0.045F, 0.0f);
}
} else if (!(stack.getItem() instanceof ItemBlocklike)) {
GL11.glRotatef(90F, 1F, 0F, 0F);
GL11.glRotatef(90F, 0F, 0F, 1F);
GL11.glScalef(0.75F, 0.75F, 0.75F);
GL11.glTranslatef(0F, -0.235F, -0.36F);
}

RenderItem.renderInFrame = true;
RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
Expand Down

0 comments on commit 7076c78

Please sign in to comment.