View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.agent.module.sensor;
2   
3   import java.util.ArrayList;
4   import java.util.Collections;
5   import java.util.Comparator;
6   import java.util.List;
7   
8   import javax.vecmath.Vector3d;
9   
10  import com.thoughtworks.xstream.annotations.XStreamAlias;
11  import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
12  import com.thoughtworks.xstream.annotations.XStreamImplicit;
13  
14  import cz.cuni.amis.pogamut.base3d.worldview.object.Rotation;
15  import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
16  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPoint;
17  import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.NavPointNeighbourLink;
18  
19  @XStreamAlias("NavPoint")
20  public class NavPointExport {
21  
22  	
23  	private static final Comparator<NavPointLinkExport> EDGE_COMPARATOR = new Comparator<NavPointLinkExport>() {
24  		
25  		@Override
26  		public int compare(NavPointLinkExport o1, NavPointLinkExport o2) {
27  			if (o1.Id == null) {
28  				if (o2.Id == null) return 0;
29  				return -1;
30  			} else {
31  				if (o2.Id == null) return 1;
32  				return o1.Id.compareTo(o2.Id);
33  			}
34  		}
35  	};
36  
37  	public NavPointExport() {
38  	}
39  
40  	public NavPointExport(NavPoint navPoint) {
41  
42  		if (navPoint.getId() != null) this.Id = navPoint.getId().getStringId();
43  
44  		if (navPoint.getLocation() != null) this.Location = navPoint.getLocation().toString();
45  
46  		if (navPoint.getVelocity() != null) this.Velocity = navPoint.getVelocity().toString();
47  
48  		this.Visible = navPoint.isVisible();
49  
50  		if (navPoint.getItem() != null) this.Item = navPoint.getItem().getStringId();
51  
52  		if (navPoint.getItemClass() != null) this.ItemClass = navPoint.getItemClass().getName();
53  
54  		this.ItemSpawned = navPoint.isItemSpawned();
55  
56  		this.DoorOpened = navPoint.isDoorOpened();
57  
58  		if (navPoint.getMover() != null) this.Mover = navPoint.getMover().getStringId();
59  
60  		this.LiftOffset = navPoint.getLiftOffset();
61  
62  		this.LiftJumpExit = navPoint.isLiftJumpExit();
63  
64  		this.NoDoubleJump = navPoint.isNoDoubleJump();
65  
66  		this.InvSpot = navPoint.isInvSpot();
67  
68  		this.PlayerStart = navPoint.isPlayerStart();
69  
70  		this.TeamNumber = navPoint.getTeamNumber();
71  
72  		this.DomPoint = navPoint.isDomPoint();
73  
74  		this.DomPointController = navPoint.getDomPointController();
75  
76  		this.Door = navPoint.isDoor();
77  
78  		this.LiftCenter = navPoint.isLiftCenter();
79  
80  		this.LiftExit = navPoint.isLiftExit();
81  
82  		this.AIMarker = navPoint.isAIMarker();
83  
84  		this.JumpSpot = navPoint.isJumpSpot();
85  
86  		this.JumpPad = navPoint.isJumpPad();
87  
88  		this.JumpDest = navPoint.isJumpDest();
89  
90  		this.Teleporter = navPoint.isTeleporter();
91  
92  		this.Rotation = navPoint.getRotation();
93  
94  		this.RoamingSpot = navPoint.isRoamingSpot();
95  
96  		this.SnipingSpot = navPoint.isSnipingSpot();
97  
98  		this.PreferedWeapon = navPoint.getPreferedWeapon();
99  		
100 		this.outgoingEdges = new ArrayList<NavPointLinkExport>(navPoint.getOutgoingEdges().size());
101 		for (NavPointNeighbourLink link : navPoint.getOutgoingEdges().values()) {
102 			outgoingEdges.add(new NavPointLinkExport(link));
103 		}
104 		Collections.sort(this.outgoingEdges, EDGE_COMPARATOR);
105 
106 	}
107 
108 	@XStreamAsAttribute
109 	public String Id;
110 	
111 	private transient UnrealId unrealId;
112 	
113 	public UnrealId getUnrealId() {
114 		if (Id == null) return null;
115 		if (unrealId == null) unrealId = UnrealId.get(Id);
116 		return unrealId;
117 	}
118 
119 	@XStreamAsAttribute
120 	public String Location;
121 
122 	@XStreamAsAttribute
123 	public String Velocity;
124 
125 	@XStreamAsAttribute
126 	public Boolean Visible;
127 
128 	@XStreamAsAttribute
129 	public String Item;
130 	
131 	@XStreamAsAttribute
132 	public String ItemClass;
133 
134 	@XStreamAsAttribute
135 	public Boolean ItemSpawned;
136 
137 	@XStreamAsAttribute
138 	public Boolean DoorOpened;
139 
140 	@XStreamAsAttribute
141 	public String Mover = null;
142 
143 	@XStreamAsAttribute
144 	public Vector3d LiftOffset;
145 
146 	@XStreamAsAttribute
147 	public Boolean LiftJumpExit;
148 
149 	@XStreamAsAttribute
150 	public Boolean NoDoubleJump;
151 
152 	@XStreamAsAttribute
153 	public Boolean InvSpot;
154 
155 	@XStreamAsAttribute
156 	public Boolean PlayerStart;
157 
158 	@XStreamAsAttribute
159 	public int TeamNumber;
160 
161 	@XStreamAsAttribute
162 	public Boolean DomPoint;
163 
164 	@XStreamAsAttribute
165 	public int DomPointController;
166 
167 	@XStreamAsAttribute
168 	public Boolean Door;
169 
170 	@XStreamAsAttribute
171 	public Boolean LiftCenter;
172 
173 	@XStreamAsAttribute
174 	public Boolean LiftExit;
175 
176 	@XStreamAsAttribute
177 	public Boolean AIMarker;
178 
179 	@XStreamAsAttribute
180 	public Boolean JumpSpot;
181 
182 	@XStreamAsAttribute
183 	public Boolean JumpPad;
184 
185 	@XStreamAsAttribute
186 	public Boolean JumpDest;
187 
188 	@XStreamAsAttribute
189 	public Boolean Teleporter;
190 
191 	@XStreamAsAttribute
192 	public Rotation Rotation;
193 
194 	@XStreamAsAttribute
195 	public Boolean RoamingSpot;
196 
197 	@XStreamAsAttribute
198 	public Boolean SnipingSpot;
199 
200 	@XStreamAsAttribute
201 	public String PreferedWeapon;
202 	
203 	@XStreamImplicit(itemFieldName="link")
204 	public List<NavPointLinkExport> outgoingEdges;
205 
206 }