Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a57513a11 | ||
|
|
6849d117cb | ||
|
|
a2fbde8efe | ||
|
|
c87cae4e94 | ||
|
|
e2245c0519 | ||
|
|
a774fd5a9e | ||
|
|
e5a69ffba2 |
@@ -35,12 +35,12 @@ public class CrankBlock extends Block implements ITileEntityProvider{
|
||||
public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) {
|
||||
|
||||
if(!world.isRemote){
|
||||
System.out.println(world.getBlockMetadata(x, y, z));
|
||||
//System.out.println(world.getBlockMetadata(x, y, z));
|
||||
TileEntCrank tile = (TileEntCrank) world.getTileEntity(x, y, z);
|
||||
if(tile.isPowered == false){
|
||||
tile.isPowered = true;
|
||||
}
|
||||
/*if(tile.getBlockMetadata()==0){
|
||||
|
||||
/*if(tile.getBlockMetadata()==0){
|
||||
if(world.getBlock(x, y+1, z) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y+1, z);
|
||||
tileLathe.isPowered=true;
|
||||
@@ -49,25 +49,29 @@ public class CrankBlock extends Block implements ITileEntityProvider{
|
||||
tileLathe.markForUpdate();
|
||||
}
|
||||
}*/
|
||||
if(tile.getBlockMetadata()==1){
|
||||
if(world.getBlock(x, y-1, z) instanceof CrankGrinder){
|
||||
TileEntCrankGrinder tileGrinder = (TileEntCrankGrinder) world.getTileEntity(x, y-1, z);
|
||||
tileGrinder.isPowered=true;
|
||||
tileGrinder.power+=15;
|
||||
tileGrinder.markDirty();
|
||||
tileGrinder.markForUpdate();
|
||||
if(tile.getBlockMetadata()==1){
|
||||
if(world.getBlock(x, y-1, z) instanceof CrankGrinder){
|
||||
TileEntCrankGrinder tileGrinder = (TileEntCrankGrinder) world.getTileEntity(x, y-1, z);
|
||||
if(tileGrinder.getStackInSlot(1)!=null){
|
||||
tileGrinder.isPowered=true;
|
||||
tileGrinder.power+=15;
|
||||
tileGrinder.workCount+=20;
|
||||
tileGrinder.getStackInSlot(1).setItemDamage(tileGrinder.getStackInSlot(1).getItemDamage()+1);
|
||||
}
|
||||
tileGrinder.markDirty();
|
||||
tileGrinder.markForUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(tile.getBlockMetadata()==2){
|
||||
if(world.getBlock(x, y, z+1) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z+1);
|
||||
tileLathe.isPowered=true;
|
||||
tileLathe.power+=20;
|
||||
tileLathe.markDirty();
|
||||
tileLathe.markForUpdate();
|
||||
if(tile.getBlockMetadata()==2){
|
||||
if(world.getBlock(x, y, z+1) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z+1);
|
||||
tileLathe.isPowered=true;
|
||||
tileLathe.power+=20;
|
||||
tileLathe.markDirty();
|
||||
tileLathe.markForUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
/*if(tile.getBlockMetadata()==3){
|
||||
/*if(tile.getBlockMetadata()==3){
|
||||
if(world.getBlock(x, y, z-1) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z-1);
|
||||
tileLathe.isPowered=true;
|
||||
@@ -76,16 +80,16 @@ public class CrankBlock extends Block implements ITileEntityProvider{
|
||||
tileLathe.markForUpdate();
|
||||
}
|
||||
}*/
|
||||
if(tile.getBlockMetadata()==4){
|
||||
if(world.getBlock(x+1, y, z) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x+1, y, z);
|
||||
tileLathe.isPowered=true;
|
||||
tileLathe.power+=20;
|
||||
tileLathe.markDirty();
|
||||
tileLathe.markForUpdate();
|
||||
if(tile.getBlockMetadata()==4){
|
||||
if(world.getBlock(x+1, y, z) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x+1, y, z);
|
||||
tileLathe.isPowered=true;
|
||||
tileLathe.power+=20;
|
||||
tileLathe.markDirty();
|
||||
tileLathe.markForUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
/*if(tile.getBlockMetadata()==5){
|
||||
/*if(tile.getBlockMetadata()==5){
|
||||
if(world.getBlock(x-1, y, z) instanceof LatheBase){
|
||||
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x-1, y, z);
|
||||
tileLathe.isPowered=true;
|
||||
@@ -94,12 +98,12 @@ public class CrankBlock extends Block implements ITileEntityProvider{
|
||||
tileLathe.markForUpdate();
|
||||
}
|
||||
}*/
|
||||
tile.markDirty();
|
||||
tile.markForUpdate();
|
||||
return true;
|
||||
tile.markDirty();
|
||||
tile.markForUpdate();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -110,7 +114,7 @@ public class CrankBlock extends Block implements ITileEntityProvider{
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack)
|
||||
{
|
||||
int l = EnergyUtil.determineOrientationComplex(world, x, y, z, player);
|
||||
System.out.println(l);
|
||||
//System.out.println(l);
|
||||
world.setBlockMetadataWithNotify(x, y, z, l, 2);
|
||||
//}
|
||||
}
|
||||
@@ -135,9 +139,9 @@ public class CrankBlock extends Block implements ITileEntityProvider{
|
||||
if(p==5){
|
||||
this.setBlockBounds(0.0F, 0.2F, 0.2F, 0.5F, 0.8F, 0.8F);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getRenderType() {
|
||||
return RenderID.crankID;
|
||||
|
||||
@@ -39,7 +39,7 @@ public class CrankGrinder extends BlockContainer{
|
||||
|
||||
if(!world.isRemote){
|
||||
TileEntCrankGrinder tileEnt = (TileEntCrankGrinder) world.getTileEntity(x, y, z);
|
||||
System.out.println("Slot 0:"+tileEnt.getStackInSlot(0) +" Slot 1:"+ tileEnt.getStackInSlot(1));
|
||||
//System.out.println("Slot 0:"+tileEnt.getStackInSlot(0) +" Slot 1:"+ tileEnt.getStackInSlot(1));
|
||||
if(player.inventory.getCurrentItem()!=null){
|
||||
if(player.inventory.getCurrentItem().getItem()!=ModItems.stoneGrinder){
|
||||
//System.out.println(player.inventory.getCurrentItem());
|
||||
@@ -120,7 +120,7 @@ public class CrankGrinder extends BlockContainer{
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
package nmd.primal.energy.render;
|
||||
|
||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
import nmd.primal.energy.block.ModBlocks;
|
||||
import nmd.primal.energy.item.ModItems;
|
||||
import nmd.primal.energy.render.block.RenderCrank;
|
||||
import nmd.primal.energy.render.block.RenderCrankGrinder;
|
||||
import nmd.primal.energy.render.block.RenderLathe;
|
||||
import nmd.primal.energy.render.item.IRStoneGrindWheel;
|
||||
import nmd.primal.energy.render.item.blockToItem.IRCrank;
|
||||
import nmd.primal.energy.render.item.blockToItem.IRCrankGrinder;
|
||||
import nmd.primal.energy.render.item.blockToItem.IRLathe;
|
||||
import nmd.primal.energy.tileents.TileEntCrank;
|
||||
import nmd.primal.energy.tileents.TileEntLatheBase;
|
||||
import nmd.primal.energy.tileents.grinder.TileEntCrankGrinder;
|
||||
@@ -21,6 +26,9 @@ public class RenderRegistry {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntCrankGrinder.class, new RenderCrankGrinder());
|
||||
|
||||
MinecraftForgeClient.registerItemRenderer(ModItems.stoneGrinder, new IRStoneGrindWheel());
|
||||
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crankBlock), new IRCrank());
|
||||
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.crankGrinder), new IRCrankGrinder());
|
||||
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(ModBlocks.flintLathe), new IRLathe());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -51,71 +51,25 @@ public class RenderCrankGrinder extends TileEntitySpecialRenderer {
|
||||
float scale = 1.0F;
|
||||
GL11.glScalef(scale, scale, scale);
|
||||
|
||||
|
||||
|
||||
if(tile.getStackInSlot(1)!=null){
|
||||
//entItem = new EntityItem(tile.getWorldObj(), x, y, z, tile.getStackInSlot(1));
|
||||
|
||||
GL11.glPushMatrix();
|
||||
//this.entItem.hoverStart = 0.0F;
|
||||
//RenderItem.renderInFrame = true;
|
||||
//GL11.glScalef(2.0f, 2.0f, 2.0f);
|
||||
|
||||
if(tile.isPowered == true){
|
||||
GL11.glTranslatef(0.5f, 0.0f, 0.5f);
|
||||
GL11.glRotatef(tile.rot*-1, 0.0F, 1.0F, 0.0F);
|
||||
|
||||
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTUREWHEEL);
|
||||
|
||||
this.modelGrinder.renderAll();
|
||||
//RenderManager.instance.renderEntityWithPosYaw(entItem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
|
||||
|
||||
}
|
||||
if(tile.isPowered==false){
|
||||
GL11.glTranslatef(0.5f, 0.0f, 0.5f);
|
||||
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTUREWHEEL);
|
||||
|
||||
this.modelGrinder.renderAll();
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
/*if(tile.getStackInSlot(0) != null){
|
||||
entItem = new EntityItem(tile.getWorldObj(), x, y, z, tile.getStackInSlot(0));
|
||||
GL11.glPushMatrix();
|
||||
this.entItem.hoverStart = 0.0F;
|
||||
RenderItem.renderInFrame = true;
|
||||
GL11.glScalef(1.0f, 1.0f, 1.0f);
|
||||
if(tile.getStackInSlot(0).getItem().equals(Item.getItemFromBlock(Blocks.wooden_slab))
|
||||
||tile.getStackInSlot(0).getItem().equals(ModItems.saxleItem)){
|
||||
GL11.glRotatef(90f, 1.0F, 0.0F, 0.0F);
|
||||
}
|
||||
|
||||
|
||||
if(tile.isPowered == true){
|
||||
/*if(tile.getStackInSlot(0).getItem().equals(Item.getItemFromBlock(Blocks.wooden_slab))
|
||||
||tile.getStackInSlot(0).getItem().equals(ModItems.saxleItem)){
|
||||
GL11.glRotatef(tile.rot, 0.0F, 1.0F, 0.0F);
|
||||
}else{
|
||||
GL11.glRotatef(tile.rot, 0.0F, 0.0F, 1.0F);
|
||||
}
|
||||
|
||||
RenderManager.instance.renderEntityWithPosYaw(entItem, 0.0D, -0.223D, 0.0D, 0.0F, 0.0F);
|
||||
|
||||
}
|
||||
if(tile.isPowered==false){
|
||||
RenderManager.instance.renderEntityWithPosYaw(entItem, 0.0D, -0.223D, 0.0D, 0.0F, 0.0F);
|
||||
}
|
||||
|
||||
RenderItem.renderInFrame = false;
|
||||
GL11.glPopMatrix();
|
||||
tile.markForUpdate();
|
||||
tile.markDirty();
|
||||
}*/
|
||||
GL11.glTranslatef(1.0F, 0.5F, 0.0F);
|
||||
|
||||
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE);
|
||||
|
||||
this.model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
|
||||
return true;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
case ENTITY: {
|
||||
return true;
|
||||
@@ -77,7 +77,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
|
||||
|
||||
//GL11.glRotated(90, 1.0, 0.0, 0.0);
|
||||
|
||||
GL11.glTranslatef(1.0F, -0.45F, -0.35F);
|
||||
GL11.glTranslatef(0.5F, -0.7F, 0.25F);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
@@ -89,7 +89,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F);
|
||||
//GL11.glScalef(0.2F, 0.2F, 0.2F);
|
||||
GL11.glScalef(0.8F, 0.8F, 0.8F);
|
||||
|
||||
//ANGLE, X ROTATE, Y ROTATE, Z ROTATE
|
||||
|
||||
@@ -97,7 +97,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
|
||||
//GL11.glRotated(180, 0.0F, 1.0F, 0.0F);
|
||||
//GL11.glRotated(180, 1.0F, 0.0F, 0.0F);
|
||||
|
||||
GL11.glTranslatef(1.25F, -0.2F, -0.35F);
|
||||
GL11.glTranslatef(0.0F, -0.45F, -0.75F);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
@@ -107,18 +107,20 @@ public class IRStoneGrindWheel implements IItemRenderer {
|
||||
} break;
|
||||
|
||||
case INVENTORY: {
|
||||
/*GL11.glPushMatrix();
|
||||
GL11.glPushMatrix();
|
||||
|
||||
//GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glScalef(15.0F, 15.0F, 15.0F);
|
||||
GL11.glTranslatef(0.55F, 1.075F, 0.0F);
|
||||
GL11.glRotatef(180, 1.0F, 0.0F, 0.0F);
|
||||
GL11.glRotatef(-45, 1.0F, 0.0F, 0.0F);
|
||||
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glScalef(2.0F, 2.0F, 2.0F);
|
||||
GL11.glTranslatef(1.65F, 6.2F, 0.0F);
|
||||
GL11.glRotatef(135, 0.0F, 0.0F, -1.0F);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
|
||||
GL11.glPopMatrix();
|
||||
*/
|
||||
|
||||
} break;
|
||||
|
||||
case ENTITY: {
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
package nmd.primal.energy.render.item.blockToItem;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
public class IRCrank implements IItemRenderer {
|
||||
|
||||
public static final ResourceLocation MODEL = new ResourceLocation("energy:models/Crank.obj");
|
||||
public static final ResourceLocation TEXTURE = new ResourceLocation("energy:models/Crank.png");
|
||||
private IModelCustom model = AdvancedModelLoader.loadModel(MODEL);
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
||||
|
||||
switch(type) {
|
||||
case EQUIPPED: {
|
||||
return true;
|
||||
}
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
return true;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return true;
|
||||
}
|
||||
case ENTITY: {
|
||||
return true;
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) {
|
||||
|
||||
switch(type) {
|
||||
case EQUIPPED: {
|
||||
return helper == ItemRendererHelper.BLOCK_3D;
|
||||
}
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
return helper == ItemRendererHelper.EQUIPPED_BLOCK;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return helper == ItemRendererHelper.INVENTORY_BLOCK;
|
||||
}
|
||||
case ENTITY: {
|
||||
return (helper == ItemRendererHelper.ENTITY_BOBBING ||
|
||||
helper == ItemRendererHelper.ENTITY_ROTATION ||
|
||||
helper == ItemRendererHelper.BLOCK_3D);
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
|
||||
|
||||
switch(type) {
|
||||
|
||||
case EQUIPPED: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(0.8F, 0.25F, 0.0F);
|
||||
GL11.glRotated(-75, 1, 0, 0);
|
||||
GL11.glRotated(-20, 0, 1.0, 0);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(1.0F, 0.5F, 0.8F);
|
||||
GL11.glRotated(-45, 0.0f, 1.0f, 0.0f);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
case INVENTORY: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
case ENTITY: {
|
||||
GL11.glPushMatrix();
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
package nmd.primal.energy.render.item.blockToItem;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
public class IRCrankGrinder implements IItemRenderer {
|
||||
|
||||
public static final ResourceLocation MODEL = new ResourceLocation("energy:models/CrankGrinder.obj");
|
||||
public static final ResourceLocation TEXTURE = new ResourceLocation("energy:models/CrankGrinder.png");
|
||||
private IModelCustom model = AdvancedModelLoader.loadModel(MODEL);
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
||||
|
||||
switch(type) {
|
||||
case EQUIPPED: {
|
||||
return true;
|
||||
}
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
return true;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return true;
|
||||
}
|
||||
case ENTITY: {
|
||||
return true;
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) {
|
||||
|
||||
switch(type) {
|
||||
case EQUIPPED: {
|
||||
//return helper == ItemRendererHelper.BLOCK_3D;
|
||||
return false;
|
||||
}
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
return helper == ItemRendererHelper.EQUIPPED_BLOCK;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return helper == ItemRendererHelper.INVENTORY_BLOCK;
|
||||
}
|
||||
case ENTITY: {
|
||||
return (helper == ItemRendererHelper.ENTITY_BOBBING ||
|
||||
helper == ItemRendererHelper.ENTITY_ROTATION ||
|
||||
helper == ItemRendererHelper.BLOCK_3D);
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
|
||||
|
||||
switch(type) {
|
||||
|
||||
case EQUIPPED: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotatef(20, 0.0f, 1.0f, 0.0f);
|
||||
//GL11.glRotatef(-45, 1.0f, 0.0f, 0.0f);
|
||||
GL11.glTranslatef(0.75F, 0.0F, 0.05F);
|
||||
//GL11.glRotated(-75f, 1.0f, 0.0f, 0.0f);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(1.0F, 0.5F, 0.8F);
|
||||
GL11.glRotated(-45, 0.0f, 1.0f, 0.0f);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
case INVENTORY: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glTranslatef(1.0F, 0.40F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
case ENTITY: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(1.5f, 1.5f, 1.5f);
|
||||
GL11.glTranslatef(0.5F, 0.25F, -0.5F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
package nmd.primal.energy.render.item.blockToItem;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||
import net.minecraftforge.client.IItemRenderer.ItemRendererHelper;
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader;
|
||||
import net.minecraftforge.client.model.IModelCustom;
|
||||
|
||||
public class IRLathe implements IItemRenderer {
|
||||
|
||||
public static final ResourceLocation MODEL = new ResourceLocation("energy:models/Lathe.obj");
|
||||
public static final ResourceLocation TEXTURE = new ResourceLocation("energy:models/FlintLathe.png");
|
||||
private IModelCustom model = AdvancedModelLoader.loadModel(MODEL);
|
||||
|
||||
@Override
|
||||
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
|
||||
|
||||
switch(type) {
|
||||
case EQUIPPED: {
|
||||
return true;
|
||||
}
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
return true;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return true;
|
||||
}
|
||||
case ENTITY: {
|
||||
return true;
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,ItemRendererHelper helper) {
|
||||
|
||||
switch(type) {
|
||||
case EQUIPPED: {
|
||||
//return helper == ItemRendererHelper.BLOCK_3D;
|
||||
return false;
|
||||
}
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
return helper == ItemRendererHelper.EQUIPPED_BLOCK;
|
||||
}
|
||||
case INVENTORY: {
|
||||
return helper == ItemRendererHelper.INVENTORY_BLOCK;
|
||||
}
|
||||
case ENTITY: {
|
||||
return (helper == ItemRendererHelper.ENTITY_BOBBING ||
|
||||
helper == ItemRendererHelper.ENTITY_ROTATION ||
|
||||
helper == ItemRendererHelper.BLOCK_3D);
|
||||
}
|
||||
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderItem(ItemRenderType type, ItemStack item, Object... data) {
|
||||
|
||||
switch(type) {
|
||||
|
||||
case EQUIPPED: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glRotatef(110, 0.0f, 1.0f, 0.0f);
|
||||
//GL11.glRotatef(-45, 1.0f, 0.0f, 0.0f);
|
||||
GL11.glTranslatef(-0.4F, 0.4F, 0.3F);
|
||||
//GL11.glRotated(-75f, 1.0f, 0.0f, 0.0f);
|
||||
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
|
||||
case EQUIPPED_FIRST_PERSON: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(1.0F, 0.5F, 0.5F);
|
||||
GL11.glRotated(-45, 0.0f, 1.0f, 0.0f);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
case INVENTORY: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||
GL11.glTranslatef(0.0F, 0.1F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
case ENTITY: {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(1.5f, 1.5f, 1.5f);
|
||||
GL11.glTranslatef(0.0F, 0.25F, 0.0F);
|
||||
Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
|
||||
model.renderAll();
|
||||
GL11.glPopMatrix();
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -82,8 +82,6 @@ public class TileEntLatheBase extends TileEntity implements IInventory {
|
||||
if (worldObj.isRemote) return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int slot, int amount) {
|
||||
if (this.inv[slot] != null)
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
package nmd.primal.energy.tileents.grinder;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
@@ -10,20 +16,86 @@ import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import nmd.primal.energy.util.GrinderRecipes;
|
||||
|
||||
public class TileEntCrankGrinder extends TileEntity implements IInventory, GrinderRecipes {
|
||||
|
||||
public class TileEntCrankGrinder extends TileEntity implements IInventory {
|
||||
|
||||
private ItemStack[] inv;
|
||||
private int i;
|
||||
public boolean isPowered = true;
|
||||
public int power, workCount;
|
||||
protected String specName = "TileEntCrankGrinder";
|
||||
public float rot = 0;
|
||||
|
||||
private final Random random = new Random();
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
World world = this.getWorldObj();
|
||||
int x = this.xCoord;
|
||||
int y = this.yCoord;
|
||||
int z = this.zCoord;
|
||||
if(!world.isRemote){
|
||||
doRotation();
|
||||
doWork(world, x,y,z);
|
||||
}
|
||||
if (worldObj.isRemote) return;
|
||||
}
|
||||
|
||||
private void doRotation(){
|
||||
if(this.isPowered==true){
|
||||
this.power--;
|
||||
rot-=45;
|
||||
//System.out.println(rot);
|
||||
if(rot>=360||rot<=-360){
|
||||
rot=0;
|
||||
}
|
||||
if(power<=0){
|
||||
this.isPowered=false;
|
||||
this.power=0;
|
||||
}
|
||||
this.markForUpdate();
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
private void doWork(World world, int x, int y, int z){
|
||||
|
||||
if(workCount>=100){
|
||||
if(this.getStackInSlot(0)!=null){
|
||||
if(GrinderRecipes.grinderCheck.contains(this.getStackInSlot(0).getItem())){
|
||||
this.decrStackSize(0, 1);
|
||||
ItemStack stack = GrinderRecipes.grinderIn.get(this.getStackInSlot(0).getItem());
|
||||
stack.stackSize=GrinderRecipes.grinderSize.get(stack.getItem());
|
||||
if(stack.getItem()==Items.redstone){
|
||||
stack.stackSize+=random.nextInt(6);
|
||||
}
|
||||
EntityItem eItem=new EntityItem(world, x+0.5f, y+0.35f, z+0.5f, stack);
|
||||
world.spawnEntityInWorld(eItem);
|
||||
workCount=0;
|
||||
this.markForUpdate();
|
||||
this.markDirty();
|
||||
}
|
||||
if(this.getStackInSlot(0).getItem().equals(Item.getItemFromBlock(Blocks.lapis_ore))){
|
||||
this.decrStackSize(0, 1);
|
||||
ItemStack stack = new ItemStack(Items.dye, (4+random.nextInt(6)), 4);
|
||||
EntityItem eItem=new EntityItem(world, x+0.5f, y+0.35f, z+0.5f, stack);
|
||||
world.spawnEntityInWorld(eItem);
|
||||
workCount=0;
|
||||
this.markForUpdate();
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
workCount=0;
|
||||
this.markForUpdate();
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public TileEntCrankGrinder() {
|
||||
this.inv = new ItemStack[2];
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getSizeInventory() {
|
||||
return this.inv.length;
|
||||
@@ -51,33 +123,6 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory {
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
World world = this.getWorldObj();
|
||||
int x = this.xCoord;
|
||||
int y = this.yCoord;
|
||||
int z = this.zCoord;
|
||||
if(!world.isRemote){
|
||||
if(this.isPowered==true){
|
||||
this.power--;
|
||||
rot-=45;
|
||||
System.out.println(rot);
|
||||
if(rot>=360||rot<=-360){
|
||||
rot=0;
|
||||
}
|
||||
if(power<=0){
|
||||
this.isPowered=false;
|
||||
this.power=0;
|
||||
}
|
||||
this.markForUpdate();
|
||||
this.markDirty();
|
||||
}
|
||||
}
|
||||
if (worldObj.isRemote) return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int slot, int amount) {
|
||||
if (this.inv[slot] != null)
|
||||
@@ -149,7 +194,7 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory {
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit() {
|
||||
return 1;
|
||||
return 64;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
41
src/main/java/nmd/primal/energy/util/GrinderRecipes.java
Normal file
41
src/main/java/nmd/primal/energy/util/GrinderRecipes.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package nmd.primal.energy.util;
|
||||
|
||||
import java.util.Hashtable;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import nmd.primal.energy.item.ModItems;
|
||||
|
||||
public interface GrinderRecipes {
|
||||
|
||||
static final Hashtable<Item, ItemStack> grinderIn = new Hashtable <Item, ItemStack>(){{
|
||||
|
||||
put(Item.getItemFromBlock(Blocks.iron_ore), (new ItemStack(ModItems.coarseironItem)));
|
||||
put(Item.getItemFromBlock(Blocks.gold_ore), (new ItemStack(ModItems.coarsegoldItem)));
|
||||
put(Item.getItemFromBlock(Blocks.redstone_ore), (new ItemStack(Items.redstone)));
|
||||
//put(Item.getItemFromBlock(Blocks.lapis_ore), (new ItemStack(Items.dye)));
|
||||
|
||||
}};
|
||||
|
||||
static final Hashtable<Item, Item> grinderCheck = new Hashtable <Item, Item>(){{
|
||||
|
||||
put(Item.getItemFromBlock(Blocks.iron_ore), Item.getItemFromBlock(Blocks.iron_ore));
|
||||
put(Item.getItemFromBlock(Blocks.gold_ore), Item.getItemFromBlock(Blocks.gold_ore));
|
||||
put(Item.getItemFromBlock(Blocks.redstone_ore), Item.getItemFromBlock(Blocks.redstone_ore));
|
||||
//put(Item.getItemFromBlock(Blocks.lapis_ore), Item.getItemFromBlock(Blocks.lapis_ore));
|
||||
|
||||
}};
|
||||
|
||||
static final Hashtable<Item, Integer> grinderSize = new Hashtable <Item, Integer>(){{
|
||||
|
||||
put(ModItems.coarseironItem, 2);
|
||||
put(ModItems.coarsegoldItem, 2);
|
||||
put(Items.redstone, 4);
|
||||
//put(Items.dye, 4);
|
||||
|
||||
}};
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 806 B |
BIN
src/main/resources/assets/energy/models/StoneGrindWheelOrig.png
Normal file
BIN
src/main/resources/assets/energy/models/StoneGrindWheelOrig.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
@@ -1,14 +1,14 @@
|
||||
[
|
||||
{
|
||||
"modid": "examplemod",
|
||||
"name": "Example Mod",
|
||||
"modid": "energy",
|
||||
"name": "Primal Energy",
|
||||
"description": "Example placeholder mod.",
|
||||
"version": "${version}",
|
||||
"version": "${1.0.0}",
|
||||
"mcversion": "${mcversion}",
|
||||
"url": "",
|
||||
"updateUrl": "",
|
||||
"authorList": ["ExampleDude"],
|
||||
"credits": "The Forge and FML guys, for making this example",
|
||||
"authorList": ["Fluid1C3, KitsuShadow, An Sar"],
|
||||
"credits": "The Forge Team",
|
||||
"logoFile": "",
|
||||
"screenshots": [],
|
||||
"dependencies": []
|
||||
|
||||
Reference in New Issue
Block a user