From 8813061355bc628bc454019447c41180e9931387 Mon Sep 17 00:00:00 2001 From: kingparity Date: Tue, 9 Jul 2019 21:30:48 -0400 Subject: [PATCH 1/7] added many features -Added Snap Origin Option -Added Copy Origin to Position Button -Added 1.14 compatability for the selection box generation tool -Added feature where if you hold shift and press the autoUV button it will change the button on all sides --- build.gradle | 2 +- .../mrcrayfish/modelcreator/Constants.java | 2 +- .../modelcreator/ExporterJavaCode.java | 15 ++++++-- .../com/mrcrayfish/modelcreator/Importer.java | 1 - .../mrcrayfish/modelcreator/ModelCreator.java | 1 - .../component/DisplayPropertiesDialog.java | 1 - .../modelcreator/component/Menu.java | 3 -- .../render/FirstPersonPropertyRenderer.java | 1 - .../display/render/StandardRenderer.java | 2 - .../modelcreator/element/Element.java | 38 ++++++++++++++++++- .../mrcrayfish/modelcreator/element/Face.java | 3 +- .../panels/ElementExtraPanel.java | 23 +++++++++++ .../modelcreator/panels/FaceExtrasPanel.java | 11 +++++- .../modelcreator/panels/PositionPanel.java | 18 +++++++++ .../modelcreator/panels/SidebarPanel.java | 3 +- .../modelcreator/panels/tabs/FacePanel.java | 1 - .../panels/tabs/RotationPanel.java | 24 +++++++++++- .../texture/TextureAnimation.java | 1 - .../modelcreator/texture/TextureAtlas.java | 2 - 19 files changed, 125 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index 4b7c32d..833eb5e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ apply plugin: "java" apply plugin: "application" -version = "0.7.0" +version = "0.7.1" mainClassName = "com.mrcrayfish.modelcreator.Start" sourceCompatibility = targetCompatibility = 1.8 diff --git a/src/main/java/com/mrcrayfish/modelcreator/Constants.java b/src/main/java/com/mrcrayfish/modelcreator/Constants.java index 0d1a8d8..f39c288 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/Constants.java +++ b/src/main/java/com/mrcrayfish/modelcreator/Constants.java @@ -3,7 +3,7 @@ public class Constants { public static final String NAME = "MrCrayfish's Model Creator"; - public static final String VERSION = "0.7.0"; + public static final String VERSION = "0.7.1"; public static final String URL_DONATE = "https://www.patreon.com/mrcrayfish?ty=h"; public static final String URL_TWITTER = "https://www.twitter.com/MrCraayfish"; diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 186cc73..7ba8d11 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -44,7 +44,7 @@ public void writeCodeToClipboard() throws IOException @Override protected void write(BufferedWriter writer) throws IOException { - if(version == Version.V_1_13) + if(version == Version.V_1_13 || version == Version.V_1_14) { if(includeFields) { @@ -332,12 +332,19 @@ else if(generateRotatedBounds) private String format(double value) { - return FORMAT.format(useBoundsHelper ? value : value * 0.0625); + if(version == Version.V_1_12 || version == Version.V_1_13) + { + return FORMAT.format(useBoundsHelper ? value : value * 0.0625); + } + else + { + return FORMAT.format(useBoundsHelper ? value : value); + } } private void writeField(BufferedWriter writer, ModelBounds bounds, String name, double minX, double minY, double minZ, double maxX, double maxY, double maxZ) throws IOException { - if(version == Version.V_1_13) + if(version == Version.V_1_13 || version == Version.V_1_14) { if(generateRotatedBounds) { @@ -407,7 +414,7 @@ private void union(double minX, double minY, double minZ, double maxX, double ma public enum Version { - V_1_12("1.12"), V_1_13("1.13"); + V_1_12("1.12"), V_1_13("1.13"), V_1_14("1.14"); private String label; diff --git a/src/main/java/com/mrcrayfish/modelcreator/Importer.java b/src/main/java/com/mrcrayfish/modelcreator/Importer.java index f2b4447..81b740c 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/Importer.java +++ b/src/main/java/com/mrcrayfish/modelcreator/Importer.java @@ -19,7 +19,6 @@ import java.util.Locale; import java.util.Map; import java.util.Map.Entry; -import java.util.ResourceBundle; public class Importer { diff --git a/src/main/java/com/mrcrayfish/modelcreator/ModelCreator.java b/src/main/java/com/mrcrayfish/modelcreator/ModelCreator.java index fee426b..7a3e11a 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ModelCreator.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ModelCreator.java @@ -14,7 +14,6 @@ import com.mrcrayfish.modelcreator.sidebar.Sidebar; import com.mrcrayfish.modelcreator.sidebar.UVSidebar; import com.mrcrayfish.modelcreator.texture.TextureAtlas; -import com.mrcrayfish.modelcreator.texture.TextureEntry; import com.mrcrayfish.modelcreator.util.FontManager; import com.mrcrayfish.modelcreator.util.KeyboardUtil; import org.lwjgl.LWJGLException; diff --git a/src/main/java/com/mrcrayfish/modelcreator/component/DisplayPropertiesDialog.java b/src/main/java/com/mrcrayfish/modelcreator/component/DisplayPropertiesDialog.java index 4281305..c6586e4 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/component/DisplayPropertiesDialog.java +++ b/src/main/java/com/mrcrayfish/modelcreator/component/DisplayPropertiesDialog.java @@ -3,7 +3,6 @@ import com.mrcrayfish.modelcreator.ModelCreator; import com.mrcrayfish.modelcreator.display.CanvasRenderer; import com.mrcrayfish.modelcreator.display.DisplayProperties; -import com.mrcrayfish.modelcreator.element.ElementManager; import com.mrcrayfish.modelcreator.panels.DisplayEntryPanel; import com.mrcrayfish.modelcreator.util.ComponentUtil; diff --git a/src/main/java/com/mrcrayfish/modelcreator/component/Menu.java b/src/main/java/com/mrcrayfish/modelcreator/component/Menu.java index 9079db3..e1a56de 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/component/Menu.java +++ b/src/main/java/com/mrcrayfish/modelcreator/component/Menu.java @@ -1,10 +1,8 @@ package com.mrcrayfish.modelcreator.component; import com.mrcrayfish.modelcreator.*; -import com.mrcrayfish.modelcreator.display.CanvasRenderer; import com.mrcrayfish.modelcreator.display.DisplayProperties; import com.mrcrayfish.modelcreator.element.Face; -import com.mrcrayfish.modelcreator.panels.DisplayEntryPanel; import com.mrcrayfish.modelcreator.screenshot.PendingScreenshot; import com.mrcrayfish.modelcreator.screenshot.Screenshot; import com.mrcrayfish.modelcreator.screenshot.Uploader; @@ -21,7 +19,6 @@ import java.awt.event.*; import java.io.File; import java.io.IOException; -import java.util.Set; public class Menu extends JMenuBar { diff --git a/src/main/java/com/mrcrayfish/modelcreator/display/render/FirstPersonPropertyRenderer.java b/src/main/java/com/mrcrayfish/modelcreator/display/render/FirstPersonPropertyRenderer.java index fe822c7..54df59a 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/display/render/FirstPersonPropertyRenderer.java +++ b/src/main/java/com/mrcrayfish/modelcreator/display/render/FirstPersonPropertyRenderer.java @@ -8,7 +8,6 @@ import com.mrcrayfish.modelcreator.util.AtlasRenderUtil; import org.lwjgl.opengl.GL11; import org.lwjgl.util.glu.GLU; -import org.newdawn.slick.opengl.TextureImpl; import static org.lwjgl.opengl.GL11.*; diff --git a/src/main/java/com/mrcrayfish/modelcreator/display/render/StandardRenderer.java b/src/main/java/com/mrcrayfish/modelcreator/display/render/StandardRenderer.java index d994292..9efdc15 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/display/render/StandardRenderer.java +++ b/src/main/java/com/mrcrayfish/modelcreator/display/render/StandardRenderer.java @@ -7,9 +7,7 @@ import com.mrcrayfish.modelcreator.display.CanvasRenderer; import com.mrcrayfish.modelcreator.element.Element; import com.mrcrayfish.modelcreator.element.ElementManager; -import com.mrcrayfish.modelcreator.element.Face; import com.mrcrayfish.modelcreator.util.FontManager; -import org.lwjgl.opengl.GL11; import org.newdawn.slick.Color; import org.newdawn.slick.opengl.TextureImpl; diff --git a/src/main/java/com/mrcrayfish/modelcreator/element/Element.java b/src/main/java/com/mrcrayfish/modelcreator/element/Element.java index d82b9a9..249340d 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/element/Element.java +++ b/src/main/java/com/mrcrayfish/modelcreator/element/Element.java @@ -4,7 +4,6 @@ import com.mrcrayfish.modelcreator.object.FaceDimension; import com.mrcrayfish.modelcreator.sidebar.UVSidebar; import com.mrcrayfish.modelcreator.texture.TextureEntry; -import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import org.lwjgl.util.glu.Sphere; @@ -28,6 +27,7 @@ public class Element private double rotation; private int axis = 0; private boolean rescale = false; + private boolean snapOrigin = false; // Extra Variables private boolean shade = true; @@ -59,6 +59,7 @@ public Element(Element cuboid) this.rotation = cuboid.getRotation(); this.axis = cuboid.getRotationAxis(); this.rescale = cuboid.shouldRescale(); + this.snapOrigin = cuboid.shouldSnapOrigin(); this.shade = cuboid.isShaded(); this.selectedFace = cuboid.getSelectedFaceIndex(); initFaces(); @@ -134,6 +135,14 @@ public void setAllTextures(TextureEntry entry) face.setTexture(entry); } } + + public void setAllAutoUV(boolean uv) + { + for(Face face : faces) + { + face.setAutoUVEnabled(uv); + } + } public void draw() { @@ -559,11 +568,21 @@ public void setRescale(boolean rescale) { this.rescale = rescale; } + + public void setSnapOrigin(boolean snapOrigin) + { + this.snapOrigin = snapOrigin; + } public boolean shouldRescale() { return rescale; } + + public boolean shouldSnapOrigin() + { + return snapOrigin; + } public boolean isShaded() { @@ -606,6 +625,23 @@ public void updateEndUVs() face.updateEndUV(); } } + + public void updateOrigin() + { + if(snapOrigin) + { + originX = startX; + originY = startY; + originZ = startZ; + } + } + + public void setOrigin() + { + originX = startX; + originY = startY; + originZ = startZ; + } private void rotateAxis() { diff --git a/src/main/java/com/mrcrayfish/modelcreator/element/Face.java b/src/main/java/com/mrcrayfish/modelcreator/element/Face.java index d24d0af..efe3760 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/element/Face.java +++ b/src/main/java/com/mrcrayfish/modelcreator/element/Face.java @@ -7,7 +7,8 @@ import java.nio.FloatBuffer; -import static org.lwjgl.opengl.GL11.*; +import static org.lwjgl.opengl.GL11.GL_BLEND; +import static org.lwjgl.opengl.GL11.GL_TEXTURE_2D; public class Face { diff --git a/src/main/java/com/mrcrayfish/modelcreator/panels/ElementExtraPanel.java b/src/main/java/com/mrcrayfish/modelcreator/panels/ElementExtraPanel.java index 5ecc73b..1fb13ac 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/panels/ElementExtraPanel.java +++ b/src/main/java/com/mrcrayfish/modelcreator/panels/ElementExtraPanel.java @@ -1,5 +1,6 @@ package com.mrcrayfish.modelcreator.panels; +import com.mrcrayfish.modelcreator.Icons; import com.mrcrayfish.modelcreator.ModelCreator; import com.mrcrayfish.modelcreator.StateManager; import com.mrcrayfish.modelcreator.element.Element; @@ -14,6 +15,7 @@ public class ElementExtraPanel extends JPanel implements IElementUpdater private ElementManager manager; private JRadioButton btnShade; + private JButton btnSetOrigin; public ElementExtraPanel(ElementManager manager) { @@ -23,11 +25,14 @@ public ElementExtraPanel(ElementManager manager) this.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(ModelCreator.BACKGROUND, 5), "Extras")); this.setMaximumSize(new Dimension(186, 50)); this.initComponents(); + this.initProperties(); this.addComponents(); } private void initComponents() { + btnSetOrigin = new JButton("Origin", Icons.clipboard); + btnShade = ComponentUtil.createRadioButton("Shade", "Determines if shadows should be rendered
Default: On"); btnShade.setBackground(ModelCreator.BACKGROUND); btnShade.addActionListener(e -> @@ -40,10 +45,28 @@ private void initComponents() } }); } + + private void initProperties() + { + btnSetOrigin.setToolTipText("Set the origin to the position"); + btnSetOrigin.addActionListener(e -> + { + Element selectedElement = manager.getSelectedElement(); + if(selectedElement != null) + { + selectedElement.setOriginX(selectedElement.getStartX()); + selectedElement.setOriginY(selectedElement.getStartY()); + selectedElement.setOriginZ(selectedElement.getStartZ()); + selectedElement.setOrigin(); + manager.updateValues(); + } + }); + } private void addComponents() { add(btnShade); + add(btnSetOrigin); } @Override diff --git a/src/main/java/com/mrcrayfish/modelcreator/panels/FaceExtrasPanel.java b/src/main/java/com/mrcrayfish/modelcreator/panels/FaceExtrasPanel.java index 59f66d1..588cfdf 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/panels/FaceExtrasPanel.java +++ b/src/main/java/com/mrcrayfish/modelcreator/panels/FaceExtrasPanel.java @@ -1,7 +1,6 @@ package com.mrcrayfish.modelcreator.panels; import com.mrcrayfish.modelcreator.ModelCreator; -import com.mrcrayfish.modelcreator.Settings; import com.mrcrayfish.modelcreator.StateManager; import com.mrcrayfish.modelcreator.element.Element; import com.mrcrayfish.modelcreator.element.ElementManager; @@ -9,6 +8,7 @@ import javax.swing.*; import java.awt.*; +import java.awt.event.InputEvent; public class FaceExtrasPanel extends JPanel implements IElementUpdater { @@ -77,7 +77,14 @@ private void initComponents() Element selectedElement = manager.getSelectedElement(); if(selectedElement != null) { - selectedElement.getSelectedFace().setAutoUVEnabled(boxAutoUV.isSelected()); + if((e.getModifiers() & InputEvent.SHIFT_MASK) == 1) + { + selectedElement.setAllAutoUV(boxAutoUV.isSelected()); + } + else + { + selectedElement.getSelectedFace().setAutoUVEnabled(boxAutoUV.isSelected()); + } selectedElement.getSelectedFace().updateEndUV(); manager.updateValues(); StateManager.pushState(manager); diff --git a/src/main/java/com/mrcrayfish/modelcreator/panels/PositionPanel.java b/src/main/java/com/mrcrayfish/modelcreator/panels/PositionPanel.java index ebaf13c..0a382c6 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/panels/PositionPanel.java +++ b/src/main/java/com/mrcrayfish/modelcreator/panels/PositionPanel.java @@ -65,6 +65,7 @@ public void keyPressed(KeyEvent e) { selectedElement.setStartX(Parser.parseDouble(xPositionField.getText(), selectedElement.getStartX())); selectedElement.updateEndUVs(); + selectedElement.updateOrigin(); manager.updateValues(); StateManager.pushState(manager); } @@ -82,6 +83,7 @@ public void focusLost(FocusEvent e) { selectedElement.setStartX(Parser.parseDouble(xPositionField.getText(), selectedElement.getStartX())); selectedElement.updateEndUVs(); + selectedElement.updateOrigin(); manager.updateValues(); } } @@ -101,6 +103,7 @@ public void keyPressed(KeyEvent e) StateManager.pushState(manager); selectedElement.setStartY(Parser.parseDouble(yPositionField.getText(), selectedElement.getStartY())); selectedElement.updateEndUVs(); + selectedElement.updateOrigin(); manager.updateValues(); } @@ -118,6 +121,7 @@ public void focusLost(FocusEvent e) StateManager.pushState(manager); selectedElement.setStartY(Parser.parseDouble(yPositionField.getText(), selectedElement.getStartY())); selectedElement.updateEndUVs(); + selectedElement.updateOrigin(); manager.updateValues(); } } @@ -137,6 +141,7 @@ public void keyPressed(KeyEvent e) StateManager.pushState(manager); selectedElement.setStartZ(Parser.parseDouble(zPositionField.getText(), selectedElement.getStartZ())); selectedElement.updateEndUVs(); + selectedElement.updateOrigin(); manager.updateValues(); } @@ -154,6 +159,7 @@ public void focusLost(FocusEvent e) StateManager.pushState(manager); selectedElement.setStartZ(Parser.parseDouble(zPositionField.getText(), selectedElement.getStartZ())); selectedElement.updateEndUVs(); + selectedElement.updateOrigin(); manager.updateValues(); } } @@ -176,6 +182,8 @@ public void focusLost(FocusEvent e) } xPositionField.setText(Exporter.FORMAT.format(selectedElement.getStartX())); StateManager.pushStateDelayed(manager, PropertyIdentifiers.POS_X); + selectedElement.updateOrigin(); + manager.updateValues(); } }); @@ -196,6 +204,8 @@ public void focusLost(FocusEvent e) } yPositionField.setText(Exporter.FORMAT.format(selectedElement.getStartY())); StateManager.pushStateDelayed(manager, PropertyIdentifiers.POS_Y); + selectedElement.updateOrigin(); + manager.updateValues(); } }); @@ -216,6 +226,8 @@ public void focusLost(FocusEvent e) } zPositionField.setText(Exporter.FORMAT.format(selectedElement.getStartZ())); StateManager.pushStateDelayed(manager, PropertyIdentifiers.POS_Z); + selectedElement.updateOrigin(); + manager.updateValues(); } }); @@ -236,6 +248,8 @@ public void focusLost(FocusEvent e) } xPositionField.setText(Exporter.FORMAT.format(selectedElement.getStartX())); StateManager.pushStateDelayed(manager, PropertyIdentifiers.POS_X); + selectedElement.updateOrigin(); + manager.updateValues(); } }); @@ -256,6 +270,8 @@ public void focusLost(FocusEvent e) } yPositionField.setText(Exporter.FORMAT.format(selectedElement.getStartY())); StateManager.pushStateDelayed(manager, PropertyIdentifiers.POS_Y); + selectedElement.updateOrigin(); + manager.updateValues(); } }); @@ -276,6 +292,8 @@ public void focusLost(FocusEvent e) } zPositionField.setText(Exporter.FORMAT.format(selectedElement.getStartZ())); StateManager.pushStateDelayed(manager, PropertyIdentifiers.POS_Z); + selectedElement.updateOrigin(); + manager.updateValues(); } }); } diff --git a/src/main/java/com/mrcrayfish/modelcreator/panels/SidebarPanel.java b/src/main/java/com/mrcrayfish/modelcreator/panels/SidebarPanel.java index ab619b8..2c0dc5f 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/panels/SidebarPanel.java +++ b/src/main/java/com/mrcrayfish/modelcreator/panels/SidebarPanel.java @@ -3,8 +3,7 @@ import com.mrcrayfish.modelcreator.Icons; import com.mrcrayfish.modelcreator.ModelCreator; import com.mrcrayfish.modelcreator.StateManager; -import com.mrcrayfish.modelcreator.component.*; -import com.mrcrayfish.modelcreator.component.Menu; +import com.mrcrayfish.modelcreator.component.JElementList; import com.mrcrayfish.modelcreator.display.DisplayProperties; import com.mrcrayfish.modelcreator.element.*; import com.mrcrayfish.modelcreator.panels.tabs.ElementPanel; diff --git a/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/FacePanel.java b/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/FacePanel.java index fb4b369..51842b1 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/FacePanel.java +++ b/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/FacePanel.java @@ -4,7 +4,6 @@ import com.mrcrayfish.modelcreator.StateManager; import com.mrcrayfish.modelcreator.element.Element; import com.mrcrayfish.modelcreator.element.ElementManager; -import com.mrcrayfish.modelcreator.element.Face; import com.mrcrayfish.modelcreator.panels.FaceExtrasPanel; import com.mrcrayfish.modelcreator.panels.IElementUpdater; import com.mrcrayfish.modelcreator.panels.TexturePanel; diff --git a/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/RotationPanel.java b/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/RotationPanel.java index 8ad63d9..82846d9 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/RotationPanel.java +++ b/src/main/java/com/mrcrayfish/modelcreator/panels/tabs/RotationPanel.java @@ -26,6 +26,9 @@ public class RotationPanel extends JPanel implements IElementUpdater private JSlider rotation; private JPanel extraPanel; private JRadioButton btnRescale; + private JRadioButton btnSnapOrigin; + + //private JButton btnSetOrigin; private DefaultComboBoxModel model; @@ -116,7 +119,7 @@ public void mouseReleased(MouseEvent e) sliderPanel.setMaximumSize(new Dimension(190, 80)); sliderPanel.add(rotation); - extraPanel = new JPanel(new GridLayout(1, 2)); + extraPanel = new JPanel(new GridLayout(2, 1)); extraPanel.setBackground(ModelCreator.BACKGROUND); extraPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(ModelCreator.BACKGROUND, 5), "Extras")); @@ -131,8 +134,21 @@ public void mouseReleased(MouseEvent e) StateManager.pushState(manager); } }); - extraPanel.setMaximumSize(new Dimension(186, 50)); + + btnSnapOrigin = ComponentUtil.createRadioButton("Snap Origin", "Should snap origin to position
Default: Off"); + btnSnapOrigin.setBackground(ModelCreator.BACKGROUND); + btnSnapOrigin.addActionListener(e -> + { + Element selectedElement = manager.getSelectedElement(); + if(selectedElement != null) + { + selectedElement.setSnapOrigin(btnSnapOrigin.isSelected()); + StateManager.pushState(manager); + } + }); + extraPanel.setMaximumSize(new Dimension(186, 75)); extraPanel.add(btnRescale); + extraPanel.add(btnSnapOrigin); } private void addComponents() @@ -155,6 +171,8 @@ public void updateValues(Element cube) rotation.setValue((int) (cube.getRotation() / 22.5)); btnRescale.setEnabled(true); btnRescale.setSelected(cube.shouldRescale()); + btnSnapOrigin.setEnabled(true); + btnSnapOrigin.setSelected(cube.shouldSnapOrigin()); } else { @@ -162,6 +180,8 @@ public void updateValues(Element cube) rotation.setEnabled(false); btnRescale.setSelected(false); btnRescale.setEnabled(false); + btnSnapOrigin.setSelected(false); + btnSnapOrigin.setEnabled(false); } } } diff --git a/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAnimation.java b/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAnimation.java index e41d9ed..fccd18a 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAnimation.java +++ b/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAnimation.java @@ -5,7 +5,6 @@ import com.google.gson.JsonObject; import com.google.gson.JsonParser; -import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; diff --git a/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAtlas.java b/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAtlas.java index 9c7cb5d..af311d1 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAtlas.java +++ b/src/main/java/com/mrcrayfish/modelcreator/texture/TextureAtlas.java @@ -3,8 +3,6 @@ import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; -import org.newdawn.slick.opengl.Texture; -import org.newdawn.slick.util.BufferedImageUtil; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; From e51fa025251b14f104e044d48f2f04d07b8109a9 Mon Sep 17 00:00:00 2001 From: kingparity Date: Tue, 9 Jul 2019 21:48:16 -0400 Subject: [PATCH 2/7] fixed up renames from 1.13 to 1.14 --- .../modelcreator/ExporterJavaCode.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 7ba8d11..905f5db 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -44,15 +44,19 @@ public void writeCodeToClipboard() throws IOException @Override protected void write(BufferedWriter writer) throws IOException { - if(version == Version.V_1_13 || version == Version.V_1_14) + boolean V_1_13 = version == Version.V_1_13; + boolean V_1_14 = version == Version.V_1_14; + if(V_1_13 || V_1_14) { + String state = V_1_13 ? "I" : ""; + String direction = V_1_13 ? "EnumFacing" : "Direction"; if(includeFields) { /* Generates member fields */ writeNewLine(writer, "/* Member variables */"); if(generateRotatedBounds) { - writeNewLine(writer, "public final ImmutableMap SHAPES;"); + writeNewLine(writer, "public final ImmutableMap<" + state + "BlockState, VoxelShape> SHAPES;"); } else { @@ -83,7 +87,7 @@ protected void write(BufferedWriter writer) throws IOException /* Creates method for generating voxel shapes for rotatable blocks */ if(generateRotatedBounds) { - writeNewLine(writer, "private ImmutableMap generateShapes(ImmutableList states)"); + writeNewLine(writer, "private ImmutableMap<" + state + "BlockState, VoxelShape> generateShapes(ImmutableList" + state + "BlockState> states)"); writeNewLine(writer, "{"); for(Element element : manager.getAllElements()) { @@ -104,10 +108,10 @@ protected void write(BufferedWriter writer) throws IOException } writer.newLine(); - writeNewLine(writer, " ImmutableMap.Builder builder = new ImmutableMap.Builder<>();"); + writeNewLine(writer, " ImmutableMap.Builder<" + state + "BlockState, VoxelShape> builder = new ImmutableMap.Builder<>();"); writeNewLine(writer, " for(IBlockState state : states)"); writeNewLine(writer, " {"); - writeNewLine(writer, " EnumFacing facing = state.getValue(HORIZONTAL_FACING);"); + writeNewLine(writer, " " + direction + " facing = state.getValue(HORIZONTAL_FACING);"); writeNewLine(writer, " List shapes = new ArrayList<>();"); for(Element element : manager.getAllElements()) @@ -168,7 +172,7 @@ protected void write(BufferedWriter writer) throws IOException /* Produces the method for selection box */ writeNewLine(writer, "@Override"); - writeNewLine(writer, "public VoxelShape getShape(IBlockState state, IBlockReader reader, BlockPos pos)"); + writeNewLine(writer, "public VoxelShape getShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); writeNewLine(writer, "{"); if(generateRotatedBounds) { @@ -183,7 +187,7 @@ protected void write(BufferedWriter writer) throws IOException /* Produces the method for collisions */ writeNewLine(writer, "@Override"); - writeNewLine(writer, "public VoxelShape getCollisionShape(IBlockState state, IBlockReader reader, BlockPos pos)"); + writeNewLine(writer, "public VoxelShape getCollisionShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); writeNewLine(writer, "{"); if(generateRotatedBounds) { @@ -348,7 +352,7 @@ private void writeField(BufferedWriter writer, ModelBounds bounds, String name, { if(generateRotatedBounds) { - writer.write(String.format("final VoxelShape[] %s = VoxelShapeHelper.getRotatedVoxelShapes(Block.makeCuboidShape(%s, %s, %s, %s, %s, %s));", name, format(minX), format(minY), format(minZ), format(maxX), format(maxY), format(maxZ))); + writer.write(String.format("final VoxelShape[] %s = VoxelShapeHelper.getRotatedShapes(Block.makeCuboidShape(%s, %s, %s, %s, %s, %s));", name, format(minX), format(minY), format(minZ), format(maxX), format(maxY), format(maxZ))); } else { From 060b2d33d52db88f47777d9905adfeb511c4b257 Mon Sep 17 00:00:00 2001 From: kingparity Date: Tue, 9 Jul 2019 21:55:42 -0400 Subject: [PATCH 3/7] Update ExporterJavaCode.java --- .../modelcreator/ExporterJavaCode.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 905f5db..058878c 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -49,7 +49,6 @@ protected void write(BufferedWriter writer) throws IOException if(V_1_13 || V_1_14) { String state = V_1_13 ? "I" : ""; - String direction = V_1_13 ? "EnumFacing" : "Direction"; if(includeFields) { /* Generates member fields */ @@ -111,7 +110,14 @@ protected void write(BufferedWriter writer) throws IOException writeNewLine(writer, " ImmutableMap.Builder<" + state + "BlockState, VoxelShape> builder = new ImmutableMap.Builder<>();"); writeNewLine(writer, " for(IBlockState state : states)"); writeNewLine(writer, " {"); - writeNewLine(writer, " " + direction + " facing = state.getValue(HORIZONTAL_FACING);"); + if(V_1_13) + { + writeNewLine(writer, " EnumFacing facing = state.getValue(HORIZONTAL_FACING);"); + } + else + { + writeNewLine(writer, " Direction direction = state.get(DIRECTION);"); + } writeNewLine(writer, " List shapes = new ArrayList<>();"); for(Element element : manager.getAllElements()) @@ -119,7 +125,14 @@ protected void write(BufferedWriter writer) throws IOException if(element.getRotation() == 0) { String name = element.getName().toUpperCase().replaceAll(" ", "_"); - writeNewLine(writer, String.format(" shapes.add(%s[facing.getHorizontalIndex()]);", name)); + if(V_1_13) + { + writeNewLine(writer, String.format(" shapes.add(%s[facing.getHorizontalIndex()]);", name)); + } + else + { + writeNewLine(writer, String.format(" shapes.add(%s[direction.getHorizontalIndex()]);", name)); + } } } From 8ef17fb1d8bc7be139596097e0415b3c01003f86 Mon Sep 17 00:00:00 2001 From: kingparity Date: Tue, 9 Jul 2019 22:06:44 -0400 Subject: [PATCH 4/7] actually tested it for once --- .../modelcreator/ExporterJavaCode.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 058878c..93fc8ca 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -86,7 +86,7 @@ protected void write(BufferedWriter writer) throws IOException /* Creates method for generating voxel shapes for rotatable blocks */ if(generateRotatedBounds) { - writeNewLine(writer, "private ImmutableMap<" + state + "BlockState, VoxelShape> generateShapes(ImmutableList" + state + "BlockState> states)"); + writeNewLine(writer, "private ImmutableMap<" + state + "BlockState, VoxelShape> generateShapes(ImmutableList<" + state + "BlockState> states)"); writeNewLine(writer, "{"); for(Element element : manager.getAllElements()) { @@ -108,7 +108,7 @@ protected void write(BufferedWriter writer) throws IOException writer.newLine(); writeNewLine(writer, " ImmutableMap.Builder<" + state + "BlockState, VoxelShape> builder = new ImmutableMap.Builder<>();"); - writeNewLine(writer, " for(IBlockState state : states)"); + writeNewLine(writer, " for(" + state + "BlockState state : states)"); writeNewLine(writer, " {"); if(V_1_13) { @@ -185,7 +185,14 @@ protected void write(BufferedWriter writer) throws IOException /* Produces the method for selection box */ writeNewLine(writer, "@Override"); - writeNewLine(writer, "public VoxelShape getShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); + if(V_1_13) + { + writeNewLine(writer, "public VoxelShape getShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); + } + else + { + writeNewLine(writer, "public VoxelShape getShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos, ISelectionContext context)"); + } writeNewLine(writer, "{"); if(generateRotatedBounds) { @@ -200,7 +207,14 @@ protected void write(BufferedWriter writer) throws IOException /* Produces the method for collisions */ writeNewLine(writer, "@Override"); - writeNewLine(writer, "public VoxelShape getCollisionShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); + if(V_1_13) + { + writeNewLine(writer, "public VoxelShape getCollisionShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); + } + else + { + writeNewLine(writer, "public VoxelShape getRenderShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); + } writeNewLine(writer, "{"); if(generateRotatedBounds) { From 112489546518c4f0b0761b0530595751ff1cdec4 Mon Sep 17 00:00:00 2001 From: kingparity Date: Tue, 9 Jul 2019 22:07:35 -0400 Subject: [PATCH 5/7] remembered that ShapeUtils is now VoxelShapes in 1.13/1.14 --- .../java/com/mrcrayfish/modelcreator/ExporterJavaCode.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 93fc8ca..868deda 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -172,10 +172,10 @@ protected void write(BufferedWriter writer) throws IOException else { writer.newLine(); - writeNewLine(writer, " VoxelShape result = ShapeUtils.empty();"); + writeNewLine(writer, " VoxelShape result = VoxelShapes.empty();"); writeNewLine(writer, " for(VoxelShape shape : shapes)"); writeNewLine(writer, " {"); - writeNewLine(writer, " result = ShapeUtils.combine(result, shape, IBooleanFunction.OR);"); + writeNewLine(writer, " result = VoxelShapes.combine(result, shape, IBooleanFunction.OR);"); writeNewLine(writer, " }"); writeNewLine(writer, " return result.simplify();"); } From 495e20e1aa2184ff754ff701f3be46a335e6b511 Mon Sep 17 00:00:00 2001 From: kingparity Date: Tue, 9 Jul 2019 22:35:06 -0400 Subject: [PATCH 6/7] Update ExporterJavaCode.java --- .../com/mrcrayfish/modelcreator/ExporterJavaCode.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 868deda..094975c 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -379,7 +379,14 @@ private void writeField(BufferedWriter writer, ModelBounds bounds, String name, { if(generateRotatedBounds) { - writer.write(String.format("final VoxelShape[] %s = VoxelShapeHelper.getRotatedShapes(Block.makeCuboidShape(%s, %s, %s, %s, %s, %s));", name, format(minX), format(minY), format(minZ), format(maxX), format(maxY), format(maxZ))); + if(version == Version.V_1_13) + { + writer.write(String.format("final VoxelShape[] %s = VoxelShapeHelper.getRotatedShapes(Block.makeCuboidShape(%s, %s, %s, %s, %s, %s));", name, format(minX), format(minY), format(minZ), format(maxX), format(maxY), format(maxZ))); + } + else + { + writer.write(String.format("final VoxelShape[] %s = VoxelShapeHelper.getRotatedShapes(VoxelShapeHelper.rotate(Block.makeCuboidShape(%s, %s, %s, %s, %s, %s), Direction.SOUTH));", name, format(minX), format(minY), format(minZ), format(maxX), format(maxY), format(maxZ))); + } } else { From dbf247efa92b5bc7d1dfcf278898aefa2bd9587a Mon Sep 17 00:00:00 2001 From: kingparity Date: Wed, 10 Jul 2019 15:04:50 -0400 Subject: [PATCH 7/7] realized getRenderShape should be getCollisionShape --- src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java index 094975c..7ba056f 100644 --- a/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java +++ b/src/main/java/com/mrcrayfish/modelcreator/ExporterJavaCode.java @@ -213,7 +213,7 @@ protected void write(BufferedWriter writer) throws IOException } else { - writeNewLine(writer, "public VoxelShape getRenderShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos)"); + writeNewLine(writer, "public VoxelShape getCollisionShape(" + state + "BlockState state, IBlockReader reader, BlockPos pos, ISelectionContext context)"); } writeNewLine(writer, "{"); if(generateRotatedBounds)