Advertisement
nikich340

WKIT 0.7 ARD Script

Apr 18th, 2022 (edited)
898
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.93 KB | None | 0 0
  1.         public void ArdStableHWScript(bool insideFCD = false)
  2.         {
  3.             CR2WFile current_cr2w;
  4.             string dangleName, furName;
  5.             if (insideFCD)
  6.             {
  7.                 current_cr2w = fcd;
  8.                 dangleName = "CAnimDangleComponent #1";
  9.                 furName = "CFurComponent #2";
  10.             } else
  11.             {
  12.                 current_cr2w = cr2w;
  13.                 dangleName = "CAnimDangleComponent #2";
  14.                 furName = "CFurComponent #3";
  15.             }
  16.             var mapChunks = current_cr2w.GetChunksMap();
  17.  
  18.             foreach (var key_value in mapChunks)
  19.             {
  20.                 Logger.LogString($"CHUNK: {key_value.Key}");
  21.             }
  22.  
  23.             if (mapChunks.ContainsKey(dangleName) && mapChunks.ContainsKey(furName))
  24.             {
  25.                 var dangleChunk = mapChunks[dangleName];
  26.                 var dangleVar = (CAnimDangleComponent)dangleChunk.data;
  27.  
  28.                 var furChunk = mapChunks[furName];
  29.                 var furVar = (CFurComponent)furChunk.data;
  30.  
  31.                 // create CMeshSkinningAttachment #4 chunk as children of CAnimDangleComponent #2
  32.                 var skinChunk = current_cr2w.CreateChunk("CMeshSkinningAttachment", current_cr2w.chunks.Count, dangleChunk);
  33.                 var skinVar = (CMeshSkinningAttachment)skinChunk.data;
  34.  
  35.                 // create CAnimDangleConstraint_Dyng #5 chunk as children of CAnimDangleComponent #2
  36.                 /* Ding dyng ding ... */
  37.                 var dyngChunk = current_cr2w.CreateChunk("CAnimDangleConstraint_Dyng", current_cr2w.chunks.Count, dangleChunk);
  38.                 var dyngVar = (CAnimDangleConstraint_Dyng)dyngChunk.data;
  39.  
  40.                 // add a AttachmentsChild handle CMeshSkinningAttachment #4 in CAnimDangleComponent #2
  41.                 /* "0" is a "name", doesn't matter for arrays */
  42.                 var dangleHandle = new CHandle<IAttachment>(current_cr2w, dangleVar.AttachmentsChild, "0");
  43.                 dangleHandle.SetValue(skinChunk);
  44.                 dangleVar.AttachmentsChild.Add(dangleHandle);
  45.  
  46.                 // add variable parent = CAnimDangleComponent #2 in CMeshSkinningAttachment #4
  47.                 /* here var name matters! */
  48.                 skinVar.Parent = new CPtr<CNode>(current_cr2w, skinVar, "parent");
  49.                 skinVar.Parent.SetValue(dangleChunk);
  50.  
  51.                 // add variable child = CFurComponent #3 in CMeshSkinningAttachment #4
  52.                 skinVar.Child = new CPtr<CNode>(current_cr2w, furVar, "child");
  53.                 skinVar.Child.SetValue(furChunk);
  54.  
  55.                 // add variable transformParent = CMeshSkinningAttachment #4 in CFurComponent #3
  56.                 furVar.TransformParent = new CPtr<CHardAttachment>(current_cr2w, furVar, "transformParent");
  57.                 furVar.TransformParent.SetValue(skinChunk);
  58.  
  59.                 // add a AttachmentsReference handle CMeshSkinningAttachment #4 in CFurComponent #3
  60.                 var furHandle = new CHandle<IAttachment>(current_cr2w, furVar.AttachmentsReference, "0");
  61.                 furHandle.SetValue(skinChunk);
  62.                 furVar.AttachmentsReference.Add(furHandle);
  63.  
  64.                 // add variable constraint = CAnimDangleConstraint_Dyng #5 in CAnimDangleComponent #2
  65.                 dangleVar.Constraint = new CPtr<IAnimDangleConstraint>(current_cr2w, dangleVar, "constraint");
  66.                 dangleVar.Constraint.SetValue(dyngChunk);
  67.  
  68.                 // add variable dyng = [CDyngResource:path] in CAnimDangleConstraint_Dyng #5
  69.                 dyngVar.Dyng = new CHandle<CDyngResource>(current_cr2w, dyngVar, "dyng");
  70.                 dyngVar.Dyng.SetValue("CDyngResource:characters\\models\\animals\\horse\\draft\\model\\dyng_h_02_hd__simple.w3dyng");
  71.             }
  72.  
  73.             if (!insideFCD && mapChunks.ContainsKey("CEntityTemplate #0"))
  74.             {
  75.                 // process FCD
  76.                 ArdStableHWScript(true);
  77.             }
  78.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement