Fixed Model3D textures, fixed error spam on world load, fixed Digital Miner breaking blocks on top, general code cleanup

This commit is contained in:
Aidan C. Brady 2013-11-24 12:12:42 -06:00
parent de3ee34743
commit 59b945a33f
34 changed files with 239 additions and 296 deletions

View file

@ -1,7 +1,6 @@
package mekanism.api.gas;
import net.minecraft.util.Icon;
import net.minecraft.util.ResourceLocation;
/**
* The gasses currently available in Mekanism.
@ -10,13 +9,12 @@ import net.minecraft.util.ResourceLocation;
*/
public enum EnumGas
{
NONE("None", null, null),
OXYGEN("Oxygen", null, null),
HYDROGEN("Hydrogen", null, null);
NONE("None", null),
OXYGEN("Oxygen", null),
HYDROGEN("Hydrogen", null);
public String name;
public Icon gasIcon;
public ResourceLocation texturePath;
public static EnumGas getFromName(String gasName)
{
@ -34,13 +32,12 @@ public enum EnumGas
public boolean hasTexture()
{
return gasIcon != null && texturePath != null;
return gasIcon != null;
}
private EnumGas(String s, Icon icon, ResourceLocation path)
private EnumGas(String s, Icon icon)
{
name = s;
gasIcon = icon;
texturePath = path;
}
}

View file

@ -5,7 +5,6 @@ import java.io.File;
import java.util.HashMap;
import mekanism.api.IConfigurable;
import mekanism.api.gas.EnumGas;
import mekanism.client.gui.GuiCombiner;
import mekanism.client.gui.GuiConfiguration;
import mekanism.client.gui.GuiCredits;
@ -71,6 +70,7 @@ import mekanism.common.tileentity.TileEntityChargepad;
import mekanism.common.tileentity.TileEntityCombiner;
import mekanism.common.tileentity.TileEntityCrusher;
import mekanism.common.tileentity.TileEntityDigitalMiner;
import mekanism.common.tileentity.TileEntityDiversionTransporter;
import mekanism.common.tileentity.TileEntityDynamicTank;
import mekanism.common.tileentity.TileEntityDynamicValve;
import mekanism.common.tileentity.TileEntityElectricChest;
@ -82,7 +82,6 @@ import mekanism.common.tileentity.TileEntityEnergyCube;
import mekanism.common.tileentity.TileEntityEnrichmentChamber;
import mekanism.common.tileentity.TileEntityFactory;
import mekanism.common.tileentity.TileEntityGasTank;
import mekanism.common.tileentity.TileEntityDiversionTransporter;
import mekanism.common.tileentity.TileEntityLogisticalSorter;
import mekanism.common.tileentity.TileEntityLogisticalTransporter;
import mekanism.common.tileentity.TileEntityMechanicalPipe;
@ -93,8 +92,6 @@ import mekanism.common.tileentity.TileEntityPressurizedTube;
import mekanism.common.tileentity.TileEntityPurificationChamber;
import mekanism.common.tileentity.TileEntityTeleporter;
import mekanism.common.tileentity.TileEntityUniversalCable;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
@ -108,7 +105,6 @@ import cpw.mods.fml.client.registry.ClientRegistry;
import cpw.mods.fml.client.registry.KeyBindingRegistry;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.TickRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -279,18 +275,6 @@ public class ClientProxy extends CommonProxy
RenderingRegistry.registerBlockHandler(new TransmitterRenderingHandler());
RenderingRegistry.registerBlockHandler(new BasicRenderingHandler());
if(!EnumGas.HYDROGEN.hasTexture())
{
EnumGas.HYDROGEN.gasIcon = MekanismRenderer.getTextureMap(1).registerIcon("mekanism:LiquidHydrogen");
EnumGas.HYDROGEN.texturePath = MekanismUtils.getResource(ResourceType.TEXTURE_ITEMS, "LiquidHydrogen.png");
}
if(!EnumGas.OXYGEN.hasTexture())
{
EnumGas.OXYGEN.gasIcon = MekanismRenderer.getTextureMap(1).registerIcon("mekanism:LiquidOxygen");
EnumGas.OXYGEN.texturePath = MekanismUtils.getResource(ResourceType.TEXTURE_ITEMS, "LiquidOxygen.png");
}
System.out.println("[Mekanism] Render registrations complete.");
}
@ -420,6 +404,12 @@ public class ClientProxy extends CommonProxy
}
}
@Override
public void preInit()
{
MekanismRenderer.init();
}
@Override
public double getReach(EntityPlayer player)
{

View file

@ -165,7 +165,7 @@ public class GuiConfiguration extends GuiMekanism
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
mc.getTextureManager().bindTexture(MekanismRenderer.getColorResource(configurable.getEjector().getOutputColor()));
mc.getTextureManager().bindTexture(MekanismRenderer.getBlocksTexture());
itemRenderer.renderIcon(80, 49, MekanismRenderer.getColorIcon(configurable.getEjector().getOutputColor()), 16, 16);
GL11.glDisable(GL11.GL_LIGHTING);

View file

@ -94,7 +94,7 @@ public class GuiDynamicTank extends GuiContainer
scale = 0;
}
mc.renderEngine.bindTexture(MekanismRenderer.getLiquidTexture());
mc.renderEngine.bindTexture(MekanismRenderer.getBlocksTexture());
drawTexturedModelRectFromIcon(width + xPos, height + yPos + 58 - renderRemaining - start, fluid.getFluid().getIcon(), 16, 16 - (16 - renderRemaining));
start+=16;

View file

@ -97,7 +97,7 @@ public class GuiElectricPump extends GuiContainer
scale = 0;
}
mc.renderEngine.bindTexture(MekanismRenderer.getLiquidTexture());
mc.renderEngine.bindTexture(MekanismRenderer.getBlocksTexture());
drawTexturedModelRectFromIcon(width + yPos, height + xPos + 58 - renderRemaining - start, fluid.getFluid().getIcon(), 16, 16 - (16 - renderRemaining));
start+=16;

View file

@ -330,7 +330,7 @@ public class GuiLogisticalSorter extends GuiMekanism
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
mc.getTextureManager().bindTexture(MekanismRenderer.getColorResource(tileEntity.color));
mc.getTextureManager().bindTexture(MekanismRenderer.getBlocksTexture());
itemRenderer.renderIcon(13, 137, MekanismRenderer.getColorIcon(tileEntity.color), 16, 16);
GL11.glDisable(GL11.GL_LIGHTING);

View file

@ -190,7 +190,7 @@ public class GuiTItemStackFilter extends GuiMekanism
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
mc.getTextureManager().bindTexture(MekanismRenderer.getColorResource(filter.color));
mc.getTextureManager().bindTexture(MekanismRenderer.getBlocksTexture());
itemRenderer.renderIcon(12, 44, MekanismRenderer.getColorIcon(filter.color), 16, 16);
GL11.glDisable(GL11.GL_LIGHTING);

View file

@ -177,7 +177,7 @@ public class GuiTOreDictFilter extends GuiMekanism
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
mc.getTextureManager().bindTexture(MekanismRenderer.getColorResource(filter.color));
mc.getTextureManager().bindTexture(MekanismRenderer.getBlocksTexture());
itemRenderer.renderIcon(12, 44, MekanismRenderer.getColorIcon(filter.color), 16, 16);
GL11.glDisable(GL11.GL_LIGHTING);

View file

@ -4,10 +4,10 @@ import java.util.Arrays;
import java.util.List;
import mekanism.api.EnumColor;
import mekanism.api.gas.EnumGas;
import mekanism.common.ISpecialBounds;
import mekanism.common.ObfuscatedNames;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GLAllocation;
@ -22,12 +22,16 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Timer;
import net.minecraftforge.client.event.TextureStitchEvent;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.fluids.Fluid;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -38,10 +42,35 @@ public class MekanismRenderer
public static Icon[] colors = new Icon[256];
public static Icon energyIcon;
private static float lightmapLastX;
private static float lightmapLastY;
private static boolean optifineBreak = false;
public static void init()
{
MinecraftForge.EVENT_BUS.register(new MekanismRenderer());
}
@EventHandler
@ForgeSubscribe /* Screwy Forge code */
public void onStitch(TextureStitchEvent.Pre event)
{
if(event.map.textureType == 0)
{
for(EnumColor color : EnumColor.values())
{
colors[color.ordinal()] = event.map.registerIcon("mekanism:Overlay" + color.friendlyName.replace(" ", ""));
}
energyIcon = event.map.registerIcon("mekanism:LiquidEnergy");
EnumGas.HYDROGEN.gasIcon = event.map.registerIcon("mekanism:LiquidHydrogen");
EnumGas.OXYGEN.gasIcon = event.map.registerIcon("mekanism:LiquidOxygen");
}
}
public static class Model3D
{
public double minX;
@ -152,18 +181,8 @@ public class MekanismRenderer
}
}
public static ResourceLocation getColorResource(EnumColor color)
{
return MekanismUtils.getResource(ResourceType.TEXTURE_BLOCKS, "Overlay" + color.friendlyName.replace(" ", "") + ".png");
}
public static Icon getColorIcon(EnumColor color)
{
if(colors[color.ordinal()] == null)
{
colors[color.ordinal()] = getTextureMap(0).registerIcon("mekanism:Overlay" + color.getName());
}
return colors[color.ordinal()];
}
@ -175,9 +194,7 @@ public class MekanismRenderer
{
lightmapLastX = OpenGlHelper.lastBrightnessX;
lightmapLastY = OpenGlHelper.lastBrightnessY;
}
catch(NoSuchFieldError e)
{
} catch(NoSuchFieldError e) {
optifineBreak = true;
}
@ -428,8 +445,13 @@ public class MekanismRenderer
return 0;
}
public static ResourceLocation getLiquidTexture()
public static ResourceLocation getBlocksTexture()
{
return TextureMap.locationBlocksTexture;
}
public static ResourceLocation getItemsTexture()
{
return TextureMap.locationItemsTexture;
}
}

View file

@ -14,12 +14,10 @@ import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
@ -68,7 +66,7 @@ public class RenderConfigurableMachine extends TileEntitySpecialRenderer
GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.4F);
bindTexture(MekanismUtils.getResource(ResourceType.TEXTURE_BLOCKS, "Overlay" + color.friendlyName.replace(" ", "") + ".png"));
bindTexture(MekanismRenderer.getBlocksTexture());
GL11.glTranslatef((float)x, (float)y, (float)z);
int display = getOverlayDisplay(world, ForgeDirection.getOrientation(pos.sideHit), color).display;

View file

@ -47,7 +47,7 @@ public class RenderDynamicTank extends TileEntitySpecialRenderer
data.length = tileEntity.structure.volLength;
data.width = tileEntity.structure.volWidth;
bindTexture(MekanismRenderer.getLiquidTexture());
bindTexture(MekanismRenderer.getBlocksTexture());
if(data.location != null && data.height > 0 && tileEntity.structure.fluidStored.getFluid() != null)
{

View file

@ -84,28 +84,31 @@ public class RenderLogisticalTransporter extends TileEntitySpecialRenderer
for(TransporterStack stack : tileEntity.transit)
{
GL11.glPushMatrix();
entityItem.setEntityItemStack(stack.itemStack);
float[] pos = TransporterUtils.getStackPosition(tileEntity, stack, partialTick*TileEntityLogisticalTransporter.SPEED);
GL11.glTranslated(x + pos[0], y + pos[1] - entityItem.yOffset, z + pos[2]);
GL11.glScalef(0.75F, 0.75F, 0.75F);
renderer.doRenderItem(entityItem, 0, 0, 0, 0, 0);
GL11.glPopMatrix();
if(stack.color != null)
if(stack != null)
{
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "TransporterBox.png"));
GL11.glPushMatrix();
MekanismRenderer.glowOn();
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glColor4f(stack.color.getColor(0), stack.color.getColor(1), stack.color.getColor(2), 1.0F);
GL11.glTranslatef((float)(x + pos[0]), (float)(y + pos[1] - entityItem.yOffset - (stack.itemStack.itemID < 256 ? 0.1 : 0)), (float)(z + pos[2]));
modelBox.render(0.0625F);
MekanismRenderer.glowOff();
entityItem.setEntityItemStack(stack.itemStack);
float[] pos = TransporterUtils.getStackPosition(tileEntity, stack, partialTick*TileEntityLogisticalTransporter.SPEED);
GL11.glTranslated(x + pos[0], y + pos[1] - entityItem.yOffset, z + pos[2]);
GL11.glScalef(0.75F, 0.75F, 0.75F);
renderer.doRenderItem(entityItem, 0, 0, 0, 0, 0);
GL11.glPopMatrix();
if(stack.color != null)
{
bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "TransporterBox.png"));
GL11.glPushMatrix();
MekanismRenderer.glowOn();
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glColor4f(stack.color.getColor(0), stack.color.getColor(1), stack.color.getColor(2), 1.0F);
GL11.glTranslatef((float)(x + pos[0]), (float)(y + pos[1] - entityItem.yOffset - (stack.itemStack.itemID < 256 ? 0.1 : 0)), (float)(z + pos[2]));
modelBox.render(0.0625F);
MekanismRenderer.glowOff();
GL11.glPopMatrix();
}
}
}
}

View file

@ -69,7 +69,7 @@ public class RenderMechanicalPipe extends TileEntitySpecialRenderer
MekanismRenderer.glowOn();
}
bindTexture(MekanismRenderer.getLiquidTexture());
bindTexture(MekanismRenderer.getBlocksTexture());
GL11.glTranslatef((float)x, (float)y, (float)z);
for(int i = 0; i < 6; i++)

View file

@ -118,7 +118,7 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer
push();
GL11.glColor4f(1.0F, 1.0F, 1.0F, tileEntity.gasScale);
bindTexture(tileEntity.refGas.texturePath);
bindTexture(MekanismRenderer.getBlocksTexture());
GL11.glTranslatef((float)x, (float)y, (float)z);
if(tileEntity.gasScale > 0)

View file

@ -30,8 +30,6 @@ public class RenderUniversalCable extends TileEntitySpecialRenderer
{
private static ModelTransmitter model = new ModelTransmitter(Size.SMALL);
private static Icon renderIcon = MekanismRenderer.getTextureMap(1).registerIcon("mekanism:LiquidEnergy");
private static Model3D[] energy = null;
private static Map<ForgeDirection, DisplayInteger> sideDisplayLists = new HashMap<ForgeDirection, DisplayInteger>();
@ -75,7 +73,7 @@ public class RenderUniversalCable extends TileEntitySpecialRenderer
MekanismRenderer.glowOn();
GL11.glColor4f(1F, 1F, 1F, tileEntity.getEnergyScale());
bindTexture(MekanismUtils.getResource(ResourceType.TEXTURE_ITEMS, "LiquidEnergy.png"));
bindTexture(MekanismRenderer.getBlocksTexture());
GL11.glTranslatef((float)x, (float)y, (float)z);
if(energy == null)
@ -125,7 +123,7 @@ public class RenderUniversalCable extends TileEntitySpecialRenderer
Model3D[] energyArray = new Model3D[7];
Model3D centerModel = new Model3D();
centerModel.baseBlock = Block.waterStill;
centerModel.setTexture(renderIcon);
centerModel.setTexture(MekanismRenderer.energyIcon);
centerModel.minX = 0.3 + offset;
centerModel.minY = 0.3 + offset;
@ -141,7 +139,7 @@ public class RenderUniversalCable extends TileEntitySpecialRenderer
{
Model3D toReturn = new Model3D();
toReturn.baseBlock = Block.waterStill;
toReturn.setTexture(renderIcon);
toReturn.setTexture(MekanismRenderer.energyIcon);
toReturn.setSideRender(side, false);
toReturn.setSideRender(side.getOpposite(), false);

View file

@ -314,6 +314,8 @@ public class CommonProxy
return null;
}
public void preInit() {}
public double getReach(EntityPlayer player)
{
if(player instanceof EntityPlayerMP)

View file

@ -39,6 +39,14 @@ public class HashList<T> implements Iterable<T>
{
if(!list.contains(obj))
{
if(index > size())
{
for(int i = size(); i <= index-1; i++)
{
list.add(i, null);
}
}
list.add(index, obj);
}
}

View file

@ -1057,6 +1057,8 @@ public class Mekanism
System.out.println("[Mekanism] Detected Tekkit in root directory - hello, fellow user!");
}
Mekanism.proxy.preInit();
MinecraftForge.EVENT_BUS.register(hooks);
//Register infuses

View file

@ -984,7 +984,7 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
{
for(int x = xCoord-1; x <= xCoord+1; x++)
{
for(int y = yCoord; y <= yCoord+2; y++)
for(int y = yCoord; y <= yCoord+1; y++)
{
for(int z = zCoord-1; z <= zCoord+1; z++)
{

View file

@ -374,7 +374,7 @@ public class TileEntityLogisticalSorter extends TileEntityElectricBlock implemen
if(back instanceof IInventory)
{
return TransporterUtils.canInsert(back, null, stack, ForgeDirection.getOrientation(facing).getOpposite().ordinal(), true);
return InventoryUtils.canInsert(back, null, stack, ForgeDirection.getOrientation(facing).getOpposite().ordinal(), true);
}
return false;

View file

@ -52,7 +52,10 @@ public class TileEntityLogisticalTransporter extends TileEntity implements ITile
{
for(TransporterStack stack : transit)
{
stack.progress = Math.min(100, stack.progress+SPEED);
if(stack != null)
{
stack.progress = Math.min(100, stack.progress+SPEED);
}
}
}
else {
@ -143,7 +146,7 @@ public class TileEntityLogisticalTransporter extends TileEntity implements ITile
{
if(stack.isFinal(this))
{
if(stack.pathType == Path.DEST && !TransporterUtils.canInsert(stack.getDest().getTileEntity(worldObj), stack.color, stack.itemStack, stack.getSide(this), false))
if(stack.pathType == Path.DEST && !InventoryUtils.canInsert(stack.getDest().getTileEntity(worldObj), stack.color, stack.itemStack, stack.getSide(this), false))
{
if(!recalculate(stack, null))
{
@ -151,7 +154,7 @@ public class TileEntityLogisticalTransporter extends TileEntity implements ITile
continue;
}
}
else if(stack.pathType == Path.HOME && !TransporterUtils.canInsert(stack.getDest().getTileEntity(worldObj), stack.color, stack.itemStack, stack.getSide(this), true))
else if(stack.pathType == Path.HOME && !InventoryUtils.canInsert(stack.getDest().getTileEntity(worldObj), stack.color, stack.itemStack, stack.getSide(this), true))
{
if(!recalculate(stack, null))
{

View file

@ -14,8 +14,7 @@ import mekanism.common.tileentity.TileEntityLogisticalSorter;
import mekanism.common.tileentity.TileEntityLogisticalTransporter;
import mekanism.common.transporter.TransporterPathfinder.Pathfinder.DestChecker;
import mekanism.common.transporter.TransporterStack.Path;
import mekanism.common.util.TransporterUtils;
import net.minecraft.inventory.IInventory;
import mekanism.common.util.InventoryUtils;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection;
@ -213,7 +212,7 @@ public final class TransporterPathfinder
continue;
}
if(TransporterUtils.canInsert(tile, transportStack.color, transportStack.itemStack, side.ordinal(), false))
if(InventoryUtils.canInsert(tile, transportStack.color, transportStack.itemStack, side.ordinal(), false))
{
destsFound.add(Object3D.get(tile));
}
@ -240,7 +239,7 @@ public final class TransporterPathfinder
@Override
public boolean isValid(TransporterStack stack, int side, TileEntity tile)
{
return TransporterUtils.canInsert(tile, stack.color, stack.itemStack, side, false);
return InventoryUtils.canInsert(tile, stack.color, stack.itemStack, side, false);
}
};
@ -507,7 +506,7 @@ public final class TransporterPathfinder
@Override
public boolean isValid(TransporterStack stack, int side, TileEntity tile)
{
return TransporterUtils.canInsert(tile, stack.color, stack.itemStack, side, true);
return InventoryUtils.canInsert(tile, stack.color, stack.itemStack, side, true);
}
};

View file

@ -1,5 +1,7 @@
package mekanism.common.util;
import mekanism.api.EnumColor;
import mekanism.api.IConfigurable;
import mekanism.common.tileentity.TileEntityBin;
import mekanism.common.tileentity.TileEntityLogisticalSorter;
import mekanism.common.transporter.InvStack;
@ -7,6 +9,7 @@ import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.inventory.InventoryLargeChest;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraftforge.common.ForgeDirection;
@ -332,4 +335,117 @@ public final class InventoryUtils
return null;
}
public static boolean canInsert(TileEntity tileEntity, EnumColor color, ItemStack itemStack, int side, boolean force)
{
if(!(tileEntity instanceof IInventory))
{
return false;
}
if(force && tileEntity instanceof TileEntityLogisticalSorter)
{
return ((TileEntityLogisticalSorter)tileEntity).canSendHome(itemStack);
}
if(!force && tileEntity instanceof IConfigurable)
{
IConfigurable config = (IConfigurable)tileEntity;
int tileSide = config.getOrientation();
EnumColor configColor = config.getEjector().getInputColor(ForgeDirection.getOrientation(MekanismUtils.getBaseOrientation(side, tileSide)).getOpposite());
if(config.getEjector().hasStrictInput() && configColor != null && configColor != color)
{
return false;
}
}
IInventory inventory = (IInventory)tileEntity;
if(!(inventory instanceof ISidedInventory))
{
inventory = InventoryUtils.checkChestInv(inventory);
for(int i = 0; i <= inventory.getSizeInventory() - 1; i++)
{
if(!force)
{
if(!inventory.isItemValidForSlot(i, itemStack))
{
continue;
}
}
ItemStack inSlot = inventory.getStackInSlot(i);
if(inSlot == null)
{
return true;
}
else if(inSlot.isItemEqual(itemStack) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + itemStack.stackSize <= inSlot.getMaxStackSize())
{
return true;
}
else {
int rejects = (inSlot.stackSize + itemStack.stackSize) - inSlot.getMaxStackSize();
if(rejects < itemStack.stackSize)
{
return true;
}
}
}
}
}
else {
ISidedInventory sidedInventory = (ISidedInventory)inventory;
int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.getOrientation(side).getOpposite().ordinal());
if(slots != null && slots.length != 0)
{
if(force && sidedInventory instanceof TileEntityBin && ForgeDirection.getOrientation(side).getOpposite().ordinal() == 0)
{
slots = sidedInventory.getAccessibleSlotsFromSide(1);
}
for(int get = 0; get <= slots.length - 1; get++)
{
int slotID = slots[get];
if(!force)
{
if(!sidedInventory.isItemValidForSlot(slotID, itemStack) || !sidedInventory.canInsertItem(slotID, itemStack, ForgeDirection.getOrientation(side).getOpposite().ordinal()))
{
continue;
}
}
ItemStack inSlot = inventory.getStackInSlot(slotID);
if(inSlot == null)
{
return true;
}
else if(inSlot.isItemEqual(itemStack) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + itemStack.stackSize <= inSlot.getMaxStackSize())
{
return true;
}
else {
int rejects = (inSlot.stackSize + itemStack.stackSize) - inSlot.getMaxStackSize();
if(rejects < itemStack.stackSize)
{
return true;
}
}
}
}
}
}
return false;
}
}

View file

@ -200,120 +200,6 @@ public final class TransporterUtils
return tileEntity.insertRR(outputter, itemStack.copy(), color);
}
public static boolean canInsert(TileEntity tileEntity, EnumColor color, ItemStack itemStack, int side, boolean force)
{
if(!(tileEntity instanceof IInventory))
{
return false;
}
if(force && tileEntity instanceof TileEntityLogisticalSorter)
{
return ((TileEntityLogisticalSorter)tileEntity).canSendHome(itemStack);
}
if(!force && tileEntity instanceof IConfigurable)
{
IConfigurable config = (IConfigurable)tileEntity;
int tileSide = config.getOrientation();
EnumColor configColor = config.getEjector().getInputColor(ForgeDirection.getOrientation(MekanismUtils.getBaseOrientation(side, tileSide)).getOpposite());
if(config.getEjector().hasStrictInput() && configColor != null && configColor != color)
{
return false;
}
}
IInventory inventory = (IInventory)tileEntity;
if(!(inventory instanceof ISidedInventory))
{
inventory = InventoryUtils.checkChestInv(inventory);
for(int i = 0; i <= inventory.getSizeInventory() - 1; i++)
{
if(!force)
{
if(!inventory.isItemValidForSlot(i, itemStack))
{
continue;
}
}
ItemStack inSlot = inventory.getStackInSlot(i);
if(inSlot == null)
{
return true;
}
else if(inSlot.isItemEqual(itemStack) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + itemStack.stackSize <= inSlot.getMaxStackSize())
{
return true;
}
else {
int rejects = (inSlot.stackSize + itemStack.stackSize) - inSlot.getMaxStackSize();
if(rejects < itemStack.stackSize)
{
return true;
}
}
}
}
}
else {
ISidedInventory sidedInventory = (ISidedInventory)inventory;
int[] slots = sidedInventory.getAccessibleSlotsFromSide(ForgeDirection.getOrientation(side).getOpposite().ordinal());
if(slots != null && slots.length != 0)
{
if(force && sidedInventory instanceof TileEntityBin && ForgeDirection.getOrientation(side).getOpposite().ordinal() == 0)
{
slots = sidedInventory.getAccessibleSlotsFromSide(1);
}
for(int get = 0; get <= slots.length - 1; get++)
{
int slotID = slots[get];
if(!force)
{
if(!sidedInventory.isItemValidForSlot(slotID, itemStack) || !sidedInventory.canInsertItem(slotID, itemStack, ForgeDirection.getOrientation(side).getOpposite().ordinal()))
{
continue;
}
}
ItemStack inSlot = inventory.getStackInSlot(slotID);
if(inSlot == null)
{
return true;
}
else if(inSlot.isItemEqual(itemStack) && inSlot.stackSize < inSlot.getMaxStackSize())
{
if(inSlot.stackSize + itemStack.stackSize <= inSlot.getMaxStackSize())
{
return true;
}
else {
int rejects = (inSlot.stackSize + itemStack.stackSize) - inSlot.getMaxStackSize();
if(rejects < itemStack.stackSize)
{
return true;
}
}
}
}
}
}
return false;
}
public static EnumColor increment(EnumColor color)
{
if(color == null)

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 2
}
}

View file

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 2
}
}

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 2
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

View file

@ -1,32 +0,0 @@
0*2
1*2
2*2
3*2
4*2
5*2
6*2
7*2
8*2
9*2
10*2
11*2
12*2
13*2
14*2
15*2
16*2
17*2
18*2
19*2
20*2
21*2
22*2
23*2
24*2
25*2
26*2
27*2
28*2
29*2
30*2
31*2

View file

@ -1,32 +0,0 @@
0*2
1*2
2*2
3*2
4*2
5*2
6*2
7*2
8*2
9*2
10*2
11*2
12*2
13*2
14*2
15*2
16*2
17*2
18*2
19*2
20*2
21*2
22*2
23*2
24*2
25*2
26*2
27*2
28*2
29*2
30*2
31*2

View file

@ -1,32 +0,0 @@
0*2
1*2
2*2
3*2
4*2
5*2
6*2
7*2
8*2
9*2
10*2
11*2
12*2
13*2
14*2
15*2
16*2
17*2
18*2
19*2
20*2
21*2
22*2
23*2
24*2
25*2
26*2
27*2
28*2
29*2
30*2
31*2