This commit is contained in:
BlockManBlue 2024-02-28 17:08:02 -07:00 committed by GitHub
parent 2ae0d180e2
commit 065cc6b755
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 243 additions and 102 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,11 +1,11 @@
package main; package main;
import javax.swing.*; import javax.swing.*;
import project.*; import project.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.io.*; import java.io.*;
import java.nio.file.Files;
public class Main { public class Main {
public static Image icon = new ImageIcon("data/icon.png").getImage(); public static Image icon = new ImageIcon("data/icon.png").getImage();
public static void main(String[] args){ public static void main(String[] args){
@ -131,22 +131,28 @@ public class Main {
loadButton.setBackground(new Color(0, 0, 50)); loadButton.setBackground(new Color(0, 0, 50));
loadButton.setForeground(Color.white); loadButton.setForeground(Color.white);
selWindow.add(loadButton); selWindow.add(loadButton);
JButton deleteButton = new JButton("Remove from Registry"); JButton deleteButton = new JButton("Delete Project");
deleteButton.addActionListener(new ActionListener(){ deleteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){ public void actionPerformed(ActionEvent e){
Project.projRegistry[loadSel] = null;
int sel = JOptionPane.showConfirmDialog(selWindow, "Are you sure you want to delete this project?", "Trident", JOptionPane.YES_NO_OPTION);
if(sel == 0){
deleteDir(new File("data/projects/" + Project.projRegistry[loadSel]));
String[] newRegistry = new String[Project.projRegistry.length - 1]; String[] newRegistry = new String[Project.projRegistry.length - 1];
boolean skippedNull = false; for(int i = 0, j = 0; i < Project.projRegistry.length; i++){
for(int i = 0; i < Project.projRegistry.length; i++){ if(i != loadSel){
if(Project.projRegistry[i] != null){ newRegistry[j] = Project.projRegistry[i];
newRegistry[i + (skippedNull ? 1 : 0)] = Project.projRegistry[i]; j++;
}else{
skippedNull = true;
} }
} }
Project.projRegistry = newRegistry; Project.projRegistry = newRegistry;
loadSel = 0; loadSel = 0;
Project.saveRegistry(); Project.saveRegistry();
JOptionPane.showMessageDialog(selWindow, "Deleted the project.", "Trident", JOptionPane.INFORMATION_MESSAGE);
if(Project.projRegistry.length == 0){ if(Project.projRegistry.length == 0){
selWindow.dispose(); selWindow.dispose();
main(new String[0]); main(new String[0]);
@ -154,6 +160,9 @@ public class Main {
} }
text.setText(Project.projRegistry[loadSel] + "\n(" + (loadSel + 1) + "/" + Project.projRegistry.length + ")"); text.setText(Project.projRegistry[loadSel] + "\n(" + (loadSel + 1) + "/" + Project.projRegistry.length + ")");
} }
}
}); });
deleteButton.setBackground(new Color(0, 0, 50)); deleteButton.setBackground(new Color(0, 0, 50));
deleteButton.setForeground(Color.white); deleteButton.setForeground(Color.white);
@ -206,8 +215,24 @@ public class Main {
} }
} }
public static void deleteDir(File file) {
if(!file.exists()) return;
File[] contents = file.listFiles();
if (contents != null) {
for (File f : contents) {
if (! Files.isSymbolicLink(f.toPath())) {
deleteDir(f);
}
}
}
file.delete();
}
public static JFrame window;
public static void loadProject(int proj){ public static void loadProject(int proj){
JFrame window = new JFrame("Trident Editor"); window = new JFrame("Trident Editor");
window.setSize(700, 500); window.setSize(700, 500);
window.setMinimumSize(new Dimension(700, 500)); window.setMinimumSize(new Dimension(700, 500));
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

View file

@ -290,8 +290,9 @@ public class MainPanel extends JPanel {
break; break;
case 6: case 6:
project.currentScene.save("data/projects/" + project.name); project.currentScene.save("data/projects/" + project.name);
System.exit(0); Main.window.dispose();
break; Main.main(new String[0]);
return;
} }
} }
if(dropType == 1){ if(dropType == 1){

View file

@ -99,6 +99,7 @@ public class Project {
writer.println("import java.awt.*;"); writer.println("import java.awt.*;");
writer.println("import blib.game.*;"); writer.println("import blib.game.*;");
writer.println("import blib.util.*;"); writer.println("import blib.util.*;");
writer.println("");
writer.println("import java.awt.event.*;"); writer.println("import java.awt.event.*;");
writer.println("import java.io.File;"); writer.println("import java.io.File;");
writer.println("import java.io.PrintWriter;"); writer.println("import java.io.PrintWriter;");
@ -114,14 +115,18 @@ public class Project {
writer.println("public class MainPanel extends JPanel {"); writer.println("public class MainPanel extends JPanel {");
writer.println(""); writer.println("");
writer.println(" protected FrameManager frameManager = new FrameManager();"); writer.println(" protected FrameManager frameManager = new FrameManager();");
writer.println(" protected Server server;"); writer.println(" public static Server server;");
writer.println(" protected KeyManager km = new InputListener(this);"); writer.println(" protected KeyManager km = new InputListener(this);");
writer.println(" private Animator introAnim;"); writer.println(" private Animator introAnim;");
writer.println(" private Position introPos = new Position();"); writer.println(" public static Position introPos = new Position();");
writer.println(" private ImageIcon splash = new ImageIcon(\"data/images/trident/splash.png\");"); writer.println(" public static ImageIcon splash = new ImageIcon(\"data/images/trident/splash.png\");");
writer.println(" private boolean inIntro = false;"); writer.println(" public static boolean inIntro = false;");
writer.println(" private RenderingThread rendThread = new RenderingThread();");
writer.println(" "); writer.println(" ");
writer.println(" public MainPanel(){"); writer.println(" public MainPanel(){");
writer.println("");
writer.println(" System.setProperty(\"sun.java2d.opengl\", \"true\"); // hardware acceleration?");
writer.println("");
writer.println(" setBackground(Color.black);"); writer.println(" setBackground(Color.black);");
writer.println(""); writer.println("");
writer.println(" Trident.player = new Player(new Position(), km, 0.1, this, \"data/images/player\", 16, 16);"); writer.println(" Trident.player = new Player(new Position(), km, 0.1, this, \"data/images/player\", 16, 16);");
@ -138,6 +143,8 @@ public class Project {
writer.println(" Trident.addCustomEntity(new Trigger());"); writer.println(" Trident.addCustomEntity(new Trigger());");
writer.println(" Trident.addCustomEntity(new TridLight());"); writer.println(" Trident.addCustomEntity(new TridLight());");
writer.println(""); writer.println("");
writer.println(" setFocusTraversalKeysEnabled(false);");
writer.println("");
writer.println(" Update.setup();"); writer.println(" Update.setup();");
writer.println(""); writer.println("");
writer.println(" Trident.setupScenes();"); writer.println(" Trident.setupScenes();");
@ -160,85 +167,19 @@ public class Project {
writer.println(" BTools.resizeImgIcon(Trident.splash, 160, 160);"); writer.println(" BTools.resizeImgIcon(Trident.splash, 160, 160);");
writer.println(" }"); writer.println(" }");
writer.println(""); writer.println("");
writer.println(" server = new Server(new ServerListener());"); writer.println(" rendThread.start();");
writer.println("");
writer.println(" server = new Server(new ServerListener(), this);");
writer.println(" }"); writer.println(" }");
writer.println(""); writer.println("");
writer.println(" public void paintComponent(Graphics graphics){"); writer.println(" public void paintComponent(Graphics graphics){");
writer.println(" super.paintComponent(graphics);"); writer.println(" super.paintComponent(graphics);");
writer.println(" Graphics g = frameManager.newFrame();"); writer.println(" Graphics g = frameManager.newFrame();");
writer.println(" int WIDTH = frameManager.WIDTH, HEIGHT = frameManager.HEIGHT;");
writer.println(" int offX, offY;");
writer.println(" offX = Trident.camShake.offX;");
writer.println(" offY = Trident.camShake.offY;");
writer.println(""); writer.println("");
writer.println(" frameManager.bgColor = Trident.currentScene.bgColor;"); writer.println(" frameManager.bgColor = Trident.currentScene.bgColor;");
writer.println(" "); writer.println(" ");
writer.println(" if(Trident.engineDraw){"); writer.println(" if(rendThread.lastFrame != null){");
writer.println(" for(TridEntity e: Trident.currentScene.entities){"); writer.println(" g.drawImage(rendThread.lastFrame, 0, 0, null);");
writer.println(" Point p = Trident.player.camera.worldToScreen(e.position);");
writer.println(" e.engineRender(g, this, p.x, p.y);");
writer.println(" }");
writer.println(" }");
writer.println("");
writer.println(" ArrayList<ArrayList<Entity>> splitEnt = Trident.player.camera.splitEntities(Trident.tridArrToEntArr(Trident.currentScene.entities), 16);");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(2), offX, offY);");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(0), offX, offY);");
writer.println(" if(Trident.drawPlayer){");
writer.println(" Trident.player.render(this, g, frameManager.WIDTH / 2 - 16 - offX, frameManager.HEIGHT / 2 - 16 - offY);");
writer.println(" }");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(1), offX, offY);");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(3), offX, offY);");
writer.println("");
writer.println("");
writer.println(" Trident.lightManager.render(Trident.player.camera, Trident.lights, g, offX, offY);");
writer.println("");
writer.println(" if(Trident.drawCollision){");
writer.println(" g.setColor(Color.red);");
writer.println(" ArrayList<Rectangle> collision = Trident.currentScene.getCollision();");
writer.println(" collision.add(Trident.player.getCollision());");
writer.println(" for(Rectangle r: collision){");
writer.println(" Point p = Trident.player.camera.worldToScreen(new Position(r.x, r.y));");
writer.println(" g.drawRect(p.x, p.y, r.width, r.height);");
writer.println(" g.drawLine(p.x, p.y, p.x + r.width, p.y + r.height);");
writer.println(" }");
writer.println(" }");
writer.println("");
writer.println(" if(Trident.drawPos){");
writer.println(" g.setColor(Trident.debugColor);");
writer.println(" g.setFont(new Font(\"Arial\", Font.ITALIC, 10));");
writer.println(" TextBox.draw(Trident.player.getPos().toStringSimple(), g, 10, 30);");
writer.println(" }");
writer.println(" if(Trident.drawFrames){");
writer.println(" g.setColor(Trident.debugColor);");
writer.println(" g.setFont(new Font(\"Arial\", Font.ITALIC, 10));");
writer.println(" TextBox.draw(\"delay: \" + server.getElapsedTime() + \" ms\", g, 10, 30);");
writer.println(" TextBox.draw(\"FPS: \" + (1000 / server.getElapsedTime()), g, 10, 40);");
writer.println(" }");
writer.println(" ");
writer.println(" // Apply Post Processing");
writer.println(" if(Trident.enableExposure){");
writer.println(" Trident.exposure.filter(frameManager.getFrame(), frameManager.getFrame());");
writer.println(" }");
writer.println(" if(Trident.enableBloom){");
writer.println(" Trident.bloom.filter(frameManager.getFrame(), frameManager.getFrame());");
writer.println(" }");
writer.println(" ");
writer.println(" if(inIntro){");
writer.println(" g.setColor(Color.black);");
writer.println(" g.fillRect(0, 0, 700, 500);");
writer.println("");
writer.println(" if(Trident.splash != null && BTools.hasImage(Trident.splash)){");
writer.println(" // Trident splash + custom splash");
writer.println(" splash.paintIcon(this, g, WIDTH / 2 - 80, 40);");
writer.println(" Trident.splash.paintIcon(this, g, WIDTH / 2 - 80, HEIGHT - 200);");
writer.println(" }else{");
writer.println(" // Trident splash only");
writer.println(" splash.paintIcon(this, g, WIDTH / 2 - 80, HEIGHT / 2 - 80);");
writer.println(" }");
writer.println("");
writer.println(" float alpha = (float)introPos.x;");
writer.println(" g.setColor(new Color(0f, 0f, 0f, alpha));");
writer.println(" g.fillRect(0, 0, 700, 500);");
writer.println(" }"); writer.println(" }");
writer.println(" "); writer.println(" ");
writer.println(" frameManager.renderFrame(this, graphics);"); writer.println(" frameManager.renderFrame(this, graphics);");
@ -251,6 +192,10 @@ public class Project {
writer.println(" }"); writer.println(" }");
writer.println(""); writer.println("");
writer.println(" public void onKeyPressed(int key){"); writer.println(" public void onKeyPressed(int key){");
writer.println(" if(key == KeyEvent.VK_F12){");
writer.println(" frameManager.saveScreenshot(\"data/screenshots\");");
writer.println(" Update.tridentEvent(Trident.EVENT_SCREENSHOT);");
writer.println(" }");
writer.println(" if(key == KeyEvent.VK_F11){"); writer.println(" if(key == KeyEvent.VK_F11){");
writer.println(" Trident.fullscreen = !Trident.fullscreen;"); writer.println(" Trident.fullscreen = !Trident.fullscreen;");
writer.println(" Main.window = BTools.getWindowFullscreen(Main.window, Trident.fullscreen, panel);"); writer.println(" Main.window = BTools.getWindowFullscreen(Main.window, Trident.fullscreen, panel);");
@ -395,6 +340,18 @@ public class Project {
writer.println(" int blurLevel = Integer.parseInt(cmdParts.get(1)); "); writer.println(" int blurLevel = Integer.parseInt(cmdParts.get(1)); ");
writer.println(" Trident.setLightBlur(blurLevel);"); writer.println(" Trident.setLightBlur(blurLevel);");
writer.println(" break;"); writer.println(" break;");
writer.println(" case \"fullbright\":");
writer.println(" if(cmdParts.size() == 1){");
writer.println(" JOptionPane.showMessageDialog(null, \"fullbright is \" + Trident.fullbright, \"Dev Console\", JOptionPane.INFORMATION_MESSAGE);");
writer.println(" break;");
writer.println(" }");
writer.println(" if(cmdParts.get(1).equals(\"1\") || cmdParts.get(1).equals(\"true\")){");
writer.println(" Trident.fullbright = true;");
writer.println(" }");
writer.println(" if(cmdParts.get(1).equals(\"0\") || cmdParts.get(1).equals(\"false\")){");
writer.println(" Trident.fullbright = false;");
writer.println(" }");
writer.println(" break;");
writer.println(" default:"); writer.println(" default:");
writer.println(" int cmd = Update.command(cmdParts);"); writer.println(" int cmd = Update.command(cmdParts);");
writer.println(" if(cmd != 0){"); writer.println(" if(cmd != 0){");
@ -467,6 +424,10 @@ public class Project {
writer.println(" }"); writer.println(" }");
writer.println(" }"); writer.println(" }");
writer.println(""); writer.println("");
writer.println(" if(Trident.reset){");
writer.println(" km.reset();");
writer.println(" Trident.reset = false;");
writer.println(" }");
writer.println(" for(int i = 0; i < 255; i++){"); writer.println(" for(int i = 0; i < 255; i++){");
writer.println(" Trident.keys[i] = km.getKeyDown(i);"); writer.println(" Trident.keys[i] = km.getKeyDown(i);");
writer.println(" }"); writer.println(" }");
@ -476,11 +437,18 @@ public class Project {
writer.println(" Trident.m4 = km.getMouseDown(4);"); writer.println(" Trident.m4 = km.getMouseDown(4);");
writer.println(" Trident.m5 = km.getMouseDown(5);"); writer.println(" Trident.m5 = km.getMouseDown(5);");
writer.println(""); writer.println("");
writer.println(" if(Trident.newSprite != null){");
writer.println(" Trident.player = new Player(Trident.player.getPos(), km, 0.2, panel, Trident.newSprite, 16, 16);");
writer.println(" Trident.newSprite = null;");
writer.println(" Trident.player.resizeImages(32, 32);");
writer.println(" Trident.player.camera.setDimension = new Dimension(frameManager.WIDTH, frameManager.HEIGHT);");
writer.println(" Trident.camShake = new CamShake(Trident.player.camera);");
writer.println(" Trident.player.shortCollision = true;");
writer.println(" }");
writer.println("");
writer.println(" Update.update(server.getElapsedTime());"); writer.println(" Update.update(server.getElapsedTime());");
writer.println(""); writer.println("");
writer.println(" Trident.getEntities().sort((o1, o2) -> o2.compareSort(o1));"); writer.println(" try {Trident.getEntities().sort((o1, o2) -> o2.compareSort(o1));} catch(Exception e){}");
writer.println("");
writer.println(" repaint();");
writer.println(" }"); writer.println(" }");
writer.println(" }"); writer.println(" }");
writer.println("}"); writer.println("}");
@ -623,6 +591,7 @@ public class Project {
writer.println(" public static ImageIcon splash = null;"); writer.println(" public static ImageIcon splash = null;");
writer.println(" public static boolean drawFrames = false;"); writer.println(" public static boolean drawFrames = false;");
writer.println(" public static boolean consoleEnabled = true;"); writer.println(" public static boolean consoleEnabled = true;");
writer.println(" public static boolean fullbright = false;");
writer.println(" "); writer.println(" ");
writer.println(" // Public Variables"); writer.println(" // Public Variables");
writer.println(" public static Point mousePos;"); writer.println(" public static Point mousePos;");
@ -646,6 +615,11 @@ public class Project {
writer.println(" protected static LightManager lightManager = new LightManager(255);"); writer.println(" protected static LightManager lightManager = new LightManager(255);");
writer.println(" protected static GlowFilter bloom = new GlowFilter();"); writer.println(" protected static GlowFilter bloom = new GlowFilter();");
writer.println(" protected static ExposureFilter exposure = new ExposureFilter();"); writer.println(" protected static ExposureFilter exposure = new ExposureFilter();");
writer.println(" protected static boolean reset = false;");
writer.println(" protected static String newSprite = null;");
writer.println("");
writer.println(" // Trident Events");
writer.println(" public static final int EVENT_SCREENSHOT = 0;");
writer.println(""); writer.println("");
writer.println(""); writer.println("");
writer.println(" // Setting methods"); writer.println(" // Setting methods");
@ -739,6 +713,18 @@ public class Project {
writer.println(" public static void addLight(Light l){"); writer.println(" public static void addLight(Light l){");
writer.println(" lights.add(l);"); writer.println(" lights.add(l);");
writer.println(" }"); writer.println(" }");
writer.println(" public static void resetKeys(){");
writer.println(" reset = true;");
writer.println(" }");
writer.println(" public static void setPlrSprite(String path){");
writer.println(" newSprite = path;");
writer.println(" }");
writer.println(" public static void removeLight(Light l){");
writer.println(" lights.remove(l);");
writer.println(" }");
writer.println(" public static void setDefaultLight(int level){");
writer.println(" lightManager.defaultLight = level;");
writer.println(" }");
writer.println(""); writer.println("");
writer.println(" // Getting methods"); writer.println(" // Getting methods");
writer.println(" public static double getPlrSpeed(){"); writer.println(" public static double getPlrSpeed(){");
@ -797,6 +783,12 @@ public class Project {
writer.println(" public static Player getPlr(){"); writer.println(" public static Player getPlr(){");
writer.println(" return player;"); writer.println(" return player;");
writer.println(" }"); writer.println(" }");
writer.println(" public static int getFrameWidth(){");
writer.println(" return 684;");
writer.println(" }");
writer.println(" public static int getFrameHeight(){");
writer.println(" return 462;");
writer.println(" }");
writer.println(""); writer.println("");
writer.println("}"); writer.println("}");
writer.close(); writer.close();
@ -908,6 +900,123 @@ public class Project {
writer.println("}"); writer.println("}");
writer.close(); writer.close();
}catch(Exception e){} }catch(Exception e){}
try{
File file = new File("data/projects/" + name + "/src/trident/RenderingThread.java");
file.createNewFile();
PrintWriter writer = new PrintWriter(file);
writer.println("package trident;");
writer.println("");
writer.println("import java.awt.image.*;");
writer.println("import java.util.ArrayList;");
writer.println("import java.util.ConcurrentModificationException;");
writer.println("import blib.util.*;");
writer.println("import java.awt.*;");
writer.println("import blib.game.*;");
writer.println("public class RenderingThread extends Thread {");
writer.println("");
writer.println(" public BufferedImage lastFrame = null;");
writer.println(" private long elapsedTime, previousStartTime = -1;");
writer.println(" ");
writer.println(" public void run(){");
writer.println(" while(true){");
writer.println(" try{");
writer.println(" ");
writer.println(" long now = System.currentTimeMillis();");
writer.println(" elapsedTime = previousStartTime != -1 ? now - previousStartTime : 0;");
writer.println(" previousStartTime = now;");
writer.println(" int WIDTH = Trident.getFrameWidth(), HEIGHT = Trident.getFrameHeight();");
writer.println(" int offX, offY;");
writer.println(" offX = Trident.camShake.offX;");
writer.println(" offY = Trident.camShake.offY;");
writer.println(" BufferedImage newFrame = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB);");
writer.println(" Graphics g = newFrame.getGraphics();");
writer.println("");
writer.println(" if(Trident.engineDraw){");
writer.println(" for(TridEntity e: Trident.currentScene.entities){");
writer.println(" Point p = Trident.player.camera.worldToScreen(e.position);");
writer.println(" e.engineRender(g, null, p.x, p.y);");
writer.println(" }");
writer.println(" }");
writer.println("");
writer.println(" ArrayList<ArrayList<Entity>> splitEnt = Trident.player.camera.splitEntities(Trident.tridArrToEntArr(Trident.currentScene.entities), 16);");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(2), offX, offY);");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(0), offX, offY);");
writer.println(" if(Trident.drawPlayer){");
writer.println(" Trident.player.render(null, g, WIDTH / 2 - 16 - offX, HEIGHT / 2 - 16 - offY);");
writer.println(" }");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(1), offX, offY);");
writer.println("");
writer.println(" if(!Trident.fullbright) Trident.lightManager.render(Trident.player.camera, Trident.lights, g, offX, offY);");
writer.println("");
writer.println(" if(!Trident.engineDraw) Trident.player.camera.render(g, splitEnt.get(3), offX, offY);");
writer.println("");
writer.println("");
writer.println(" ");
writer.println("");
writer.println(" if(Trident.drawCollision){");
writer.println(" g.setColor(Color.red);");
writer.println(" ArrayList<Rectangle> collision = Trident.currentScene.getCollision();");
writer.println(" collision.add(Trident.player.getCollision());");
writer.println(" for(Rectangle r: collision){");
writer.println(" Point p = Trident.player.camera.worldToScreen(new Position(r.x, r.y));");
writer.println(" g.drawRect(p.x, p.y, r.width, r.height);");
writer.println(" g.drawLine(p.x, p.y, p.x + r.width, p.y + r.height);");
writer.println(" }");
writer.println(" }");
writer.println("");
writer.println(" if(Trident.drawPos){");
writer.println(" g.setColor(Trident.debugColor);");
writer.println(" g.setFont(new Font(\"Arial\", Font.ITALIC, 10));");
writer.println(" TextBox.draw(Trident.player.getPos().toStringSimple(), g, 10, 30);");
writer.println(" }");
writer.println(" if(Trident.drawFrames){");
writer.println(" g.setColor(Trident.debugColor);");
writer.println(" g.setFont(new Font(\"Arial\", Font.ITALIC, 10));");
writer.println(" TextBox.draw(\"TPS: \" + (1000 / Math.max(MainPanel.server.getElapsedTime(), 1)) + \" (\" + MainPanel.server.getElapsedTime() + \" ms)\", g, 10, 30);");
writer.println(" TextBox.draw(\"FPS: \" + (1000 / Math.max(elapsedTime, 1)) + \" (\" + elapsedTime + \" ms)\", g, 10, 40); ");
writer.println(" }");
writer.println(" ");
writer.println(" // Apply Post Processing");
writer.println(" if(Trident.enableExposure){");
writer.println(" Trident.exposure.filter(newFrame, newFrame);");
writer.println(" }");
writer.println(" if(Trident.enableBloom){");
writer.println(" Trident.bloom.filter(newFrame, newFrame);");
writer.println(" }");
writer.println(" ");
writer.println(" if(MainPanel.inIntro){");
writer.println(" g.setColor(Color.black);");
writer.println(" g.fillRect(0, 0, 700, 500);");
writer.println("");
writer.println(" if(Trident.splash != null && BTools.hasImage(Trident.splash)){");
writer.println(" // Trident splash + custom splash");
writer.println(" MainPanel.splash.paintIcon(null, g, WIDTH / 2 - 80, 40);");
writer.println(" Trident.splash.paintIcon(null, g, WIDTH / 2 - 80, HEIGHT - 200);");
writer.println(" }else{");
writer.println(" // Trident splash only");
writer.println(" MainPanel.splash.paintIcon(null, g, WIDTH / 2 - 80, HEIGHT / 2 - 80);");
writer.println(" }");
writer.println("");
writer.println(" float alpha = (float)MainPanel.introPos.x;");
writer.println(" g.setColor(new Color(0f, 0f, 0f, alpha));");
writer.println(" g.fillRect(0, 0, 700, 500);");
writer.println(" }");
writer.println("");
writer.println(" ");
writer.println("");
writer.println(" lastFrame = newFrame;");
writer.println(" }catch(Exception e){");
writer.println(" if(!(e instanceof ConcurrentModificationException)){");
writer.println(" e.printStackTrace();");
writer.println(" }");
writer.println(" }");
writer.println(" ");
writer.println("");
writer.println(" }");
writer.println(" }");
writer.println("}");
writer.close();
}catch(Exception e){}
// src/trident/ent // src/trident/ent
@ -1265,6 +1374,12 @@ public class Project {
writer.println(" "); writer.println(" ");
writer.println(" }"); writer.println(" }");
writer.println(""); writer.println("");
writer.println(" public static void tridentEvent(int id){");
writer.println(" if(id == Trident.EVENT_SCREENSHOT){");
writer.println(" System.out.println(\"Took a screenshot!\");");
writer.println(" }");
writer.println(" }");
writer.println("");
writer.println(" public static int command(ArrayList<String> cmdParts){ // cmdParts.get(0) is the command, while the rest are arguments for the command."); writer.println(" public static int command(ArrayList<String> cmdParts){ // cmdParts.get(0) is the command, while the rest are arguments for the command.");
writer.println(" switch(cmdParts.get(0)){"); writer.println(" switch(cmdParts.get(0)){");
writer.println(" case \"helloWorld\":"); writer.println(" case \"helloWorld\":");