From 4f28e1920478d04e2831ea7cd61d255c52a6257a Mon Sep 17 00:00:00 2001 From: Matei Date: Sat, 25 Nov 2006 18:52:10 +0000 Subject: [PATCH] # Began work on sample map using noise. Also updated cantabrian_generated with better lighting settings. This was SVN commit r4656. --- .../data/mods/official/maps/random/test.js | 161 +++++++++++++++++- binaries/data/mods/official/maps/rmlibrary.js | 4 + .../maps/scenarios/cantabrian_generated.pmp | 4 +- .../maps/scenarios/cantabrian_generated.xml | 4 +- 4 files changed, 167 insertions(+), 6 deletions(-) diff --git a/binaries/data/mods/official/maps/random/test.js b/binaries/data/mods/official/maps/random/test.js index 9882668657..e83dcda045 100644 --- a/binaries/data/mods/official/maps/random/test.js +++ b/binaries/data/mods/official/maps/random/test.js @@ -1,4 +1,161 @@ -const SIZE = 64; +const SIZE = 160; +const SEA_LEVEL = 5; -init(SIZE, "grass dirt 50", 0); +init(SIZE, "ocean_medit_rock_shallow", 0); +noise0 = new Noise2D(4 * SIZE/128.0); +noise1 = new Noise2D(8 * SIZE/128.0); +noise2 = new Noise2D(11 * SIZE/128.0); +noise3 = new Noise2D(30 * SIZE/128.0); +noise4 = new Noise2D(60 * SIZE/128.0); + +// Paint elevation + +for(ix=0; ix 3.2 && minH >= SEA_LEVEL) { + setTexture(ix, iy, cliff); + } + else if(maxH - minH > 2.7 && minH < SEA_LEVEL) { + setTexture(ix, iy, cliffBeach); + } + else if(maxH - minH > 2.7) { + setTexture(ix, iy, cliffBase); + } + else if(minH <= SEA_LEVEL) { + setTexture(ix, iy, sand); + } + else { + setTexture(ix, iy, grass1); + } + } +} + +oTree = "flora_tree_oak"; +oGrass = "props/flora/grass_soft_small.xml" + +forestNoise1 = new Noise2D(20 * SIZE/128.0); +forestNoise2 = new Noise2D(40 * SIZE/128.0); + +dirtNoise = new Noise2D(80 * SIZE/128.0); + +for(ix=0; ix SEA_LEVEL) { + fn = (forestNoise1.eval(x,y) + .5*forestNoise1.eval(x,y)) / 1.5; + + if(minH > .5 && fn < .38 && dirtNoise.eval(x,y) > .55) { + if(dirtNoise.eval(x,y) > .72) { + setTexture(ix, iy, dirt2); + } + else { + setTexture(ix, iy, dirt1); + } + } + + if(fn > .6 && randFloat() < (.3 + .7 * Math.min(fn-.6, .1) / .1) ) { + placeObject(oTree, 0, ix+.4+.2*randFloat(), iy+.4+.2*randFloat(), randFloat()*2*Math.PI); + if(randFloat() < .7) { + setTexture(ix, iy, forestFloor); + } + } + else if(getTexture(ix, iy)==grass1 && maxH-minH < 1 && randFloat() < .13) { + placeObject(oGrass, 0, ix+.3+.4*randFloat(), iy+.3+.4*randFloat(), randFloat()*2*Math.PI); + } + else if(getTexture(ix, iy)==grass1 && randFloat() < .03) { + placeObject(oTree, 0, ix+.3+.4*randFloat(), iy+.3+.4*randFloat(), randFloat()*2*Math.PI); + } + + /*else if(getTerrain(ix, iy)==grass && fn > .5 && randFloat() < .04) { + placeBushClump(ix+.5, iy+.5); + } + else if(randFloat() < .04 && (maxH < .5 || randFloat() < .2)) { + placeRockClump(ix+.5, iy+.5); + } + else if(getTerrain(ix, iy)==grass && maxH-minH < .4 && randFloat() < .1) { + addSprite(new Sprite(makeGrass(), + ix+.3+.4*randFloat(), iy+.3+.4*randFloat(), STATIC)); + } + else if(randFloat() < .015) { + addSprite(new Sprite(makeSmallRock(), + ix+randFloat(), iy+randFloat(), STATIC)); + } + else if(getTerrain(ix, iy)==grass && randFloat() < .03) { + var t = new Sprite(makeOak(), + ix+.3+.4*randFloat(), iy+.3+4*randFloat(), STATIC); + t.maxY = 4; + t.collidable = true; + addSprite(t); + }*/ + } + + /*if(maxH < .5 && minH < -0.3 && minH > -2 && randFloat() < .007) { + var l = new Sprite(waterLog, ix+randFloat(), iy+randFloat(), STATIC); + l.floating = true; + addSprite(l); + } + else if(maxH < 0 && minH > -3 && randFloat() < .04) { + var l = new Sprite(lillies, ix+randFloat(), iy+randFloat(), STATIC); + l.floating = true; + addSprite(l); + }*/ + } +} diff --git a/binaries/data/mods/official/maps/rmlibrary.js b/binaries/data/mods/official/maps/rmlibrary.js index 7a3a9c3719..ec19e87be2 100644 --- a/binaries/data/mods/official/maps/rmlibrary.js +++ b/binaries/data/mods/official/maps/rmlibrary.js @@ -250,3 +250,7 @@ function SimpleGroup(elements, avoidSelf, tileClass, x, y) { this.x = x!=undefined ? x : -1; this.y = x!=undefined ? y : -1; } + +function lerp(a, b, t) { + return a + (b-a) * t; +} \ No newline at end of file diff --git a/binaries/data/mods/official/maps/scenarios/cantabrian_generated.pmp b/binaries/data/mods/official/maps/scenarios/cantabrian_generated.pmp index de12240af7..288262e17b 100644 --- a/binaries/data/mods/official/maps/scenarios/cantabrian_generated.pmp +++ b/binaries/data/mods/official/maps/scenarios/cantabrian_generated.pmp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf73e5c4070a7a685bac4f626d4a897229d208b87a7a499efb4019994d3e9b4a -size 433730 +oid sha256:3ebca2ac0a2772f27aa14be6c3c0f44608faf28f5d822277008df494e6863ffe +size 433686 diff --git a/binaries/data/mods/official/maps/scenarios/cantabrian_generated.xml b/binaries/data/mods/official/maps/scenarios/cantabrian_generated.xml index aca0dd82b7..cc91710e1a 100644 --- a/binaries/data/mods/official/maps/scenarios/cantabrian_generated.xml +++ b/binaries/data/mods/official/maps/scenarios/cantabrian_generated.xml @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:37ceea8b754540e0d5edf1977497fb0d31560452efef1a0858dfd569271661be -size 1161059 +oid sha256:123c22b33e5b03d50579dbf0f45d6b5b983dc1d1016493e3f88432a582bad9d6 +size 1104046