From 0ad5cb7972a4cca37b33f763cadc78c9b66f3e79 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 5 Nov 2017 22:35:02 -0600 Subject: [PATCH] Added stat tracking class to start storing data about entities killed, etc. Added EN gained overlay. --- sigIRCv2.jar | Bin 10215390 -> 10224871 bytes src/sig/MyPanel.java | 1 + src/sig/modules/RabiRibi/Entity.java | 77 ++++++++- .../modules/RabiRibi/EntityLookupData.java | 159 ++++++++++++++++++ src/sig/modules/RabiRibi/MemoryOffset.java | 5 +- src/sig/modules/RabiRibi/Overlay.java | 18 +- src/sig/modules/RabiRibi/RabiUtils.java | 11 ++ src/sig/modules/RabiRibi/SmoothObject.java | 2 +- src/sig/modules/RabiRibiModule.java | 148 +++++++++++++--- src/sig/utils/DrawUtils.java | 15 +- 10 files changed, 399 insertions(+), 37 deletions(-) create mode 100644 src/sig/modules/RabiRibi/EntityLookupData.java create mode 100644 src/sig/modules/RabiRibi/RabiUtils.java diff --git a/sigIRCv2.jar b/sigIRCv2.jar index b66c69210940166e287e997d0fecdd2cd9a6325e..c72dca10d6351c6dc345531c9ebd51e60e68398c 100644 GIT binary patch delta 81811 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

t=_Hd1cf>l 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 G(EkBPmEY_D diff --git a/src/sig/MyPanel.java b/src/sig/MyPanel.java index e907573..7a1732a 100644 --- a/src/sig/MyPanel.java +++ b/src/sig/MyPanel.java @@ -39,6 +39,7 @@ public class MyPanel extends JPanel implements MouseListener, ActionListener, Mo final public static Font programFont = new Font(sigIRC.messageFont,0,24); final public static Font userFont = new Font(sigIRC.usernameFont,0,16); final public static Font smallFont = new Font(sigIRC.touhoumotherConsoleFont,0,12); + final public static Font rabiRibiMoneyDisplayFont = new Font("CP Font",0,16); public int lastMouseX = 0; public int lastMouseY = 0; diff --git a/src/sig/modules/RabiRibi/Entity.java b/src/sig/modules/RabiRibi/Entity.java index 49ab461..2a4bcec 100644 --- a/src/sig/modules/RabiRibi/Entity.java +++ b/src/sig/modules/RabiRibi/Entity.java @@ -2,6 +2,9 @@ package sig.modules.RabiRibi; import java.awt.Point; import java.lang.reflect.Field; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import com.sun.jna.Memory; import com.sun.jna.Pointer; @@ -25,6 +28,9 @@ public class Entity { long pointer; int color = 0; public EntityMarker marker; + public static int taskDone=1; //1 = Free, 0 = In Progress, -1 = Stop all current processes + + boolean killed=false; public Entity(long memoryOffset, int uuid, RabiRibiModule parent) { this.parent=parent; @@ -33,7 +39,7 @@ public class Entity { this.marker = new EntityMarker((int)x,(int)y,(int)x,(int)y,this,parent); UpdateValues(); this.active = readIntFromMemoryOffset(MemoryOffset.ENTITY_ISACTIVE, pointer)==1 && - id!=0 && id!=1 && maxhp!=0; + /*id!=0 && id!=1 &&*/ maxhp!=0; if (this.active) { parent.overlay.objects.add(this.marker); } @@ -83,6 +89,14 @@ public class Entity { if (this.animation!=-9999) { this.hp = readIntFromMemoryOffset(MemoryOffset.ENTITY_HP, pointer); } else { + if (active && !killed) { + killed=true; + if (taskDone==1 && !RabiUtils.isGamePaused()) { + RetrieveMoneyValueForLookupData(id,color); + } + EntityLookupData data = EntityLookupData.getEntityLookupData(id, color); + data.increaseKills(1); + } this.hp = 0; } this.maxhp = readIntFromMemoryOffset(MemoryOffset.ENTITY_MAXHP, pointer); @@ -92,6 +106,11 @@ public class Entity { this.marker.setTarget(parent.overlay.getScreenPosition(x,y)); } + private void RetrieveMoneyValueForLookupData(int id, int color) { + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + scheduler.scheduleWithFixedDelay(new MoneyUpdateTask(scheduler,id,color,parent),500,500,TimeUnit.MILLISECONDS); + } + public int getUniqueID() { return uuid; } @@ -141,4 +160,60 @@ public class Entity { sb.append(")"); return sb.toString(); } + + class MoneyUpdateTask implements Runnable{ + ScheduledExecutorService scheduler; + RabiRibiModule parent; + int prev_money_val = -1; + int starting_money_val = 0; + int id, col; + int checkcount=0; + + MoneyUpdateTask(ScheduledExecutorService scheduler, int id, int col, RabiRibiModule parent) { + this.scheduler=scheduler; + this.parent=parent; + UpdateMoney(); + starting_money_val = prev_money_val; + this.id=id; + this.col=col; + //System.out.println("Starting Money Value: "+starting_money_val); + } + + private void UpdateMoney() { + prev_money_val = parent.readIntFromMemory(MemoryOffset.MONEY); + } + + @Override + public void run() { + if (Entity.taskDone==-1) { + System.out.println("Quitting early, killed an extra enemy."); + Entity.taskDone=1; + scheduler.shutdownNow(); + return; + } + if (RabiUtils.isGamePaused()) { + return; + } + int current_money = parent.readIntFromMemory(MemoryOffset.MONEY); + if (current_money==prev_money_val && (current_money!=starting_money_val || checkcount>5)) { + //System.out.println("Money Value matches, adding "+(current_money-starting_money_val)+" to "+lookup_data+" with ID "+id+","+color); + String hashcode = EntityLookupData.getHashCode(id, color); + if (parent.lookup_table.containsKey(hashcode)) { + EntityLookupData lookup_data = parent.lookup_table.get(hashcode); + lookup_data.setMoney(lookup_data.getMoney()+(current_money-starting_money_val)); + } else { + EntityLookupData lookup_data = new EntityLookupData(current_money-starting_money_val); + parent.lookup_table.put(hashcode,lookup_data); + parent.setStatusMessage("Adding "+(current_money-starting_money_val)+" to hash ID "+id+","+color); + } + EntityLookupData.saveEntityLookupData(parent.lookup_table); + Entity.taskDone=1; + scheduler.shutdownNow(); + } else { + checkcount++; + UpdateMoney(); + } + } + + } } diff --git a/src/sig/modules/RabiRibi/EntityLookupData.java b/src/sig/modules/RabiRibi/EntityLookupData.java new file mode 100644 index 0000000..4599469 --- /dev/null +++ b/src/sig/modules/RabiRibi/EntityLookupData.java @@ -0,0 +1,159 @@ +package sig.modules.RabiRibi; + +import java.io.File; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import sig.sigIRC; +import sig.modules.RabiRibiModule; +import sig.utils.FileUtils; + +public class EntityLookupData { + final static String RABIRIBI_DIR = sigIRC.BASEDIR+"sigIRC/rabi-ribi/"; + final static String LOOKUP_DATA_FILE = RABIRIBI_DIR+"lookupdata.txt"; + int en=-1; + int kills=0; + public static RabiRibiModule parent; + + public EntityLookupData(){ + }; + + public EntityLookupData(int en){ + this(); + this.en=en; + }; + + public EntityLookupData(String[] parse_string){ + this(); + int i=1; + if (parse_string.length>=i++) { + this.en = Integer.parseInt(parse_string[0]); + } + if (parse_string.length>=i++) { + this.kills = Integer.parseInt(parse_string[1]); + } + }; + + public static int getMoney(int id, int color) { + String hashcode = EntityLookupData.getHashCode(id, color); + System.out.println("Hashcode is "+hashcode); + if (parent.lookup_table.containsKey(hashcode)) { + return parent.lookup_table.get(hashcode).getMoney(); + } else { + return -1; + } + } + + public int getMoney() { + return en; + } + + public void setMoney(int money) { + en = money; + } + + public int getKills() { + return kills; + } + + public void increaseKills(int amt) { + kills += amt; + } + + public String getSaveString() { + StringBuilder sb = new StringBuilder(); + sb.append(en); + sb.append(","); + sb.append(kills); + sb.append(","); + return sb.toString(); + } + + public static EntityLookupData getEntityLookupData(int id, int color) { + String hashcode = EntityLookupData.getHashCode(id, color); + if (parent.lookup_table.containsKey(hashcode)) { + return parent.lookup_table.get(hashcode); + } else { + EntityLookupData data = new EntityLookupData(0); + parent.lookup_table.put(getHashCode(id,color), data); + return data; + } + } + + public static String getHashCode(int id, int color) { + StringBuilder sb = new StringBuilder(); + sb.append(id); + sb.append("_"); + sb.append(color); + sb.append("_"); + sb.append(parent.readIntFromMemory(MemoryOffset.GAME_DIFFICULTY)); + sb.append("_"); + sb.append(parent.readIntFromMemory(MemoryOffset.GAME_LOOP)); + return sb.toString(); + } + + public static void saveEntityLookupData(HashMap vals) { + File dir = new File(RABIRIBI_DIR); + if (!dir.exists()) { + dir.mkdirs(); + } + List data = new ArrayList(); + for (String s : vals.keySet()) { + EntityLookupData lookup_data = vals.get(s); + data.add(s+":"+lookup_data.getSaveString()); + } + FileUtils.writetoFile(data.toArray(new String[data.size()]), LOOKUP_DATA_FILE); + } + + public static void loadEntityLookupData(HashMap map) { + File file = new File(LOOKUP_DATA_FILE); + map.clear(); + if (file.exists()) { + String[] data = FileUtils.readFromFile(LOOKUP_DATA_FILE); + for (String s : data) { + String[] key_split = s.split(":"); + String[] split = key_split[1].split(","); + + EntityLookupData lookup_data = new EntityLookupData( + split + ); + + map.put(key_split[0], + lookup_data + ); + } + } + } + + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(this.getClass().getName()+"("); + boolean first=false; + for (Field f : this.getClass().getDeclaredFields()) { + //if (!ReflectUtils.isCloneable(f)) { + if (!first) { + try { + sb.append(f.getName()+"="+f.get(this)); + first=true; + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } else { + try { + sb.append(","+f.getName()+"="+f.get(this)); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + //} + } + sb.append(")"); + return sb.toString(); + } +} diff --git a/src/sig/modules/RabiRibi/MemoryOffset.java b/src/sig/modules/RabiRibi/MemoryOffset.java index 7e02840..adaae00 100644 --- a/src/sig/modules/RabiRibi/MemoryOffset.java +++ b/src/sig/modules/RabiRibi/MemoryOffset.java @@ -33,7 +33,10 @@ public enum MemoryOffset { ENTITY_XPOS(0xC), ENTITY_YPOS(0x10), ENTITY_COLOR(0x1C), - TRANSITION_COUNTER(0xA7661C) + TRANSITION_COUNTER(0xA7661C), + + GAME_DIFFICULTY(0xD64338), + GAME_LOOP(0xD6D05C), ; long offset; diff --git a/src/sig/modules/RabiRibi/Overlay.java b/src/sig/modules/RabiRibi/Overlay.java index 1e3669b..3299f67 100644 --- a/src/sig/modules/RabiRibi/Overlay.java +++ b/src/sig/modules/RabiRibi/Overlay.java @@ -4,6 +4,7 @@ import java.awt.Graphics; import java.awt.Point; import java.awt.geom.Point2D; import java.util.ArrayList; +import java.util.ConcurrentModificationException; import java.util.List; import javax.swing.SwingUtilities; @@ -41,8 +42,12 @@ public class Overlay { xspd = camera_xpos-prev_camera_xpos; yspd = camera_ypos-prev_camera_ypos; - for (SmoothObject so : objects) { - so.run(); + try { + for (SmoothObject so : objects) { + so.run(); + } + } catch (ConcurrentModificationException e) { + } /*int new_xcoord,new_ycoord; @@ -107,6 +112,7 @@ public class Overlay { starting_camera_x = camera_xpos; starting_camera_y = camera_ypos; }*/ + //System.out.println("Objects: "+objects.size()); } public Point.Double getScreenPosition(float xpos, float ypos) { @@ -133,8 +139,12 @@ public class Overlay { public void draw(Graphics g) { if (parent.readIntFromMemory(MemoryOffset.TRANSITION_COUNTER)<300) { - for (SmoothObject so : objects) { - so.draw(g); + try { + for (SmoothObject so : objects) { + so.draw(g); + } + } catch (ConcurrentModificationException e) { + } } } diff --git a/src/sig/modules/RabiRibi/RabiUtils.java b/src/sig/modules/RabiRibi/RabiUtils.java new file mode 100644 index 0000000..e42b4aa --- /dev/null +++ b/src/sig/modules/RabiRibi/RabiUtils.java @@ -0,0 +1,11 @@ +package sig.modules.RabiRibi; + +import sig.modules.RabiRibiModule; + +public class RabiUtils { + public static RabiRibiModule module; + + public static boolean isGamePaused() { + return module.readIntFromMemory(MemoryOffset.TRANSITION_COUNTER)>=300; + } +} diff --git a/src/sig/modules/RabiRibi/SmoothObject.java b/src/sig/modules/RabiRibi/SmoothObject.java index 9c2b969..077fdd5 100644 --- a/src/sig/modules/RabiRibi/SmoothObject.java +++ b/src/sig/modules/RabiRibi/SmoothObject.java @@ -32,7 +32,7 @@ public class SmoothObject { return new Point(targetx,targety); } - public void setPosition(Point position) { + public void setPosition(Point.Double position) { x = (int)position.getX(); y = (int)position.getY(); } diff --git a/src/sig/modules/RabiRibiModule.java b/src/sig/modules/RabiRibiModule.java index 3e13558..ec0d48b 100644 --- a/src/sig/modules/RabiRibiModule.java +++ b/src/sig/modules/RabiRibiModule.java @@ -2,13 +2,20 @@ package sig.modules; import java.awt.Color; import java.awt.Graphics; +import java.awt.Point; import java.awt.event.KeyEvent; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.util.ArrayList; import java.util.Arrays; +import java.util.ConcurrentModificationException; import java.util.HashMap; import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import javax.swing.SwingUtilities; import com.sun.jna.Memory; import com.sun.jna.Pointer; @@ -19,9 +26,12 @@ import com.sun.jna.platform.win32.WinNT.HANDLE; import sig.Module; import sig.sigIRC; import sig.modules.RabiRibi.Entity; +import sig.modules.RabiRibi.EntityLookupData; import sig.modules.RabiRibi.MemoryOffset; import sig.modules.RabiRibi.MemoryType; import sig.modules.RabiRibi.Overlay; +import sig.modules.RabiRibi.RabiUtils; +import sig.modules.RabiRibi.SmoothObject; import sig.modules.utils.PsapiTools; import sig.utils.DrawUtils; import sig.utils.FileUtils; @@ -36,9 +46,27 @@ public class RabiRibiModule extends Module{ HashMap entities = new HashMap(); final static int MAX_ENTITIES_TO_UPDATE = 500; final static int ENTITY_ARRAY_ELEMENT_SIZE = 0x704; + public HashMap lookup_table = new HashMap(); + int mapx = 0, mapy = 0; + public String statustext = ""; + public int statustime = 0; + public int moneyearned = 0; + public int moneytime = 0; + public int lastmoney = -1; public Overlay overlay; + public SmoothObject en_counter = new SmoothObject(0,0,0,0,this){ + public void draw(Graphics g) { + int playtime = readIntFromMemory(MemoryOffset.PLAYTIME); + if (moneyearned>0 && moneytime>playtime) { + setTarget(overlay.getScreenPosition(readFloatFromErinaData(MemoryOffset.ERINA_XPOS), readFloatFromErinaData(MemoryOffset.ERINA_YPOS))); + //System.out.println(x+","+y); + DrawUtils.drawCenteredOutlineText(g, sigIRC.panel.rabiRibiMoneyDisplayFont, (int)x, (int)y-96, 2, Color.ORANGE, Color.BLACK, "+"+moneyearned+"EN"); + } + } + }; + public RabiRibiModule(Rectangle2D bounds, String moduleName) { super(bounds, moduleName); //Initialize(); @@ -48,6 +76,9 @@ public class RabiRibiModule extends Module{ } private void Initialize() { + + RabiUtils.module = this; + List pids; try { pids = PsapiTools.getInstance().enumProcesses(); @@ -82,6 +113,15 @@ public class RabiRibiModule extends Module{ } this.overlay = new Overlay(this); + + EntityLookupData.parent=this; + EntityLookupData.loadEntityLookupData(lookup_table); + + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + scheduler.scheduleWithFixedDelay(()->{ + UpdateEntities(); + //System.out.println("Called Entity creation "+callcount+" times."); + }, 1000, 1000, TimeUnit.MILLISECONDS); } public void ApplyConfigWindowProperties() { @@ -95,6 +135,25 @@ public class RabiRibiModule extends Module{ super.run(); updateEntities(); overlay.run(); + + if (lastmoney==-1) { + lastmoney = readIntFromMemory(MemoryOffset.MONEY); + } else + { + int currentmoney = readIntFromMemory(MemoryOffset.MONEY); + if (currentmoney>lastmoney) { + if (moneyearned==0) { + en_counter.setPosition(overlay.getScreenPosition(readFloatFromErinaData(MemoryOffset.ERINA_XPOS), readFloatFromErinaData(MemoryOffset.ERINA_YPOS))); + } + moneyearned+=currentmoney-lastmoney; + moneytime = readIntFromMemory(MemoryOffset.PLAYTIME)+60; + } + lastmoney = currentmoney; + } + if (moneyearned>0 && moneytime getEntities() { @@ -105,24 +164,47 @@ public class RabiRibiModule extends Module{ //System.out.println("Size is "+size); List idsToRemove = new ArrayList(); - for (Integer i : entities.keySet()) { - Entity ent = entities.get(i); - if (!ent.run()) { - idsToRemove.add(i); + try { + for (Integer i : entities.keySet()) { + Entity ent = entities.get(i); + if (!ent.run()) { + idsToRemove.add(i); + } } - } - for (Integer i : idsToRemove) { - if (!overlay.objects.remove(entities.get(i).marker)) { - System.out.println("WARNING! Could not remove overlay EntityMarker. Possible memory leak occurring!"); + for (Integer i : idsToRemove) { + if (!overlay.objects.remove(entities.get(i).marker)) { + System.out.println("WARNING! Could not remove overlay EntityMarker. Possible memory leak occurring!"); + } + entities.remove(i); + //System.out.println("Removed entity "+i+". Entities remaining: "+entities.size()); } - entities.remove(i); + } catch (ConcurrentModificationException e) { + } //System.out.println("Starting address is 0x"+Long.toHexString(readIntFromMemory(MemoryOffset.ENTITY_ARRAY))); - long arrayPtr = readIntFromMemory(MemoryOffset.ENTITY_ARRAY); //System.out.println("Array Pointer starts at 0x"+Long.toHexString(arrayPtr)); + int currentx = (int)(readFloatFromErinaData(MemoryOffset.ERINA_XPOS)/1280); + int currenty = (int)(readFloatFromErinaData(MemoryOffset.ERINA_YPOS)/720); + if (mapx!=(int)(readFloatFromErinaData(MemoryOffset.ERINA_XPOS)/1280) || + mapy!=(int)(readFloatFromErinaData(MemoryOffset.ERINA_YPOS)/720)) { + //System.out.println("Update Entities."); + mapx=currentx; + mapy=currenty; + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + scheduler.schedule(()->{ + UpdateEntities(); + //System.out.println("Called Entity creation "+callcount+" times."); + }, 200, TimeUnit.MILLISECONDS); + } + } + + private void UpdateEntities() { + int callcount=0; + long arrayPtr = readIntFromMemory(MemoryOffset.ENTITY_ARRAY); for (int i=0;i0.5f) { - g.setColor(Color.RED); - } - DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, position.getX(), position.getY()+(i+=24), 3, g.getColor(), Color.WHITE, "XSPD "+readFloatFromErinaData(MemoryOffset.ERINA_XSPEED)); - g.setColor(Color.BLACK); /*DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, position.getX(), position.getY()+(i+=24), 3, Color.BLACK, Color.WHITE, "Sunny Beam: "+Arrays.toString( new int[]{ @@ -169,21 +246,40 @@ public class RabiRibiModule extends Module{ DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, position.getX()+20, position.getY()+(i+=24), 3, Color.BLACK, Color.WHITE, s); }*/ - for (Integer numb : entities.keySet()) { - Entity ent = entities.get(numb); - if (ent.getLastHitTime()>readIntFromMemory(MemoryOffset.PLAYTIME)-180) { - for (String s : TextUtils.WrapText("Entity "+ent.getID()+": "+ent.getHealth()+"/"+ent.getMaxHealth()+" HP "+((ent.getHealth()/(float)ent.getMaxHealth())*100)+"%".replaceAll(",", ", "), sigIRC.panel.programFont, position.getWidth()-20)) { - DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, position.getX()+20, position.getY()+(i+=24), 3, Color.BLACK, Color.WHITE, - s); + try { + for (Integer numb : entities.keySet()) { + Entity ent = entities.get(numb); + if (ent.getLastHitTime()>readIntFromMemory(MemoryOffset.PLAYTIME)-180) { + for (String s : TextUtils.WrapText("Entity "+ent.getID()+": "+ent.getHealth()+"/"+ent.getMaxHealth()+" HP "+((ent.getHealth()/(float)ent.getMaxHealth())*100)+"%".replaceAll(",", ", "), sigIRC.panel.programFont, position.getWidth()-20)) { + DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, position.getX()+20, position.getY()+(i+=24), 3, Color.BLACK, Color.WHITE, + s); + } } } + } catch (ConcurrentModificationException e) { + } + + i+=24; + + int playtime = readIntFromMemory(MemoryOffset.PLAYTIME); + + if (statustext.length()>0 && statustime>playtime-300) { + DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, position.getX(), position.getY()+(i+=48), 3, Color.GREEN, Color.LIGHT_GRAY, statustext); + } + + en_counter.draw(g); } } + + public void setStatusMessage(String msg) { + statustime = readIntFromMemory(MemoryOffset.PLAYTIME); + statustext = msg; + } public void keypressed(KeyEvent ev) { super.keypressed(ev); - /*if (ev.getKeyCode()==KeyEvent.VK_HOME) { + if (ev.getKeyCode()==KeyEvent.VK_HOME) { String memFile = sigIRC.BASEDIR+"memoryDump.txt"; FileUtils.logToFile("Memory Dump of All Loaded Entities:", memFile); for (Integer numb : entities.keySet()) { @@ -194,8 +290,8 @@ public class RabiRibiModule extends Module{ FileUtils.logToFile(" +"+Integer.toHexString(i*4)+": "+readDirectIntFromMemoryLocation(ptrArray)+" / "+readDirectFloatFromMemoryLocation(ptrArray)+"f", memFile); } } - } else - if (ev.getKeyCode()==KeyEvent.VK_END) { + } /*else + if (ev.getKeyCode()==KeyEvent.VK_END) { String memFile = sigIRC.BASEDIR+"memoryDump.txt"; FileUtils.logToFile("Memory Dump of All Erina Values:", memFile); for (int i=0;i200) { g2.setColor(shadow_color); - g2.drawString(as.getIterator(),(int)x+outline_size,(int)y+outline_size); + g2.drawString(as.getIterator(),(int)(x+outline_size+xoffset),(int)(y+outline_size+yoffset)); } else { FontRenderContext frc = g2.getFontMetrics(font).getFontRenderContext(); GlyphVector gv = font.createGlyphVector(frc, message); Rectangle2D box = gv.getVisualBounds(); - Shape shape = gv.getOutline((int)x,(int)y); + Shape shape = gv.getOutline((int)(x+xoffset),(int)(y+yoffset)); g2.setClip(shape); - g2.drawString(as.getIterator(),(int)x,(int)y); + g2.drawString(as.getIterator(),(int)(x+xoffset),(int)(y+yoffset)); g2.setClip(null); g2.setStroke(new BasicStroke(outline_size*2)); g2.setColor(shadow_color); @@ -40,7 +43,11 @@ public class DrawUtils { g2.draw(shape); } g2.setColor(text_color); - g2.drawString(as.getIterator(),(int)x,(int)y); + g2.drawString(as.getIterator(),(int)(x+xoffset),(int)(y+yoffset)); + } + public static void drawCenteredOutlineText(Graphics g, Font font, double x, double y, int outline_size, Color text_color, Color shadow_color, String message) { + Rectangle2D textBounds = TextUtils.calculateStringBoundsFont(message, font); + drawOutlineText(g,font,x,y,-textBounds.getWidth()/2,-textBounds.getHeight()/2,outline_size,text_color,shadow_color,message); } public static void drawText(Graphics g, double x, double y, Color color, String message) { if (message.length()>0) {