package com.droidquest.materials; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.util.Date; import javax.swing.ImageIcon; import com.droidquest.Room; import com.droidquest.decorations.Graphix; import com.droidquest.decorations.TextBox; import com.droidquest.items.Item; public class BlueGridSwitch extends Material { // This object turns off the Blue grid (and HotWires), and opens the // doorway to the room above. public ImageIcon[] images; boolean value=false; int animationState=0; transient Room room=null; Date timeout; transient TextBox textbox = null; public BlueGridSwitch() { super(true, false); } public void GenerateIcons() { images = new ImageIcon[2]; for (int a=0; a<2; a++) { images[a] = new ImageIcon(new BufferedImage(28,32,BufferedImage.TYPE_4BYTE_ABGR)); Graphics g; try { g = images[a].getImage().getGraphics(); } catch (NullPointerException e) { System.out.println("Could not get Graphics pointer to " + getClass() + " Image"); return; } Graphics2D g2 = (Graphics2D) g; Color c; if (a==0) c = Color.white; else c = new Color(255,128,0); g2.setColor(c); g.fillRect(0,0,28,32); g2.setColor(Color.black); g.fillRect(4,14,20,4); g.fillRect(8,12,12,8); g.fillRect(12,8,4,16); g2.setColor(c); g.fillRect(12,14,4,4); } icon = images[0]; if (value) icon = images[1]; } public void TouchedByItem(Item item) { if (animationState==0) { animationState = 1; room = item.room; timeout = new Date(new Date().getTime() + 20000); textbox = (TextBox) item.room.textBoxes.elementAt(0); } } public void Animate() { icon = images[0]; if (value) { icon = images[1]; Date now = new Date(); long timer = timeout.getTime() - now.getTime(); if (timer > 0) { long seconds = Math.abs(timer/1000) + 1; if (seconds<10) textbox.textString = "0" + seconds; else textbox.textString = "" + seconds; } else { textbox.textString = "00"; animationState++; } } switch (animationState) { case 1:value=true; room.SetMaterial(2,0,0); room.upRoom.SetMaterial(2,11,0); for (int a=0; a