Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/ai/petra/mapModule.js
Show First 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | PETRA.createObstructionMap = function(gameState, accessIndex, template) | ||||
if (template && template.buildDistance()) | if (template && template.buildDistance()) | ||||
{ | { | ||||
let distance = template.buildDistance(); | let distance = template.buildDistance(); | ||||
let minDist = distance.MinDistance ? +distance.MinDistance : 0; | let minDist = distance.MinDistance ? +distance.MinDistance : 0; | ||||
if (minDist) | if (minDist) | ||||
{ | { | ||||
let obstructionRadius = template.obstructionRadius(); | let obstructionRadius = template.obstructionRadius(); | ||||
if (obstructionRadius) | if (obstructionRadius) | ||||
minDist -= obstructionRadius.min; | minDist += obstructionRadius.max; | ||||
let fromClass = distance.FromClass; | let fromClass = distance.FromClass; | ||||
let cellSize = passabilityMap.cellSize; | let cellSize = passabilityMap.cellSize; | ||||
let cellDist = 1 + minDist / cellSize; | |||||
let structures = gameState.getOwnStructures().filter(API3.Filters.byClass(fromClass)); | let structures = gameState.getOwnStructures().filter(API3.Filters.byClass(fromClass)); | ||||
for (let ent of structures.values()) | for (let ent of structures.values()) | ||||
{ | { | ||||
if (!ent.position()) | if (!ent.position()) | ||||
continue; | continue; | ||||
let pos = ent.position(); | let pos = ent.position(); | ||||
let x = Math.round(pos[0] / cellSize); | let x = Math.round(pos[0] / cellSize); | ||||
let z = Math.round(pos[1] / cellSize); | let z = Math.round(pos[1] / cellSize); | ||||
map.addInfluence(x, z, cellDist, -255, "constant"); | let entRadius = ent.obstructionRadius(); | ||||
let dist = 1 + (minDist + (entRadius ? entRadius.max : 0)) / cellSize; | |||||
map.addInfluence(x, z, dist, -255, "constant"); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
return map; | return map; | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 102 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator