########################################################################################
#          CProps used by the smithing system:
########################################################################################

This documentation describes the cprops written by the smithing system

########################################################################################
#  ingots and other smithable objects:
########################################################################################

   "#hasctrl"                           Defines that the item has a control script. Such items cannot be moved by the player!
   
                                          -> syntax: Script PID of control script

   "smithingdata"                       cprop on ingots
       
        A struct/dictionary holding all the corresponding information for smithing.
        The cprop may have these members:
       
                .temperature            how hot is the ingot?
                
                                          -> syntax: <integer: 0 - 2000> (we ignore weather temperature ;))
                                          
                .material               Defines the material this item has been made of.
                                        
                                          -> syntax: <string>            (-> see smithingmaterials.cfg)
                                          
                .heatstage              as the ingot is being heated, this defines what working stage its heat is fit for.
                
                                          -> syntax: <integer 0-9>       
                                          
                .truecolor              The true color-id of the item (if it isn't glowing!)
                  
                                          -> syntax: <integer>

########################################################################################
#  forges
########################################################################################

   "#hasctrl"                           Defines that the item has a control script. Such items cannot be moved by the player!
   
                                          -> syntax: Script PID of control script

----------------------------------------------------------------------------------------

   "forgedata" 				cprop on forges
  
	A struct/dictionary holding all the corresponding information for smithing.
	The cprop may have these members:

		.slaves                 identifies the forge as a master piece. The array contains list & locations of the other parts.
                                        (in any other case, that property will not exist)
                
                                          -> syntax: <array of struct_slave-references>
                                          
                                                     {struct {serial:=slaveforge1.serial, 
                                                              x:=slaveforge1.x,
                                                              y:=slaveforge1.y,
                                                              z:=slaveforge1.z  }, struct(<....>)}
                                                              
                .master                 identifies the part as a slave. The cprop reveals the id and location of the master piece..
                                        (in any other case, that property will not exist)
                                        
                                          -> syntax: struct {masterforge.serial, 
                                                             masterforge.x,
                                                             masterforge.y,
                                                             masterforge.z}
                                            
                .facing                 identifies the facing of a furnace. This property exists only on the master piece!
                                        However unless it's an North-South forge, this entry will be missing. The purpose of
                                        this entry is merely to safe a lot of CPU calculation on updating forge-part graphics
                                          
                                          -> syntax: integer 1   ...... the furnace is a north-south forge (constant x value for all parts)
                                                                        if that property is missing, we asume an East-West forge (constant y)
                                         
                .lumberamt              only on the master forge part... tells the system that some (not necessarily enough) lumber
                                        has been added to the forge (required for igniting it!)
                                        
                                          -> Syntax: integer (amount of logs)
                                          
                                          -> Note: the amount required is 3 for each center piece +1 for each endpiece. 
                                                   thus e.g. a 3-tile forge required 1+3+1=5 pieces of lumber.
                                                   
                .coalamt                only on the master forge part... tells the system that some (not necessarily enough) coal
                                        has been added to the forge (required for igniting it!)
                                        
                                          -> Syntax: integer (amount of logs)
                                          
                                          -> Note: the amount required is 3 for each center piece +1 for each endpiece. 
                                                   thus e.g. a 3-tile forge required 1+3+1=5 pieces of lumber.
                                                   
                .forgecontrol           only on burning master-piece of the forge. Timestamp of how long the forge will burn.
                                         
                                          -> Syntax: integer (readgameclock)  
                                          
                .temperature            how hot the forge is... ranges from 0 to 500 to 2000 (0 if off)
                                        Defines the status of a forge -> from 0-500 it's igniting, from 500-2000 it's burning. 0 it's off.
                                         
                                          -> Syntax: integer (temperature in degrees)
                
                