// Object type constants const TYPE_RECT_PLACER = 1, TYPE_TERRAIN_PAINTER = 2, TYPE_NULL_CONSTRAINT = 3, TYPE_LAYERED_PAINTER = 4, TYPE_AVOID_AREA_CONSTRAINT = 5, TYPE_CLUMP_PLACER = 6, TYPE_AVOID_TEXTURE_CONSTRAINT = 7, TYPE_ELEVATION_PAINTER = 8, TYPE_SMOOTH_ELEVATION_PAINTER = 9, TYPE_SIMPLE_GROUP = 10, TYPE_AVOID_TILE_CLASS_CONSTRAINT = 11, TYPE_TILE_CLASS_PAINTER = 12, TYPE_STAY_IN_TILE_CLASS_CONSTRAINT = 13, TYPE_BORDER_TILE_CLASS_CONSTRAINT = 14; // SmoothElevationPainter constants const ELEVATION_SET = 0; const ELEVATION_MODIFY = 1; // PI const PI = Math.PI; // initFromScenario constants const LOAD_NOTHING = 0; const LOAD_TERRAIN = 1; const LOAD_INTERACTIVES = 2; const LOAD_NON_INTERACTIVES = 4; const LOAD_ALL = LOAD_TERRAIN | LOAD_INTERACTIVES | LOAD_NON_INTERACTIVES; // Utility functions function fractionToTiles(f) { return getMapSize() * f; } function tilesToFraction(t) { return t / getMapSize(); } function fractionToSize(f) { return getMapSize() * getMapSize() * f; } function sizeToFraction(s) { return s / getMapSize() / getMapSize(); } function cos(x) { return Math.cos(x); } function sin(x) { return Math.sin(x); } function tan(x) { return Math.tan(x); } function abs(x) { return Math.abs(x); } function round(x) { return Math.round(x); } function lerp(a, b, t) { return a + (b-a) * t; } function println(x) { print(x); print("\n"); } function argsToArray(x) { if(x.length!=1) { var ret = new Array(); for(var i=0; i