1 package cz.cuni.amis.pogamut.udk.agent.navigation.floydwarshall;
2
3 import java.util.ArrayList;
4
5
6
7
8
9
10
11
12
13
14 public enum LinkFlag {
15
16 WALK(1),
17 FLY(2),
18 SWIM(4),
19 JUMP(8),
20 DOOR(16),
21 SPECIAL(32),
22 LADDER(64),
23 PROSCRIBED(128),
24 FORCED(256),
25 PLAYERONLY(512);
26
27 private int flag = 0;
28
29 private LinkFlag(int flag) {
30 this.flag = flag;
31 }
32
33
34
35
36 public int get() {
37 return flag;
38 }
39
40
41
42
43
44 public boolean isSet(int flag) {
45 return (this.flag & flag) != 0;
46 }
47
48
49
50
51
52
53
54 public static ArrayList<LinkFlag> getFlags(int flags) {
55 ArrayList<LinkFlag> list = new ArrayList<LinkFlag>();
56
57 for (LinkFlag flag : LinkFlag.values()) {
58 if ((flags & flag.get()) != 0) {
59 list.add(flag);
60 }
61 }
62 return list;
63 }
64
65 public static String getFlagsString(int flags) {
66 ArrayList<LinkFlag> allFlags = getFlags(flags);
67 String str = "";
68 if (allFlags.size() == 0)
69 return "none";
70 str = allFlags.get(0).name();
71 allFlags.remove(0);
72 for (LinkFlag flag : allFlags) {
73 str = ", " + flag.name();
74 }
75 return str;
76 }
77 }