
            /**
            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.*;    
                
            
            /**
              
		Message you'll send at the beginning of the communication to
		create a bot in the game. You must send this message before you
		can have a character to play in the game.
	
                          Corresponding GameBots command is 
                          INIT.
                      
             */
            
            public class
            Initialize extends
        CommandMessage
                        
            {
            
            
            
            /**
              Creates new instance of command Initialize.
              
		Message you'll send at the beginning of the communication to
		create a bot in the game. You must send this message before you
		can have a character to play in the game.
	Corresponding GameBots message for this command is 
              INIT.
                  @param Name Desired name.
                  @param Team 
			Preferred team. If illegal or no team provided, one will be
			provided for you. Normally a team game has team 0 and team
			1. In BotDeathMatch, team is meaningless.
		
                  @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 AutoTrace 
			Enables/disables auto ray tracing feature.
		
                  @param Location 
			Specify start location, if unspecified, then random.
		
                  @param Rotation 
			Specify start rotation, if unspecified, then random.
		
                  @param Skin 
			Sets the bot current skin (e.g. "HumanMaleA.MercMaleA").
			Find all packages and skins through unrealEd (Actor browser,
			search in UT2004/Animations folder). Supported bot skins are
			Aliens (Aliens.), Bots (Bot.), human males (HumanMaleA.),
			human females (HumanFemaleA. ), juggernauts (Jugg.). Skaarj
			skins are not supported at the time being.
		
                  @param DesiredSkill 
			Can range from 0 to 7. This sets the bot accuracy. 1 lowest,
			7 highest. Shouldn't have any other effect.
		
                  @param ShouldLeadTarget 
			When firing slow projectiles (missiles...), if the engine
			will try to count the impact point for the bot or not (when
			shooting at moving targets).
		
                  @param AutoPickupOff 
			It enables/disables automatic pickup of the bot. If true the items can be picked up through PICK command.
		
                  @param Jmx 
			Sets the jmx adress we can use to debug the bot from Java (if we are using Pogamut).
		
              */
             public Initialize(
                String Name,  int Team,  boolean ManualSpawn,  boolean AutoTrace,  Location Location,  Rotation Rotation,  String Skin,  int DesiredSkill,  boolean ShouldLeadTarget,  boolean AutoPickupOff,  String Jmx) {
                    
                    this.Name = Name;
                
                    this.Team = Team;
                
                    this.ManualSpawn = ManualSpawn;
                
                    this.AutoTrace = AutoTrace;
                
                    this.Location = Location;
                
                    this.Rotation = Rotation;
                
                    this.Skin = Skin;
                
                    this.DesiredSkill = DesiredSkill;
                
                    this.ShouldLeadTarget = ShouldLeadTarget;
                
                    this.AutoPickupOff = AutoPickupOff;
                
                    this.Jmx = Jmx;
                
                }
               
            
            		/**
		             Creates new instance of command Initialize.
		             
		Message you'll send at the beginning of the communication to
		create a bot in the game. You must send this message before you
		can have a character to play in the game.
	Corresponding GameBots message for this command is 
		             INIT.
		             <p></p>WARNING: this is empty-command constructor, you have to use setters to fill it up!
		             */
            		public  Initialize() {
            		}
            	
            
            /////// Properties BEGIN
            
        /**
        Desired name. */
        protected
         String Name = 
        	null;
        
        
        /**
        Desired name. */
        public
        String getName() {
            return
         Name;
        }
        

        
            /**         
        Desired name. */
        public Initialize setName(String Name) {
            this.Name = Name;
            return this;
            }
       
        /**
        
			Preferred team. If illegal or no team provided, one will be
			provided for you. Normally a team game has team 0 and team
			1. In BotDeathMatch, team is meaningless.
		 */
        protected
         int Team = 
        	0;
        
        
        /**
        
			Preferred team. If illegal or no team provided, one will be
			provided for you. Normally a team game has team 0 and team
			1. In BotDeathMatch, team is meaningless.
		 */
        public
        int getTeam() {
            return
         Team;
        }
        

        
            /**         
        
			Preferred team. If illegal or no team provided, one will be
			provided for you. Normally a team game has team 0 and team
			1. In BotDeathMatch, team is meaningless.
		 */
        public Initialize setTeam(int Team) {
            this.Team = Team;
            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 Initialize setManualSpawn(boolean ManualSpawn) {
            this.ManualSpawn = ManualSpawn;
            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 Initialize setAutoTrace(boolean AutoTrace) {
            this.AutoTrace = AutoTrace;
            return this;
            }
       
        /**
        
			Specify start location, if unspecified, then random.
		 */
        protected
         Location Location = 
        	null;
        
        
        /**
        
			Specify start location, if unspecified, then random.
		 */
        public
        Location getLocation() {
            return
         Location;
        }
        

        
            /**         
        
			Specify start location, if unspecified, then random.
		 */
        public Initialize setLocation(Location Location) {
            this.Location = Location;
            return this;
            }
       
        /**
        
			Specify start rotation, if unspecified, then random.
		 */
        protected
         Rotation Rotation = 
        	null;
        
        
        /**
        
			Specify start rotation, if unspecified, then random.
		 */
        public
        Rotation getRotation() {
            return
         Rotation;
        }
        

        
            /**         
        
			Specify start rotation, if unspecified, then random.
		 */
        public Initialize setRotation(Rotation Rotation) {
            this.Rotation = Rotation;
            return this;
            }
       
        /**
        
			Sets the bot current skin (e.g. "HumanMaleA.MercMaleA").
			Find all packages and skins through unrealEd (Actor browser,
			search in UT2004/Animations folder). Supported bot skins are
			Aliens (Aliens.), Bots (Bot.), human males (HumanMaleA.),
			human females (HumanFemaleA. ), juggernauts (Jugg.). Skaarj
			skins are not supported at the time being.
		 */
        protected
         String Skin = 
        	null;
        
        
        /**
        
			Sets the bot current skin (e.g. "HumanMaleA.MercMaleA").
			Find all packages and skins through unrealEd (Actor browser,
			search in UT2004/Animations folder). Supported bot skins are
			Aliens (Aliens.), Bots (Bot.), human males (HumanMaleA.),
			human females (HumanFemaleA. ), juggernauts (Jugg.). Skaarj
			skins are not supported at the time being.
		 */
        public
        String getSkin() {
            return
         Skin;
        }
        

        
            /**         
        
			Sets the bot current skin (e.g. "HumanMaleA.MercMaleA").
			Find all packages and skins through unrealEd (Actor browser,
			search in UT2004/Animations folder). Supported bot skins are
			Aliens (Aliens.), Bots (Bot.), human males (HumanMaleA.),
			human females (HumanFemaleA. ), juggernauts (Jugg.). Skaarj
			skins are not supported at the time being.
		 */
        public Initialize setSkin(String Skin) {
            this.Skin = Skin;
            return this;
            }
       
        /**
        
			Can range from 0 to 7. This sets the bot accuracy. 1 lowest,
			7 highest. Shouldn't have any other effect.
		 */
        protected
         int DesiredSkill = 
        	0;
        
        
        /**
        
			Can range from 0 to 7. This sets the bot accuracy. 1 lowest,
			7 highest. Shouldn't have any other effect.
		 */
        public
        int getDesiredSkill() {
            return
         DesiredSkill;
        }
        

        
            /**         
        
			Can range from 0 to 7. This sets the bot accuracy. 1 lowest,
			7 highest. Shouldn't have any other effect.
		 */
        public Initialize setDesiredSkill(int DesiredSkill) {
            this.DesiredSkill = DesiredSkill;
            return this;
            }
       
        /**
        
			When firing slow projectiles (missiles...), if the engine
			will try to count the impact point for the bot or not (when
			shooting at moving targets).
		 */
        protected
         boolean ShouldLeadTarget = 
        	false;
        
        
        /**
        
			When firing slow projectiles (missiles...), if the engine
			will try to count the impact point for the bot or not (when
			shooting at moving targets).
		 */
        public
        boolean isShouldLeadTarget() {
            return
         ShouldLeadTarget;
        }
        

        
            /**         
        
			When firing slow projectiles (missiles...), if the engine
			will try to count the impact point for the bot or not (when
			shooting at moving targets).
		 */
        public Initialize setShouldLeadTarget(boolean ShouldLeadTarget) {
            this.ShouldLeadTarget = ShouldLeadTarget;
            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 Initialize setAutoPickupOff(boolean AutoPickupOff) {
            this.AutoPickupOff = AutoPickupOff;
            return this;
            }
       
        /**
        
			Sets the jmx adress we can use to debug the bot from Java (if we are using Pogamut).
		 */
        protected
         String Jmx = 
        	null;
        
        
        /**
        
			Sets the jmx adress we can use to debug the bot from Java (if we are using Pogamut).
		 */
        public
        String getJmx() {
            return
         Jmx;
        }
        

        
            /**         
        
			Sets the jmx adress we can use to debug the bot from Java (if we are using Pogamut).
		 */
        public Initialize setJmx(String Jmx) {
            this.Jmx = Jmx;
            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 Initialize(Initialize original) {
                
                     this.Name=original.Name;
                
                     this.Team=original.Team;
                
                     this.ManualSpawn=original.ManualSpawn;
                
                     this.AutoTrace=original.AutoTrace;
                
                     this.Location=original.Location;
                
                     this.Rotation=original.Rotation;
                
                     this.Skin=original.Skin;
                
                     this.DesiredSkill=original.DesiredSkill;
                
                     this.ShouldLeadTarget=original.ShouldLeadTarget;
                
                     this.AutoPickupOff=original.AutoPickupOff;
                
                     this.Jmx=original.Jmx;
                
             }   
             
             
                
                 
            public String toString() {
                return
                
                    	super.toString();
                     
             }
             
             public String toHtmlString() {
                return super.toString() +
             
            "<b>Name</b> : " + 
            String.valueOf(Name) + 
            " <br/> " +
             
            "<b>Team</b> : " + 
            String.valueOf(Team) + 
            " <br/> " +
             
            "<b>ManualSpawn</b> : " + 
            String.valueOf(ManualSpawn) + 
            " <br/> " +
             
            "<b>AutoTrace</b> : " + 
            String.valueOf(AutoTrace) + 
            " <br/> " +
             
            "<b>Location</b> : " + 
            String.valueOf(Location) + 
            " <br/> " +
             
            "<b>Rotation</b> : " + 
            String.valueOf(Rotation) + 
            " <br/> " +
             
            "<b>Skin</b> : " + 
            String.valueOf(Skin) + 
            " <br/> " +
             
            "<b>DesiredSkill</b> : " + 
            String.valueOf(DesiredSkill) + 
            " <br/> " +
             
            "<b>ShouldLeadTarget</b> : " + 
            String.valueOf(ShouldLeadTarget) + 
            " <br/> " +
             
            "<b>AutoPickupOff</b> : " + 
            String.valueOf(AutoPickupOff) + 
            " <br/> " +
             
            "<b>Jmx</b> : " + 
            String.valueOf(Jmx) + 
            " <br/> " +
             "";
             }            
             
             
             
                 public String toMessage() {
              		StringBuffer buf = new StringBuffer();
              		buf.append("INIT");
              		
		    					if (Name != null) {
		    						buf.append(" {Name " + Name + "}");
		    					}
		    				
		    					buf.append(" {Team " + Team + "}");
		    				
		    					buf.append(" {ManualSpawn " + ManualSpawn + "}");
		    				
		    					buf.append(" {AutoTrace " + AutoTrace + "}");
		    				
                                if (Location != null) {
                                    buf.append(" {Location " + 
                                        Location.getX() + "," + 
                                        Location.getY() + "," + 
                                        Location.getZ() + "}");
                                }
                            
                                if (Rotation != null) {
                                    buf.append(" {Rotation Y" + 
                                        Rotation.getYaw() + ",R" + 
                                        Rotation.getRoll() + ",P" + 
                                        Rotation.getPitch() + "}");
                                }
                            
		    					if (Skin != null) {
		    						buf.append(" {Skin " + Skin + "}");
		    					}
		    				
		    					buf.append(" {DesiredSkill " + DesiredSkill + "}");
		    				
		    					buf.append(" {ShouldLeadTarget " + ShouldLeadTarget + "}");
		    				
		    					buf.append(" {AutoPickupOff " + AutoPickupOff + "}");
		    				
		    					if (Jmx != null) {
		    						buf.append(" {Jmx " + Jmx + "}");
		    					}
		    				            
            		return buf.toString();
            }
             
             }
                         
        