43 lines
851 B
C#
43 lines
851 B
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Godot;
|
|
using System;
|
|
|
|
|
|
|
|
namespace Rokojori
|
|
{
|
|
public enum DiscardNoiseOwnPositionMode
|
|
{
|
|
Ignore,
|
|
Add_Global,
|
|
Add_Local
|
|
}
|
|
|
|
[Tool]
|
|
[GlobalClass]
|
|
public partial class DiscardNoise:Discarder
|
|
{
|
|
[Export(PropertyHint.Range, "0,1")]
|
|
public float insideTreshold = 0.5f;
|
|
|
|
[Export]
|
|
public float noiseScale = 1;
|
|
|
|
[Export]
|
|
public Vector3 noiseOffset = Vector3.Zero;
|
|
|
|
[Export]
|
|
public ScattererOwnPositionMode ownPositionMode = ScattererOwnPositionMode.Ignore;
|
|
|
|
public override bool IsInside( Vector3 position )
|
|
{
|
|
var offset = noiseOffset + ScattererOwnPosition.ComputeOffset( ownPositionMode, this );
|
|
|
|
var value = Noise.Perlin( ( position - offset ) * noiseScale );
|
|
|
|
return value < insideTreshold;
|
|
}
|
|
|
|
}
|
|
} |