summaryrefslogtreecommitdiff
path: root/NET/worlds/console/ImageCanvas.java
diff options
context:
space:
mode:
authorFuwn <[email protected]>2021-05-03 16:38:41 -0700
committerFuwn <[email protected]>2021-05-03 16:38:41 -0700
commite1e781bb2135ef78592226f1a3eaba4925702f1f (patch)
tree8a5b590463ed413e1c6eabb719130e701b95ca63 /NET/worlds/console/ImageCanvas.java
downloadworlds.jar-main.tar.xz
worlds.jar-main.zip
:star:HEADmain
Diffstat (limited to 'NET/worlds/console/ImageCanvas.java')
-rw-r--r--NET/worlds/console/ImageCanvas.java257
1 files changed, 257 insertions, 0 deletions
diff --git a/NET/worlds/console/ImageCanvas.java b/NET/worlds/console/ImageCanvas.java
new file mode 100644
index 0000000..e9cf62d
--- /dev/null
+++ b/NET/worlds/console/ImageCanvas.java
@@ -0,0 +1,257 @@
+/* */ package NET.worlds.console;
+/* */
+/* */ import NET.worlds.network.URL;
+/* */ import NET.worlds.scape.BGLoaded;
+/* */ import NET.worlds.scape.BackgroundLoader;
+/* */ import NET.worlds.scape.Room;
+/* */ import java.awt.Component;
+/* */ import java.awt.Dimension;
+/* */ import java.awt.Graphics;
+/* */ import java.awt.Image;
+/* */ import java.awt.MediaTracker;
+/* */ import java.awt.Toolkit;
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public class ImageCanvas
+/* */ extends Component
+/* */ implements BGLoaded
+/* */ {
+/* */ private static final long serialVersionUID = 1687513733496926512L;
+/* */ protected URL imageURL_;
+/* */ protected Image image_;
+/* */ protected boolean loaded_;
+/* */ protected Dimension dim_;
+/* 36 */ protected static final URL defaultImageURL = URL.make("home:..\\default.gif");
+/* */
+/* */
+/* */
+/* */ public ImageCanvas(URL inURL)
+/* */ {
+/* 42 */ setNewImage(inURL);
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ protected ImageCanvas() {}
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public ImageCanvas(String nm)
+/* */ {
+/* 60 */ loadImage(nm);
+/* */ }
+/* */
+/* */ private Image loadImage(String nm) {
+/* 64 */ this.imageURL_ = URL.make("home:" + nm);
+/* 65 */ this.image_ = loadLocalImage(this.imageURL_.unalias());
+/* 66 */ if (this.image_ == null) {
+/* 67 */ this.imageURL_ = URL.make("home:..\\" + nm);
+/* 68 */ this.image_ = loadLocalImage(this.imageURL_.unalias());
+/* */ }
+/* 70 */ if (this.image_ == null)
+/* */ {
+/* 72 */ setNewImage(URL.make(nm));
+/* */ }
+/* */
+/* 75 */ return this.image_;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */ public void setNewImage(URL newImageURL, Graphics g)
+/* */ {
+/* 83 */ setNewImage(newImageURL);
+/* */ }
+/* */
+/* */ public void setNewImage(URL newImageURL) {
+/* 87 */ this.imageURL_ = newImageURL;
+/* 88 */ flushImage();
+/* 89 */ this.loaded_ = false;
+/* 90 */ loadRemoteImage();
+/* */ }
+/* */
+/* */ protected void flushImage() {
+/* 94 */ if (this.image_ != null) {
+/* 95 */ this.image_.flush();
+/* 96 */ this.image_ = null;
+/* */ }
+/* */ }
+/* */
+/* */ public void update(Graphics g)
+/* */ {
+/* 102 */ if (g != null) {
+/* 103 */ Dimension d = getSize();
+/* 104 */ if ((this.image_ == null) || (d.width > this.dim_.width) ||
+/* 105 */ (d.height > this.dim_.height))
+/* 106 */ super.update(g);
+/* 107 */ paint(g);
+/* */ }
+/* */ }
+/* */
+/* */ public void paint(Graphics g)
+/* */ {
+/* 113 */ if ((this.image_ != null) && (g != null))
+/* 114 */ g.drawImage(this.image_, 0, 0, this);
+/* */ }
+/* */
+/* */ public void paint(Graphics g, int x, int y) {
+/* 118 */ if ((this.image_ != null) && (g != null))
+/* 119 */ g.drawImage(this.image_, x, y, this);
+/* */ }
+/* */
+/* */ public Dimension imageSize() {
+/* 123 */ if (this.image_ == null)
+/* */ {
+/* 125 */ this.dim_ = new Dimension(0, 0);
+/* */ } else {
+/* 127 */ int width = this.image_.getWidth(this);
+/* 128 */ int height = this.image_.getHeight(this);
+/* 129 */ if ((width != -1) && (height != -1)) {
+/* 130 */ this.dim_ = new Dimension(width, height);
+/* */ }
+/* */ }
+/* */
+/* 134 */ return this.dim_;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public Object asyncBackgroundLoad(String localName, URL remoteURL)
+/* */ {
+/* 148 */ this.image_ = loadLocalImage(localName);
+/* 149 */ if (getGraphics() != null) {
+/* 150 */ update(getGraphics());
+/* */ }
+/* 152 */ return localName;
+/* */ }
+/* */
+/* */ public boolean syncBackgroundLoad(Object obj, URL remoteURL)
+/* */ {
+/* 157 */ String localName = (String)obj;
+/* 158 */ this.image_ = loadLocalImage(localName);
+/* 159 */ if (getGraphics() != null) {
+/* 160 */ update(getGraphics());
+/* */ }
+/* 162 */ return false;
+/* */ }
+/* */
+/* */ public Room getBackgroundLoadRoom() {
+/* 166 */ return null;
+/* */ }
+/* */
+/* */
+/* */ private void loadRemoteImage()
+/* */ {
+/* 172 */ this.image_ = loadLocalImage(defaultImageURL.unalias());
+/* */
+/* */
+/* 175 */ if (this.imageURL_ != defaultImageURL) {
+/* 176 */ BackgroundLoader.get(this, this.imageURL_);
+/* */ }
+/* */ }
+/* */
+/* */ private Image loadLocalImage(String fName) {
+/* 181 */ Image image = Toolkit.getDefaultToolkit().getImage(fName);
+/* */
+/* 183 */ MediaTracker tracker = new MediaTracker(this);
+/* 184 */ tracker.addImage(image, 0);
+/* */ try {
+/* 186 */ tracker.waitForAll();
+/* */ }
+/* */ catch (InterruptedException localInterruptedException) {}
+/* */
+/* 190 */ if (!tracker.isErrorAny()) {
+/* 191 */ this.loaded_ = true;
+/* 192 */ return image;
+/* */ }
+/* */
+/* 195 */ return null;
+/* */ }
+/* */
+/* */ public static Image loadImage(URL url, Component comp) {
+/* 199 */ Image image = Toolkit.getDefaultToolkit().getImage(url.unalias());
+/* */
+/* */
+/* 202 */ MediaTracker tracker = new MediaTracker(comp);
+/* 203 */ tracker.addImage(image, 0);
+/* */ try {
+/* 205 */ tracker.waitForAll();
+/* */ }
+/* */ catch (InterruptedException localInterruptedException) {}
+/* */
+/* 209 */ if (!tracker.isErrorAny()) {
+/* 210 */ return image;
+/* */ }
+/* 212 */ return null;
+/* */ }
+/* */
+/* */
+/* */ public static Image getSystemImage(String name, Component comp)
+/* */ {
+/* 218 */ for (int pass = 0; pass < 2; pass++) {
+/* 219 */ Image image = loadImage(URL.make("home:" + name), comp);
+/* 220 */ if (image != null) {
+/* 221 */ return image;
+/* */ }
+/* */
+/* 224 */ if (pass == 0)
+/* 225 */ name = "..\\" + name;
+/* */ }
+/* 227 */ return null;
+/* */ }
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */
+/* */ public Dimension getPreferredSize()
+/* */ {
+/* 244 */ return imageSize();
+/* */ }
+/* */
+/* */ public Dimension getMinimumSize()
+/* */ {
+/* 249 */ return imageSize();
+/* */ }
+/* */ }
+
+
+/* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\console\ImageCanvas.class
+ * Java compiler version: 6 (50.0)
+ * JD-Core Version: 0.7.1
+ */ \ No newline at end of file