Advertisement
Guest User

Untitled

a guest
May 6th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.07 KB | None | 0 0
  1. <?xml version="1.0" encoding="iso-8859-1" ?>
  2. <ZApplication Name="App" Caption="ZGameEditor application" ClearColor="0.4902 0.8745 1 1" FrameRateStyle="2" FixedFrameRate="60" Camera="ProjectionFrontal" MouseVisible="255">
  3. <OnLoaded>
  4. <ZLibrary Comment="HSV Library">
  5. <Source>
  6. <![CDATA[float angle(float X)
  7. {
  8. if(X >= 0 && X < 360)return X;
  9. if(X > 360)return X-floor(X/360)* 360;
  10. if(X < 0)return X+floor(X/360)*-360;
  11. }
  12.  
  13. //
  14.  
  15. void hsv(float H, float S, float V)
  16. {
  17. float R,G,B,I,F,P,Q,T;
  18.  
  19. H = angle(H);
  20. S = clamp(S,0,100);
  21. V = clamp(V,0,100);
  22.  
  23. H /= 60;
  24. S /= 100;
  25. V /= 100;
  26.  
  27. if(S == 0)
  28. {
  29. RGBConverted[0] = V;
  30. RGBConverted[1] = V;
  31. RGBConverted[2] = V;
  32. return;
  33. }
  34.  
  35. I = floor(H);
  36. F = H-I;
  37.  
  38. P = V*(1-S);
  39. Q = V*(1-S*F);
  40. T = V*(1-S*(1-F));
  41.  
  42. if(I == 0){R = V; G = T; B = P;}
  43. if(I == 1){R = Q; G = V; B = P;}
  44. if(I == 2){R = P; G = V; B = T;}
  45. if(I == 3){R = P; G = Q; B = V;}
  46. if(I == 4){R = T; G = P; B = V;}
  47. if(I == 5){R = V; G = P; B = Q;}
  48.  
  49. RGBConverted[0] = R;
  50. RGBConverted[1] = G;
  51. RGBConverted[2] = B;
  52. }]]>
  53. </Source>
  54. </ZLibrary>
  55. <ZExpression>
  56. <Expression>
  57. <![CDATA[Stretch.Scale.X = 2f*App.ViewportWidth/App.ViewportHeight;
  58. Stretch.Scale.Y = 2;
  59.  
  60. RainbowField.XCount = 16;
  61.  
  62. ColumnColor.SizeDim1 = RainbowField.XCount+1;]]>
  63. </Expression>
  64. </ZExpression>
  65. </OnLoaded>
  66. <OnUpdate>
  67. <ZExpression Comment="Which column the cursor is currently in">
  68. <Expression>
  69. <![CDATA[MouseToColumn =
  70. floor
  71. (
  72. (App.MousePosition.X+1)/2*ColumnColor.SizeDim1
  73. );]]>
  74. </Expression>
  75. </ZExpression>
  76. <ZExpression Comment="Calculate colors">
  77. <Expression>
  78. <![CDATA[hsv(MouseToColumn/RainbowField.XCount*360,(App.MousePosition.Y*0.5+0.5)*100,100);
  79.  
  80. ColumnColor[MouseToColumn,0] = RGBConverted[0];
  81. ColumnColor[MouseToColumn,1] = RGBConverted[1];
  82. ColumnColor[MouseToColumn,2] = RGBConverted[2];
  83.  
  84.  
  85.  
  86. /*
  87. ColumnColor[MouseToColumn,0] = App.MousePosition.Y*0.5+0.5;
  88. ColumnColor[MouseToColumn,1] = App.MousePosition.Y*0.5+0.5;
  89. ColumnColor[MouseToColumn,2] = App.MousePosition.Y*0.5+0.5;
  90. */]]>
  91. </Expression>
  92. </ZExpression>
  93. <Condition Comment="Should Plink?">
  94. <Expression>
  95. <![CDATA[return
  96. (
  97. MouseToColumnBuffer != MouseToColumn
  98. );]]>
  99. </Expression>
  100. <OnTrue>
  101. <PlaySound Sound="Plink" NoteNr="96"/>
  102. <ZExpression Comment="Calculate colors" Expression="MouseToColumnBuffer = MouseToColumn;"/>
  103. </OnTrue>
  104. </Condition>
  105. </OnUpdate>
  106. <OnRender>
  107. <UseMaterial Material="ColorMono"/>
  108. <RenderTransformGroup Name="Stretch" Scale="3.7589 2 1">
  109. <Children>
  110. <RenderNet Name="RainbowField" XCount="16" VertexColors="255">
  111. <RenderVertexExpression>
  112. <![CDATA[//Update each vertex.
  113. //Vertex : current vertex
  114. //TexCoord : current texture coordinate
  115. //Color : current vertex color
  116.  
  117. float VertexPairInArray;
  118. VertexPairInArray = ceil((Vertex.X+0.5)*16);
  119.  
  120. Color.R = ColumnColor[VertexPairInArray,0];
  121. Color.G = ColumnColor[VertexPairInArray,1];
  122. Color.B = ColumnColor[VertexPairInArray,2];]]>
  123. </RenderVertexExpression>
  124. </RenderNet>
  125. </Children>
  126. </RenderTransformGroup>
  127. </OnRender>
  128. <Content>
  129. <Material Name="ColorMono" Shading="1" Color="1 1 1 0.8993" Light="0"/>
  130. <Camera Name="ProjectionFrontal" Comment="No rotation, for interface etc" Kind="1" Position="0 0 10"/>
  131. <Variable Name="MouseToColumn"/>
  132. <Variable Name="MouseToColumnBuffer"/>
  133. <Array Name="ColumnColor" Dimensions="1" SizeDim1="17" SizeDim2="3"/>
  134. <Array Name="RGBConverted" SizeDim1="3"/>
  135. <Sound Name="Plink" Length="0.5" Osc1Waveform="3" UseFilter="1" FilterCutoff="0.5095" FilterQ="0.1199" Mod0Active="1" Mod0Destination="11" Mod0Amount="1" Mod1Active="1" Mod1Source="2" Mod1Destination="2" Mod1Amount="0.21" Mod2Source="2" Mod2Amount="0.6" Env0Active="1" Env0DecayTime="0.42" Env0SustainLevel="0.604" Env0ReleaseTime="1.28" Env1DecayTime="1.8" Env1ReleaseTime="0.54" Lfo0Active="1" Lfo0IsBipolar="1" Lfo0Style="1" Lfo0Speed="0.23"/>
  136. </Content>
  137. </ZApplication>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement