mirror of
https://github.com/celisej567/gm_construct_port.git
synced 2026-09-27 16:16:14 +03:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
using Sandbox;
|
||||
|
||||
[Library( "noise_test", Title = "Noise Test", Spawnable = true )]
|
||||
public partial class NoiseTest : Prop
|
||||
{
|
||||
public override void Spawn()
|
||||
{
|
||||
base.Spawn();
|
||||
|
||||
SetModel( "models/citizen_props/balloonregular01.vmdl" );
|
||||
SetupPhysicsFromModel( PhysicsMotionType.Dynamic, false );
|
||||
}
|
||||
|
||||
[Event.Frame]
|
||||
public void OnFrame()
|
||||
{
|
||||
var pos = Position;
|
||||
var right = Rotation.Right * 4;
|
||||
var forward = Rotation.Forward * 4;
|
||||
var up = Rotation.Up * 50;
|
||||
var offset = Time.Now * 2.0f;
|
||||
var offsetz = Time.Now * 0.1f;
|
||||
|
||||
var mode = (int)((Time.Now * 0.3f) % 5);
|
||||
|
||||
switch ( mode )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
DebugOverlay.Text( pos, "Perlin" );
|
||||
break;
|
||||
}
|
||||
|
||||
case 1:
|
||||
{
|
||||
DebugOverlay.Text( pos, "SparseConvolution" );
|
||||
break;
|
||||
}
|
||||
|
||||
case 2:
|
||||
{
|
||||
DebugOverlay.Text( pos, "SparseConvolutionNormalized" );
|
||||
break;
|
||||
}
|
||||
|
||||
case 3:
|
||||
{
|
||||
DebugOverlay.Text( pos, "Turbulence" );
|
||||
break;
|
||||
}
|
||||
|
||||
case 4:
|
||||
{
|
||||
DebugOverlay.Text( pos, "Fractal" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var size = 100;
|
||||
|
||||
pos -= right * size * 0.5f;
|
||||
pos -= forward * size * 0.5f;
|
||||
|
||||
for ( float x = 0; x < size; x++ )
|
||||
for ( float y = 0; y < size; y++ )
|
||||
{
|
||||
float val = 0;
|
||||
|
||||
switch ( mode )
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
val = Noise.Perlin( x * 0.1f + offset, y * 0.1f, offsetz ) * 0.5f;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
val = Noise.SparseConvolution( x * 0.1f + offset, y * 0.1f, offsetz ) * 0.5f;
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
val = Noise.SparseConvolutionNormalized( x * 0.1f + offset, y * 0.1f, offsetz ) * 0.5f;
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
val = Noise.Turbulence( 2, x * 0.1f + offset, y * 0.1f, offsetz ) * 0.5f;
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
val = Noise.Fractal( 2, x * 0.1f + offset, y * 0.1f, offsetz ) * 0.5f;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var start = pos + x * right + y * forward;
|
||||
DebugOverlay.Line( start, start + up * val, Color.Lerp( Color.Red, Color.Green, (val + 1.0f) / 2.0f ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user