parent
ab64958955
commit
0a81c8fca7
5 changed files with 46 additions and 20 deletions
|
@ -1,11 +1,13 @@
|
||||||
package buildcraft.core.gui;
|
package buildcraft.core.gui;
|
||||||
|
|
||||||
|
import buildcraft.core.render.FluidRenderer;
|
||||||
import net.minecraft.client.renderer.OpenGlHelper;
|
import net.minecraft.client.renderer.OpenGlHelper;
|
||||||
import net.minecraft.client.renderer.RenderHelper;
|
import net.minecraft.client.renderer.RenderHelper;
|
||||||
import net.minecraft.client.renderer.texture.TextureMap;
|
import net.minecraft.client.renderer.texture.TextureMap;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.Icon;
|
import net.minecraft.util.Icon;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
@ -28,10 +30,14 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public Icon getTexture() {
|
public Icon getIcon() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResourceLocation getTexture() {
|
||||||
|
return TextureMap.field_110576_c;
|
||||||
|
}
|
||||||
|
|
||||||
public ItemStack getItemStack() {
|
public ItemStack getItemStack() {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -46,10 +52,10 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft {
|
||||||
|
|
||||||
if (getItemStack() != null) {
|
if (getItemStack() != null) {
|
||||||
drawStack(getItemStack());
|
drawStack(getItemStack());
|
||||||
} else if (getTexture() != null) {
|
} else if (getIcon() != null) {
|
||||||
mc.renderEngine.func_110577_a(TextureMap.field_110576_c);
|
mc.renderEngine.func_110577_a(getTexture());
|
||||||
//System.out.printf("Drawing advanced sprite %s (%d,%d) at %d %d\n", getTexture().getIconName(), getTexture().getOriginX(),getTexture().getOriginY(),cornerX + x, cornerY + y);
|
//System.out.printf("Drawing advanced sprite %s (%d,%d) at %d %d\n", getIcon().getIconName(), getIcon().getOriginX(),getIcon().getOriginY(),cornerX + x, cornerY + y);
|
||||||
drawTexturedModelRectFromIcon(cornerX + x, cornerY + y, getTexture(), 16, 16);
|
drawTexturedModelRectFromIcon(cornerX + x, cornerY + y, getIcon(), 16, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -82,7 +88,8 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* More dynamic slot displaying an inventory fluid at specified position in the passed IInventory
|
* More dynamic slot displaying an inventory fluid at specified position in
|
||||||
|
* the passed IInventory
|
||||||
*/
|
*/
|
||||||
public class IInventorySlot extends AdvancedSlot {
|
public class IInventorySlot extends AdvancedSlot {
|
||||||
|
|
||||||
|
@ -99,9 +106,7 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft {
|
||||||
public ItemStack getItemStack() {
|
public ItemStack getItemStack() {
|
||||||
return tile.getStackInSlot(slot);
|
return tile.getStackInSlot(slot);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public AdvancedSlot[] slots;
|
public AdvancedSlot[] slots;
|
||||||
|
|
||||||
public GuiAdvancedInterface(BuildCraftContainer container, IInventory inventory) {
|
public GuiAdvancedInterface(BuildCraftContainer container, IInventory inventory) {
|
||||||
|
@ -164,7 +169,7 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft {
|
||||||
RenderHelper.enableGUIStandardItemLighting();
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For the refinery, a king of phantom slot for fluid.
|
* For the refinery, a king of phantom slot for fluid.
|
||||||
*/
|
*/
|
||||||
|
@ -176,5 +181,15 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft {
|
||||||
public FluidSlot(int x, int y) {
|
public FluidSlot(int x, int y) {
|
||||||
super(x, y);
|
super(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getIcon() {
|
||||||
|
return FluidRenderer.getFluidTexture(fluid, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTexture() {
|
||||||
|
return FluidRenderer.getFluidSheet(fluid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,17 +35,16 @@ public class FluidRenderer {
|
||||||
|
|
||||||
public static class MissingFluidTextureException extends RuntimeException {
|
public static class MissingFluidTextureException extends RuntimeException {
|
||||||
|
|
||||||
private final FluidStack fluidStack;
|
private final Fluid fluid;
|
||||||
|
|
||||||
public MissingFluidTextureException(FluidStack fluidStack) {
|
public MissingFluidTextureException(Fluid fluid) {
|
||||||
super();
|
super();
|
||||||
this.fluidStack = fluidStack;
|
this.fluid = fluid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getMessage() {
|
public String getMessage() {
|
||||||
String fluidName = FluidRegistry.getFluidName(fluidStack);
|
return String.format("Fluid %s has no icon. Please contact the author of the mod the fluid came from.", fluid.getName());
|
||||||
return String.format("Fluid %s has no icon. Please contact the author of the mod the fluid came from.", fluidName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,15 +52,27 @@ public class FluidRenderer {
|
||||||
if (fluidStack == null) {
|
if (fluidStack == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Fluid fluid = fluidStack.getFluid();
|
return getFluidTexture(fluidStack.getFluid(), flowing);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Icon getFluidTexture(Fluid fluid, boolean flowing) {
|
||||||
|
if (fluid == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
Icon icon = flowing ? fluid.getFlowingIcon() : fluid.getStillIcon();
|
Icon icon = flowing ? fluid.getFlowingIcon() : fluid.getStillIcon();
|
||||||
if (icon == null) {
|
if (icon == null) {
|
||||||
throw new MissingFluidTextureException(fluidStack);
|
throw new MissingFluidTextureException(fluid);
|
||||||
}
|
}
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResourceLocation getFluidSheet(FluidStack liquid) {
|
public static ResourceLocation getFluidSheet(FluidStack liquid) {
|
||||||
|
if (liquid == null)
|
||||||
|
return BLOCK_TEXTURE;
|
||||||
|
return getFluidSheet(liquid.getFluid());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ResourceLocation getFluidSheet(Fluid liquid) {
|
||||||
return BLOCK_TEXTURE;
|
return BLOCK_TEXTURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ public class ItemBucketBuildcraft extends ItemBucket {
|
||||||
public ItemBucketBuildcraft(int i, int blockId) {
|
public ItemBucketBuildcraft(int i, int blockId) {
|
||||||
super(i, blockId);
|
super(i, blockId);
|
||||||
setCreativeTab(CreativeTabBuildCraft.tabBuildCraft);
|
setCreativeTab(CreativeTabBuildCraft.tabBuildCraft);
|
||||||
|
setContainerItem(Item.bucketEmpty);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -45,7 +45,6 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.packet.Packet;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.Vec3;
|
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
|
||||||
public class PipeTransportItems extends PipeTransport {
|
public class PipeTransportItems extends PipeTransport {
|
||||||
|
@ -92,7 +91,7 @@ public class PipeTransportItems extends PipeTransport {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void scheduleLoad(TravelingItem item) {
|
private void scheduleLoad(TravelingItem item) {
|
||||||
delay = 2;
|
delay = 10;
|
||||||
toLoad.add(item);
|
toLoad.add(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class GuiGateInterface extends GuiAdvancedInterface {
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
@Override
|
@Override
|
||||||
public Icon getTexture() {
|
public Icon getIcon() {
|
||||||
ITrigger trigger = pipe.gate.getTrigger(slot);
|
ITrigger trigger = pipe.gate.getTrigger(slot);
|
||||||
if (trigger != null)
|
if (trigger != null)
|
||||||
return trigger.getIcon();
|
return trigger.getIcon();
|
||||||
|
@ -97,7 +97,7 @@ public class GuiGateInterface extends GuiAdvancedInterface {
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
@Override
|
@Override
|
||||||
public Icon getTexture() {
|
public Icon getIcon() {
|
||||||
IAction action = pipe.gate.getAction(slot);
|
IAction action = pipe.gate.getAction(slot);
|
||||||
if (action != null)
|
if (action != null)
|
||||||
return action.getIcon();
|
return action.getIcon();
|
||||||
|
|
Loading…
Reference in a new issue