From 47637f551158f00dbc8757569bd3d582cd25a3c4 Mon Sep 17 00:00:00 2001 From: Danielv123 Date: Mon, 26 Mar 2018 14:03:57 +0200 Subject: [PATCH] remoteMap animated radar --- static/lib/entityDrawRules.js | 3 ++- static/remoteMap.js | 9 +++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/static/lib/entityDrawRules.js b/static/lib/entityDrawRules.js index c2352deb..462d1af2 100644 --- a/static/lib/entityDrawRules.js +++ b/static/lib/entityDrawRules.js @@ -147,7 +147,7 @@ for(let i = 1; i <= 3; i++){ // template3x3entity; }; entityDrawRules["radar"] = { - spritesheet: spritesheetJson.frames["images/factorio/entity/radar/radar.png.22"], + spritesheet: [], sizeInTiles: { x:4, y:4, @@ -159,6 +159,7 @@ entityDrawRules["radar"] = { } for(let i = 0; i < 64; i++){ // animate the radar + entityDrawRules.radar.spritesheet.push({spritesheet: spritesheetJson.frames["images/factorio/entity/radar/radar.png."+i]}); } ["beacon", "electric-furnace"].forEach(name => { entityDrawRules[name] = template3x3entity; diff --git a/static/remoteMap.js b/static/remoteMap.js index 1f8074b9..f5166e15 100644 --- a/static/remoteMap.js +++ b/static/remoteMap.js @@ -494,9 +494,14 @@ function drawEntity(entity, dontCache){ }; } } else { - // correct for whether we have 4 or 8 directions + // correct for whether we have 1, 4 or 8 directions let spriteSheetRotIndex = dir / (8 / rules.spritesheet.length); - if(rules.spritesheet[spriteSheetRotIndex].spritesheet.length){ + if(rules.spritesheet.length > 8) { + // apparently this entity has more than 8 directions. That isn't supported. + // therefore we can conclude that they are instead intended as animation frames. + // That is why we treat them as animation frames. + spriteSheetRotIndex = Math.floor(Date.now()/32) % rules.spritesheet.length; + } else if(rules.spritesheet[spriteSheetRotIndex].spritesheet.length){ var animationStage = Math.floor(Date.now()/16) % rules.spritesheet[spriteSheetRotIndex].spritesheet.length; var usesAnimation = true; } else {