use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.
the class CompiledLaserRow method texV.
private double texV(double between) {
ISprite sprite = sprites[currentRowIndex];
LaserRow row = rows[currentRowIndex];
if (between == 0)
return sprite.getInterpV(row.vMin);
if (between == 1)
return sprite.getInterpV(row.vMax);
double interp = row.vMin * (1 - between) + row.vMax * between;
return sprite.getInterpV(interp);
}
use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.
the class PipeWireRenderer method compileQuads.
private static int compileQuads(MutableQuad[] quads, EnumDyeColor colour, boolean isOn) {
int index = GlStateManager.glGenLists(1);
GlStateManager.glNewList(index, GL11.GL_COMPILE);
ISprite sprite = wireSprites.get(colour);
/*
* Currently pipe wire only supports two states - on or off. However all the textures supply 16 different
* states, which could (possibly) be used for making pipe wire use all 16 states that normal redstone does. This
* just opens up the possibility in the future.
*/
renderQuads(quads, sprite, isOn ? 15 : 0);
GL11.glEndList();
return index;
}
use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.
the class LedgerHelp method drawIcon.
@Override
protected void drawIcon(double x, double y) {
if (!init) {
init = true;
List<HelpPosition> elements = new ArrayList<>();
for (IGuiElement element : gui.shownElements) {
element.addHelpElements(elements);
}
foundAny = elements.size() > 0;
}
ISprite sprite = foundAny ? BCLibSprites.HELP : BCLibSprites.WARNING_MINOR;
GuiIcon.draw(sprite, x, y, x + 16, y + 16);
}
use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.
the class GuiEmzuliPipe_BC8 method drawBackgroundLayer.
@Override
protected void drawBackgroundLayer(float partialTicks) {
ICON_GUI.drawAt(mainGui.rootElement);
SlotIndex currentSlot = container.behaviour.getCurrentSlot();
for (SlotIndex index : container.behaviour.getActiveSlots()) {
boolean current = index == currentSlot;
int x = (index.ordinal() < 2 ? 4 : 155);
int y = (index.ordinal() % 2 == 0 ? 21 : 49);
ISprite sprite = current ? BCCoreSprites.TRIGGER_TRUE : BCLibSprites.LOCK;
GuiIcon.drawAt(sprite, mainGui.rootElement.getX() + x, mainGui.rootElement.getY() + y, 16);
}
}
use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.
the class GuiEmzuliPipe_BC8 method addButton.
private void addButton(SlotIndex index, int x, int y) {
Supplier<EnumDyeColor> getter = () -> container.behaviour.slotColours.get(index);
Consumer<EnumDyeColor> setter = c -> container.paintWidgets.get(index).setColour(c);
IGuiPosition elem = mainGui.rootElement.offset(x, y);
GuiButtonDrawable button = new GuiButtonDrawable(mainGui, index.name(), elem, PAINT_BUTTON_BUILDER);
button.registerListener((b, key) -> {
final EnumDyeColor old = getter.get();
EnumDyeColor nColour;
switch(key) {
case 0:
{
nColour = ColourUtil.getNextOrNull(old);
break;
}
case 1:
{
nColour = ColourUtil.getPrevOrNull(old);
break;
}
case 2:
{
nColour = null;
break;
}
default:
{
return;
}
}
setter.accept(nColour);
});
mainGui.shownElements.add(button);
// Button paintbrush
IGuiArea area = new GuiRectangle(20, 20).offset(elem);
ISimpleDrawable paintIcon = (px, py) -> {
EnumDyeColor colour = getter.get();
if (colour == null) {
ICON_NO_PAINT.drawAt(px + 2, py + 2);
} else {
ISprite sprite = BCTransportSprites.ACTION_PIPE_COLOUR[colour.ordinal()];
GuiIcon.drawAt(sprite, px + 2, py + 2, 16);
}
};
mainGui.shownElements.add(new GuiElementDrawable(mainGui, area, paintIcon, false));
ITooltipElement tooltips = list -> {
EnumDyeColor colour = getter.get();
String line;
if (colour == null) {
line = LocaleUtil.localize("gui.pipes.emzuli.nopaint");
} else {
line = LocaleUtil.localize("gui.pipes.emzuli.paint", ColourUtil.getTextFullTooltip(colour));
}
list.add(new ToolTip(line));
};
mainGui.shownElements.add(new GuiElementToolTip(mainGui, area, tooltips));
}
Aggregations