Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package level
|
||||
|
||||
import (
|
||||
"math"
|
||||
)
|
||||
|
||||
var tileHeights = []float64{32.0, 16.0, 8.0, 4.0, 2.0, 1.0, 0.5, 0.25}
|
||||
|
||||
// HeightShift indicates the vertical scale of a level.
|
||||
type HeightShift int32
|
||||
|
||||
// ValueFromTileHeight returns a floating point value in tiles based on a tile height.
|
||||
func (shift HeightShift) ValueFromTileHeight(raw TileHeightUnit) (float32, error) {
|
||||
return shift.valueFromScale(float32(raw), float64(TileHeightUnitMax))
|
||||
}
|
||||
|
||||
// ValueFromObjectHeight returns a floating point value in tiles based on an object height.
|
||||
func (shift HeightShift) ValueFromObjectHeight(raw HeightUnit) (float32, error) {
|
||||
return shift.valueFromScale(float32(raw), float64(0x100))
|
||||
}
|
||||
|
||||
// ValueToObjectHeight returns an object height value based on given floating point value.
|
||||
func (shift HeightShift) ValueToObjectHeight(value float32) HeightUnit {
|
||||
return HeightUnit(math.Min(0xFF, math.Max(0, shift.valueToScale(value, float64(0x100)))))
|
||||
}
|
||||
|
||||
func (shift HeightShift) valueFromScale(raw float32, scale float64) (float32, error) {
|
||||
if (shift < 0) || (int(shift) >= len(tileHeights)) {
|
||||
return 0.0, errInvalidHeightShift
|
||||
}
|
||||
return float32((float64(raw) * tileHeights[int(shift)]) / scale), nil
|
||||
}
|
||||
|
||||
func (shift HeightShift) valueToScale(value float32, scale float64) float64 {
|
||||
if (shift < 0) || (int(shift) >= len(tileHeights)) {
|
||||
return 0.0
|
||||
}
|
||||
return (float64(value) * scale) / tileHeights[shift]
|
||||
}
|
||||
Reference in New Issue
Block a user