Fix drawing order by using Linked maps in layouts
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user