OSDN Git Service

309ab7d10e1da7b1d37f7295cada00cfc8a57d2a
[chemicraft/ChemiCraftNext.git] / common / pcc / chemicraft / core / debug / DebugTick.java
1 package pcc.chemicraft.core.debug;
2
3 import java.awt.Color;
4 import java.awt.Font;
5 import java.awt.Graphics;
6 import java.awt.Graphics2D;
7 import java.util.EnumSet;
8 import java.util.HashMap;
9 import java.util.Iterator;
10
11 import javax.swing.JFrame;
12 import javax.swing.JPanel;
13
14 import cpw.mods.fml.common.ITickHandler;
15 import cpw.mods.fml.common.TickType;
16
17 public class DebugTick extends JPanel implements ITickHandler {
18
19         private static HashMap<String, DebugData[]> displayDataList = new HashMap<String, DebugData[]>();
20
21         public DebugTick() {
22                 JFrame frame = new JFrame();
23                 frame.setSize(640, 480);
24                 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
25                 frame.add(this);
26                 frame.setVisible(true);
27
28         }
29
30         @Override
31         public void tickStart(EnumSet<TickType> type, Object... tickData) {
32
33         }
34
35         @Override
36         public void tickEnd(EnumSet<TickType> type, Object... tickData) {
37                 this.repaint();
38         }
39
40         @Override
41         public EnumSet<TickType> ticks() {
42                 return EnumSet.of(TickType.GUI, TickType.CLIENT);
43         }
44
45         @Override
46         public String getLabel() {
47                 return null;
48         }
49
50         @Override
51         public void paintComponent(Graphics g) {
52                 Graphics2D g2 = (Graphics2D) g;
53
54                 g2.clearRect(0, 0, this.getWidth(), this.getHeight());
55
56                 int fontPos = 20;
57                 Iterator<String> itKey = displayDataList.keySet().iterator();
58                 while (itKey.hasNext()) {
59                         String key = itKey.next();
60                         DebugData[] datas = displayDataList.get(key);
61                         g2.setFont(new Font("MS ゴシック", Font.BOLD, 16));
62                         g2.setColor(Color.RED);
63                         g2.drawString(key + ":", 10, fontPos);
64                         g2.setFont(new Font("MS ゴシック", Font.PLAIN, 12));
65                         g2.setColor(Color.BLACK);
66
67                         fontPos += 16;
68
69                         for (int i = 0; i < datas.length; i++) {
70                                 g2.drawString(String.valueOf(datas[i].getKey()) + ":" + String.valueOf(datas[i].getValue()), 10, fontPos);
71                                 fontPos += 12;
72                         }
73
74                         fontPos += 4;
75
76                 }
77         }
78
79         public static void setDebugData(String key, DebugData... value) {
80                 displayDataList.put(key, value);
81         }
82
83         public static void removeDebugData(String key) {
84                 displayDataList.remove(key);
85         }
86
87 }