Search in sources :

Example 16 with Size

use of gregtech.api.util.Size in project GregTech by GregTechCE.

the class TextureArea method createOrientation.

public static Transformation createOrientation(Size areaSize, int orientation) {
    Transformation transformation = new Rotation(Math.toRadians(orientation * 90.0), 0.0, 0.0, 1.0).at(new Vector3(areaSize.width / 2.0, areaSize.height / 2.0, 0.0));
    Size orientedSize = transformSize(transformation, areaSize);
    double offsetX = (areaSize.width - orientedSize.width) / 2.0;
    double offsetY = (areaSize.height - orientedSize.height) / 2.0;
    return transformation.with(new Translation(-offsetX, -offsetY, 0.0));
}
Also used : Transformation(codechicken.lib.vec.Transformation) Translation(codechicken.lib.vec.Translation) Size(gregtech.api.util.Size) Vector3(codechicken.lib.vec.Vector3) Rotation(codechicken.lib.vec.Rotation)

Example 17 with Size

use of gregtech.api.util.Size in project GregTech by GregTechCE.

the class TextureArea method transformSize.

public static Size transformSize(Transformation transformation, Size position) {
    Vector3 sizeVector = new Vector3(position.width, position.height, 0.0);
    Vector3 zeroVector = new Vector3(0.0, 0.0, 0.0);
    transformation.apply(zeroVector);
    transformation.apply(sizeVector);
    sizeVector.subtract(zeroVector);
    return new Size((int) Math.abs(sizeVector.x), (int) Math.abs(sizeVector.y));
}
Also used : Size(gregtech.api.util.Size) Vector3(codechicken.lib.vec.Vector3)

Example 18 with Size

use of gregtech.api.util.Size in project GregTech by GregTechCE.

the class AbstractWidgetGroup method computeDynamicSize.

protected Size computeDynamicSize() {
    Position selfPosition = getPosition();
    Size currentSize = getSize();
    for (Widget widget : widgets) {
        Position size = widget.getPosition().add(widget.getSize()).subtract(selfPosition);
        if (size.x > currentSize.width) {
            currentSize = new Size(size.x, currentSize.height);
        }
        if (size.y > currentSize.height) {
            currentSize = new Size(currentSize.width, size.y);
        }
    }
    return currentSize;
}
Also used : Position(gregtech.api.util.Position) Size(gregtech.api.util.Size) INativeWidget(gregtech.api.gui.INativeWidget) Widget(gregtech.api.gui.Widget)

Example 19 with Size

use of gregtech.api.util.Size in project GregTech by GregTechCE.

the class TextFieldWidget method onSizeUpdate.

@Override
protected void onSizeUpdate() {
    if (isClientSide() && textField != null) {
        Size size = getSize();
        GuiTextField textField = this.textField;
        textField.width = size.width;
        textField.height = size.height;
    }
}
Also used : Size(gregtech.api.util.Size) GuiTextField(net.minecraft.client.gui.GuiTextField)

Example 20 with Size

use of gregtech.api.util.Size in project GregTech by GregTechCE.

the class ComponentGridWidget method canPlaceWidgetAt.

public boolean canPlaceWidgetAt(int x, int y, GridElementDef elementDef, ElementOrientation orientation) {
    Size actualSize = elementDef.getSizeWithOrientation(orientation);
    for (int i = 0; i < actualSize.width; i++) {
        for (int j = 0; j < actualSize.height; j++) {
            int positionX = x + i;
            int positionY = y + j;
            if (widgetBySlotIndex.containsKey(index(positionX, positionY)) || !isValidPosition(positionX, positionY)) {
                return false;
            }
        }
    }
    return true;
}
Also used : Size(gregtech.api.util.Size)

Aggregations

Size (gregtech.api.util.Size)30 Position (gregtech.api.util.Position)19 FontRenderer (net.minecraft.client.gui.FontRenderer)8 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)6 Vector3 (codechicken.lib.vec.Vector3)3 SizedTextureArea (gregtech.api.gui.resources.SizedTextureArea)3 Widget (gregtech.api.gui.Widget)2 TextureArea (gregtech.api.gui.resources.TextureArea)2 PositionedRect (gregtech.api.util.PositionedRect)2 IndexedCuboid6 (codechicken.lib.raytracer.IndexedCuboid6)1 Cuboid6 (codechicken.lib.vec.Cuboid6)1 Rotation (codechicken.lib.vec.Rotation)1 Transformation (codechicken.lib.vec.Transformation)1 Translation (codechicken.lib.vec.Translation)1 INativeWidget (gregtech.api.gui.INativeWidget)1 ArrayList (java.util.ArrayList)1 GuiTextField (net.minecraft.client.gui.GuiTextField)1