8 Commits
Fluid ... DEV

Author SHA1 Message Date
KitsuShadow
d7e1d7b185 Sounds in work on SpringBox 2015-08-31 06:40:00 -04:00
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
23 changed files with 595 additions and 4028 deletions

View File

@@ -16,6 +16,8 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
@Mod(modid = ModInfo.MOD_ID, name = ModInfo.MOD_NAME, version = ModInfo.MOD_VERSION) @Mod(modid = ModInfo.MOD_ID, name = ModInfo.MOD_NAME, version = ModInfo.MOD_VERSION)
public class Energy { public class Energy {
public static final String MOD_ID = ModInfo.MOD_ID;
@SidedProxy(clientSide = ModInfo.CLIENT_PROXY, serverSide = ModInfo.COMMON_PROXY) @SidedProxy(clientSide = ModInfo.CLIENT_PROXY, serverSide = ModInfo.COMMON_PROXY)
public static CommonProxy proxy; public static CommonProxy proxy;

View File

@@ -1,8 +1,11 @@
package nmd.primal.energy.block; package nmd.primal.energy.block;
import java.util.Random;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.main.Main;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -10,6 +13,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import nmd.primal.energy.Energy;
import nmd.primal.energy.block.grinder.CrankGrinder; import nmd.primal.energy.block.grinder.CrankGrinder;
import nmd.primal.energy.block.lathe.LatheBase; import nmd.primal.energy.block.lathe.LatheBase;
import nmd.primal.energy.common.ModInfo; import nmd.primal.energy.common.ModInfo;
@@ -22,6 +26,8 @@ import nmd.primal.energy.util.EnergyUtil;
public class CrankBlock extends Block implements ITileEntityProvider{ public class CrankBlock extends Block implements ITileEntityProvider{
private static Random rand = new Random();
protected CrankBlock(String unlocalizedName, Material mat) { protected CrankBlock(String unlocalizedName, Material mat) {
super(mat); super(mat);
this.setBlockName(unlocalizedName); this.setBlockName(unlocalizedName);
@@ -35,12 +41,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) { public boolean onBlockActivated (World world, int x, int y, int z, EntityPlayer player, int q, float a, float b, float c) {
if(!world.isRemote){ 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); TileEntCrank tile = (TileEntCrank) world.getTileEntity(x, y, z);
if(tile.isPowered == false){ if(tile.isPowered == false){
tile.isPowered = true; tile.isPowered = true;
}
/*if(tile.getBlockMetadata()==0){ /*if(tile.getBlockMetadata()==0){
if(world.getBlock(x, y+1, z) instanceof LatheBase){ if(world.getBlock(x, y+1, z) instanceof LatheBase){
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y+1, z); TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y+1, z);
tileLathe.isPowered=true; tileLathe.isPowered=true;
@@ -49,25 +55,30 @@ public class CrankBlock extends Block implements ITileEntityProvider{
tileLathe.markForUpdate(); tileLathe.markForUpdate();
} }
}*/ }*/
if(tile.getBlockMetadata()==1){ if(tile.getBlockMetadata()==1){
if(world.getBlock(x, y-1, z) instanceof CrankGrinder){ if(world.getBlock(x, y-1, z) instanceof CrankGrinder){
TileEntCrankGrinder tileGrinder = (TileEntCrankGrinder) world.getTileEntity(x, y-1, z); TileEntCrankGrinder tileGrinder = (TileEntCrankGrinder) world.getTileEntity(x, y-1, z);
tileGrinder.isPowered=true; if(tileGrinder.getStackInSlot(1)!=null){
tileGrinder.power+=15; tileGrinder.isPowered=true;
tileGrinder.markDirty(); tileGrinder.power+=15;
tileGrinder.markForUpdate(); tileGrinder.workCount+=20;
tileGrinder.getStackInSlot(1).setItemDamage(tileGrinder.getStackInSlot(1).getItemDamage()+1);
}
tileGrinder.markDirty();
tileGrinder.markForUpdate();
}
} }
} if(tile.getBlockMetadata()==2){
if(tile.getBlockMetadata()==2){ if(world.getBlock(x, y, z+1) instanceof LatheBase){
if(world.getBlock(x, y, z+1) instanceof LatheBase){ TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z+1);
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z+1); tileLathe.isPowered=true;
tileLathe.isPowered=true; tileLathe.power+=20;
tileLathe.power+=20; tileLathe.markDirty();
tileLathe.markDirty(); tileLathe.markForUpdate();
tileLathe.markForUpdate(); }
} }
} /*if(tile.getBlockMetadata()==3){
/*if(tile.getBlockMetadata()==3){
if(world.getBlock(x, y, z-1) instanceof LatheBase){ if(world.getBlock(x, y, z-1) instanceof LatheBase){
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z-1); TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x, y, z-1);
tileLathe.isPowered=true; tileLathe.isPowered=true;
@@ -76,16 +87,16 @@ public class CrankBlock extends Block implements ITileEntityProvider{
tileLathe.markForUpdate(); tileLathe.markForUpdate();
} }
}*/ }*/
if(tile.getBlockMetadata()==4){ if(tile.getBlockMetadata()==4){
if(world.getBlock(x+1, y, z) instanceof LatheBase){ if(world.getBlock(x+1, y, z) instanceof LatheBase){
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x+1, y, z); TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x+1, y, z);
tileLathe.isPowered=true; tileLathe.isPowered=true;
tileLathe.power+=20; tileLathe.power+=20;
tileLathe.markDirty(); tileLathe.markDirty();
tileLathe.markForUpdate(); tileLathe.markForUpdate();
}
} }
} /*if(tile.getBlockMetadata()==5){
/*if(tile.getBlockMetadata()==5){
if(world.getBlock(x-1, y, z) instanceof LatheBase){ if(world.getBlock(x-1, y, z) instanceof LatheBase){
TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x-1, y, z); TileEntLatheBase tileLathe = (TileEntLatheBase) world.getTileEntity(x-1, y, z);
tileLathe.isPowered=true; tileLathe.isPowered=true;
@@ -94,12 +105,12 @@ public class CrankBlock extends Block implements ITileEntityProvider{
tileLathe.markForUpdate(); tileLathe.markForUpdate();
} }
}*/ }*/
tile.markDirty(); tile.markDirty();
tile.markForUpdate(); tile.markForUpdate();
return true; return true;
}
} }
return true; return false;
} }
@Override @Override
@@ -110,7 +121,7 @@ public class CrankBlock extends Block implements ITileEntityProvider{
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack)
{ {
int l = EnergyUtil.determineOrientationComplex(world, x, y, z, player); int l = EnergyUtil.determineOrientationComplex(world, x, y, z, player);
System.out.println(l); //System.out.println(l);
world.setBlockMetadataWithNotify(x, y, z, l, 2); world.setBlockMetadataWithNotify(x, y, z, l, 2);
//} //}
} }

View File

@@ -0,0 +1,32 @@
package nmd.primal.energy.block.battery;
import java.util.Random;
import net.minecraft.block.Block;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import nmd.primal.energy.common.ModInfo;
import nmd.primal.energy.util.CustomTab;
public class StandardSpringBox extends Block implements ITileEntityProvider{
private static Random rand = new Random();
protected StandardSpringBox(String unlocalizedName, Material mat) {
super(mat);
this.setBlockName(unlocalizedName);
this.setBlockTextureName(ModInfo.MOD_ID + ":" + unlocalizedName);
this.setCreativeTab(CustomTab.NMDEnergyTab);
this.setHardness(1.0F);
this.setResistance(6.0F);
this.setStepSound(soundTypeStone);
}
@Override
public TileEntity createNewTileEntity(World world, int i) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -39,7 +39,7 @@ public class CrankGrinder extends BlockContainer{
if(!world.isRemote){ if(!world.isRemote){
TileEntCrankGrinder tileEnt = (TileEntCrankGrinder) world.getTileEntity(x, y, z); 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()!=null){
if(player.inventory.getCurrentItem().getItem()!=ModItems.stoneGrinder){ if(player.inventory.getCurrentItem().getItem()!=ModItems.stoneGrinder){
//System.out.println(player.inventory.getCurrentItem()); //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) { 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; package nmd.primal.energy.render;
import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.ClientRegistry;
import net.minecraft.item.Item;
import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.client.MinecraftForgeClient;
import nmd.primal.energy.block.ModBlocks;
import nmd.primal.energy.item.ModItems; import nmd.primal.energy.item.ModItems;
import nmd.primal.energy.render.block.RenderCrank; import nmd.primal.energy.render.block.RenderCrank;
import nmd.primal.energy.render.block.RenderCrankGrinder; import nmd.primal.energy.render.block.RenderCrankGrinder;
import nmd.primal.energy.render.block.RenderLathe; import nmd.primal.energy.render.block.RenderLathe;
import nmd.primal.energy.render.item.IRStoneGrindWheel; 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.TileEntCrank;
import nmd.primal.energy.tileents.TileEntLatheBase; import nmd.primal.energy.tileents.TileEntLatheBase;
import nmd.primal.energy.tileents.grinder.TileEntCrankGrinder; import nmd.primal.energy.tileents.grinder.TileEntCrankGrinder;
@@ -21,6 +26,9 @@ public class RenderRegistry {
ClientRegistry.bindTileEntitySpecialRenderer(TileEntCrankGrinder.class, new RenderCrankGrinder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntCrankGrinder.class, new RenderCrankGrinder());
MinecraftForgeClient.registerItemRenderer(ModItems.stoneGrinder, new IRStoneGrindWheel()); 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; float scale = 1.0F;
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
if(tile.getStackInSlot(1)!=null){ 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);
GL11.glPushMatrix();
if(tile.isPowered == true){ if(tile.isPowered == true){
GL11.glTranslatef(0.5f, 0.0f, 0.5f); GL11.glTranslatef(0.5f, 0.0f, 0.5f);
GL11.glRotatef(tile.rot*-1, 0.0F, 1.0F, 0.0F); GL11.glRotatef(tile.rot*-1, 0.0F, 1.0F, 0.0F);
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTUREWHEEL); FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTUREWHEEL);
this.modelGrinder.renderAll(); this.modelGrinder.renderAll();
//RenderManager.instance.renderEntityWithPosYaw(entItem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
} }
if(tile.isPowered==false){ if(tile.isPowered==false){
GL11.glTranslatef(0.5f, 0.0f, 0.5f); GL11.glTranslatef(0.5f, 0.0f, 0.5f);
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTUREWHEEL); FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTUREWHEEL);
this.modelGrinder.renderAll(); this.modelGrinder.renderAll();
} }
GL11.glPopMatrix(); 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); GL11.glTranslatef(1.0F, 0.5F, 0.0F);
FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE); FMLClientHandler.instance().getClient().renderEngine.bindTexture(TEXTURE);
this.model.renderAll(); this.model.renderAll();
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View File

@@ -27,7 +27,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
return true; return true;
} }
case INVENTORY: { case INVENTORY: {
return false; return true;
} }
case ENTITY: { case ENTITY: {
return true; return true;
@@ -77,7 +77,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
//GL11.glRotated(90, 1.0, 0.0, 0.0); //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); Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll(); model.renderAll();
@@ -89,7 +89,7 @@ public class IRStoneGrindWheel implements IItemRenderer {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glRotatef(15F, 0.0F, 0.0F, 1.0F); 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 //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, 0.0F, 1.0F, 0.0F);
//GL11.glRotated(180, 1.0F, 0.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); Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll(); model.renderAll();
@@ -107,18 +107,20 @@ public class IRStoneGrindWheel implements IItemRenderer {
} break; } break;
case INVENTORY: { 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); Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
model.renderAll(); model.renderAll();
GL11.glPopMatrix(); GL11.glPopMatrix();
*/
} break; } break;
case ENTITY: { 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

@@ -14,6 +14,7 @@ import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.IExtendedEntityProperties; import net.minecraftforge.common.IExtendedEntityProperties;
import nmd.primal.energy.common.ModInfo;
import nmd.primal.energy.item.ModItems; import nmd.primal.energy.item.ModItems;
import nmd.primal.energy.util.LatheRecipes; import nmd.primal.energy.util.LatheRecipes;
@@ -64,6 +65,7 @@ public class TileEntLatheBase extends TileEntity implements IInventory {
int y = this.yCoord; int y = this.yCoord;
int z = this.zCoord; int z = this.zCoord;
if(!world.isRemote){ if(!world.isRemote){
playSound(world, x,y,z);
if(this.isPowered==true){ if(this.isPowered==true){
this.power--; this.power--;
rot-=45; rot-=45;
@@ -82,7 +84,17 @@ public class TileEntLatheBase extends TileEntity implements IInventory {
if (worldObj.isRemote) return; if (worldObj.isRemote) return;
} }
private void playSound(World world, int x, int y, int z){
if(this.isPowered==true){
if(i==0){
world.playSoundEffect(x, y, z, ModInfo.MOD_ID + ":lathewood", 10.25f, (float) (world.rand.nextFloat()*0.1+0.9f));
}
i++;
if(i==15){
i=0;
}
}
}
@Override @Override
public ItemStack decrStackSize(int slot, int amount) { public ItemStack decrStackSize(int slot, int amount) {

View File

@@ -1,7 +1,13 @@
package nmd.primal.energy.tileents.grinder; 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.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
@@ -9,9 +15,12 @@ import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import nmd.primal.energy.common.ModInfo;
import nmd.primal.energy.util.GrinderRecipes;
public class TileEntCrankGrinder extends TileEntity implements IInventory { public class TileEntCrankGrinder extends TileEntity implements IInventory, GrinderRecipes {
private ItemStack[] inv; private ItemStack[] inv;
private int i; private int i;
@@ -19,6 +28,85 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory {
public int power, workCount; public int power, workCount;
protected String specName = "TileEntCrankGrinder"; protected String specName = "TileEntCrankGrinder";
public float rot = 0; 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){
playSound(world, x,y,z);
doRotation(world, x,y,z);
doWork(world, x,y,z);
}
if (worldObj.isRemote) return;
}
private void playSound(World world, int x, int y, int z){
if(this.isPowered==true){
if(i==0){
world.playSoundEffect(x, y, z, ModInfo.MOD_ID + ":stonegrinder", 0.25f, (float) (world.rand.nextFloat()*0.1+0.9f));
}
i++;
if(i==15){
i=0;
}
}
}
private void doRotation(World world, int x, int y, int z){
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() { public TileEntCrankGrinder() {
this.inv = new ItemStack[2]; this.inv = new ItemStack[2];
@@ -51,33 +139,6 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory {
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord); 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 @Override
public ItemStack decrStackSize(int slot, int amount) { public ItemStack decrStackSize(int slot, int amount) {
if (this.inv[slot] != null) if (this.inv[slot] != null)
@@ -149,7 +210,7 @@ public class TileEntCrankGrinder extends TileEntity implements IInventory {
@Override @Override
public int getInventoryStackLimit() { public int getInventoryStackLimit() {
return 1; return 64;
} }
@Override @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

@@ -0,0 +1,4 @@
{
"stonegrinder": {"category": "neutral", "sounds": [{"name": "stonegrinder", "stream": false}]},
"lathewood": {"category": "neutral", "sounds": [{"name": "lathewood", "stream": false}]}
}

Binary file not shown.

View File

@@ -0,0 +1,3 @@
{
"stonegrinder": {"category": "neutral", "sounds": [{"name": "stonegrinder", "stream": false}]}
}

View File

@@ -1,14 +1,14 @@
[ [
{ {
"modid": "examplemod", "modid": "energy",
"name": "Example Mod", "name": "Primal Energy",
"description": "Example placeholder mod.", "description": "Example placeholder mod.",
"version": "${version}", "version": "${1.0.0}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "", "url": "",
"updateUrl": "", "updateUrl": "",
"authorList": ["ExampleDude"], "authorList": ["Fluid1C3, KitsuShadow, An Sar"],
"credits": "The Forge and FML guys, for making this example", "credits": "The Forge Team",
"logoFile": "", "logoFile": "",
"screenshots": [], "screenshots": [],
"dependencies": [] "dependencies": []