Add "substitute" images for images that cannot be found/downloaded.
Offline compatibility mode in progress.
This commit is contained in:
parent
3d60722f68
commit
18f80ff87e
@ -3,17 +3,17 @@
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="lib"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/commons-io-2.5.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/jna-4.5.0.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/jna-platform-4.5.0.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-glfw.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-glfw-natives-linux.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-glfw-natives-macos.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-glfw-natives-windows.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-natives-linux.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-natives-macos.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/lwjgl-natives-windows.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/Downloads/sigIRCv2-master/sigIRCv2/lib/twitch-api-wrapper-0.3-jar-with-dependencies.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/commons-io-2.5.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/jna-4.5.0.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/jna-platform-4.5.0.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-glfw.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-glfw-natives-linux.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-glfw-natives-macos.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-glfw-natives-windows.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-natives-linux.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-natives-macos.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/lwjgl-natives-windows.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/sigon/git/sigIRCv2/sigIRCv2/lib/twitch-api-wrapper-0.3-jar-with-dependencies.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
@ -1,2 +1,2 @@
|
||||
cd "C:\Users\Joshua Sigona\git\sigIRCv2\"
|
||||
java -jar sigIRCv2.jar > log
|
||||
java -jar sigIRCv2.jar
|
Binary file not shown.
@ -2,6 +2,7 @@ package sig;
|
||||
import java.awt.Color;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Image;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.KeyEvent;
|
||||
@ -21,8 +22,8 @@ public class Module {
|
||||
public Rectangle2D position;
|
||||
protected boolean enabled;
|
||||
protected String name;
|
||||
public static BufferedImage IMG_DRAGBAR;
|
||||
public static BufferedImage MSG_SEPARATOR;
|
||||
public static Image IMG_DRAGBAR;
|
||||
public static Image MSG_SEPARATOR;
|
||||
public static boolean inDragZone=false;
|
||||
|
||||
final protected int titleHeight;
|
||||
@ -62,7 +63,7 @@ public class Module {
|
||||
|
||||
public boolean inDragBounds(int x, int y) {
|
||||
return x>=position.getX() && x<=position.getX()+position.getWidth() &&
|
||||
y>=(int)position.getY()-Module.IMG_DRAGBAR.getHeight() &&
|
||||
y>=(int)position.getY()-Module.IMG_DRAGBAR.getHeight(sigIRC.panel) &&
|
||||
y<=(int)position.getY();
|
||||
}
|
||||
|
||||
@ -144,9 +145,9 @@ public class Module {
|
||||
if (!sigIRC.overlayMode) {
|
||||
g.drawImage(Module.IMG_DRAGBAR,
|
||||
(int)position.getX()+2,
|
||||
(int)position.getY()-Module.IMG_DRAGBAR.getHeight(),
|
||||
(int)position.getY()-Module.IMG_DRAGBAR.getHeight(sigIRC.panel),
|
||||
(int)position.getWidth()-4,
|
||||
Module.IMG_DRAGBAR.getHeight(),
|
||||
Module.IMG_DRAGBAR.getHeight(sigIRC.panel),
|
||||
sigIRC.panel);
|
||||
DrawUtils.drawTextFont(g, sigIRC.panel.smallFont, (int)position.getX(), (int)position.getY()-titleHeight/2+4, Color.BLACK, this.name);
|
||||
//g.fillRect((int)position.getX(), (int)position.getY(), (int)position.getWidth(), (int)position.getHeight());
|
||||
|
@ -268,21 +268,13 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener
|
||||
JPanel selectionPanel1 = new JPanel(){
|
||||
public void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
try {
|
||||
g.drawImage(ImageIO.read(new File(ControllerModule.CONTROLLERPATH+"4-way_axis.png")), 0, 0, this);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
g.drawImage(sigIRC.readImage(ControllerModule.CONTROLLERPATH+"4-way_axis.png"), 0, 0, this);
|
||||
}
|
||||
};
|
||||
JPanel selectionPanel2 = new JPanel(){
|
||||
public void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
try {
|
||||
g.drawImage(ImageIO.read(new File(ControllerModule.CONTROLLERPATH+"2-way_axis.png")), 0, 0, this);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
g.drawImage(sigIRC.readImage(ControllerModule.CONTROLLERPATH+"2-way_axis.png"), 0, 0, this);
|
||||
}
|
||||
};
|
||||
//selectionPanel.setLayout(new BoxLayout(selectionPanel,BoxLayout.LINE_AXIS));
|
||||
|
@ -92,13 +92,8 @@ public class ControllerModule extends Module{
|
||||
}
|
||||
}
|
||||
controllers.addAll(ca);
|
||||
try {
|
||||
controller_img = ImageIO.read(new File(CONTROLLERPATH+"controller_template.png")).getScaledInstance((int)position.getWidth(), -1, 0);
|
||||
controller_overlay_img = ImageIO.read(new File(CONTROLLERPATH+"controller_overlay.png")).getScaledInstance((int)position.getWidth(), -1, 0);
|
||||
//System.out.println("Size of controller: "+controller_img.getWidth(sigIRC.panel)+","+controller_img.getHeight(sigIRC.panel));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
controller_img = sigIRC.readImage(CONTROLLERPATH+"controller_template.png").getScaledInstance((int)position.getWidth(), -1, 0);
|
||||
controller_overlay_img = sigIRC.readImage(CONTROLLERPATH+"controller_overlay.png").getScaledInstance((int)position.getWidth(), -1, 0);
|
||||
//buttons.add(new Button(0.1,0.05,0.1,0.05,controllers.get(0),Identifier.Button._3,Color.RED,this));
|
||||
LoadButtonAndAxisData();
|
||||
click_buttons.add(new AddClickableButton(new Rectangle(
|
||||
|
@ -140,12 +140,8 @@ public class RabiRaceModule extends Module{
|
||||
}
|
||||
images = filtered_images.toArray(new String[filtered_images.size()]);
|
||||
for (String image : images) {
|
||||
try {
|
||||
//System.out.println("Loaded "+image);
|
||||
image_map.put(image, ImageIO.read(new File(ITEMS_DIRECTORY+image)));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
//System.out.println("Loaded "+image);
|
||||
image_map.put(image, sigIRC.readImage(ITEMS_DIRECTORY+image));
|
||||
}
|
||||
|
||||
for (MemoryData md : MemoryData.values()) {
|
||||
|
@ -83,10 +83,30 @@ public class RabiRibiModule extends Module{
|
||||
private void Initialize() {
|
||||
|
||||
RabiUtils.module = this;
|
||||
CheckRabiRibiClient();
|
||||
|
||||
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||
scheduler.scheduleWithFixedDelay(()->{
|
||||
CheckRabiRibiClient();
|
||||
}, 5000, 5000, TimeUnit.MILLISECONDS);
|
||||
|
||||
this.overlay = new Overlay(this);
|
||||
|
||||
EntityLookupData.parent=this;
|
||||
EntityLookupData.loadEntityLookupData(lookup_table);
|
||||
|
||||
ScheduledExecutorService scheduler2 = Executors.newScheduledThreadPool(1);
|
||||
scheduler2.scheduleWithFixedDelay(()->{
|
||||
UpdateEntities();
|
||||
//System.out.println("Called Entity creation "+callcount+" times.");
|
||||
}, 1000, 1000, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
private void CheckRabiRibiClient() {
|
||||
List<Integer> pids;
|
||||
try {
|
||||
pids = PsapiTools.getInstance().enumProcesses();
|
||||
boolean found=false;
|
||||
for (Integer pid : pids) {
|
||||
HANDLE process = Kernel32.INSTANCE.OpenProcess(PROCESS_PERMISSIONS, true, pid);
|
||||
List<sig.modules.utils.Module> hModules;
|
||||
@ -95,38 +115,35 @@ public class RabiRibiModule extends Module{
|
||||
for(sig.modules.utils.Module m: hModules){
|
||||
//System.out.println(m.getFileName()+":"+m.getEntryPoint());
|
||||
if (m.getFileName().contains("rabiribi")) {
|
||||
rabiRibiMemOffset = Pointer.nativeValue(m.getLpBaseOfDll().getPointer());
|
||||
System.out.println("Found an instance of Rabi-Ribi at 0x"+Long.toHexString(rabiRibiMemOffset));
|
||||
rabiRibiPID=pid;
|
||||
foundRabiRibi=true;
|
||||
rabiribiProcess=process;
|
||||
found=true;
|
||||
if (!foundRabiRibi) {
|
||||
rabiRibiMemOffset = Pointer.nativeValue(m.getLpBaseOfDll().getPointer());
|
||||
System.out.println("Found an instance of Rabi-Ribi at 0x"+Long.toHexString(rabiRibiMemOffset)+" | File:"+m.getFileName()+","+m.getBaseName());
|
||||
rabiRibiPID=pid;
|
||||
foundRabiRibi=true;
|
||||
rabiribiProcess=process;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found) {
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (foundRabiRibi) {
|
||||
break;
|
||||
}
|
||||
if (process!=null) {
|
||||
Kernel32.INSTANCE.CloseHandle(process);
|
||||
}
|
||||
}
|
||||
if (!found && foundRabiRibi) {
|
||||
foundRabiRibi=false;
|
||||
System.out.println("Rabi-Ribi process lost.");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
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() {
|
||||
@ -205,19 +222,21 @@ public class RabiRibiModule extends Module{
|
||||
}
|
||||
|
||||
private void UpdateEntities() {
|
||||
int callcount=0;
|
||||
long arrayPtr = readIntFromMemory(MemoryOffset.ENTITY_ARRAY);
|
||||
for (int i=0;i<MAX_ENTITIES_TO_UPDATE;i++) {
|
||||
if (!entities.containsKey(i)) {
|
||||
callcount++;
|
||||
Entity ent = new Entity(arrayPtr,i,this);
|
||||
if (ent.isActive()) {
|
||||
//System.out.println("Found entity at index "+i);
|
||||
//entities.add(ent);
|
||||
entities.put(i, ent);
|
||||
if (foundRabiRibi) {
|
||||
int callcount=0;
|
||||
long arrayPtr = readIntFromMemory(MemoryOffset.ENTITY_ARRAY);
|
||||
for (int i=0;i<MAX_ENTITIES_TO_UPDATE;i++) {
|
||||
if (!entities.containsKey(i)) {
|
||||
callcount++;
|
||||
Entity ent = new Entity(arrayPtr,i,this);
|
||||
if (ent.isActive()) {
|
||||
//System.out.println("Found entity at index "+i);
|
||||
//entities.add(ent);
|
||||
entities.put(i, ent);
|
||||
}
|
||||
}
|
||||
arrayPtr += ENTITY_ARRAY_ELEMENT_SIZE;
|
||||
}
|
||||
arrayPtr += ENTITY_ARRAY_ELEMENT_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package sig.modules;
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
@ -56,7 +57,7 @@ public class TouhouMotherModule extends Module implements ActionListener{
|
||||
|
||||
int bossMaxHP=SemiValidInteger.ERROR_VALUE;
|
||||
TouhouMotherBossData currentBoss = null;
|
||||
BufferedImage bossImage = null;
|
||||
Image bossImage = null;
|
||||
int lastCharacterAttacked=0;
|
||||
int lastBossHP=0;
|
||||
final int TIME_BETWEEN_DATA_DISPLAYS = 5 * 6;
|
||||
@ -145,21 +146,21 @@ public class TouhouMotherModule extends Module implements ActionListener{
|
||||
|
||||
public void DrawBossAndPlayerInfo(Graphics g) {
|
||||
g.drawImage(bossImage, (int)position.getX()+4, (int)position.getY()+4, sigIRC.panel);
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, Math.min(bossImage.getWidth()+4,160)+(int)position.getX()+4, (int)position.getY()+4+16, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.programFont, Math.min(bossImage.getWidth(sigIRC.panel)+4,160)+(int)position.getX()+4, (int)position.getY()+4+16, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
currentBoss.getName());
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(bossImage.getWidth()+4,160)+(int)position.getX()+4, (int)position.getY()+4+48, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(bossImage.getWidth(sigIRC.panel)+4,160)+(int)position.getX()+4, (int)position.getY()+4+48, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
real_bossHP+" / "+bossMaxHP +" ("+Math.round(((real_bossHP/(double)bossMaxHP)*100))+"%)");
|
||||
DrawUtils.drawHealthbar(g, new Rectangle(
|
||||
Math.min(bossImage.getWidth()+4,160)+(int)position.getX()+4,
|
||||
Math.min(bossImage.getWidth(sigIRC.panel)+4,160)+(int)position.getX()+4,
|
||||
(int)position.getY()+4+20,
|
||||
(int)TextUtils.calculateStringBoundsFont(bossMaxHP+" / "+bossMaxHP +" ("+Math.round((1d*100))+"%", sigIRC.panel.userFont).getWidth(),
|
||||
8
|
||||
), real_bossHP/(double)bossMaxHP, ChooseHealthbarColor(real_bossHP/(double)bossMaxHP));
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(bossImage.getWidth()+4,160)+(int)position.getX()+16, (int)position.getY()+4+68, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(bossImage.getWidth(sigIRC.panel)+4,160)+(int)position.getX()+16, (int)position.getY()+4+68, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
TextUtils.convertSecondsToTimeFormat(secondsCount));
|
||||
int record = TimeRecord.getRecord(currentBoss.getID());
|
||||
if (record!=TimeRecord.ERROR_VALUE) {
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.smallFont, Math.min(bossImage.getWidth()+4,160)+(int)position.getX()+
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.smallFont, Math.min(bossImage.getWidth(sigIRC.panel)+4,160)+(int)position.getX()+
|
||||
TextUtils.calculateStringBoundsFont(TextUtils.convertSecondsToTimeFormat(secondsCount), sigIRC.panel.userFont).getWidth()+20,
|
||||
(int)position.getY()+4+72, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
"RECORD "+TextUtils.convertSecondsToTimeFormat(record));
|
||||
@ -175,18 +176,18 @@ public class TouhouMotherModule extends Module implements ActionListener{
|
||||
int totaldmg = calculateDataPropertyTotalValue(property);
|
||||
for (int i=0;i<sorteddmg.length;i++) {
|
||||
if (sorteddmg[i]!=-1 && characterDatabase[sorteddmg[i]].getDataProperty(property)>0) {
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(((bossImage!=null)?bossImage.getWidth():0)+4,160)+(int)position.getX()+4-Math.min(50, (bossImage!=null)?bossImage.getWidth():0)+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, Math.min(((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0)+4,160)+(int)position.getX()+4-Math.min(50, (bossImage!=null)?bossImage.getWidth(sigIRC.panel):0)+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
characterDatabase[sorteddmg[i]].getName());
|
||||
DrawUtils.drawHealthbar(g,
|
||||
new Rectangle(
|
||||
Math.min(((bossImage!=null)?bossImage.getWidth():0)+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth():0))+x,
|
||||
Math.min(((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0)+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0))+x,
|
||||
(int)position.getY()+4+86+pos+y,
|
||||
96,
|
||||
10
|
||||
)
|
||||
, (double)characterDatabase[sorteddmg[i]].getDataProperty(property)/maxdmg, characterDatabase[sorteddmg[i]].getColor());
|
||||
DecimalFormat df = new DecimalFormat("0.0");
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.smallFont, Math.min((bossImage!=null)?bossImage.getWidth():0+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth():0))+108+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.smallFont, Math.min((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0+4,160)+(int)position.getX()+4+Math.max(0, 50-((bossImage!=null)?bossImage.getWidth(sigIRC.panel):0))+108+x, (int)position.getY()+4+96+pos+y, 1, Color.WHITE, new Color(30,0,86,255),
|
||||
characterDatabase[sorteddmg[i]].getDataProperty(property)+" "+"("+df.format(((((double)characterDatabase[sorteddmg[i]].getDataProperty(property)/totaldmg))*100))+"%)");
|
||||
pos+=16;
|
||||
}
|
||||
@ -365,12 +366,8 @@ public class TouhouMotherModule extends Module implements ActionListener{
|
||||
for (TouhouMotherCharacterData tmcd : characterDatabase) {
|
||||
tmcd.setCurrentDamage(0);
|
||||
}
|
||||
try {
|
||||
currentBoss.getFileManager().verifyAndFetchFileFromServer();
|
||||
bossImage = ImageIO.read(new File(sigIRC.BASEDIR+"Boss Sprites/"+currentBoss.getImage()));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
currentBoss.getFileManager().verifyAndFetchFileFromServer();
|
||||
bossImage = sigIRC.readImage(sigIRC.BASEDIR+"Boss Sprites/"+currentBoss.getImage());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package sig.modules.Twitch;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
@ -15,7 +16,7 @@ import sig.utils.DrawUtils;
|
||||
import sig.utils.TextUtils;
|
||||
|
||||
public class FancyNumber {
|
||||
BufferedImage icon;
|
||||
Image icon;
|
||||
int displayedValue=0;
|
||||
int lastValue=0;
|
||||
int lastValueChange=0;
|
||||
@ -25,11 +26,7 @@ public class FancyNumber {
|
||||
final static String ICONDIR = sigIRC.BASEDIR+"sigIRC/";
|
||||
|
||||
public FancyNumber(String icon_name, int startingValue) {
|
||||
try {
|
||||
icon = ImageIO.read(new File(ICONDIR+icon_name));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
icon = sigIRC.readImage(ICONDIR+icon_name);
|
||||
lastValue = startingValue;
|
||||
}
|
||||
|
||||
@ -53,7 +50,7 @@ public class FancyNumber {
|
||||
int xoffset = 0;
|
||||
int yoffset = 0;
|
||||
g.drawImage(icon, x, y, sigIRC.panel);
|
||||
xoffset+=icon.getWidth()+4;
|
||||
xoffset+=icon.getWidth(sigIRC.panel)+4;
|
||||
if (displayedValue!=lastValue) {
|
||||
if (delayCount==0) {
|
||||
int diff = Math.abs(displayedValue-lastValue);
|
||||
@ -83,7 +80,7 @@ public class FancyNumber {
|
||||
lastValueChange--;
|
||||
g.drawImage((upArrow)?TwitchModule.UPARROWIMAGE:TwitchModule.DOWNARROWIMAGE, x+xoffset, y+yoffset, sigIRC.panel);
|
||||
}
|
||||
xoffset+=((upArrow)?TwitchModule.UPARROWIMAGE.getWidth():TwitchModule.DOWNARROWIMAGE.getWidth())+4;
|
||||
xoffset+=((upArrow)?TwitchModule.UPARROWIMAGE.getWidth(sigIRC.panel):TwitchModule.DOWNARROWIMAGE.getWidth(sigIRC.panel))+4;
|
||||
return new Rectangle(x,y,xoffset,yoffset+16);
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package sig.modules;
|
||||
import java.awt.Color;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.geom.Rectangle2D;
|
||||
@ -44,8 +45,8 @@ public class TwitchModule extends Module{
|
||||
final public static String SOUNDSDIR = sigIRC.BASEDIR+"sigIRC/follower_sounds/";
|
||||
final public static String FOLLOWERQUEUEFILE = USERDIR+"followers.txt";
|
||||
public static boolean streamOnline = false;
|
||||
static BufferedImage follower_img;
|
||||
BufferedImage followerUserLogo;
|
||||
static Image follower_img;
|
||||
Image followerUserLogo;
|
||||
List<Announcement> follower_queue = new ArrayList<Announcement>();
|
||||
final static int FOLLOWERCHECKTIMER = 900;
|
||||
int lastFollowerCheck=300;
|
||||
@ -59,9 +60,9 @@ public class TwitchModule extends Module{
|
||||
Date uptime = Calendar.getInstance().getTime();
|
||||
String currentlyPlaying=" ";
|
||||
final public static int ARROWTIMER = 3000;
|
||||
public static BufferedImage UPARROWIMAGE;
|
||||
public static BufferedImage DOWNARROWIMAGE;
|
||||
public static BufferedImage UPTIMEIMAGE;
|
||||
public static Image UPARROWIMAGE;
|
||||
public static Image DOWNARROWIMAGE;
|
||||
public static Image UPTIMEIMAGE;
|
||||
|
||||
public TwitchModule(Rectangle2D bounds, String moduleName) {
|
||||
this(bounds,moduleName,true);
|
||||
@ -243,15 +244,10 @@ public class TwitchModule extends Module{
|
||||
}
|
||||
|
||||
private void InitializeImages() {
|
||||
try {
|
||||
follower_img = ImageIO.read(new File(sigIRC.BASEDIR+sigIRC.twitchmodule_follower_img));
|
||||
UPARROWIMAGE = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/icon_up_arrow.png"));
|
||||
DOWNARROWIMAGE = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/icon_down_arrow.png"));
|
||||
UPTIMEIMAGE = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/icon_uptime.png"));
|
||||
//System.out.println("Initialized Follower Image successfully.");
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
follower_img = sigIRC.readImage(sigIRC.BASEDIR+sigIRC.twitchmodule_follower_img);
|
||||
UPARROWIMAGE = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/icon_up_arrow.png");
|
||||
DOWNARROWIMAGE = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/icon_down_arrow.png");
|
||||
UPTIMEIMAGE = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/icon_uptime.png");
|
||||
}
|
||||
|
||||
private void CreateFollowerQueueLog() {
|
||||
@ -429,7 +425,7 @@ public class TwitchModule extends Module{
|
||||
private void DrawStatisticsBar(Graphics g) {
|
||||
g.setColor(new Color(25,25,25));
|
||||
int xoffset = (int)position.getX()+4;
|
||||
int yoffset = (int)(position.getY()+follower_img.getHeight()+sigIRC.twitchmodule_newfollowerImgLogoSize);
|
||||
int yoffset = (int)(position.getY()+follower_img.getHeight(sigIRC.panel)+sigIRC.twitchmodule_newfollowerImgLogoSize);
|
||||
g.fillPolygon(new int[]{(int)position.getX(),(int)(position.getX()+position.getWidth()),(int)(position.getX()+position.getWidth()),(int)position.getX()},
|
||||
new int[]{yoffset-4,yoffset-4,yoffset+16,yoffset+16},
|
||||
4);
|
||||
@ -445,7 +441,7 @@ public class TwitchModule extends Module{
|
||||
private Rectangle DrawUptime(Graphics g, int x, int y) {
|
||||
int xoffset = 0;
|
||||
int yoffset = 0;
|
||||
g.drawImage(UPTIMEIMAGE, x+xoffset, y+yoffset-2, sigIRC.panel);xoffset+=UPTIMEIMAGE.getWidth()+4;
|
||||
g.drawImage(UPTIMEIMAGE, x+xoffset, y+yoffset-2, sigIRC.panel);xoffset+=UPTIMEIMAGE.getWidth(sigIRC.panel)+4;
|
||||
String timediff = TimeUtils.GetTimeDifferenceFromCurrentDate(uptime);
|
||||
if (timediff.length()>0) {
|
||||
DrawUtils.drawTextFont(g, sigIRC.panel.userFont, x+xoffset, y+yoffset+TextUtils.calculateStringBoundsFont(timediff, sigIRC.panel.userFont).getHeight()/2+3,new Color(184,181,192),timediff);xoffset+=TextUtils.calculateStringBoundsFont(timediff, sigIRC.panel.userFont).getWidth()+12;
|
||||
@ -463,7 +459,7 @@ public class TwitchModule extends Module{
|
||||
: 0;
|
||||
final int canvasYOffset =
|
||||
(sigIRC.twitchmodule_follower_img_animation)
|
||||
? Math.min(follower_img.getHeight(),yAlteration)
|
||||
? Math.min(follower_img.getHeight(sigIRC.panel),yAlteration)
|
||||
: 0;
|
||||
final int xAlteration =
|
||||
(sigIRC.twitchmodule_follower_img_animation)
|
||||
@ -471,13 +467,13 @@ public class TwitchModule extends Module{
|
||||
: 0;
|
||||
final int canvasXOffset =
|
||||
(sigIRC.twitchmodule_follower_img_animation)
|
||||
? Math.min(follower_img.getWidth(),xAlteration)
|
||||
? Math.min(follower_img.getWidth(sigIRC.panel),xAlteration)
|
||||
: 0;
|
||||
//System.out.println(yAlteration);
|
||||
//g.drawImage(follower_img, (int)bounds.getX()+xAlteration, (int)bounds.getY()+yAlteration, sigIRC.panel);
|
||||
//g.drawImage(follower_img, (int)bounds.getX(), (int)bounds.getY(), , , sigIRC.panel)
|
||||
g.drawImage(follower_img, (int)position.getX(), (int)position.getY()+canvasYOffset, (int)position.getX()+follower_img.getWidth()+canvasXOffset, (int)position.getY()+follower_img.getHeight(),
|
||||
-xAlteration, 0, follower_img.getWidth(), follower_img.getHeight()-yAlteration, sigIRC.panel);
|
||||
g.drawImage(follower_img, (int)position.getX(), (int)position.getY()+canvasYOffset, (int)position.getX()+follower_img.getWidth(sigIRC.panel)+canvasXOffset, (int)position.getY()+follower_img.getHeight(sigIRC.panel),
|
||||
-xAlteration, 0, follower_img.getWidth(sigIRC.panel), follower_img.getHeight(sigIRC.panel)-yAlteration, sigIRC.panel);
|
||||
Rectangle2D usernameTextsize = TextUtils.calculateStringBoundsFont(announcedFollowerUser.getDisplayName(), sigIRC.panel.programFont);
|
||||
int textY = (int)position.getY()+sigIRC.twitchmodule_followerText_Y+yAlteration;
|
||||
int textX = (int)position.getX()+sigIRC.twitchmodule_followerText_centerX+xAlteration;
|
||||
@ -488,13 +484,13 @@ public class TwitchModule extends Module{
|
||||
if (followerUserLogo!=null) {
|
||||
final int image_size = sigIRC.twitchmodule_newfollowerImgLogoSize;
|
||||
int img_startx = (int)(position.getX()+position.getWidth()-ticksPassed*3-(image_size+4));
|
||||
int img_starty = (int)(position.getY()+follower_img.getHeight()+2-image_size/2);
|
||||
int img_starty = (int)(position.getY()+follower_img.getHeight(sigIRC.panel)+2-image_size/2);
|
||||
//g.setColor(Color.BLACK);
|
||||
//g.drawRect(img_startx, img_starty, image_size, image_size);
|
||||
g.drawImage(followerUserLogo, img_startx, img_starty, img_startx+image_size, img_starty+image_size, 0, 0, followerUserLogo.getWidth(), followerUserLogo.getHeight(), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerImgBackgroundColor), sigIRC.panel);
|
||||
g.drawImage(followerUserLogo, img_startx, img_starty, img_startx+image_size, img_starty+image_size, 0, 0, followerUserLogo.getWidth(sigIRC.panel), followerUserLogo.getHeight(sigIRC.panel), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerImgBackgroundColor), sigIRC.panel);
|
||||
}
|
||||
if (announcedFollowerUser.getBio()!=null && announcedFollowerUser.getBio().length()>0) {
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, position.getX()+position.getWidth()-ticksPassed*3, position.getY()+follower_img.getHeight()+2+8, 2, TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerTextColor), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerShadowTextColor), announcedFollowerUser.getBio());
|
||||
DrawUtils.drawOutlineText(g, sigIRC.panel.userFont, position.getX()+position.getWidth()-ticksPassed*3, position.getY()+follower_img.getHeight(sigIRC.panel)+2+8, 2, TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerTextColor), TextUtils.convertStringToColor(sigIRC.twitchmodule_newfollowerShadowTextColor), announcedFollowerUser.getBio());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,12 +41,14 @@ import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.GraphicsDevice;
|
||||
import java.awt.GraphicsEnvironment;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
@ -159,6 +161,7 @@ public class sigIRC{
|
||||
public static int lastSubEmoteUpdate = -1;
|
||||
public static boolean autoUpdateProgram = true;
|
||||
public static Image programIcon;
|
||||
public static Image missingImage;
|
||||
|
||||
public static int subchannelCount = 0;
|
||||
public static HashMap<Long,String> subchannelIds = new HashMap<Long,String>();
|
||||
@ -213,11 +216,11 @@ public class sigIRC{
|
||||
touhoumothermodule_Y = config.getInteger("TOUHOUMOTHER_module_Y",312);
|
||||
touhoumothermodule_width = config.getInteger("TOUHOUMOTHER_module_width",320);
|
||||
touhoumothermodule_height = config.getInteger("TOUHOUMOTHER_module_height",312);
|
||||
/*rabiribimodule_X = config.getInteger("RABIRIBI_module_X",0);
|
||||
rabiribimodule_X = config.getInteger("RABIRIBI_module_X",0);
|
||||
rabiribimodule_Y = config.getInteger("RABIRIBI_module_Y",312);
|
||||
rabiribimodule_width = config.getInteger("RABIRIBI_module_width",320);
|
||||
rabiribimodule_height = config.getInteger("RABIRIBI_module_height",312);
|
||||
rabiribimodule_enabled = config.getBoolean("Module_rabiribi_Enabled", false);*/
|
||||
rabiribimodule_enabled = config.getBoolean("Module_rabiribi_Enabled", false);
|
||||
rabiracemodule_X = config.getInteger("RABIRACE_module_X",0);
|
||||
rabiracemodule_Y = config.getInteger("RABIRACE_module_Y",312);
|
||||
rabiracemodule_width = config.getInteger("RABIRACE_module_width",320);
|
||||
@ -276,10 +279,28 @@ public class sigIRC{
|
||||
}
|
||||
|
||||
private static void Initialize() {
|
||||
programIcon = sigIRC.readImage(sigIRC.BASEDIR+"/sigIRC/sigIRCicon.png");
|
||||
|
||||
BufferedImage img = new BufferedImage(16,16,BufferedImage.TYPE_INT_ARGB);
|
||||
|
||||
Graphics2D g = img.createGraphics();
|
||||
g.drawRect(0, 0, 15, 15);
|
||||
g.drawLine(0, 0, 15, 15);
|
||||
g.drawLine(0, 15, 15, 0);
|
||||
missingImage = img;
|
||||
}
|
||||
|
||||
public static Image readImage(String file) {
|
||||
Image img;
|
||||
try {
|
||||
programIcon = ImageIO.read(new File(sigIRC.BASEDIR+"/sigIRC/sigIRCicon.png"));
|
||||
img = ImageIO.read(new File(file));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return missingImage;
|
||||
}
|
||||
if (img!=null) {
|
||||
return img;
|
||||
} else {
|
||||
return missingImage;
|
||||
}
|
||||
}
|
||||
|
||||
@ -362,12 +383,8 @@ public class sigIRC{
|
||||
}
|
||||
|
||||
private static void InitializeModules() {
|
||||
try {
|
||||
Module.IMG_DRAGBAR = ImageIO.read(new File(sigIRC.BASEDIR+"drag_bar.png"));
|
||||
Module.MSG_SEPARATOR = ImageIO.read(new File(sigIRC.BASEDIR+"sigIRC/message_separator.png"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Module.IMG_DRAGBAR = sigIRC.readImage(sigIRC.BASEDIR+"drag_bar.png");
|
||||
Module.MSG_SEPARATOR = sigIRC.readImage(sigIRC.BASEDIR+"sigIRC/message_separator.png");
|
||||
if (touhoumothermodule_enabled) {
|
||||
modules.add(new TouhouMotherModule(
|
||||
new Rectangle(touhoumothermodule_X,touhoumothermodule_Y,touhoumothermodule_width,touhoumothermodule_height),
|
||||
|
Loading…
x
Reference in New Issue
Block a user