Search in sources :

Example 11 with ISprite

use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.

the class LedgerTablePower method drawIcon.

@Override
protected void drawIcon(double x, double y) {
    ISprite sprite = tile.avgPowerClient > 0 ? BCLibSprites.ENGINE_ACTIVE : BCLibSprites.ENGINE_INACTIVE;
    GuiIcon.draw(sprite, x, y, x + 16, y + 16);
}
Also used : ISprite(buildcraft.api.core.render.ISprite)

Example 12 with ISprite

use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.

the class ElementTypeSprite method deserialize0.

@Override
public IGuiElement deserialize0(BuildCraftJsonGui gui, IGuiPosition parent, JsonGuiInfo info, JsonGuiElement json) {
    FunctionContext ctx = createContext(json);
    inheritProperty(json, "pos[0]", "area[0]");
    inheritProperty(json, "pos[1]", "area[1]");
    inheritProperty(json, "size[0]", "area[2]");
    inheritProperty(json, "size[1]", "area[3]");
    inheritProperty(json, "source.pos[0]", "source.area[0]");
    inheritProperty(json, "source.pos[1]", "source.area[1]");
    inheritProperty(json, "source.size[0]", "source.area[2]");
    inheritProperty(json, "source.size[1]", "source.area[3]");
    inheritProperty(json, "area", "source.area");
    inheritProperty(json, "area[0]", "source.area[0]");
    inheritProperty(json, "area[1]", "source.area[1]");
    inheritProperty(json, "area[2]", "source.area[2]");
    inheritProperty(json, "area[3]", "source.area[3]");
    IGuiArea area = resolveArea(json, "area", parent, ctx);
    IGuiArea srcArea = resolveArea(json, "source.area", PositionAbsolute.ORIGIN, ctx);
    INodeBoolean visible = getEquationBool(json, "visible", ctx, true);
    boolean foreground = resolveEquationBool(json, "foreground", ctx, false);
    // TODO: Allow the source sprite to be changing as well!
    SrcTexture tex = resolveTexture(info, json, "source");
    String origin = tex.origin;
    int texSize = tex.texSize;
    if (// 
    !json.properties.containsKey("source.area[2]") && // 
    !json.properties.containsKey("source.area[3]") && !json.properties.containsKey("source.area")) {
        srcArea = new GuiRectangle(texSize, texSize);
    }
    ISprite sprite = gui.properties.get(origin, ISprite.class);
    if (sprite == null) {
        ResourceLocation loc = SpriteUtil.transformLocation(new ResourceLocation(origin));
        sprite = new SpriteRaw(loc, 0, 0, 1, 1);
    }
    if (srcArea instanceof GuiRectangle) {
        double u = srcArea.getX();
        double v = srcArea.getY();
        double uSize = srcArea.getWidth();
        double vSize = srcArea.getHeight();
        sprite = GuiUtil.subRelative(sprite, u, v, uSize, vSize, texSize);
    } else {
        final IGuiArea a = srcArea;
        INodeDouble u = () -> a.getX() / texSize;
        INodeDouble v = () -> a.getY() / texSize;
        INodeDouble uSize = () -> a.getEndX() / texSize;
        INodeDouble vSize = () -> a.getEndY() / texSize;
        sprite = new SubSpriteChanging(sprite, u, v, uSize, vSize);
    }
    ISimpleDrawable icon = new GuiSpriteScaled(sprite, area.offsetToOrigin());
    GuiElementDrawable element = new GuiElementDrawable(gui, area, icon, foreground, visible);
    return element;
}
Also used : IGuiArea(buildcraft.lib.gui.pos.IGuiArea) ISimpleDrawable(buildcraft.lib.gui.ISimpleDrawable) GuiRectangle(buildcraft.lib.gui.pos.GuiRectangle) ISprite(buildcraft.api.core.render.ISprite) GuiElementDrawable(buildcraft.lib.gui.elem.GuiElementDrawable) INodeBoolean(buildcraft.lib.expression.api.IExpressionNode.INodeBoolean) FunctionContext(buildcraft.lib.expression.FunctionContext) SubSpriteChanging(buildcraft.lib.client.sprite.SubSpriteChanging) INodeDouble(buildcraft.lib.expression.api.IExpressionNode.INodeDouble) ResourceLocation(net.minecraft.util.ResourceLocation) GuiSpriteScaled(buildcraft.lib.gui.GuiSpriteScaled) SpriteRaw(buildcraft.lib.client.sprite.SpriteRaw)

Example 13 with ISprite

use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.

the class LedgerEngine method drawIcon.

@Override
protected void drawIcon(double x, double y) {
    ISprite sprite;
    switch(engine.getPowerStage()) {
        case OVERHEAT:
            sprite = BCLibSprites.ENGINE_OVERHEAT;
            break;
        case RED:
        case YELLOW:
            sprite = BCLibSprites.ENGINE_WARM;
            break;
        default:
            sprite = engine.isEngineOn() ? BCLibSprites.ENGINE_ACTIVE : BCLibSprites.ENGINE_INACTIVE;
    }
    GuiIcon.draw(sprite, x, y, x + 16, y + 16);
}
Also used : ISprite(buildcraft.api.core.render.ISprite)

Example 14 with ISprite

use of buildcraft.api.core.render.ISprite in project BuildCraft by BuildCraft.

the class ElementTypeButton method resolveDrawable.

private static ISimpleDrawable resolveDrawable(FunctionContext ctx, JsonGuiInfo guiInfo, JsonGuiElement json, BuildCraftJsonGui gui, int sizeX, int sizeY, String key) {
    double[] uvs = new double[4];
    for (int i = 0; i < 4; i++) {
        uvs[i] = resolveEquationDouble(json, key + "[" + i + "]", ctx);
    }
    SrcTexture texture = resolveTexture(guiInfo, json, key);
    ISprite sprite = gui.properties.get(texture.origin, ISprite.class);
    if (sprite != null) {
        sprite = GuiUtil.subRelative(sprite, uvs[0], uvs[1], uvs[2], uvs[3], texture.texSize);
    } else {
        ResourceLocation loc = SpriteUtil.transformLocation(new ResourceLocation(texture.origin));
        sprite = new SpriteRaw(loc, uvs[0], uvs[1], uvs[2], uvs[3], texture.texSize);
    }
    return new GuiSpriteScaled(sprite, sizeX, sizeY);
}
Also used : ISprite(buildcraft.api.core.render.ISprite) ResourceLocation(net.minecraft.util.ResourceLocation) GuiSpriteScaled(buildcraft.lib.gui.GuiSpriteScaled) SpriteRaw(buildcraft.lib.client.sprite.SpriteRaw)

Aggregations

ISprite (buildcraft.api.core.render.ISprite)14 GuiIcon (buildcraft.lib.gui.GuiIcon)3 ResourceLocation (net.minecraft.util.ResourceLocation)3 EnumPipePart (buildcraft.api.core.EnumPipePart)2 IStatementParameter (buildcraft.api.statements.IStatementParameter)2 LaserRow (buildcraft.lib.client.render.laser.LaserData_BC8.LaserRow)2 SpriteRaw (buildcraft.lib.client.sprite.SpriteRaw)2 GuiSpriteScaled (buildcraft.lib.gui.GuiSpriteScaled)2 IGuiElement (buildcraft.lib.gui.IGuiElement)2 ISimpleDrawable (buildcraft.lib.gui.ISimpleDrawable)2 GuiElementDrawable (buildcraft.lib.gui.elem.GuiElementDrawable)2 GuiRectangle (buildcraft.lib.gui.pos.GuiRectangle)2 IGuiArea (buildcraft.lib.gui.pos.IGuiArea)2 StatementWrapper (buildcraft.lib.statement.StatementWrapper)2 SlotIndex (buildcraft.transport.pipe.behaviour.PipeBehaviourEmzuli.SlotIndex)2 BCCoreSprites (buildcraft.core.BCCoreSprites)1 BCLibSprites (buildcraft.lib.BCLibSprites)1 SubSpriteChanging (buildcraft.lib.client.sprite.SubSpriteChanging)1 FunctionContext (buildcraft.lib.expression.FunctionContext)1 INodeBoolean (buildcraft.lib.expression.api.IExpressionNode.INodeBoolean)1