This commit is contained in:
Calclavia 2013-08-04 13:02:06 -04:00
commit fd3f60a3d5
5 changed files with 60 additions and 44 deletions

View file

@ -6,11 +6,13 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import resonantinduction.base.Vector3;
import resonantinduction.battery.TileEntityBattery;
import resonantinduction.contractor.TileEntityEMContractor;
import resonantinduction.fx.FXElectricBolt;
import resonantinduction.multimeter.GuiMultimeter;
import resonantinduction.multimeter.TileEntityMultimeter;
import resonantinduction.render.BlockRenderingHandler;
import resonantinduction.render.RenderBattery;
import resonantinduction.render.RenderEMContractor;
import resonantinduction.render.RenderMultimeter;
import resonantinduction.render.RenderTesla;
@ -38,6 +40,7 @@ public class ClientProxy extends CommonProxy
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMultimeter.class, new RenderMultimeter());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityEMContractor.class, new RenderEMContractor());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBattery.class, new RenderBattery());
}
@Override

View file

@ -5,6 +5,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.minecraft.item.ItemStack;
public class SetUtil
{
public static <V> Set<V> inverse(Set<V> set)
@ -19,4 +21,31 @@ public class SetUtil
return toReturn;
}
public static <V> Set<V> cap(Set<V> set, int cap)
{
Set<V> toReturn = new HashSet<V>();
if(set.size() <= cap)
{
toReturn = set;
}
else {
int count = 0;
for(V obj : set)
{
count++;
toReturn.add(obj);
if(count == cap)
{
break;
}
}
}
return toReturn;
}
}

View file

@ -7,6 +7,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import resonantinduction.base.SetUtil;
import resonantinduction.base.Vector3;
import resonantinduction.battery.BatteryManager.BatteryCache;
@ -249,27 +250,7 @@ public class BatteryUpdateProtocol
idFound = BatteryManager.getUniqueInventoryID();
}
Set<ItemStack> newInventory = new HashSet<ItemStack>();
if(cache.inventory.size() <= structureFound.getMaxCells())
{
newInventory = cache.inventory;
}
else {
int count = 0;
for(ItemStack itemStack : cache.inventory)
{
count++;
newInventory.add(itemStack);
if(count == structureFound.getMaxCells())
{
break;
}
}
}
Set<ItemStack> newInventory = SetUtil.cap(cache.inventory, structureFound.getMaxCells());
structureFound.inventory = newInventory;

View file

@ -5,16 +5,16 @@ package resonantinduction.battery;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
import resonantinduction.ResonantInduction;
import resonantinduction.base.BlockBase;
import resonantinduction.render.BlockRenderingHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* A block that detects power.
@ -24,31 +24,11 @@ import resonantinduction.base.BlockBase;
*/
public class BlockBattery extends BlockBase implements ITileEntityProvider
{
private Icon machineIcon;
public BlockBattery(int id)
{
super("battery", id, Material.iron);
}
@Override
public Icon getIcon(int side, int metadata)
{
if (side == metadata)
{
return this.blockIcon;
}
return this.machineIcon;
}
@Override
public void registerIcons(IconRegister iconRegister)
{
super.registerIcons(iconRegister);
this.machineIcon = iconRegister.registerIcon(ResonantInduction.PREFIX + "machine");
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float par7, float par8, float par9)
{
@ -95,6 +75,19 @@ public class BlockBattery extends BlockBase implements ITileEntityProvider
return false;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
@SideOnly(Side.CLIENT)
public int getRenderType()
{
return BlockRenderingHandler.INSTANCE.getRenderId();
}
@Override
public TileEntity createNewTileEntity(World world)
{

View file

@ -9,6 +9,7 @@ import net.minecraft.world.IBlockAccess;
import org.lwjgl.opengl.GL11;
import resonantinduction.battery.BlockBattery;
import resonantinduction.contractor.BlockEMContractor;
import resonantinduction.model.ModelEMContractor;
import resonantinduction.tesla.BlockTesla;
@ -50,6 +51,15 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler
MODEL_CONTRACTOR.render(0.0625f, false);
GL11.glPopMatrix();
}
else if (block instanceof BlockBattery)
{
GL11.glPushMatrix();
GL11.glTranslated(0.5, 1.5, 0.5);
GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
FMLClientHandler.instance().getClient().renderEngine.func_110577_a(RenderBattery.TEXTURE);
RenderBattery.MODEL.render(0.0625f);
GL11.glPopMatrix();
}
}
@Override