View Javadoc

1   package cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
2    		
3    		// --- IMPORTS FROM /messages/settings/javasettings/javaimport BEGIN
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   		// --- IMPORTS FROM /messages/settings/javasettings/javaimport END
6   		
7   		
8   		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name='all'] BEGIN
9   				
10  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name='all'] END
11  		
12  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=shared]+classtype[@name=abstract] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=shared]+classtype[@name=abstract] END
15      
16   		/**
17           *  
18              				Abstract definition of the shared part of the GameBots2004 message INV.  
19              			
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Synchronous/asynchronous message. An object on the ground that
25  		can be picked up.
26  	
27           */
28   	public abstract class ItemShared 
29    						extends InfoMessage
30    						implements ISharedWorldObject
31    						
32  	    		,ILocated
33  	    {
34   	
35      	
36      	
37      	/**
38      	 * Parameter-less contructor for the message.
39      	 */
40  		public ItemShared()
41  		{
42  		}
43  		
44  				// abstract definition of the shared-part of the message, no more constructors is needed
45  			
46  	   		
47  			protected long SimTime;
48  				
49  			/**
50  			 * Simulation time in MILLI SECONDS !!!
51  			 */	
52  			@Override
53  			public long getSimTime() {
54  				return SimTime;
55  			}
56  						
57  			/**
58  			 * Used by Yylex to slip correct time of the object or programmatically.
59  			 */
60  			protected void setSimTime(long SimTime) {
61  				this.SimTime = SimTime;
62  			}
63  	   	
64  	    						public static final Token LocationPropertyToken = Tokens.get("Location");
65  	    					
66  	    						public static final Token DroppedPropertyToken = Tokens.get("Dropped");
67  	    						
68  							
69  							public static final Set<Token> SharedPropertyTokens;
70  	
71  							static {
72  								Set<Token> tokens = new HashSet<Token>();
73  								
74  									tokens.add(LocationPropertyToken);
75  								
76  									tokens.add(DroppedPropertyToken);
77  								
78  								SharedPropertyTokens = Collections.unmodifiableSet(tokens);
79  							}
80  	    				
81  	    			
82  	    				@Override
83  		    			public abstract 
84  		    			ItemShared clone();
85  		    			
86  						@Override
87  						public Class getCompositeClass() {
88  							return Item.class;
89  						}
90  	
91  						
92  		    			
93   		/**
94           * 
95  			Unique Id of the item. This Id represents just item on the
96  			map, not in our inventory.
97  		 
98           */
99          public abstract UnrealId getId()
100  	;
101 		    			
102  		/**
103          * Location of the item. 
104          */
105         public abstract Location getLocation()
106  	;
107 		    			
108  		/**
109          * 
110             Whether it is regular item or one dropped by some bot (usually during dying). Items that are not dropped
111             usually respawns itself (depends on the game settings) while those that are dropped may be taken only once.
112          
113          */
114         public abstract boolean isDropped()
115  	;
116 		    			
117  		
118  	    public String toString() {
119             return
120             	super.toString() + "[" +
121             	
122 		              			"Id = " + String.valueOf(getId()
123  	) + " | " + 
124 		              		
125 		              			"Location = " + String.valueOf(getLocation()
126  	) + " | " + 
127 		              		
128 		              			"Dropped = " + String.valueOf(isDropped()
129  	) + " | " + 
130 		              		
131 				"]";           		
132         }
133  	
134  		
135  		public String toHtmlString() {
136  			return super.toString() + "[<br/>" +
137             	
138 		              			"<b>Id</b> = " + String.valueOf(getId()
139  	) + " <br/> " + 
140 		              		
141 		              			"<b>Location</b> = " + String.valueOf(getLocation()
142  	) + " <br/> " + 
143 		              		
144 		              			"<b>Dropped</b> = " + String.valueOf(isDropped()
145  	) + " <br/> " + 
146 		              		
147 				"<br/>]";     
148 		}
149  	
150  		
151  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
152         	
153 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
154 		
155 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=shared+classtype[@name=abstract]) ---
156 	        
157 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=shared+classtype[@name=abstract]) ---        	            	
158  	
159 		}
160