From ae11ed555cb350ea4c11fc1625f4a56229969ddd Mon Sep 17 00:00:00 2001 From: Physick <96335032+DegustatorPonos@users.noreply.github.com> Date: Sat, 13 Dec 2025 12:32:15 +0500 Subject: Tracks meta --- Settings/Distribution.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Settings/Distribution.go (limited to 'Settings/Distribution.go') diff --git a/Settings/Distribution.go b/Settings/Distribution.go new file mode 100644 index 0000000..fc8ae13 --- /dev/null +++ b/Settings/Distribution.go @@ -0,0 +1,28 @@ +package settings + +import "math/rand" + +type distributionOptions struct { + // The chance of a value to be defaulted by zero + RandomisationChance float64 + // The song start point will be between [0; len(song) * MaxPointPercent] + MaxPointPercent float64 + // All the values less than this param will be defaulted to zero + + StartSnapPercent float64 +} + +func (base distributionOptions) GetDistributedInt(dur int) int { + if rand.Float64() < base.RandomisationChance { + return 0 + } + var random = rand.Float64() * base.MaxPointPercent + if random >= 1 { + panic("Random is greater than 1") + } + var randomDur = int(random * float64(dur)) + if randomDur <= int(base.StartSnapPercent * float64(dur)) { + return 0 + } + return randomDur +} -- cgit v1.3