-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFloatingObjectGroup.java
71 lines (62 loc) · 1.89 KB
/
FloatingObjectGroup.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class FloatingObjectGroup implements FloatingObject {
/*protected*/ public ArrayList<FloatingObject> floaters = new ArrayList<FloatingObject>();
/*protected*/ public TreeMap<String,FloatingObject> namedFloaters = new TreeMap<String,FloatingObject>();
public void clear(){
floaters.clear();
//namedFloaters.clear();
Iterator<String> it = namedFloaters.keySet().iterator();
while (it.hasNext())
if (!it.next().startsWith("~"))
it.remove();
}
@Override
public FloatingObject fastClone() {
FloatingObjectGroup fog = new FloatingObjectGroup();
for (FloatingObject f: floaters)
fog.floaters.add(f.fastClone());
for (Map.Entry<String,FloatingObject> it : namedFloaters.entrySet())
fog.namedFloaters.put(it.getKey(),it.getValue());
return fog;
}
@Override
public void draw(IntArrayImage output) {
for (FloatingObject f: floaters)
f.draw(output);
for (Map.Entry<String,FloatingObject> it : namedFloaters.entrySet())
it.getValue().draw(output);
}
@Override
public void drawSimple(IntArrayImage output) {
for (FloatingObject f: floaters)
f.drawSimple(output);
for (Map.Entry<String,FloatingObject> it : namedFloaters.entrySet())
it.getValue().drawSimple(output);
}
//Base
public void removeFloater(int id){
floaters.remove(id);
}
public FloatingObject getFloater(int id){
if (id<0 || id>=floaters.size()) return null;
return floaters.get(id);
}
public FloatingObject setFloater(int id, FloatingObject f){
if (id>=floaters.size()) floaters.add(f);
else floaters.set(id,f);
return f;
}
public void removeFloater(String id){
namedFloaters.remove(id);
}
public FloatingObject getFloater(String id){
return namedFloaters.get(id);
}
public FloatingObject setFloater(String id, FloatingObject f){
namedFloaters.put(id,f);
return f;
}
}