Fixed trait path

This commit is contained in:
Calclavia 2013-12-30 23:42:23 +08:00
parent 5bbaae4c24
commit a12f51ffea
4 changed files with 77 additions and 14 deletions

View file

@ -16,9 +16,9 @@ public class MultipartRI implements IPartFactory
public MultipartRI() public MultipartRI()
{ {
MultiPartRegistry.registerParts(this, new String[] { "resonant_induction_flat_wire", "resonant_induction_flat_switch_wire", "resonant_induction_multimeter", "resonant_induction_transformer" }); MultiPartRegistry.registerParts(this, new String[] { "resonant_induction_flat_wire", "resonant_induction_flat_switch_wire", "resonant_induction_multimeter", "resonant_induction_transformer" });
MultipartGenerator.registerTrait("universalelectricity.api.energy.IConductor", "resonantinduction.wire.part.TraitConductor"); MultipartGenerator.registerTrait("universalelectricity.api.energy.IConductor", "resonantinduction.wire.trait.TraitConductor");
MultipartGenerator.registerTrait("cofh.api.energy.IEnergyHandler", "resonantinduction.wire.part.TraitEnergyHandler"); MultipartGenerator.registerTrait("cofh.api.energy.IEnergyHandler", "resonantinduction.wire.trait.TraitEnergyHandler");
MultipartGenerator.registerTrait("ic2.api.energy.tile.IEnergySink", "resonantinduction.wire.part.TraitEnergySink"); MultipartGenerator.registerTrait("ic2.api.energy.tile.IEnergySink", "resonantinduction.wire.trait.TraitEnergySink");
} }
@Override @Override

View file

@ -3,18 +3,17 @@
*/ */
package resonantinduction.battery; package resonantinduction.battery;
import java.util.Random;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import resonantinduction.ResonantInduction; import resonantinduction.ResonantInduction;
import resonantinduction.model.ModelBattery; import resonantinduction.model.ModelBattery;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
@ -29,14 +28,72 @@ public class RenderBattery extends TileEntitySpecialRenderer
public static final ResourceLocation TEXTURE_MULTI = new ResourceLocation(ResonantInduction.DOMAIN, ResonantInduction.MODEL_TEXTURE_DIRECTORY + "battery_multi.png"); public static final ResourceLocation TEXTURE_MULTI = new ResourceLocation(ResonantInduction.DOMAIN, ResonantInduction.MODEL_TEXTURE_DIRECTORY + "battery_multi.png");
public static final ModelBattery MODEL = new ModelBattery(); public static final ModelBattery MODEL = new ModelBattery();
private EntityItem fakeBattery;
private Random random = new Random();
protected RenderManager renderManager;
/*public static final Map<String, CCModel> MODELS;
static
{
MODELS = CCModel.parseObjModels(new ResourceLocation("resonantinduction", "models/wire.obj"), 7, new InvertX());
for (CCModel c : MODELS.values())
{
c.apply(new Translation(.5, 0, .5));
c.computeLighting(LightModel.standardLightModel);
c.shrinkUVs(0.0005);
}
loadBuffer(location, 0, 0, 0, 1);
loadBuffer(specular, 1, 1, 1, 1);
loadBuffer(zero, 0, 0, 0, 0);
loadBuffer(defaultAmbient, 0.4F, 0.4F, 0.4F, 1);
GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, zero);
GL11.glLight(GL11.GL_LIGHT3, GL11.GL_SPECULAR, specular);
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_SPECULAR, specular);
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_AMBIENT, zero);
GL11.glMaterial(GL11.GL_FRONT, GL11.GL_DIFFUSE, zero);
GL11.glMaterialf(GL11.GL_FRONT, GL11.GL_SHININESS, 128f);
}
public void renderStatic(TileBattery battery)
{
TextureUtils.bindAtlas(0);
CCRenderState.reset();
CCRenderState.useModelColours(true);
CCRenderState.setBrightness(battery.worldObj, battery.xCoord, battery.yCoord, battery.zCoord);
renderPart(ForgeDirection.UNKNOWN, wire);
byte renderSides = wire.getAllCurrentConnections();
for (ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
{
if (PartWire.connectionMapContainsSide(renderSides, side))
{
renderSide(side, wire);
}
}
}
public void renderPart(Icon icon, CCModel cc, double x, double y, double z, Colour colour)
{
cc.render(0, cc.verts.length, Rotation.sideOrientation(0, Rotation.rotationTo(0, 2)).at(codechicken.lib.vec.Vector3.center).with(new Translation(x, y, z)), new IconTransformation(icon), new ColourMultiplier(colour));
}*/
static IModelCustom advancedmodel = AdvancedModelLoader.loadModel(ResonantInduction.MODEL_DIRECTORY+"battery.obj");
public static void render()
{
advancedmodel.renderAll();
FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderBattery.TEXTURE);
}
@Override @Override
public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f)
{ {
GL11.glPushMatrix(); /*GL11.glPushMatrix();
GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
@ -50,6 +107,6 @@ public class RenderBattery extends TileEntitySpecialRenderer
} }
MODEL.render(0.0625f); MODEL.render(0.0625f);
GL11.glPopMatrix(); GL11.glPopMatrix();*/
} }
} }

View file

@ -53,7 +53,7 @@ public class TileBattery extends TileAdvanced implements IPacketSender, IPacketR
{ {
if (!this.worldObj.isRemote) if (!this.worldObj.isRemote)
{ {
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) /*for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS)
{ {
TileEntity tile = new Vector3(this).modifyPositionFromSide(dir).getTileEntity(this.worldObj); TileEntity tile = new Vector3(this).modifyPositionFromSide(dir).getTileEntity(this.worldObj);
@ -61,7 +61,7 @@ public class TileBattery extends TileAdvanced implements IPacketSender, IPacketR
{ {
this.structure.merge((TileBattery) tile); this.structure.merge((TileBattery) tile);
} }
} }*/
} }
} }

View file

@ -66,6 +66,12 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
@Override @Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer)
{ {
if (block instanceof BlockBattery)
{
RenderBattery.render();
return true;
}
return false; return false;
} }