home *** CD-ROM | disk | FTP | other *** search
/ 3D World 120 / 3DW_120.iso / pc / DiscContents / tutorials / scripting / Data / Scripting / Script / ReplaceSelected.ls < prev   
Encoding:
Text File  |  2009-06-17  |  4.3 KB  |  166 lines

  1. @warnings
  2. @version 2.3
  3. @name ReplaceSelected
  4.  
  5. generic
  6. {
  7.     replaceType = recall("replaceType", 1);             
  8.     replaceList = recall("replaceList", "");
  9.     replaceMethod = recall("replaceMethod", 1);
  10.     replaceObject = recall("replaceObject", "");
  11.     vColor = recall("vColor", 1);
  12.  
  13.     objSelection =  Scene().getSelect(MESH);             
  14.     objectListSize = 0;
  15.     objectList;
  16.  
  17.   if(objSelection)
  18.   {
  19.  
  20.       reqbegin("ReplaceSelected");
  21.       c0 = ctlfilename("Replacement List", replaceList, 70, true);
  22.       c1 = ctlfilename("Replacement Object", replaceObject, 70, true);
  23.       c2 = ctlchoice("Replace With",replaceType,@"List","Object","Null"@);
  24.       c3 = ctlchoice("Replace Method",replaceMethod,@"Sequential","Random"@);
  25.       c4 = ctlpopup("Color",vColor,@"- No Change -","Black","Dark Blue","Dark Green","Dark Cyan","Dark Red","Purple","Brown","Grey","Blue","Green","Cyan","Red","Magenta","Orange","White"@);
  26.  
  27.       ctlactive(c2, "isList", c0);
  28.       ctlactive(c2, "isList", c3);
  29.       ctlactive(c2, "isObject", c1);
  30.  
  31.       return if !reqpost();
  32.                
  33.       replaceList = getvalue(c0);
  34.       replaceType = getvalue(c2);
  35.       replaceMethod = getvalue(c3);
  36.       vColor = getvalue(c4);
  37.       replaceObject = getvalue(c1);
  38.       
  39.       store("replaceList", replaceList);
  40.       store("replaceType", replaceType);
  41.       store("replaceMethod", replaceMethod);
  42.       store("vColor", vColor);
  43.       store("replaceObject", replaceObject);
  44.  
  45.       reqend();                                  
  46.  
  47.       if(replaceType == 1 && replaceList != "")
  48.       {
  49.    
  50.         f = File(replaceList,"r") || error("Cannot open file: ",replaceList,"");
  51.         f.line(f.linecount());
  52.         if(!f.read())
  53.         {
  54.             f.reopen("a");
  55.             f.nl();
  56.         }
  57.         f.close();
  58.   
  59.         f = File(replaceList,"r") || error("Cannot open file: ",replaceList,"");
  60.         if(f.linecount() > 1)
  61.         { 
  62.           while(!f.eof())
  63.           {
  64.             curLine = f.read();
  65.             if(curLine.contains(".lwo"))
  66.             {
  67.               objectListSize++;
  68.               objectList[objectListSize] = curLine;             
  69.             }
  70.             if(!curLine.contains(".lwo") && curLine != nil)
  71.             {
  72.               warn("At least one file in the list is not a .LWO file. File ignored.");
  73.             }
  74.           }
  75.         }
  76.         else
  77.         {
  78.           error("Problem reading file: No files detected.");
  79.         }
  80.       }
  81.  
  82.       if(replaceType == 1)
  83.       {
  84.         seqObject = 1;
  85.         for(i = 1; i <= size(objSelection); i++)
  86.         {
  87.           SelectItem(objSelection[i].id);
  88.           if(replaceMethod == 1)
  89.           {
  90.             if(seqObject > size(objectList))
  91.             {
  92.               seqObject = 1;
  93.             }        
  94.             ReplaceWithObject(objectList[seqObject]);
  95.             seqObject++;
  96.           }
  97.           else
  98.           {
  99.             randObj = random(1, size(objectList));
  100.             ReplaceWithObject(objectList[randObj]);
  101.           }
  102.           message(i,size(objSelection));
  103.         }
  104.       }
  105.  
  106.       if(replaceType == 2)
  107.       {
  108.         for(i = 1; i <= size(objSelection); i++)
  109.         {
  110.           SelectItem(objSelection[i].id);
  111.           ReplaceWithObject(replaceObject);
  112.           message(i,size(objSelection));
  113.         }
  114.       }
  115.  
  116.       if(replaceType == 3)
  117.       {
  118.         for(i = 1; i <= size(objSelection); i++)
  119.         {
  120.           SelectItem(objSelection[i].id);
  121.           ReplaceWithNull("Null");
  122.           message(i,size(objSelection));
  123.         }
  124.       }
  125.       for(i=1; i <= size(objSelection); i++)
  126.       {
  127.  
  128.         if(vColor != 1)
  129.         {
  130.           vC = integer(vColor) - 2;
  131.           color = "ItemColor " + vC;
  132.           CommandInput(color);
  133.         }
  134.         
  135.         AddToSelection(objSelection[i].id);
  136.       }
  137.     }
  138.   if(!objSelection)
  139.   {
  140.     error("Please select a mesh item and then run the script again.");
  141.   }
  142. }
  143.  
  144.  
  145. isList: value
  146. {
  147.   if(value == 1)
  148.     return 1;
  149.   else
  150.     return 0;
  151. }
  152.  
  153. isObject: value
  154. {
  155.   if(value == 2)
  156.     return 1;
  157.   else
  158.     return 0;
  159. }
  160.  
  161. message: value, selectionsize
  162. {
  163.   statmessage = string(value) + " of " + string(selectionsize) + " replaced.";
  164.   StatusMsg(statmessage);
  165. }
  166.