Search in sources :

Example 6 with View

use of com.ldtteam.blockout.views.View in project minecolonies by Minecolonies.

the class CitizenWindowUtils method createSaturationBar.

/**
 * Creates an health bar according to the citizen maxHealth and currentHealth.
 *
 * @param citizen the citizen.
 * @param view    the view to add these to.
 */
public static void createSaturationBar(final ICitizenDataView citizen, final View view) {
    view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).setAlignment(Alignment.MIDDLE_RIGHT);
    // Max saturation (Black food items).
    for (int i = 0; i < ICitizenData.MAX_SATURATION; i++) {
        @NotNull final Image saturation = new Image();
        saturation.setImage(Screen.GUI_ICONS_LOCATION, EMPTY_SATURATION_ITEM_ROW_POS, SATURATION_ICON_COLUMN, SATURATION_ICON_HEIGHT_WIDTH, SATURATION_ICON_HEIGHT_WIDTH, false);
        saturation.setPosition(getXOffsetModifier(i) * SATURATION_ICON_POS_X + SATURATION_ICON_OFFSET_X, SATURATION_ICON_POS_Y + getYOffset(i));
        view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).addChild(saturation);
    }
    // Current saturation (Full food hearts).
    int saturationPos;
    for (saturationPos = 0; saturationPos < ((int) citizen.getSaturation()); saturationPos++) {
        @NotNull final Image saturation = new Image();
        saturation.setImage(Screen.GUI_ICONS_LOCATION, FULL_SATURATION_ITEM_ROW_POS, SATURATION_ICON_COLUMN, SATURATION_ICON_HEIGHT_WIDTH, SATURATION_ICON_HEIGHT_WIDTH, false);
        saturation.setPosition(getXOffsetModifier(saturationPos) * SATURATION_ICON_POS_X + SATURATION_ICON_OFFSET_X, SATURATION_ICON_POS_Y + getYOffset(saturationPos));
        view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).addChild(saturation);
    }
    // Half food items.
    if (citizen.getSaturation() / 2 % 1 > 0) {
        @NotNull final Image saturation = new Image();
        saturation.setImage(Screen.GUI_ICONS_LOCATION, HALF_SATURATION_ITEM_ROW_POS, SATURATION_ICON_COLUMN, SATURATION_ICON_HEIGHT_WIDTH, SATURATION_ICON_HEIGHT_WIDTH, false);
        saturation.setPosition(getXOffsetModifier(saturationPos) * SATURATION_ICON_POS_X + SATURATION_ICON_OFFSET_X, SATURATION_ICON_POS_Y + getYOffset(saturationPos));
        view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).addChild(saturation);
    }
}
Also used : Image(com.ldtteam.blockout.controls.Image) View(com.ldtteam.blockout.views.View) IColonyView(com.minecolonies.api.colony.IColonyView) IBuildingView(com.minecolonies.api.colony.buildings.views.IBuildingView) ICitizenDataView(com.minecolonies.api.colony.ICitizenDataView) WorkerBuildingModuleView(com.minecolonies.coremod.colony.buildings.moduleviews.WorkerBuildingModuleView) AbstractBuildingView(com.minecolonies.coremod.colony.buildings.views.AbstractBuildingView) NotNull(org.jetbrains.annotations.NotNull)

Example 7 with View

use of com.ldtteam.blockout.views.View in project minecolonies by Minecolonies.

the class CitizenWindowUtils method createHappinessBar.

/**
 * Creates an Happiness bar according to the citizen maxHappiness and currentHappiness.
 *
 * @param citizen pointer to the citizen data view
 * @param window  pointer to the current window
 */
public static void createHappinessBar(final ICitizenDataView citizen, final AbstractWindowSkeleton window) {
    // Calculates how much percent of the next level has been completed.
    final double experienceRatio = (citizen.getHappiness() / HappinessConstants.MAX_HAPPINESS) * XP_BAR_WIDTH;
    window.findPaneOfTypeByID(WINDOW_ID_HAPPINESS_BAR, View.class).setAlignment(Alignment.MIDDLE_RIGHT);
    window.findPaneOfTypeByID(WINDOW_ID_HAPPINESS, Text.class).setText(Integer.toString((int) citizen.getHappiness()));
    @NotNull final Image xpBar = new Image();
    xpBar.setImage(Screen.GUI_ICONS_LOCATION, XP_BAR_ICON_COLUMN, HAPPINESS_BAR_EMPTY_ROW, XP_BAR_WIDTH, XP_HEIGHT, false);
    xpBar.setPosition(LEFT_BORDER_X, LEFT_BORDER_Y);
    @NotNull final Image xpBar2 = new Image();
    xpBar2.setImage(Screen.GUI_ICONS_LOCATION, XP_BAR_ICON_COLUMN_END, HAPPINESS_BAR_EMPTY_ROW, XP_BAR_ICON_COLUMN_END_WIDTH, XP_HEIGHT, false);
    xpBar2.setPosition(XP_BAR_ICON_END_OFFSET + LEFT_BORDER_X, LEFT_BORDER_Y);
    window.findPaneOfTypeByID(WINDOW_ID_HAPPINESS_BAR, View.class).addChild(xpBar);
    window.findPaneOfTypeByID(WINDOW_ID_HAPPINESS_BAR, View.class).addChild(xpBar2);
    if (experienceRatio > 0) {
        @NotNull final Image xpBarFull = new Image();
        xpBarFull.setImage(Screen.GUI_ICONS_LOCATION, XP_BAR_ICON_COLUMN, HAPPINESS_BAR_FULL_ROW, (int) experienceRatio, XP_HEIGHT, false);
        xpBarFull.setPosition(LEFT_BORDER_X, LEFT_BORDER_Y);
        window.findPaneOfTypeByID(WINDOW_ID_HAPPINESS_BAR, View.class).addChild(xpBarFull);
    }
}
Also used : Text(com.ldtteam.blockout.controls.Text) Image(com.ldtteam.blockout.controls.Image) View(com.ldtteam.blockout.views.View) IColonyView(com.minecolonies.api.colony.IColonyView) IBuildingView(com.minecolonies.api.colony.buildings.views.IBuildingView) ICitizenDataView(com.minecolonies.api.colony.ICitizenDataView) WorkerBuildingModuleView(com.minecolonies.coremod.colony.buildings.moduleviews.WorkerBuildingModuleView) AbstractBuildingView(com.minecolonies.coremod.colony.buildings.views.AbstractBuildingView) NotNull(org.jetbrains.annotations.NotNull)

Example 8 with View

use of com.ldtteam.blockout.views.View in project minecolonies by Minecolonies.

the class RequestBasedInteraction method onWindowOpened.

@Override
@OnlyIn(Dist.CLIENT)
public void onWindowOpened(final Window window, final ICitizenDataView dataView) {
    final IColony colony = IColonyManager.getInstance().getColonyView(dataView.getColonyId(), Minecraft.getInstance().player.level.dimension());
    if (colony != null) {
        final IRequest<?> request = colony.getRequestManager().getRequestForToken(token);
        if (request != null) {
            final View group = window.findPaneOfTypeByID("interactionView", View.class);
            ItemIcon icon = window.findPaneOfTypeByID("request_item", ItemIcon.class);
            if (icon == null) {
                icon = new ItemIcon();
                group.addChild(icon);
            }
            icon.setID("request_item");
            icon.setSize(32, 32);
            if (!request.getDisplayStacks().isEmpty()) {
                icon.setItem((request.getDisplayStacks().get(0)));
            }
            icon.setPosition(30, 60);
            icon.setVisible(true);
        }
    }
}
Also used : ItemIcon(com.ldtteam.blockout.controls.ItemIcon) View(com.ldtteam.blockout.views.View) OnlyIn(net.minecraftforge.api.distmarker.OnlyIn)

Example 9 with View

use of com.ldtteam.blockout.views.View in project Structurize by ldtteam.

the class WindowShapeTool method disableInputIfNecessary.

private void disableInputIfNecessary() {
    final Shape shape = Settings.instance.getShape();
    final View height = findPaneOfTypeByID(HEIGHT_VIEW, View.class);
    final View width = findPaneOfTypeByID(WIDTH_VIEW, View.class);
    final View length = findPaneOfTypeByID(LENGTH_VIEW, View.class);
    final View frequency = findPaneOfTypeByID(FREQUENCY_VIEW, View.class);
    final View equation = findPaneOfTypeByID(SHAPE_VIEW, View.class);
    height.show();
    width.show();
    length.show();
    frequency.show();
    equation.hide();
    findPaneByID(BUTTON_HOLLOW).show();
    findPaneByID(BUTTON_PICK_FILL_BLOCK).show();
    findPaneByID(RESOURCE_ICON_FILL).show();
    if (shape == Shape.RANDOM) {
        equation.show();
        frequency.hide();
        findPaneByID(BUTTON_HOLLOW).hide();
        findPaneByID(BUTTON_PICK_FILL_BLOCK).hide();
        findPaneByID(RESOURCE_ICON_FILL).hide();
    } else if (shape == Shape.SPHERE || shape == Shape.HALF_SPHERE || shape == Shape.BOWL || shape == Shape.PYRAMID || shape == Shape.UPSIDE_DOWN_PYRAMID || shape == Shape.DIAMOND) {
        width.hide();
        length.hide();
        frequency.hide();
    } else if (shape == Shape.CYLINDER || shape == Shape.CONE) {
        length.hide();
        frequency.hide();
    } else if (shape != Shape.WAVE && shape != Shape.WAVE_3D) {
        frequency.hide();
    }
}
Also used : Shape(com.ldtteam.structurize.api.util.Shape) View(com.ldtteam.blockout.views.View)

Example 10 with View

use of com.ldtteam.blockout.views.View in project minecolonies by ldtteam.

the class CitizenWindowUtils method createSaturationBar.

/**
 * Creates an health bar according to the citizen maxHealth and currentHealth.
 *
 * @param citizen the citizen.
 * @param view    the view to add these to.
 */
public static void createSaturationBar(final ICitizenDataView citizen, final View view) {
    view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).setAlignment(Alignment.MIDDLE_RIGHT);
    // Max saturation (Black food items).
    for (int i = 0; i < ICitizenData.MAX_SATURATION; i++) {
        @NotNull final Image saturation = new Image();
        saturation.setImage(Screen.GUI_ICONS_LOCATION, EMPTY_SATURATION_ITEM_ROW_POS, SATURATION_ICON_COLUMN, SATURATION_ICON_HEIGHT_WIDTH, SATURATION_ICON_HEIGHT_WIDTH, false);
        saturation.setPosition(getXOffsetModifier(i) * SATURATION_ICON_POS_X + SATURATION_ICON_OFFSET_X, SATURATION_ICON_POS_Y + getYOffset(i));
        view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).addChild(saturation);
    }
    // Current saturation (Full food hearts).
    int saturationPos;
    for (saturationPos = 0; saturationPos < ((int) citizen.getSaturation()); saturationPos++) {
        @NotNull final Image saturation = new Image();
        saturation.setImage(Screen.GUI_ICONS_LOCATION, FULL_SATURATION_ITEM_ROW_POS, SATURATION_ICON_COLUMN, SATURATION_ICON_HEIGHT_WIDTH, SATURATION_ICON_HEIGHT_WIDTH, false);
        saturation.setPosition(getXOffsetModifier(saturationPos) * SATURATION_ICON_POS_X + SATURATION_ICON_OFFSET_X, SATURATION_ICON_POS_Y + getYOffset(saturationPos));
        view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).addChild(saturation);
    }
    // Half food items.
    if (citizen.getSaturation() / 2 % 1 > 0) {
        @NotNull final Image saturation = new Image();
        saturation.setImage(Screen.GUI_ICONS_LOCATION, HALF_SATURATION_ITEM_ROW_POS, SATURATION_ICON_COLUMN, SATURATION_ICON_HEIGHT_WIDTH, SATURATION_ICON_HEIGHT_WIDTH, false);
        saturation.setPosition(getXOffsetModifier(saturationPos) * SATURATION_ICON_POS_X + SATURATION_ICON_OFFSET_X, SATURATION_ICON_POS_Y + getYOffset(saturationPos));
        view.findPaneOfTypeByID(WINDOW_ID_SATURATION_BAR, View.class).addChild(saturation);
    }
}
Also used : Image(com.ldtteam.blockout.controls.Image) View(com.ldtteam.blockout.views.View) IColonyView(com.minecolonies.api.colony.IColonyView) IBuildingView(com.minecolonies.api.colony.buildings.views.IBuildingView) ICitizenDataView(com.minecolonies.api.colony.ICitizenDataView) WorkerBuildingModuleView(com.minecolonies.coremod.colony.buildings.moduleviews.WorkerBuildingModuleView) AbstractBuildingView(com.minecolonies.coremod.colony.buildings.views.AbstractBuildingView) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

View (com.ldtteam.blockout.views.View)10 ICitizenDataView (com.minecolonies.api.colony.ICitizenDataView)6 Image (com.ldtteam.blockout.controls.Image)5 IColonyView (com.minecolonies.api.colony.IColonyView)4 IBuildingView (com.minecolonies.api.colony.buildings.views.IBuildingView)4 WorkerBuildingModuleView (com.minecolonies.coremod.colony.buildings.moduleviews.WorkerBuildingModuleView)4 AbstractBuildingView (com.minecolonies.coremod.colony.buildings.views.AbstractBuildingView)4 NotNull (org.jetbrains.annotations.NotNull)4 Text (com.ldtteam.blockout.controls.Text)3 ItemIcon (com.ldtteam.blockout.controls.ItemIcon)2 TranslationTextComponent (net.minecraft.util.text.TranslationTextComponent)2 OnlyIn (net.minecraftforge.api.distmarker.OnlyIn)2 Pane (com.ldtteam.blockout.Pane)1 Button (com.ldtteam.blockout.controls.Button)1 Shape (com.ldtteam.structurize.api.util.Shape)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 Direction (net.minecraft.util.Direction)1