package com.droidquest.devices; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; import com.droidquest.Room; import com.droidquest.Wire; import com.droidquest.chipstuff.Port; public class XORGate extends Device { transient ImageIcon images[]; public XORGate(int X, int Y, Room r) { x=X; y=Y; room =r; width=28; height=50; GenerateIcons(); currentIcon = icons[rotation%2].getImage(); try { g = icons[0].getImage().getGraphics(); } catch (NullPointerException e) { System.out.println("Could not get Graphics pointer to XORGate Image"); return; } } public void Decorate() { super.Decorate(); if (ports[0].value ^ ports[1].value) g.drawImage(images[4+rotation].getImage(), 0, 0, level); else g.drawImage(images[rotation].getImage(), 0, 0, level); } public void GenerateIcons() { super.GenerateIcons(); if (ports==null) { ports = new Port[3]; ports[0] = new Port(7,47,Port.TYPE_INPUT,12,Port.ROT_DOWN,this); ports[1] = new Port(23,43,Port.TYPE_INPUT,8,Port.ROT_DOWN,this); ports[2] = new Port(12,2,Port.TYPE_OUTPUT,16,Port.ROT_UP,this); if (rotation > 0) { int rot = rotation; if (rotation%2==1) { int temp = width; width = height; height = temp; } rotation = 0; for (int r=0; r