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=local]+classtype[@name=impl] BEGIN
13  		
14  		// --- IMPORTS FROM extra/code/java/javapart/classcategory[@name=local]+classtype[@name=impl] END
15      
16   		/**
17           *  
18              				Implementation of the local part of the GameBots2004 message CONFCH.  
19              			
20           *
21           *  <p></p><p></p>
22           *  Complete message documentation:               
23           *  
24  		Asynchronous message. Message sent when the bot configuration
25  		changed - each agent has a lot of parameters affecting his state
26  		in the environment. See each property for the details.
27  	
28           */
29   	public class ConfigChangeLocalImpl 
30    						extends
31    						ConfigChangeLocal
32  	    {
33   	
34      	
35      	
36      	/**
37      	 * Parameter-less contructor for the message.
38      	 */
39  		public ConfigChangeLocalImpl()
40  		{
41  		}
42  	
43      	
44      	
45      	
46      	/**
47  		 * Creates new instance of the message ConfigChange.
48  		 * 
49  		Asynchronous message. Message sent when the bot configuration
50  		changed - each agent has a lot of parameters affecting his state
51  		in the environment. See each property for the details.
52  	
53  		 * Corresponding GameBots message
54  		 *   (local part)
55  		 *   is
56  		 *   CONFCH.
57  		 * 
58   	  	 * 
59  		 *   
60  		 *     @param Id Id of this config message. This Id is generated from BotId, string "_CONFCH" is added at the end.
61  		 *   
62  		 * 
63  		 *   
64  		 *     @param BotId Unique Id of the bot.
65  		 *   
66  		 * 
67  		 *   
68  		 *     @param ManualSpawn 
69  			True if we have to spawn the bot manually after each death
70  		
71  		 *   
72  		 * 
73  		 *   
74  		 *     @param AutoTrace 
75  			True if the bot is using auto ray tracing (is provided with
76  			synchronous ATR messages). See ATR messages for more
77  			details.
78  		
79  		 *   
80  		 * 
81  		 *   
82  		 *     @param Name The bot's name.
83  		 *   
84  		 * 
85  		 *   
86  		 *     @param SpeedMultiplier 
87  			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [GameBots2004.RemoteBot] MaxSpeed).
88  		
89  		 *   
90  		 * 
91  		 *   
92  		 *     @param RotationRate 
93  			Bot rotation rate. Default rotation rate is: (Pitch=3072,Yaw=60000,Roll=2048) and may be configured in ini file in [GameBots2004.RemoteBot] DefaultRotationRate. (pitch - up/down, yaw - left/right, roll - equivalent of doing a cartwheel)
94  		
95  		 *   
96  		 * 
97  		 *   
98  		 *     @param Invulnerable 
99  			If bot is invulnerable (cannot die) or not.
100 		
101 		 *   
102 		 * 
103 		 *   
104 		 *     @param VisionTime 
105 			The delay between two synchronous batches (can range from
106 			0.1 to 2 seconds).
107 		
108 		 *   
109 		 * 
110 		 *   
111 		 *     @param ShowDebug 
112 			If some additional debug information will be shown in the
113 			UT2004 server console window.
114 		
115 		 *   
116 		 * 
117 		 *   
118 		 *     @param ShowFocalPoint 
119 			If true an actor visualizing the location the bot is
120 			actually looking at will appear in the game.
121 		
122 		 *   
123 		 * 
124 		 *   
125 		 *     @param DrawTraceLines 
126 			if the GB should draw lines representing the auto ray traces
127 			of the bot (for more information see ATR message).
128 		
129 		 *   
130 		 * 
131 		 *   
132 		 *     @param SynchronousOff 
133 			It informs if sending of all GB synchronous messages is
134 			enabled or disabled.
135 		
136 		 *   
137 		 * 
138 		 *   
139 		 *     @param AutoPickupOff 
140 			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
141 		
142 		 *   
143 		 * 
144 		 *   
145 		 *     @param Action 
146 			Name of current BDI action.
147 		
148 		 *   
149 		 * 
150 		 */
151 		public ConfigChangeLocalImpl(
152 			UnrealId Id,  UnrealId BotId,  boolean ManualSpawn,  boolean AutoTrace,  String Name,  double SpeedMultiplier,  Rotation RotationRate,  boolean Invulnerable,  double VisionTime,  boolean ShowDebug,  boolean ShowFocalPoint,  boolean DrawTraceLines,  boolean SynchronousOff,  boolean AutoPickupOff,  String Action
153 		) {
154 			
155 					this.Id = Id;
156 				
157 					this.BotId = BotId;
158 				
159 					this.ManualSpawn = ManualSpawn;
160 				
161 					this.AutoTrace = AutoTrace;
162 				
163 					this.Name = Name;
164 				
165 					this.SpeedMultiplier = SpeedMultiplier;
166 				
167 					this.RotationRate = RotationRate;
168 				
169 					this.Invulnerable = Invulnerable;
170 				
171 					this.VisionTime = VisionTime;
172 				
173 					this.ShowDebug = ShowDebug;
174 				
175 					this.ShowFocalPoint = ShowFocalPoint;
176 				
177 					this.DrawTraceLines = DrawTraceLines;
178 				
179 					this.SynchronousOff = SynchronousOff;
180 				
181 					this.AutoPickupOff = AutoPickupOff;
182 				
183 					this.Action = Action;
184 				
185 		}
186     
187     	/**
188 		 * Cloning constructor from the full message.
189 		 *
190 		 * @param original
191 		 */
192 		public ConfigChangeLocalImpl(ConfigChange original) {		
193 			
194 					this.Id = original.getId()
195  	;
196 				
197 					this.BotId = original.getBotId()
198  	;
199 				
200 					this.ManualSpawn = original.isManualSpawn()
201  	;
202 				
203 					this.AutoTrace = original.isAutoTrace()
204  	;
205 				
206 					this.Name = original.getName()
207  	;
208 				
209 					this.SpeedMultiplier = original.getSpeedMultiplier()
210  	;
211 				
212 					this.RotationRate = original.getRotationRate()
213  	;
214 				
215 					this.Invulnerable = original.isInvulnerable()
216  	;
217 				
218 					this.VisionTime = original.getVisionTime()
219  	;
220 				
221 					this.ShowDebug = original.isShowDebug()
222  	;
223 				
224 					this.ShowFocalPoint = original.isShowFocalPoint()
225  	;
226 				
227 					this.DrawTraceLines = original.isDrawTraceLines()
228  	;
229 				
230 					this.SynchronousOff = original.isSynchronousOff()
231  	;
232 				
233 					this.AutoPickupOff = original.isAutoPickupOff()
234  	;
235 				
236 					this.Action = original.getAction()
237  	;
238 				
239 			this.SimTime = original.getSimTime();			
240 		}
241 		
242 		/**
243 		 * Cloning constructor from the full message.
244 		 *
245 		 * @param original
246 		 */
247 		public ConfigChangeLocalImpl(ConfigChangeLocalImpl original) {		
248 			
249 					this.Id = original.getId()
250  	;
251 				
252 					this.BotId = original.getBotId()
253  	;
254 				
255 					this.ManualSpawn = original.isManualSpawn()
256  	;
257 				
258 					this.AutoTrace = original.isAutoTrace()
259  	;
260 				
261 					this.Name = original.getName()
262  	;
263 				
264 					this.SpeedMultiplier = original.getSpeedMultiplier()
265  	;
266 				
267 					this.RotationRate = original.getRotationRate()
268  	;
269 				
270 					this.Invulnerable = original.isInvulnerable()
271  	;
272 				
273 					this.VisionTime = original.getVisionTime()
274  	;
275 				
276 					this.ShowDebug = original.isShowDebug()
277  	;
278 				
279 					this.ShowFocalPoint = original.isShowFocalPoint()
280  	;
281 				
282 					this.DrawTraceLines = original.isDrawTraceLines()
283  	;
284 				
285 					this.SynchronousOff = original.isSynchronousOff()
286  	;
287 				
288 					this.AutoPickupOff = original.isAutoPickupOff()
289  	;
290 				
291 					this.Action = original.getAction()
292  	;
293 				
294 			this.SimTime = original.getSimTime();
295 		}
296 		
297 			/**
298 			 * Cloning constructor from the message part.
299 			 *
300 			 * @param original
301 			 */
302 			public ConfigChangeLocalImpl(ConfigChangeLocal original) {
303 				
304 						this.Id = original.getId()
305  	;
306 					
307 						this.BotId = original.getBotId()
308  	;
309 					
310 						this.ManualSpawn = original.isManualSpawn()
311  	;
312 					
313 						this.AutoTrace = original.isAutoTrace()
314  	;
315 					
316 						this.Name = original.getName()
317  	;
318 					
319 						this.SpeedMultiplier = original.getSpeedMultiplier()
320  	;
321 					
322 						this.RotationRate = original.getRotationRate()
323  	;
324 					
325 						this.Invulnerable = original.isInvulnerable()
326  	;
327 					
328 						this.VisionTime = original.getVisionTime()
329  	;
330 					
331 						this.ShowDebug = original.isShowDebug()
332  	;
333 					
334 						this.ShowFocalPoint = original.isShowFocalPoint()
335  	;
336 					
337 						this.DrawTraceLines = original.isDrawTraceLines()
338  	;
339 					
340 						this.SynchronousOff = original.isSynchronousOff()
341  	;
342 					
343 						this.AutoPickupOff = original.isAutoPickupOff()
344  	;
345 					
346 						this.Action = original.getAction()
347  	;
348 					
349 			}
350 		
351    				
352    				@Override
353    				public void setSimTime(long SimTime) {
354 					super.setSimTime(SimTime);
355 				}
356    			
357 	    				@Override
358 	    				public 
359 	    				ConfigChangeLocalImpl clone() {
360 	    					return new 
361 	    					ConfigChangeLocalImpl(this);
362 	    				}
363 	    				
364 	    				
365     	
366 	    /**
367          * Id of this config message. This Id is generated from BotId, string "_CONFCH" is added at the end. 
368          */
369         protected
370          UnrealId Id =
371        	null;
372 	
373  		/**
374          * Id of this config message. This Id is generated from BotId, string "_CONFCH" is added at the end. 
375          */
376         public  UnrealId getId()
377  	 {
378 				    					return Id;
379 				    				}
380 				    			
381     	
382 	    /**
383          * Unique Id of the bot. 
384          */
385         protected
386          UnrealId BotId =
387        	null;
388 	
389  		/**
390          * Unique Id of the bot. 
391          */
392         public  UnrealId getBotId()
393  	 {
394 				    					return BotId;
395 				    				}
396 				    			
397     	
398 	    /**
399          * 
400 			True if we have to spawn the bot manually after each death
401 		 
402          */
403         protected
404          boolean ManualSpawn =
405        	false;
406 	
407  		/**
408          * 
409 			True if we have to spawn the bot manually after each death
410 		 
411          */
412         public  boolean isManualSpawn()
413  	 {
414 				    					return ManualSpawn;
415 				    				}
416 				    			
417     	
418 	    /**
419          * 
420 			True if the bot is using auto ray tracing (is provided with
421 			synchronous ATR messages). See ATR messages for more
422 			details.
423 		 
424          */
425         protected
426          boolean AutoTrace =
427        	false;
428 	
429  		/**
430          * 
431 			True if the bot is using auto ray tracing (is provided with
432 			synchronous ATR messages). See ATR messages for more
433 			details.
434 		 
435          */
436         public  boolean isAutoTrace()
437  	 {
438 				    					return AutoTrace;
439 				    				}
440 				    			
441     	
442 	    /**
443          * The bot's name. 
444          */
445         protected
446          String Name =
447        	null;
448 	
449  		/**
450          * The bot's name. 
451          */
452         public  String getName()
453  	 {
454 				    					return Name;
455 				    				}
456 				    			
457     	
458 	    /**
459          * 
460 			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [GameBots2004.RemoteBot] MaxSpeed).
461 		 
462          */
463         protected
464          double SpeedMultiplier =
465        	0;
466 	
467  		/**
468          * 
469 			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [GameBots2004.RemoteBot] MaxSpeed).
470 		 
471          */
472         public  double getSpeedMultiplier()
473  	 {
474 				    					return SpeedMultiplier;
475 				    				}
476 				    			
477     	
478 	    /**
479          * 
480 			Bot rotation rate. Default rotation rate is: (Pitch=3072,Yaw=60000,Roll=2048) and may be configured in ini file in [GameBots2004.RemoteBot] DefaultRotationRate. (pitch - up/down, yaw - left/right, roll - equivalent of doing a cartwheel)
481 		 
482          */
483         protected
484          Rotation RotationRate =
485        	null;
486 	
487  		/**
488          * 
489 			Bot rotation rate. Default rotation rate is: (Pitch=3072,Yaw=60000,Roll=2048) and may be configured in ini file in [GameBots2004.RemoteBot] DefaultRotationRate. (pitch - up/down, yaw - left/right, roll - equivalent of doing a cartwheel)
490 		 
491          */
492         public  Rotation getRotationRate()
493  	 {
494 				    					return RotationRate;
495 				    				}
496 				    			
497     	
498 	    /**
499          * 
500 			If bot is invulnerable (cannot die) or not.
501 		 
502          */
503         protected
504          boolean Invulnerable =
505        	false;
506 	
507  		/**
508          * 
509 			If bot is invulnerable (cannot die) or not.
510 		 
511          */
512         public  boolean isInvulnerable()
513  	 {
514 				    					return Invulnerable;
515 				    				}
516 				    			
517     	
518 	    /**
519          * 
520 			The delay between two synchronous batches (can range from
521 			0.1 to 2 seconds).
522 		 
523          */
524         protected
525          double VisionTime =
526        	0;
527 	
528  		/**
529          * 
530 			The delay between two synchronous batches (can range from
531 			0.1 to 2 seconds).
532 		 
533          */
534         public  double getVisionTime()
535  	 {
536 				    					return VisionTime;
537 				    				}
538 				    			
539     	
540 	    /**
541          * 
542 			If some additional debug information will be shown in the
543 			UT2004 server console window.
544 		 
545          */
546         protected
547          boolean ShowDebug =
548        	false;
549 	
550  		/**
551          * 
552 			If some additional debug information will be shown in the
553 			UT2004 server console window.
554 		 
555          */
556         public  boolean isShowDebug()
557  	 {
558 				    					return ShowDebug;
559 				    				}
560 				    			
561     	
562 	    /**
563          * 
564 			If true an actor visualizing the location the bot is
565 			actually looking at will appear in the game.
566 		 
567          */
568         protected
569          boolean ShowFocalPoint =
570        	false;
571 	
572  		/**
573          * 
574 			If true an actor visualizing the location the bot is
575 			actually looking at will appear in the game.
576 		 
577          */
578         public  boolean isShowFocalPoint()
579  	 {
580 				    					return ShowFocalPoint;
581 				    				}
582 				    			
583     	
584 	    /**
585          * 
586 			if the GB should draw lines representing the auto ray traces
587 			of the bot (for more information see ATR message).
588 		 
589          */
590         protected
591          boolean DrawTraceLines =
592        	false;
593 	
594  		/**
595          * 
596 			if the GB should draw lines representing the auto ray traces
597 			of the bot (for more information see ATR message).
598 		 
599          */
600         public  boolean isDrawTraceLines()
601  	 {
602 				    					return DrawTraceLines;
603 				    				}
604 				    			
605     	
606 	    /**
607          * 
608 			It informs if sending of all GB synchronous messages is
609 			enabled or disabled.
610 		 
611          */
612         protected
613          boolean SynchronousOff =
614        	false;
615 	
616  		/**
617          * 
618 			It informs if sending of all GB synchronous messages is
619 			enabled or disabled.
620 		 
621          */
622         public  boolean isSynchronousOff()
623  	 {
624 				    					return SynchronousOff;
625 				    				}
626 				    			
627     	
628 	    /**
629          * 
630 			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
631 		 
632          */
633         protected
634          boolean AutoPickupOff =
635        	false;
636 	
637  		/**
638          * 
639 			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
640 		 
641          */
642         public  boolean isAutoPickupOff()
643  	 {
644 				    					return AutoPickupOff;
645 				    				}
646 				    			
647     	
648 	    /**
649          * 
650 			Name of current BDI action.
651 		 
652          */
653         protected
654          String Action =
655        	null;
656 	
657  		/**
658          * 
659 			Name of current BDI action.
660 		 
661          */
662         public  String getAction()
663  	 {
664 				    					return Action;
665 				    				}
666 				    			
667     	
668     	
669     	
670     	
671     	public ConfigChangeLocalImpl getLocal() {
672 			return this;
673     	}
674 		public ISharedWorldObject getShared() {
675 		 	throw new UnsupportedOperationException("Could not return LOCAL as SHARED");
676 		}
677 		public IStaticWorldObject getStatic() {
678 		    throw new UnsupportedOperationException("Could not return LOCAL as STATIC");
679 		}
680  	
681 		public static class ConfigChangeLocalUpdate
682      implements ILocalWorldObjectUpdatedEvent, IGBWorldObjectEvent
683 		{
684 			protected long time;
685 			
686 			protected ConfigChangeLocal data = null; //contains object data for this update
687 			
688 			public ConfigChangeLocalUpdate
689     (ConfigChangeLocal moverLocal, long time)
690 			{
691 				this.data = moverLocal;
692 				this.time = time;
693 			}
694 			
695 			@Override
696 			public IWorldObjectUpdateResult<ILocalWorldObject> update(
697 					ILocalWorldObject object) 
698 			{
699 				if ( object == null)
700 				{
701 					data = new ConfigChangeLocalImpl(data); //we always return Impl object
702 					return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.CREATED, data);
703 				}
704 				if ( object instanceof ConfigChangeLocalImpl )
705 				{
706 					ConfigChangeLocalImpl toUpdate = (ConfigChangeLocalImpl)object;
707 					
708 					boolean updated = false;
709 					
710 					// UPDATING LOCAL PROPERTIES
711 					
712 				if (!SafeEquals.equals(toUpdate.BotId, data.getBotId()
713  	)) {
714 					toUpdate.BotId=data.getBotId()
715  	;
716 					updated = true;
717 				}
718 			
719 				if (toUpdate.ManualSpawn != data.isManualSpawn()
720  	) {
721 				    toUpdate.ManualSpawn=data.isManualSpawn()
722  	;
723 					updated = true;
724 				}
725 			
726 				if (toUpdate.AutoTrace != data.isAutoTrace()
727  	) {
728 				    toUpdate.AutoTrace=data.isAutoTrace()
729  	;
730 					updated = true;
731 				}
732 			
733 				if (!SafeEquals.equals(toUpdate.Name, data.getName()
734  	)) {
735 					toUpdate.Name=data.getName()
736  	;
737 					updated = true;
738 				}
739 			
740 				if (toUpdate.SpeedMultiplier != data.getSpeedMultiplier()
741  	) {
742 				    toUpdate.SpeedMultiplier=data.getSpeedMultiplier()
743  	;
744 					updated = true;
745 				}
746 			
747 				if (!SafeEquals.equals(toUpdate.RotationRate, data.getRotationRate()
748  	)) {
749 					toUpdate.RotationRate=data.getRotationRate()
750  	;
751 					updated = true;
752 				}
753 			
754 				if (toUpdate.Invulnerable != data.isInvulnerable()
755  	) {
756 				    toUpdate.Invulnerable=data.isInvulnerable()
757  	;
758 					updated = true;
759 				}
760 			
761 				if (toUpdate.VisionTime != data.getVisionTime()
762  	) {
763 				    toUpdate.VisionTime=data.getVisionTime()
764  	;
765 					updated = true;
766 				}
767 			
768 				if (toUpdate.ShowDebug != data.isShowDebug()
769  	) {
770 				    toUpdate.ShowDebug=data.isShowDebug()
771  	;
772 					updated = true;
773 				}
774 			
775 				if (toUpdate.ShowFocalPoint != data.isShowFocalPoint()
776  	) {
777 				    toUpdate.ShowFocalPoint=data.isShowFocalPoint()
778  	;
779 					updated = true;
780 				}
781 			
782 				if (toUpdate.DrawTraceLines != data.isDrawTraceLines()
783  	) {
784 				    toUpdate.DrawTraceLines=data.isDrawTraceLines()
785  	;
786 					updated = true;
787 				}
788 			
789 				if (toUpdate.SynchronousOff != data.isSynchronousOff()
790  	) {
791 				    toUpdate.SynchronousOff=data.isSynchronousOff()
792  	;
793 					updated = true;
794 				}
795 			
796 				if (toUpdate.AutoPickupOff != data.isAutoPickupOff()
797  	) {
798 				    toUpdate.AutoPickupOff=data.isAutoPickupOff()
799  	;
800 					updated = true;
801 				}
802 			
803 				if (!SafeEquals.equals(toUpdate.Action, data.getAction()
804  	)) {
805 					toUpdate.Action=data.getAction()
806  	;
807 					updated = true;
808 				}
809 			
810 					
811 					data = toUpdate; //the updating has finished
812 					
813 					if ( updated )
814 					{
815 						toUpdate.SimTime = this.time;
816 						return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.UPDATED, data);
817 					}
818 					
819 					return new IWorldObjectUpdateResult.WorldObjectUpdateResult<ILocalWorldObject>(IWorldObjectUpdateResult.Result.SAME, data);
820 				}
821 				throw new PogamutException("Unsupported object type for update. Expected ConfigChangeLocalImpl for object " + object.getId() +", not object of class " + object.getClass().getSimpleName() + ".", this);
822 			}
823 	
824 			/**
825 			 * Simulation time in MILLI SECONDS !!!
826 			 */
827 			@Override
828 			public long getSimTime() {
829 				return this.time;
830 			}
831 	
832 			@Override
833 			public IWorldObject getObject() {
834 				return data;
835 			}
836 	
837 			@Override
838 			public WorldObjectId getId() {
839 				return data.getId();
840 			}
841 			
842 		}	
843  	
844  		
845  	    public String toString() {
846             return
847             	super.toString() + "[" +
848             	
849 		              			"Id = " + String.valueOf(getId()
850  	) + " | " + 
851 		              		
852 		              			"BotId = " + String.valueOf(getBotId()
853  	) + " | " + 
854 		              		
855 		              			"ManualSpawn = " + String.valueOf(isManualSpawn()
856  	) + " | " + 
857 		              		
858 		              			"AutoTrace = " + String.valueOf(isAutoTrace()
859  	) + " | " + 
860 		              		
861 		              			"Name = " + String.valueOf(getName()
862  	) + " | " + 
863 		              		
864 		              			"SpeedMultiplier = " + String.valueOf(getSpeedMultiplier()
865  	) + " | " + 
866 		              		
867 		              			"RotationRate = " + String.valueOf(getRotationRate()
868  	) + " | " + 
869 		              		
870 		              			"Invulnerable = " + String.valueOf(isInvulnerable()
871  	) + " | " + 
872 		              		
873 		              			"VisionTime = " + String.valueOf(getVisionTime()
874  	) + " | " + 
875 		              		
876 		              			"ShowDebug = " + String.valueOf(isShowDebug()
877  	) + " | " + 
878 		              		
879 		              			"ShowFocalPoint = " + String.valueOf(isShowFocalPoint()
880  	) + " | " + 
881 		              		
882 		              			"DrawTraceLines = " + String.valueOf(isDrawTraceLines()
883  	) + " | " + 
884 		              		
885 		              			"SynchronousOff = " + String.valueOf(isSynchronousOff()
886  	) + " | " + 
887 		              		
888 		              			"AutoPickupOff = " + String.valueOf(isAutoPickupOff()
889  	) + " | " + 
890 		              		
891 		              			"Action = " + String.valueOf(getAction()
892  	) + " | " + 
893 		              		
894 				"]";           		
895         }
896  	
897  		
898  		public String toHtmlString() {
899  			return super.toString() + "[<br/>" +
900             	
901 		              			"<b>Id</b> = " + String.valueOf(getId()
902  	) + " <br/> " + 
903 		              		
904 		              			"<b>BotId</b> = " + String.valueOf(getBotId()
905  	) + " <br/> " + 
906 		              		
907 		              			"<b>ManualSpawn</b> = " + String.valueOf(isManualSpawn()
908  	) + " <br/> " + 
909 		              		
910 		              			"<b>AutoTrace</b> = " + String.valueOf(isAutoTrace()
911  	) + " <br/> " + 
912 		              		
913 		              			"<b>Name</b> = " + String.valueOf(getName()
914  	) + " <br/> " + 
915 		              		
916 		              			"<b>SpeedMultiplier</b> = " + String.valueOf(getSpeedMultiplier()
917  	) + " <br/> " + 
918 		              		
919 		              			"<b>RotationRate</b> = " + String.valueOf(getRotationRate()
920  	) + " <br/> " + 
921 		              		
922 		              			"<b>Invulnerable</b> = " + String.valueOf(isInvulnerable()
923  	) + " <br/> " + 
924 		              		
925 		              			"<b>VisionTime</b> = " + String.valueOf(getVisionTime()
926  	) + " <br/> " + 
927 		              		
928 		              			"<b>ShowDebug</b> = " + String.valueOf(isShowDebug()
929  	) + " <br/> " + 
930 		              		
931 		              			"<b>ShowFocalPoint</b> = " + String.valueOf(isShowFocalPoint()
932  	) + " <br/> " + 
933 		              		
934 		              			"<b>DrawTraceLines</b> = " + String.valueOf(isDrawTraceLines()
935  	) + " <br/> " + 
936 		              		
937 		              			"<b>SynchronousOff</b> = " + String.valueOf(isSynchronousOff()
938  	) + " <br/> " + 
939 		              		
940 		              			"<b>AutoPickupOff</b> = " + String.valueOf(isAutoPickupOff()
941  	) + " <br/> " + 
942 		              		
943 		              			"<b>Action</b> = " + String.valueOf(getAction()
944  	) + " <br/> " + 
945 		              		
946 				"<br/>]";     
947 		}
948  	
949  		
950  		// --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=all]) ---
951         	
952 		// --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=all]) ---
953 		
954 	    // --- Extra Java from XML BEGIN (extra/code/java/javapart/classcategory[@name=local+classtype[@name=impl]) ---
955 	        
956 	    // --- Extra Java from XML END (extra/code/java/javapart/classcategory[@name=local+classtype[@name=impl]) ---        	            	
957  	
958 		}
959