Renamed the commonly used Position POJO into AdvancedPosition, as it also hold pitch, yaw and roll

Made GuiDropdown only accept instances of GuiEntryListEntry to avoid unneccessary toString() methods returning the name
Added GuiEntryListValueEntry which holds a Value and a Name to be displayed
Continued work on GuiObjectManager
This commit is contained in:
CrushedPixel
2015-07-10 04:27:15 +02:00
parent 30ebfe96bd
commit ef39c7466d
28 changed files with 260 additions and 164 deletions

View File

@@ -2,6 +2,7 @@ package eu.crushedpixel.replaymod.gui.elements;
import eu.crushedpixel.replaymod.ReplayMod;
import eu.crushedpixel.replaymod.gui.elements.listeners.SelectionListener;
import eu.crushedpixel.replaymod.holders.GuiEntryListEntry;
import eu.crushedpixel.replaymod.utils.MouseUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
@@ -13,7 +14,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class GuiDropdown<T> extends GuiAdvancedTextField {
public class GuiDropdown<T extends GuiEntryListEntry> extends GuiAdvancedTextField {
private final int visibleDropout;
private final int dropoutElementHeight = 14;
@@ -38,7 +39,7 @@ public class GuiDropdown<T> extends GuiAdvancedTextField {
public void drawTextBox() {
if(elements.size() > selectionIndex && selectionIndex >= 0) {
setText(mc.fontRendererObj.trimStringToWidth(
elements.get(selectionIndex).toString(), width - 8));
elements.get(selectionIndex).getDisplayString(), width - 8));
} else {
setText("");
}
@@ -83,7 +84,7 @@ public class GuiDropdown<T> extends GuiAdvancedTextField {
continue;
}
drawHorizontalLine(xPosition, xPosition + width, yPosition + height + y, -6250336);
String toWrite = mc.fontRendererObj.trimStringToWidth(obj.toString(), width - 8);
String toWrite = mc.fontRendererObj.trimStringToWidth(obj.getDisplayString(), width - 8);
drawString(mc.fontRendererObj, toWrite, xPosition + 4, yPosition + height + y + 4, Color.WHITE.getRGB());
if(MouseUtils.isMouseWithinBounds(xPosition, yPosition + height + y, width, dropoutElementHeight)) {

View File

@@ -2,7 +2,7 @@ package eu.crushedpixel.replaymod.gui.elements.timelines;
import eu.crushedpixel.replaymod.gui.GuiEditKeyframe;
import eu.crushedpixel.replaymod.holders.Keyframe;
import eu.crushedpixel.replaymod.holders.Position;
import eu.crushedpixel.replaymod.holders.AdvancedPosition;
import eu.crushedpixel.replaymod.holders.TimestampValue;
import eu.crushedpixel.replaymod.replay.ReplayHandler;
import net.minecraft.client.Minecraft;
@@ -113,9 +113,9 @@ public class GuiKeyframeTimeline extends GuiTimeline {
//iterate over keyframes to find spectator segments
if(placeKeyframes) {
ListIterator<Keyframe<Position>> iterator = ReplayHandler.getPositionKeyframes().listIterator();
ListIterator<Keyframe<AdvancedPosition>> iterator = ReplayHandler.getPositionKeyframes().listIterator();
while(iterator.hasNext()) {
Keyframe<Position> kf = iterator.next();
Keyframe<AdvancedPosition> kf = iterator.next();
if(kf.getValue().getSpectatedEntityID() == null)
continue;
@@ -124,7 +124,7 @@ public class GuiKeyframeTimeline extends GuiTimeline {
int nextSpectatorKeyframeRealTime = -1;
while(iterator.hasNext()) {
Keyframe<Position> kf2 = iterator.next();
Keyframe<AdvancedPosition> kf2 = iterator.next();
if(kf.getValue().getSpectatedEntityID()
.equals(kf2.getValue().getSpectatedEntityID())) {
@@ -177,14 +177,14 @@ public class GuiKeyframeTimeline extends GuiTimeline {
int keyframeX = getKeyframeX(kf.getRealTimestamp(), leftTime, bodyWidth, segmentLength);
if(kf.getValue() instanceof Position) {
if(kf.getValue() instanceof AdvancedPosition) {
if(!placeKeyframes) return;
textureX = KEYFRAME_PLACE_X;
textureY = KEYFRAME_PLACE_Y;
y += 0;
//If Spectator Keyframe, use different texture
if(((Keyframe<Position>) kf).getValue().getSpectatedEntityID() != null) {
if(((Keyframe<AdvancedPosition>) kf).getValue().getSpectatedEntityID() != null) {
textureX = KEYFRAME_SPEC_X;
textureY = KEYFRAME_SPEC_Y;
}