Fix drawing order by using Linked maps in layouts

This commit is contained in:
johni0702
2015-10-10 17:29:28 +02:00
parent f2581ff123
commit efde8fde67
4 changed files with 8 additions and 8 deletions

View File

@@ -22,7 +22,6 @@
package de.johni0702.minecraft.gui.layout;
import com.google.common.collect.Maps;
import de.johni0702.minecraft.gui.container.GuiContainer;
import de.johni0702.minecraft.gui.element.GuiElement;
import org.apache.commons.lang3.tuple.Pair;
@@ -32,11 +31,12 @@ import org.lwjgl.util.ReadableDimension;
import org.lwjgl.util.ReadablePoint;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
public abstract class CustomLayout<T extends GuiContainer<T>> implements Layout {
private final Layout parent;
private Map<GuiElement, Pair<Point, Dimension>> result = Maps.newHashMap();
private Map<GuiElement, Pair<Point, Dimension>> result = new LinkedHashMap<>();
public CustomLayout() {
this(null);

View File

@@ -23,7 +23,6 @@
package de.johni0702.minecraft.gui.layout;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import de.johni0702.minecraft.gui.container.GuiContainer;
import de.johni0702.minecraft.gui.element.GuiElement;
import lombok.AllArgsConstructor;
@@ -38,6 +37,7 @@ import org.lwjgl.util.ReadablePoint;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class GridLayout implements Layout {
@@ -63,7 +63,7 @@ public class GridLayout implements Layout {
}
int cellWidth = (size.getWidth() + spacingX) / columns - spacingX;
int cellHeight = (size.getHeight() + spacingY) / rows - spacingY;
Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> map = Maps.newHashMap();
Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> map = new LinkedHashMap<>();
Iterator<Map.Entry<GuiElement, LayoutData>> iter = container.getElements().entrySet().iterator();
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {

View File

@@ -22,7 +22,6 @@
package de.johni0702.minecraft.gui.layout;
import com.google.common.collect.Maps;
import de.johni0702.minecraft.gui.container.GuiContainer;
import de.johni0702.minecraft.gui.element.GuiElement;
import lombok.AllArgsConstructor;
@@ -35,6 +34,7 @@ import org.lwjgl.util.Point;
import org.lwjgl.util.ReadableDimension;
import org.lwjgl.util.ReadablePoint;
import java.util.LinkedHashMap;
import java.util.Map;
public class HorizontalLayout implements Layout {
@@ -59,7 +59,7 @@ public class HorizontalLayout implements Layout {
public Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> layOut(GuiContainer<?> container, ReadableDimension size) {
int x = 0;
int spacing = 0;
Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> map = Maps.newHashMap();
Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> map = new LinkedHashMap<>();
for (Map.Entry<GuiElement, LayoutData> entry : container.getElements().entrySet()) {
x += spacing;
spacing = this.spacing;

View File

@@ -22,7 +22,6 @@
package de.johni0702.minecraft.gui.layout;
import com.google.common.collect.Maps;
import de.johni0702.minecraft.gui.container.GuiContainer;
import de.johni0702.minecraft.gui.element.GuiElement;
import lombok.AllArgsConstructor;
@@ -35,6 +34,7 @@ import org.lwjgl.util.Point;
import org.lwjgl.util.ReadableDimension;
import org.lwjgl.util.ReadablePoint;
import java.util.LinkedHashMap;
import java.util.Map;
public class VerticalLayout implements Layout {
@@ -59,7 +59,7 @@ public class VerticalLayout implements Layout {
public Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> layOut(GuiContainer<?> container, ReadableDimension size) {
int y = 0;
int spacing = 0;
Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> map = Maps.newHashMap();
Map<GuiElement, Pair<ReadablePoint, ReadableDimension>> map = new LinkedHashMap<>();
for (Map.Entry<GuiElement, LayoutData> entry : container.getElements().entrySet()) {
y += spacing;
spacing = this.spacing;