Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="iso-8859-1" ?>
- <ZApplication Name="App" Caption="ZGameEditor application" ClearColor="0.4902 0.8745 1 1" FrameRateStyle="2" FixedFrameRate="60" Camera="ProjectionFrontal" MouseVisible="255">
- <OnLoaded>
- <ZLibrary Comment="HSV Library">
- <Source>
- <![CDATA[float angle(float X)
- {
- if(X >= 0 && X < 360)return X;
- if(X > 360)return X-floor(X/360)* 360;
- if(X < 0)return X+floor(X/360)*-360;
- }
- //
- void hsv(float H, float S, float V)
- {
- float R,G,B,I,F,P,Q,T;
- H = angle(H);
- S = clamp(S,0,100);
- V = clamp(V,0,100);
- H /= 60;
- S /= 100;
- V /= 100;
- if(S == 0)
- {
- RGBConverted[0] = V;
- RGBConverted[1] = V;
- RGBConverted[2] = V;
- return;
- }
- I = floor(H);
- F = H-I;
- P = V*(1-S);
- Q = V*(1-S*F);
- T = V*(1-S*(1-F));
- if(I == 0){R = V; G = T; B = P;}
- if(I == 1){R = Q; G = V; B = P;}
- if(I == 2){R = P; G = V; B = T;}
- if(I == 3){R = P; G = Q; B = V;}
- if(I == 4){R = T; G = P; B = V;}
- if(I == 5){R = V; G = P; B = Q;}
- RGBConverted[0] = R;
- RGBConverted[1] = G;
- RGBConverted[2] = B;
- }]]>
- </Source>
- </ZLibrary>
- <ZExpression>
- <Expression>
- <![CDATA[Stretch.Scale.X = 2f*App.ViewportWidth/App.ViewportHeight;
- Stretch.Scale.Y = 2;
- RainbowField.XCount = 16;
- ColumnColor.SizeDim1 = RainbowField.XCount+1;]]>
- </Expression>
- </ZExpression>
- </OnLoaded>
- <OnUpdate>
- <ZExpression Comment="Which column the cursor is currently in">
- <Expression>
- <![CDATA[MouseToColumn =
- floor
- (
- (App.MousePosition.X+1)/2*ColumnColor.SizeDim1
- );]]>
- </Expression>
- </ZExpression>
- <ZExpression Comment="Calculate colors">
- <Expression>
- <![CDATA[hsv(MouseToColumn/RainbowField.XCount*360,(App.MousePosition.Y*0.5+0.5)*100,100);
- ColumnColor[MouseToColumn,0] = RGBConverted[0];
- ColumnColor[MouseToColumn,1] = RGBConverted[1];
- ColumnColor[MouseToColumn,2] = RGBConverted[2];
- /*
- ColumnColor[MouseToColumn,0] = App.MousePosition.Y*0.5+0.5;
- ColumnColor[MouseToColumn,1] = App.MousePosition.Y*0.5+0.5;
- ColumnColor[MouseToColumn,2] = App.MousePosition.Y*0.5+0.5;
- */]]>
- </Expression>
- </ZExpression>
- <Condition Comment="Should Plink?">
- <Expression>
- <![CDATA[return
- (
- MouseToColumnBuffer != MouseToColumn
- );]]>
- </Expression>
- <OnTrue>
- <PlaySound Sound="Plink" NoteNr="96"/>
- <ZExpression Comment="Calculate colors" Expression="MouseToColumnBuffer = MouseToColumn;"/>
- </OnTrue>
- </Condition>
- </OnUpdate>
- <OnRender>
- <UseMaterial Material="ColorMono"/>
- <RenderTransformGroup Name="Stretch" Scale="3.7589 2 1">
- <Children>
- <RenderNet Name="RainbowField" XCount="16" VertexColors="255">
- <RenderVertexExpression>
- <![CDATA[//Update each vertex.
- //Vertex : current vertex
- //TexCoord : current texture coordinate
- //Color : current vertex color
- float VertexPairInArray;
- VertexPairInArray = ceil((Vertex.X+0.5)*16);
- Color.R = ColumnColor[VertexPairInArray,0];
- Color.G = ColumnColor[VertexPairInArray,1];
- Color.B = ColumnColor[VertexPairInArray,2];]]>
- </RenderVertexExpression>
- </RenderNet>
- </Children>
- </RenderTransformGroup>
- </OnRender>
- <Content>
- <Material Name="ColorMono" Shading="1" Color="1 1 1 0.8993" Light="0"/>
- <Camera Name="ProjectionFrontal" Comment="No rotation, for interface etc" Kind="1" Position="0 0 10"/>
- <Variable Name="MouseToColumn"/>
- <Variable Name="MouseToColumnBuffer"/>
- <Array Name="ColumnColor" Dimensions="1" SizeDim1="17" SizeDim2="3"/>
- <Array Name="RGBConverted" SizeDim1="3"/>
- <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"/>
- </Content>
- </ZApplication>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement