7 Commits

Author SHA1 Message Date
KitsuShadow
9a57513a11 Alpha Push 2015-08-30 15:44:54 -04:00
KitsuShadow
6849d117cb need sounds 2015-08-30 14:19:03 -04:00
KitsuShadow
a2fbde8efe Grinder Recipes working 2015-08-30 09:25:44 -04:00
KitsuShadow
c87cae4e94 grinderrecipe fixes 2015-08-30 05:40:12 -04:00
KitsuShadow
e2245c0519 more work on crank power 2015-08-29 23:15:25 -04:00
KitsuShadow
a774fd5a9e Merge branch 'DEV' into Kitsu 2015-08-29 21:28:38 -04:00
KitsuShadow
e5a69ffba2 Grinder Initial Test Working 2015-08-29 21:28:14 -04:00
17 changed files with 518 additions and 4029 deletions

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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());
}
}

View File

@@ -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();
}

View File

@@ -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: {

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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)

View File

@@ -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

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -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": []