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