summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/noise.lua16
1 files changed, 5 insertions, 11 deletions
diff --git a/server/noise.lua b/server/noise.lua
index bf7ac2e..c0ca57c 100644
--- a/server/noise.lua
+++ b/server/noise.lua
@@ -9,8 +9,8 @@ math.randomseed(os.time())
local function hash_list(t)
local h = #t
for _,x in ipairs(t) do
- x = bit.bxor(bit.rshift(x,16),x) * 0x45d9f3b
- x = bit.bxor(bit.rshift(x,16),x) * 0x45d9f3b
+ x = bit.bxor(bit.rshift(x,16),x) * 0x7feb352d
+ x = bit.bxor(bit.rshift(x,15),x) * 0x846ca68b
x = bit.bxor(bit.rshift(x,16),x)
h = bit.bxor(h,x + 0x9e3779b9 + bit.lshift(h,6) + bit.rshift(h,2))
end
@@ -33,17 +33,11 @@ end
local function slerp(a,b,t) return lerp(a,b,smoothstep(t)) end
local PerlinNoise = class()
-function PerlinNoise.make(cls,ind_seed)
- local grid = {}
- setmetatable(grid,{__index=function(t,k) t[k] = {} return t[k] end})
- return setmetatable({grid=grid,ind_seed=ind_seed},cls)
+function PerlinNoise.make(cls,seed)
+ return setmetatable({seed=seed},cls)
end
function PerlinNoise.vertex(self,ix,iy)
- local v = self.grid[ix][iy]
- if v then return v end
- local vv = hash_to_unit_vec{ix,iy,self.ind_seed}
- self.grid[ix][iy] = vv
- return vv
+ return hash_to_unit_vec{ix,iy,self.seed}
end
function PerlinNoise.at(self,x,y)