1 package cz.cuni.amis.pogamut.ut2004.communication.worldview;
2
3 import com.google.inject.Inject;
4 import com.google.inject.name.Named;
5
6 import cz.cuni.amis.pogamut.base.communication.mediator.IMediator;
7 import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldChangeEvent;
8 import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdatedEvent;
9 import cz.cuni.amis.pogamut.base.component.bus.IComponentBus;
10 import cz.cuni.amis.pogamut.base.component.controller.ComponentDependencies;
11 import cz.cuni.amis.pogamut.base.utils.guice.AgentScoped;
12 import cz.cuni.amis.pogamut.base.utils.logging.IAgentLogger;
13 import cz.cuni.amis.pogamut.base3d.worldview.impl.BatchAwareWorldView;
14 import cz.cuni.amis.pogamut.base3d.worldview.object.IViewable;
15 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.BeginMessage;
16 import cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages.EndMessage;
17 import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.IGBViewable;
18 import cz.cuni.amis.pogamut.ut2004.communication.worldview.objects.IGBWorldObjectDisappeared;
19
20
21
22
23
24 @AgentScoped
25 public class UT2004WorldView extends BatchAwareWorldView {
26
27 public static final String WORLDVIEW_DEPENDENCY = "UT2004WorldViewDependency";
28
29 @Inject
30 public UT2004WorldView(@Named(WORLDVIEW_DEPENDENCY) ComponentDependencies dependencies, IMediator mediator, IComponentBus bus, IAgentLogger log) {
31 super(dependencies, bus, log);
32 mediator.setConsumer(this);
33 }
34
35 @Override
36 protected boolean isBatchEndEvent(IWorldChangeEvent evt) {
37 return evt instanceof EndMessage;
38 }
39
40 @Override
41 protected boolean isBatchBeginEvent(IWorldChangeEvent evt) {
42 return evt instanceof BeginMessage;
43 }
44
45 @Override
46 protected void setDisappearedFlag(IViewable obj) {
47 IGBViewable gbView = (IGBViewable) obj;
48 IWorldObjectUpdatedEvent dis = gbView.createDisappearEvent();
49 dis.update(obj);
50 }
51 }