Made GuiDraggingNumberInput fully functional
Linked GuiObjectManager to new Keybinding Renamed RoundUtils#round to RoundUtils#round2Decimals for easier understanding
This commit is contained in:
@@ -5,6 +5,7 @@ import eu.crushedpixel.replaymod.entities.CameraEntity.MoveDirection;
|
|||||||
import eu.crushedpixel.replaymod.gui.GuiAssetManager;
|
import eu.crushedpixel.replaymod.gui.GuiAssetManager;
|
||||||
import eu.crushedpixel.replaymod.gui.GuiKeyframeRepository;
|
import eu.crushedpixel.replaymod.gui.GuiKeyframeRepository;
|
||||||
import eu.crushedpixel.replaymod.gui.GuiMouseInput;
|
import eu.crushedpixel.replaymod.gui.GuiMouseInput;
|
||||||
|
import eu.crushedpixel.replaymod.gui.GuiObjectManager;
|
||||||
import eu.crushedpixel.replaymod.recording.ConnectionEventHandler;
|
import eu.crushedpixel.replaymod.recording.ConnectionEventHandler;
|
||||||
import eu.crushedpixel.replaymod.registry.KeybindRegistry;
|
import eu.crushedpixel.replaymod.registry.KeybindRegistry;
|
||||||
import eu.crushedpixel.replaymod.registry.PlayerHandler;
|
import eu.crushedpixel.replaymod.registry.PlayerHandler;
|
||||||
@@ -205,5 +206,9 @@ public class KeyInputHandler {
|
|||||||
if(kb.getKeyDescription().equals(KeybindRegistry.KEY_ASSET_MANAGER) && (kb.isPressed() || kb.getKeyCode() == keyCode)) {
|
if(kb.getKeyDescription().equals(KeybindRegistry.KEY_ASSET_MANAGER) && (kb.isPressed() || kb.getKeyCode() == keyCode)) {
|
||||||
mc.displayGuiScreen(new GuiAssetManager());
|
mc.displayGuiScreen(new GuiAssetManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(kb.getKeyDescription().equals(KeybindRegistry.KEY_OBJECT_MANAGER) && (kb.isPressed() || kb.getKeyCode() == keyCode)) {
|
||||||
|
mc.displayGuiScreen(new GuiObjectManager());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,12 +108,12 @@ public class GuiEditKeyframe extends GuiScreen {
|
|||||||
//Position/Virtual Time Input
|
//Position/Virtual Time Input
|
||||||
if(posKeyframe) {
|
if(posKeyframe) {
|
||||||
Position pos = ((Keyframe<Position>)keyframe).getValue();
|
Position pos = ((Keyframe<Position>)keyframe).getValue();
|
||||||
xCoord = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round(pos.getX()), true);
|
xCoord = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round2Decimals(pos.getX()), true);
|
||||||
yCoord = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round(pos.getY()), true);
|
yCoord = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round2Decimals(pos.getY()), true);
|
||||||
zCoord = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round(pos.getZ()), true);
|
zCoord = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round2Decimals(pos.getZ()), true);
|
||||||
yaw = new GuiNumberInput(fontRendererObj, 0, 0, 100, -90d, 90d, RoundUtils.round(pos.getYaw()), true);
|
yaw = new GuiNumberInput(fontRendererObj, 0, 0, 100, -90d, 90d, RoundUtils.round2Decimals(pos.getYaw()), true);
|
||||||
pitch = new GuiNumberInput(fontRendererObj, 0, 0, 100, -180d, 180d, RoundUtils.round(pos.getPitch()), true);
|
pitch = new GuiNumberInput(fontRendererObj, 0, 0, 100, -180d, 180d, RoundUtils.round2Decimals(pos.getPitch()), true);
|
||||||
roll = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round(pos.getRoll()), true);
|
roll = new GuiNumberInput(fontRendererObj, 0, 0, 100, null, null, RoundUtils.round2Decimals(pos.getRoll()), true);
|
||||||
|
|
||||||
posInputs.add(xCoord);
|
posInputs.add(xCoord);
|
||||||
posInputs.add(yCoord);
|
posInputs.add(yCoord);
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
package eu.crushedpixel.replaymod.gui;
|
package eu.crushedpixel.replaymod.gui;
|
||||||
|
|
||||||
|
import eu.crushedpixel.replaymod.gui.elements.ComposedElement;
|
||||||
|
import eu.crushedpixel.replaymod.gui.elements.GuiDraggingNumberInput;
|
||||||
|
import eu.crushedpixel.replaymod.utils.MouseUtils;
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import org.lwjgl.util.Point;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@@ -8,38 +12,68 @@ public class GuiObjectManager extends GuiScreen {
|
|||||||
|
|
||||||
private boolean initialized = false;
|
private boolean initialized = false;
|
||||||
|
|
||||||
|
private GuiDraggingNumberInput anchorXInput, anchorYInput, anchorZInput;
|
||||||
|
|
||||||
|
private ComposedElement numberInputs;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initGui() {
|
public void initGui() {
|
||||||
super.initGui();
|
if(!initialized) {
|
||||||
|
anchorXInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 50, null, null, 0d, true);
|
||||||
|
anchorYInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 50, null, null, 0d, true);
|
||||||
|
anchorZInput = new GuiDraggingNumberInput(fontRendererObj, 0, 0, 50, null, null, 0d, true);
|
||||||
|
|
||||||
|
numberInputs = new ComposedElement(anchorXInput, anchorYInput, anchorZInput);
|
||||||
|
}
|
||||||
|
|
||||||
|
anchorXInput.width = anchorYInput.width = anchorZInput.width = 45;
|
||||||
|
anchorXInput.yPosition = anchorYInput.yPosition = anchorZInput.yPosition = 50;
|
||||||
|
|
||||||
|
anchorXInput.xPosition = 20;
|
||||||
|
anchorYInput.xPosition = anchorXInput.xPosition+anchorXInput.width + 5;
|
||||||
|
anchorZInput.xPosition = anchorYInput.xPosition+anchorYInput.width + 5;
|
||||||
|
|
||||||
|
initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
||||||
|
this.drawDefaultBackground();
|
||||||
|
|
||||||
|
numberInputs.draw(mc, mouseX, mouseY);
|
||||||
|
|
||||||
super.drawScreen(mouseX, mouseY, partialTicks);
|
super.drawScreen(mouseX, mouseY, partialTicks);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void keyTyped(char typedChar, int keyCode) throws IOException {
|
protected void keyTyped(char typedChar, int keyCode) throws IOException {
|
||||||
|
Point mousePos = MouseUtils.getMousePos();
|
||||||
|
numberInputs.buttonPressed(mc, mousePos.getX(), mousePos.getY(), typedChar, keyCode);
|
||||||
|
|
||||||
super.keyTyped(typedChar, keyCode);
|
super.keyTyped(typedChar, keyCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateScreen() {
|
public void updateScreen() {
|
||||||
|
numberInputs.tick(mc);
|
||||||
super.updateScreen();
|
super.updateScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
|
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
|
||||||
|
numberInputs.mouseClick(mc, mouseX, mouseY, mouseButton);
|
||||||
super.mouseClicked(mouseX, mouseY, mouseButton);
|
super.mouseClicked(mouseX, mouseY, mouseButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void mouseClickMove(int mouseX, int mouseY, int clickedMouseButton, long timeSinceLastClick) {
|
protected void mouseClickMove(int mouseX, int mouseY, int mouseButton, long timeSinceLastClick) {
|
||||||
super.mouseClickMove(mouseX, mouseY, clickedMouseButton, timeSinceLastClick);
|
numberInputs.mouseDrag(mc, mouseX, mouseY, mouseButton);
|
||||||
|
super.mouseClickMove(mouseX, mouseY, mouseButton, timeSinceLastClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void mouseReleased(int mouseX, int mouseY, int state) {
|
protected void mouseReleased(int mouseX, int mouseY, int mouseButton) {
|
||||||
super.mouseReleased(mouseX, mouseY, state);
|
numberInputs.mouseRelease(mc, mouseX, mouseY, mouseButton);
|
||||||
|
super.mouseReleased(mouseX, mouseY, mouseButton);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,27 +1,39 @@
|
|||||||
package eu.crushedpixel.replaymod.gui.elements;
|
package eu.crushedpixel.replaymod.gui.elements;
|
||||||
|
|
||||||
|
import eu.crushedpixel.replaymod.utils.MouseUtils;
|
||||||
|
import eu.crushedpixel.replaymod.utils.RoundUtils;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.gui.FontRenderer;
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
|
|
||||||
public class GuiDraggingNumberInput extends GuiNumberInput {
|
public class GuiDraggingNumberInput extends GuiNumberInputWithText {
|
||||||
|
|
||||||
public GuiDraggingNumberInput(FontRenderer fontRenderer,
|
public GuiDraggingNumberInput(FontRenderer fontRenderer,
|
||||||
int xPos, int yPos, int width, Double minimum, Double maximum, Double defaultValue, boolean acceptFloats) {
|
int xPos, int yPos, int width, Double minimum, Double maximum, Double defaultValue, boolean acceptFloats) {
|
||||||
super(fontRenderer, xPos, yPos, width, minimum, maximum, defaultValue, acceptFloats);
|
this(fontRenderer, xPos, yPos, width, minimum, maximum, defaultValue, acceptFloats, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
public GuiDraggingNumberInput(FontRenderer fontRenderer,
|
||||||
|
int xPos, int yPos, int width, Double minimum,
|
||||||
|
Double maximum, Double defaultValue, boolean acceptFloats, String suffix) {
|
||||||
|
super(fontRenderer, xPos, yPos, width, minimum, maximum, defaultValue, acceptFloats, suffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int prevMouseX;
|
private int prevMouseX;
|
||||||
private boolean dragging;
|
private boolean dragging;
|
||||||
|
private boolean clicked;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
|
public void mouseClick(Minecraft mc, int mouseX, int mouseY, int button) {
|
||||||
dragging = false;
|
if(MouseUtils.isMouseWithinBounds(xPosition, yPosition, width, height)) {
|
||||||
prevMouseX = mouseX;
|
dragging = false;
|
||||||
|
clicked = true;
|
||||||
|
prevMouseX = mouseX;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseDrag(Minecraft mc, int mouseX, int mouseY, int button) {
|
public void mouseDrag(Minecraft mc, int mouseX, int mouseY, int button) {
|
||||||
if(mouseX != prevMouseX) {
|
if(clicked && mouseX != prevMouseX) {
|
||||||
dragging = true;
|
dragging = true;
|
||||||
int diff = mouseX - prevMouseX;
|
int diff = mouseX - prevMouseX;
|
||||||
prevMouseX = mouseX;
|
prevMouseX = mouseX;
|
||||||
@@ -33,7 +45,7 @@ public class GuiDraggingNumberInput extends GuiNumberInput {
|
|||||||
}
|
}
|
||||||
|
|
||||||
double value = getPreciseValue();
|
double value = getPreciseValue();
|
||||||
double valueDiff = (diff/200) * bounds;
|
double valueDiff = RoundUtils.round2Decimals((diff / 200f) * bounds);
|
||||||
|
|
||||||
this.setValue(value+valueDiff);
|
this.setValue(value+valueDiff);
|
||||||
}
|
}
|
||||||
@@ -42,6 +54,7 @@ public class GuiDraggingNumberInput extends GuiNumberInput {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseRelease(Minecraft mc, int mouseX, int mouseY, int button) {
|
public void mouseRelease(Minecraft mc, int mouseX, int mouseY, int button) {
|
||||||
|
clicked = false;
|
||||||
if(!dragging) {
|
if(!dragging) {
|
||||||
super.mouseClick(mc, mouseX, mouseY, button);
|
super.mouseClick(mc, mouseX, mouseY, button);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public class KeybindRegistry {
|
|||||||
public static final String KEY_ADD_MARKER = "replaymod.input.marker";
|
public static final String KEY_ADD_MARKER = "replaymod.input.marker";
|
||||||
public static final String KEY_PATH_PREVIEW = "replaymod.input.pathpreview";
|
public static final String KEY_PATH_PREVIEW = "replaymod.input.pathpreview";
|
||||||
public static final String KEY_ASSET_MANAGER = "replaymod.input.assetmanager";
|
public static final String KEY_ASSET_MANAGER = "replaymod.input.assetmanager";
|
||||||
|
public static final String KEY_OBJECT_MANAGER = "replaymod.input.objectmanager";
|
||||||
private static Minecraft mc = Minecraft.getMinecraft();
|
private static Minecraft mc = Minecraft.getMinecraft();
|
||||||
|
|
||||||
public static void initialize() {
|
public static void initialize() {
|
||||||
@@ -41,6 +42,7 @@ public class KeybindRegistry {
|
|||||||
bindings.add(new KeyBinding(KEY_PLAY_PAUSE, Keyboard.KEY_P, "replaymod.title"));
|
bindings.add(new KeyBinding(KEY_PLAY_PAUSE, Keyboard.KEY_P, "replaymod.title"));
|
||||||
bindings.add(new KeyBinding(KEY_PATH_PREVIEW, Keyboard.KEY_H, "replaymod.title"));
|
bindings.add(new KeyBinding(KEY_PATH_PREVIEW, Keyboard.KEY_H, "replaymod.title"));
|
||||||
bindings.add(new KeyBinding(KEY_ASSET_MANAGER, Keyboard.KEY_G, "replaymod.title"));
|
bindings.add(new KeyBinding(KEY_ASSET_MANAGER, Keyboard.KEY_G, "replaymod.title"));
|
||||||
|
bindings.add(new KeyBinding(KEY_OBJECT_MANAGER, Keyboard.KEY_F, "replaymod.title"));
|
||||||
|
|
||||||
mc.gameSettings.keyBindings = bindings.toArray(new KeyBinding[bindings.size()]);
|
mc.gameSettings.keyBindings = bindings.toArray(new KeyBinding[bindings.size()]);
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package eu.crushedpixel.replaymod.utils;
|
|||||||
|
|
||||||
public class RoundUtils {
|
public class RoundUtils {
|
||||||
|
|
||||||
public static double round(double val) { return Math.round(val*100.0) / 100.0; }
|
public static double round2Decimals(double val) { return Math.round(val*100.0) / 100.0; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -258,6 +258,7 @@ replaymod.input.playpause=Play/Pause Replay
|
|||||||
replaymod.input.marker=Add Event Marker
|
replaymod.input.marker=Add Event Marker
|
||||||
replaymod.input.pathpreview=Toggle Path Preview
|
replaymod.input.pathpreview=Toggle Path Preview
|
||||||
replaymod.input.assetmanager=Open Asset Manager
|
replaymod.input.assetmanager=Open Asset Manager
|
||||||
|
replaymod.input.objectmanager=Open Object Manager
|
||||||
|
|
||||||
#Keyframe Presets GUI
|
#Keyframe Presets GUI
|
||||||
replaymod.gui.keyframerepository.title=Keyframe Repository
|
replaymod.gui.keyframerepository.title=Keyframe Repository
|
||||||
@@ -364,3 +365,5 @@ replaymod.gui.assets.defaultname=New Asset
|
|||||||
replaymod.gui.assets.emptylist=No Assets available
|
replaymod.gui.assets.emptylist=No Assets available
|
||||||
replaymod.gui.assets.namehint=Asset Name
|
replaymod.gui.assets.namehint=Asset Name
|
||||||
replaymod.gui.assets.changefile=Change Asset File
|
replaymod.gui.assets.changefile=Change Asset File
|
||||||
|
|
||||||
|
#Object Manager Gui
|
||||||
|
|||||||
Reference in New Issue
Block a user