package jsettlers.graphics.map.controls.original; import jsettlers.common.images.EImageLinkType; import jsettlers.common.images.OriginalImageLink; import jsettlers.graphics.map.controls.original.ControlPanelLayoutProperties.Resolution; public class MiniMapLayoutProperties { private static final int DECORATIONS_FOLDER_INDEX = 4; private static final EImageLinkType DECORATIONS_SUBFOLDER = EImageLinkType.SETTLER; private static final int BUTTONS_FOLDER_INDEX = 3; private static final EImageLinkType BUTTONS_SUBFOLDER = EImageLinkType.GUI; private static final int LEFT_DECORATION_IMAGE_INDEX = 0; private static final int RIGHT_DECORATION_IMAGE_INDEX = 1; public final OriginalImageLink RIGHT_DECORATION; public final OriginalImageLink LEFT_DECORATION; public final OriginalImageLink IMAGELINK_BUTTON_CHAT_ACTIVE; public final OriginalImageLink IMAGELINK_BUTTON_CHAT_INACTIVE; public final float ASPECT_RATIO; public final float MAP_WIDTH; public final float MAP_HEIGHT; public final float MAP_BOTTOM; public final float MAP_LEFT; public final float BUTTON_WIDTH; public final float BUTTON_HEIGHT; public final float BUTTON_CHAT_TOP; public final float BUTTON_CHAT_LEFT; public final float BUTTON_FEATURES_TOP; public final float BUTTON_FEATURES_LEFT; public final float BUTTON_SETTLERS_TOP; public final float BUTTON_SETTLERS_LEFT; public final float BUTTON_BUILDINGS_TOP; public final float BUTTON_BUILDINGS_LEFT; public final float RIGHT_DECORATION_LEFT; // Raw image dimension. private final float LEFT_DECORATION_WIDTH_PX; private final float LEFT_DECORATION_HEIGHT_PX; private final float BUTTON_WIDTH_PX; private final float BUTTON_HEIGHT_PX; private final float BUTTON_CHAT_TOP_PX; private final float BUTTON_CHAT_LEFT_PX; private final float BUTTON_FEATURES_TOP_PX; private final float BUTTON_FEATURES_LEFT_PX; private final float BUTTON_SETTLERS_TOP_PX; private final float BUTTON_SETTLERS_LEFT_PX; private final float BUTTON_BUILDINGS_TOP_PX; private final float BUTTON_BUILDINGS_LEFT_PX; private final float RIGHT_DECORATION_WIDTH_PX; // private final float RIGHT_DECORATION_HEIGHT_PX; private final float miniMap_Top_px; private final float miniMap_Bottom_px; private final float leftDecoration_MiniMapTopLeftCorner_Left_px; private final float leftDecoration_MiniMapBottomLeftCorner_Left_px; private final float leftDecoration_MiniMapBottomRightCorner_Right_px; private final float rightDecoration_MiniMapTopRightCorner_Right_px; public static float getStride(float width) { return width / 2f; // Changing to half the width so that the stride (a width-wise distance) scales proportionately to the total width. } public MiniMapLayoutProperties(Resolution resolution) { int imageSequenceNumber; switch (resolution) { case HEIGHT480: LEFT_DECORATION_WIDTH_PX = 136; LEFT_DECORATION_HEIGHT_PX = 142; BUTTON_WIDTH_PX = 18; BUTTON_HEIGHT_PX = 15; BUTTON_CHAT_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 5; BUTTON_CHAT_LEFT_PX = 5; BUTTON_FEATURES_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 8; BUTTON_FEATURES_LEFT_PX = 35; BUTTON_SETTLERS_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 26; BUTTON_SETTLERS_LEFT_PX = 26; BUTTON_BUILDINGS_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 45; BUTTON_BUILDINGS_LEFT_PX = 16; RIGHT_DECORATION_WIDTH_PX = 71; // RIGHT_DECORATION_HEIGHT_PX = 142; miniMap_Top_px = 10; miniMap_Bottom_px = 4; leftDecoration_MiniMapTopLeftCorner_Left_px = 68; leftDecoration_MiniMapBottomLeftCorner_Left_px = 4; leftDecoration_MiniMapBottomRightCorner_Right_px = 4; rightDecoration_MiniMapTopRightCorner_Right_px = 11; imageSequenceNumber = 0; break; case HEIGHT600: LEFT_DECORATION_WIDTH_PX = 176; LEFT_DECORATION_HEIGHT_PX = 170; BUTTON_WIDTH_PX = 24; BUTTON_HEIGHT_PX = 20; BUTTON_CHAT_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 5; BUTTON_CHAT_LEFT_PX = 5; BUTTON_FEATURES_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 9; BUTTON_FEATURES_LEFT_PX = 44; BUTTON_SETTLERS_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 32; BUTTON_SETTLERS_LEFT_PX = 32; BUTTON_BUILDINGS_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 55; BUTTON_BUILDINGS_LEFT_PX = 22; RIGHT_DECORATION_WIDTH_PX = 84; // RIGHT_DECORATION_HEIGHT_PX = 170; miniMap_Top_px = 5; miniMap_Bottom_px = 5; leftDecoration_MiniMapTopLeftCorner_Left_px = 88; leftDecoration_MiniMapBottomLeftCorner_Left_px = 8; leftDecoration_MiniMapBottomRightCorner_Right_px = 8; rightDecoration_MiniMapTopRightCorner_Right_px = 12; imageSequenceNumber = 1; break; default: case HEIGHT768: LEFT_DECORATION_WIDTH_PX = 216; LEFT_DECORATION_HEIGHT_PX = 224; BUTTON_WIDTH_PX = 30; BUTTON_HEIGHT_PX = 25; BUTTON_CHAT_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 8; BUTTON_CHAT_LEFT_PX = 8; BUTTON_FEATURES_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 13; BUTTON_FEATURES_LEFT_PX = 57; BUTTON_SETTLERS_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 43; BUTTON_SETTLERS_LEFT_PX = 41; BUTTON_BUILDINGS_TOP_PX = LEFT_DECORATION_HEIGHT_PX - 72; BUTTON_BUILDINGS_LEFT_PX = 25; RIGHT_DECORATION_WIDTH_PX = 117; // RIGHT_DECORATION_HEIGHT_PX = 224; miniMap_Top_px = 8; miniMap_Bottom_px = 8; leftDecoration_MiniMapTopLeftCorner_Left_px = 108; leftDecoration_MiniMapBottomLeftCorner_Left_px = 4; leftDecoration_MiniMapBottomRightCorner_Right_px = 2; rightDecoration_MiniMapTopRightCorner_Right_px = 15; imageSequenceNumber = 2; } // Adjust the decoration proportions to fit the parallelogram shape of the minimap. float stride = getStride( LEFT_DECORATION_WIDTH_PX - leftDecoration_MiniMapBottomLeftCorner_Left_px - leftDecoration_MiniMapBottomRightCorner_Right_px); float imageStride = leftDecoration_MiniMapTopLeftCorner_Left_px - leftDecoration_MiniMapBottomLeftCorner_Left_px; float LEFT_DECORATION_HSTRETCH = stride / imageStride; // Adjust the right hand decoration. imageStride = (leftDecoration_MiniMapBottomRightCorner_Right_px * LEFT_DECORATION_HSTRETCH) + (RIGHT_DECORATION_WIDTH_PX - rightDecoration_MiniMapTopRightCorner_Right_px); float RIGHT_DECORATION_HSTRETCH = stride / imageStride; ASPECT_RATIO = ((LEFT_DECORATION_HSTRETCH * LEFT_DECORATION_WIDTH_PX) + (RIGHT_DECORATION_HSTRETCH * RIGHT_DECORATION_WIDTH_PX)) / LEFT_DECORATION_HEIGHT_PX; MAP_WIDTH = (LEFT_DECORATION_WIDTH_PX - leftDecoration_MiniMapBottomLeftCorner_Left_px - leftDecoration_MiniMapBottomRightCorner_Right_px) / (LEFT_DECORATION_WIDTH_PX + (RIGHT_DECORATION_WIDTH_PX * (RIGHT_DECORATION_HSTRETCH / LEFT_DECORATION_HSTRETCH))); MAP_HEIGHT = (LEFT_DECORATION_HEIGHT_PX - miniMap_Top_px - miniMap_Bottom_px) / LEFT_DECORATION_HEIGHT_PX; MAP_BOTTOM = miniMap_Bottom_px / LEFT_DECORATION_HEIGHT_PX; MAP_LEFT = leftDecoration_MiniMapBottomLeftCorner_Left_px / (LEFT_DECORATION_WIDTH_PX + (RIGHT_DECORATION_WIDTH_PX * (RIGHT_DECORATION_HSTRETCH / LEFT_DECORATION_HSTRETCH))); RIGHT_DECORATION_LEFT = LEFT_DECORATION_WIDTH_PX / (LEFT_DECORATION_WIDTH_PX + (RIGHT_DECORATION_WIDTH_PX * (RIGHT_DECORATION_HSTRETCH / LEFT_DECORATION_HSTRETCH))); BUTTON_HEIGHT = BUTTON_HEIGHT_PX / LEFT_DECORATION_HEIGHT_PX; BUTTON_WIDTH = BUTTON_WIDTH_PX / LEFT_DECORATION_WIDTH_PX; BUTTON_CHAT_TOP = BUTTON_CHAT_TOP_PX / LEFT_DECORATION_HEIGHT_PX; BUTTON_CHAT_LEFT = BUTTON_CHAT_LEFT_PX / LEFT_DECORATION_WIDTH_PX; BUTTON_FEATURES_TOP = BUTTON_FEATURES_TOP_PX / LEFT_DECORATION_HEIGHT_PX; BUTTON_FEATURES_LEFT = BUTTON_FEATURES_LEFT_PX / LEFT_DECORATION_WIDTH_PX; BUTTON_SETTLERS_TOP = BUTTON_SETTLERS_TOP_PX / LEFT_DECORATION_HEIGHT_PX; BUTTON_SETTLERS_LEFT = BUTTON_SETTLERS_LEFT_PX / LEFT_DECORATION_WIDTH_PX; BUTTON_BUILDINGS_TOP = BUTTON_BUILDINGS_TOP_PX / LEFT_DECORATION_HEIGHT_PX; BUTTON_BUILDINGS_LEFT = BUTTON_BUILDINGS_LEFT_PX / LEFT_DECORATION_WIDTH_PX; LEFT_DECORATION = new OriginalImageLink(DECORATIONS_SUBFOLDER, DECORATIONS_FOLDER_INDEX, LEFT_DECORATION_IMAGE_INDEX, imageSequenceNumber); RIGHT_DECORATION = new OriginalImageLink(DECORATIONS_SUBFOLDER, DECORATIONS_FOLDER_INDEX, RIGHT_DECORATION_IMAGE_INDEX, imageSequenceNumber); IMAGELINK_BUTTON_CHAT_ACTIVE = new OriginalImageLink(BUTTONS_SUBFOLDER, BUTTONS_FOLDER_INDEX, 318, imageSequenceNumber); IMAGELINK_BUTTON_CHAT_INACTIVE = new OriginalImageLink(BUTTONS_SUBFOLDER, BUTTONS_FOLDER_INDEX, 321, imageSequenceNumber); } }