
            /**
            IMPORTANT !!!
       
            DO NOT EDIT THIS FILE. IT IS GENERATED FROM approriate xml file in xmlresources/gbcommands BY
            THE JavaClassesGenerator.xslt. MODIFY THESE FILES INSTEAD OF THIS ONE.
       
            IMPORTANT END !!!
            */
            package
            cz.cuni.amis.pogamut.ut2004.communication.messages.gbcommands;
	    		import java.util.*;    
    import javax.vecmath.*;    
    import cz.cuni.amis.pogamut.base.communication.messages.*;    
    import cz.cuni.amis.pogamut.base.agent.worldview.*;    
    import cz.cuni.amis.pogamut.base.agent.worldview.objects.*;    
    import cz.cuni.amis.pogamut.base.communication.translator.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType.Category;    
    import cz.cuni.amis.pogamut.base.exceptions.*;    
    import cz.cuni.amis.pogamut.base3d.worldview.objects.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.messages.*;    
    import cz.cuni.amis.pogamut.ut2004.agent.worldview.objects.*;    
                
            
            /**
              
		Configures various attributes of the bot. This command can be
		issued also by bot on the bot itself (in this case Id attribute
		is not parsed).
	
                          Corresponding GameBots command is 
                          CONF.
                      
             */
            
            public class
            Configuration extends
        CommandMessage
                        
            {
            
            
            
            /**
              Creates new instance of command Configuration.
              
		Configures various attributes of the bot. This command can be
		issued also by bot on the bot itself (in this case Id attribute
		is not parsed).
	Corresponding GameBots message for this command is 
              CONF.
                  @param Id 
			Id of the target bot. Not used if sent as a command for the
			bot.
		
                  @param AutoTrace 
			Enables/disables auto ray tracing feature.
		
                  @param ManualSpawn 
			Sets if the bot wil have tol be respawned after death
			manually by RESPAWN command. If false, the bot will respawn
			automatically.
		
                  @param Name 
			You can change the name of the bot in the game.
		
                  @param SpeedMultiplier 
			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [RemoteBot] MaxSpeed).
		
                  @param Invulnerable 
			Will set godmode for bot on (bot can't be killed). This can
			be changed just when cheating is enabled on the server.
			(bAllowCheats = True)
		
                  @param VisionTime 
			Between 0.1 to 2 seconds, it sets the delay between two
			synchronous batches.
		
                  @param ShowDebug 
			If true some additional debug information will be logged to
			UT2004 server console window.
		
                  @param ShowFocalPoint 
			If set to true an actor will appear in the game on the
			location the bot is actually looking at.
		
                  @param DrawTraceLines 
			If set to true, the rays of automatic ray tracing (ATR
			messages) will be drawn in the game.
		
                  @param SynchronousOff 
			It enables/disables sending of all GB synchronous messages
			for the bot.
		
                  @param AutoPickupOff 
			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
		
              */
             public Configuration(
                UnrealId Id,  boolean AutoTrace,  boolean ManualSpawn,  String Name,  double SpeedMultiplier,  boolean Invulnerable,  double VisionTime,  boolean ShowDebug,  boolean ShowFocalPoint,  boolean DrawTraceLines,  boolean SynchronousOff,  boolean AutoPickupOff) {
                    
                    this.Id = Id;
                
                    this.AutoTrace = AutoTrace;
                
                    this.ManualSpawn = ManualSpawn;
                
                    this.Name = Name;
                
                    this.SpeedMultiplier = SpeedMultiplier;
                
                    this.Invulnerable = Invulnerable;
                
                    this.VisionTime = VisionTime;
                
                    this.ShowDebug = ShowDebug;
                
                    this.ShowFocalPoint = ShowFocalPoint;
                
                    this.DrawTraceLines = DrawTraceLines;
                
                    this.SynchronousOff = SynchronousOff;
                
                    this.AutoPickupOff = AutoPickupOff;
                
                }
               
            
            		/**
		             Creates new instance of command Configuration.
		             
		Configures various attributes of the bot. This command can be
		issued also by bot on the bot itself (in this case Id attribute
		is not parsed).
	Corresponding GameBots message for this command is 
		             CONF.
		             <p></p>WARNING: this is empty-command constructor, you have to use setters to fill it up!
		             */
            		public  Configuration() {
            		}
            	
            
            /////// Properties BEGIN
            
        /**
        
			Id of the target bot. Not used if sent as a command for the
			bot.
		 */
        protected
         UnrealId Id = 
        	null;
        
        
        /**
        
			Id of the target bot. Not used if sent as a command for the
			bot.
		 */
        public
        UnrealId getId() {
            return
         Id;
        }
        

        
            /**         
        
			Id of the target bot. Not used if sent as a command for the
			bot.
		 */
        public Configuration setId(UnrealId Id) {
            this.Id = Id;
            return this;
            }
       
        /**
        
			Enables/disables auto ray tracing feature.
		 */
        protected
         boolean AutoTrace = 
        	false;
        
        
        /**
        
			Enables/disables auto ray tracing feature.
		 */
        public
        boolean isAutoTrace() {
            return
         AutoTrace;
        }
        

        
            /**         
        
			Enables/disables auto ray tracing feature.
		 */
        public Configuration setAutoTrace(boolean AutoTrace) {
            this.AutoTrace = AutoTrace;
            return this;
            }
       
        /**
        
			Sets if the bot wil have tol be respawned after death
			manually by RESPAWN command. If false, the bot will respawn
			automatically.
		 */
        protected
         boolean ManualSpawn = 
        	false;
        
        
        /**
        
			Sets if the bot wil have tol be respawned after death
			manually by RESPAWN command. If false, the bot will respawn
			automatically.
		 */
        public
        boolean isManualSpawn() {
            return
         ManualSpawn;
        }
        

        
            /**         
        
			Sets if the bot wil have tol be respawned after death
			manually by RESPAWN command. If false, the bot will respawn
			automatically.
		 */
        public Configuration setManualSpawn(boolean ManualSpawn) {
            this.ManualSpawn = ManualSpawn;
            return this;
            }
       
        /**
        
			You can change the name of the bot in the game.
		 */
        protected
         String Name = 
        	null;
        
        
        /**
        
			You can change the name of the bot in the game.
		 */
        public
        String getName() {
            return
         Name;
        }
        

        
            /**         
        
			You can change the name of the bot in the game.
		 */
        public Configuration setName(String Name) {
            this.Name = Name;
            return this;
            }
       
        /**
        
			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [RemoteBot] MaxSpeed).
		 */
        protected
         double SpeedMultiplier = 
        	0;
        
        
        /**
        
			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [RemoteBot] MaxSpeed).
		 */
        public
        double getSpeedMultiplier() {
            return
         SpeedMultiplier;
        }
        

        
            /**         
        
			Bots default speed will be multiplied by this number. Ranges from 0.1 to 2 (default, can be set in ini in [RemoteBot] MaxSpeed).
		 */
        public Configuration setSpeedMultiplier(double SpeedMultiplier) {
            this.SpeedMultiplier = SpeedMultiplier;
            return this;
            }
       
        /**
        
			Will set godmode for bot on (bot can't be killed). This can
			be changed just when cheating is enabled on the server.
			(bAllowCheats = True)
		 */
        protected
         boolean Invulnerable = 
        	false;
        
        
        /**
        
			Will set godmode for bot on (bot can't be killed). This can
			be changed just when cheating is enabled on the server.
			(bAllowCheats = True)
		 */
        public
        boolean isInvulnerable() {
            return
         Invulnerable;
        }
        

        
            /**         
        
			Will set godmode for bot on (bot can't be killed). This can
			be changed just when cheating is enabled on the server.
			(bAllowCheats = True)
		 */
        public Configuration setInvulnerable(boolean Invulnerable) {
            this.Invulnerable = Invulnerable;
            return this;
            }
       
        /**
        
			Between 0.1 to 2 seconds, it sets the delay between two
			synchronous batches.
		 */
        protected
         double VisionTime = 
        	0;
        
        
        /**
        
			Between 0.1 to 2 seconds, it sets the delay between two
			synchronous batches.
		 */
        public
        double getVisionTime() {
            return
         VisionTime;
        }
        

        
            /**         
        
			Between 0.1 to 2 seconds, it sets the delay between two
			synchronous batches.
		 */
        public Configuration setVisionTime(double VisionTime) {
            this.VisionTime = VisionTime;
            return this;
            }
       
        /**
        
			If true some additional debug information will be logged to
			UT2004 server console window.
		 */
        protected
         boolean ShowDebug = 
        	false;
        
        
        /**
        
			If true some additional debug information will be logged to
			UT2004 server console window.
		 */
        public
        boolean isShowDebug() {
            return
         ShowDebug;
        }
        

        
            /**         
        
			If true some additional debug information will be logged to
			UT2004 server console window.
		 */
        public Configuration setShowDebug(boolean ShowDebug) {
            this.ShowDebug = ShowDebug;
            return this;
            }
       
        /**
        
			If set to true an actor will appear in the game on the
			location the bot is actually looking at.
		 */
        protected
         boolean ShowFocalPoint = 
        	false;
        
        
        /**
        
			If set to true an actor will appear in the game on the
			location the bot is actually looking at.
		 */
        public
        boolean isShowFocalPoint() {
            return
         ShowFocalPoint;
        }
        

        
            /**         
        
			If set to true an actor will appear in the game on the
			location the bot is actually looking at.
		 */
        public Configuration setShowFocalPoint(boolean ShowFocalPoint) {
            this.ShowFocalPoint = ShowFocalPoint;
            return this;
            }
       
        /**
        
			If set to true, the rays of automatic ray tracing (ATR
			messages) will be drawn in the game.
		 */
        protected
         boolean DrawTraceLines = 
        	false;
        
        
        /**
        
			If set to true, the rays of automatic ray tracing (ATR
			messages) will be drawn in the game.
		 */
        public
        boolean isDrawTraceLines() {
            return
         DrawTraceLines;
        }
        

        
            /**         
        
			If set to true, the rays of automatic ray tracing (ATR
			messages) will be drawn in the game.
		 */
        public Configuration setDrawTraceLines(boolean DrawTraceLines) {
            this.DrawTraceLines = DrawTraceLines;
            return this;
            }
       
        /**
        
			It enables/disables sending of all GB synchronous messages
			for the bot.
		 */
        protected
         boolean SynchronousOff = 
        	false;
        
        
        /**
        
			It enables/disables sending of all GB synchronous messages
			for the bot.
		 */
        public
        boolean isSynchronousOff() {
            return
         SynchronousOff;
        }
        

        
            /**         
        
			It enables/disables sending of all GB synchronous messages
			for the bot.
		 */
        public Configuration setSynchronousOff(boolean SynchronousOff) {
            this.SynchronousOff = SynchronousOff;
            return this;
            }
       
        /**
        
			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
		 */
        protected
         boolean AutoPickupOff = 
        	false;
        
        
        /**
        
			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
		 */
        public
        boolean isAutoPickupOff() {
            return
         AutoPickupOff;
        }
        

        
            /**         
        
			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
		 */
        public Configuration setAutoPickupOff(boolean AutoPickupOff) {
            this.AutoPickupOff = AutoPickupOff;
            return this;
            }
       
            /////// Properties END
            
            /////// Extra Java code BEGIN
                        	
            	/////// Additional code from xslt BEGIN            	 
            			
            		
            		
            	/////// Additional code from xslt END            
				                    
	            /////// Extra Java from XML BEGIN
            		
            	/////// Extra Java from XML END
            	    
            /////// Extra Java code END
            
            
            
            /**
              * Cloning constructor.
              */
             public Configuration(Configuration original) {
                
                     this.Id=original.Id;
                
                     this.AutoTrace=original.AutoTrace;
                
                     this.ManualSpawn=original.ManualSpawn;
                
                     this.Name=original.Name;
                
                     this.SpeedMultiplier=original.SpeedMultiplier;
                
                     this.Invulnerable=original.Invulnerable;
                
                     this.VisionTime=original.VisionTime;
                
                     this.ShowDebug=original.ShowDebug;
                
                     this.ShowFocalPoint=original.ShowFocalPoint;
                
                     this.DrawTraceLines=original.DrawTraceLines;
                
                     this.SynchronousOff=original.SynchronousOff;
                
                     this.AutoPickupOff=original.AutoPickupOff;
                
             }   
             
             
                
                 
            public String toString() {
                return
                
                    	super.toString();
                     
             }
             
             public String toHtmlString() {
                return super.toString() +
             
            "<b>Id</b> : " + 
            String.valueOf(Id) + 
            " <br/> " +
             
            "<b>AutoTrace</b> : " + 
            String.valueOf(AutoTrace) + 
            " <br/> " +
             
            "<b>ManualSpawn</b> : " + 
            String.valueOf(ManualSpawn) + 
            " <br/> " +
             
            "<b>Name</b> : " + 
            String.valueOf(Name) + 
            " <br/> " +
             
            "<b>SpeedMultiplier</b> : " + 
            String.valueOf(SpeedMultiplier) + 
            " <br/> " +
             
            "<b>Invulnerable</b> : " + 
            String.valueOf(Invulnerable) + 
            " <br/> " +
             
            "<b>VisionTime</b> : " + 
            String.valueOf(VisionTime) + 
            " <br/> " +
             
            "<b>ShowDebug</b> : " + 
            String.valueOf(ShowDebug) + 
            " <br/> " +
             
            "<b>ShowFocalPoint</b> : " + 
            String.valueOf(ShowFocalPoint) + 
            " <br/> " +
             
            "<b>DrawTraceLines</b> : " + 
            String.valueOf(DrawTraceLines) + 
            " <br/> " +
             
            "<b>SynchronousOff</b> : " + 
            String.valueOf(SynchronousOff) + 
            " <br/> " +
             
            "<b>AutoPickupOff</b> : " + 
            String.valueOf(AutoPickupOff) + 
            " <br/> " +
             "";
             }            
             
             
             
                 public String toMessage() {
              		StringBuffer buf = new StringBuffer();
              		buf.append("CONF");
              		
		    					if (Id != null) {
		    						buf.append(" {Id " + Id.getUnrealId() + "}");
		    					}
		    				
		    					buf.append(" {AutoTrace " + AutoTrace + "}");
		    				
		    					buf.append(" {ManualSpawn " + ManualSpawn + "}");
		    				
		    					if (Name != null) {
		    						buf.append(" {Name " + Name + "}");
		    					}
		    				
		    					buf.append(" {SpeedMultiplier " + SpeedMultiplier + "}");
		    				
		    					buf.append(" {Invulnerable " + Invulnerable + "}");
		    				
		    					buf.append(" {VisionTime " + VisionTime + "}");
		    				
		    					buf.append(" {ShowDebug " + ShowDebug + "}");
		    				
		    					buf.append(" {ShowFocalPoint " + ShowFocalPoint + "}");
		    				
		    					buf.append(" {DrawTraceLines " + DrawTraceLines + "}");
		    				
		    					buf.append(" {SynchronousOff " + SynchronousOff + "}");
		    				
		    					buf.append(" {AutoPickupOff " + AutoPickupOff + "}");
		    				            
            		return buf.toString();
            }
             
             }
                         
        