1 package cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
2
3
4 import java.util.*;import javax.vecmath.*;import cz.cuni.amis.pogamut.base.communication.messages.*;import cz.cuni.amis.pogamut.base.communication.worldview.*;import cz.cuni.amis.pogamut.base.communication.worldview.event.*;import cz.cuni.amis.pogamut.base.communication.worldview.object.*;import cz.cuni.amis.pogamut.multi.communication.worldview.object.*;import cz.cuni.amis.pogamut.base.communication.translator.event.*;import cz.cuni.amis.pogamut.multi.communication.translator.event.*;import cz.cuni.amis.pogamut.base3d.worldview.object.*;import cz.cuni.amis.pogamut.base3d.worldview.object.event.*;import cz.cuni.amis.pogamut.ut2004.communication.messages.*;import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.*;import cz.cuni.amis.pogamut.ut2004multi.communication.worldview.objects.*;import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.*;import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType.Category;import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;import cz.cuni.amis.utils.exception.*;import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdateResult.Result;import cz.cuni.amis.utils.SafeEquals;import cz.cuni.amis.pogamut.base.agent.*;import cz.cuni.amis.pogamut.multi.agent.*;import cz.cuni.amis.pogamut.multi.communication.worldview.property.*;import cz.cuni.amis.pogamut.ut2004multi.communication.worldview.property.*;import cz.cuni.amis.utils.token.*;import cz.cuni.amis.utils.*;
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public abstract class IncomingProjectileLocal
28 extends InfoMessage
29 implements ILocalWorldObject
30
31 ,ILocalGBViewable
32 {
33
34
35
36
37
38
39 public IncomingProjectileLocal()
40 {
41 }
42
43
44
45
46 protected long SimTime;
47
48
49
50
51 @Override
52 public long getSimTime() {
53 return SimTime;
54 }
55
56
57
58
59 protected void setSimTime(long SimTime) {
60 this.SimTime = SimTime;
61 }
62
63
64 @Override
65 public abstract
66 IncomingProjectileLocal clone();
67
68 @Override
69 public Class getCompositeClass() {
70 return IncomingProjectile.class;
71 }
72
73
74
75
76
77
78 public abstract UnrealId getId()
79 ;
80
81
82
83
84 public abstract double getImpactTime()
85 ;
86
87
88
89
90
91
92
93 public abstract boolean isVisible()
94 ;
95
96
97
98
99 public IncomingProjectileLocal getLocal() {
100 return this;
101 }
102 public ISharedWorldObject getShared() {
103 throw new UnsupportedOperationException("Could not return LOCAL");
104 }
105 public IStaticWorldObject getStatic() {
106 throw new UnsupportedOperationException("Could not return LOCAL");
107 }
108
109
110 @Override
111 public ILocalWorldObjectUpdatedEvent createDisappearEvent() {
112 return new ObjectDisappeared(this, getSimTime());
113 }
114
115 public static class ObjectDisappeared implements ILocalWorldObjectUpdatedEvent
116 {
117
118 public ObjectDisappeared(IncomingProjectileLocal obj, long time) {
119 this.obj = obj;
120 this.time = time;
121 }
122
123 private IncomingProjectileLocal obj;
124 private long time;
125
126 @Override
127 public WorldObjectId getId() {
128 return obj.getId();
129 }
130
131
132
133
134 @Override
135 public long getSimTime() {
136 return time;
137 }
138
139 @Override
140 public IWorldObjectUpdateResult<ILocalWorldObject> update(ILocalWorldObject obj)
141 {
142 if (obj == null) {
143 throw new PogamutException("Can't 'disappear' null!", this);
144 }
145 if (!(obj instanceof IncomingProjectileLocalImpl)) {
146 throw new PogamutException("Can't update different class than IncomingProjectileLocalImpl, got class " + obj.getClass().getSimpleName() + "!", this);
147 }
148 IncomingProjectileLocalImpl toUpdate = (IncomingProjectileLocalImpl)obj;
149 if (toUpdate.Visible) {
150 toUpdate.Visible = false;
151 return new IWorldObjectUpdateResult.WorldObjectUpdateResult(IWorldObjectUpdateResult.Result.UPDATED, obj);
152 } else {
153 return new IWorldObjectUpdateResult.WorldObjectUpdateResult(IWorldObjectUpdateResult.Result.SAME, obj);
154 }
155 }
156
157 }
158
159
160
161 public String toString() {
162 return
163 super.toString() + "[" +
164
165 "Id = " + String.valueOf(getId()
166 ) + " | " +
167
168 "ImpactTime = " + String.valueOf(getImpactTime()
169 ) + " | " +
170
171 "Visible = " + String.valueOf(isVisible()
172 ) + " | " +
173
174 "]";
175 }
176
177
178 public String toHtmlString() {
179 return super.toString() + "[<br/>" +
180
181 "<b>Id</b> = " + String.valueOf(getId()
182 ) + " <br/> " +
183
184 "<b>ImpactTime</b> = " + String.valueOf(getImpactTime()
185 ) + " <br/> " +
186
187 "<b>Visible</b> = " + String.valueOf(isVisible()
188 ) + " <br/> " +
189
190 "<br/>]";
191 }
192
193
194
195
196
197
198
199
200
201
202 }
203