remoteMap fixed animated belt alignements (not yellow)

This commit is contained in:
Danielv123 committed 2018-03-26 12:37:16 +02:00
1 parent 8a1f440485
commit d0444ae00d
2 files changed
+67 -18

No files matched your search

+43 -14
View File
@@ -23,17 +23,6 @@ export var entityDrawRules = {
y:-2,
}
},
"radar": {
spritesheet: spritesheetJson.frames["images/factorio/entity/radar/radar.png.22"],
sizeInTiles: {
x:4,
y:4,
},
positionOffset: {
x:-0.8,
y:-1.7,
},
},
"centrifuge": {
spritesheet: spritesheetJson.frames["images/factorio/entity/centrifuge/centrifuge-A.png.0"],
sizeInTiles: {
@@ -157,6 +146,20 @@ for(let i = 1; i <= 3; i++){
}
// template3x3entity;
};
entityDrawRules["radar"] = {
spritesheet: spritesheetJson.frames["images/factorio/entity/radar/radar.png.22"],
sizeInTiles: {
x:4,
y:4,
},
positionOffset: {
x:-0.8,
y:-1.7,
},
}
for(let i = 0; i < 64; i++){
// animate the radar
}
["beacon", "electric-furnace"].forEach(name => {
entityDrawRules[name] = template3x3entity;
});
@@ -232,7 +235,7 @@ entityDrawRules["chemical-plant"] = {
["transport-belt", "fast-transport-belt", "express-transport-belt"].forEach(name => {
entityDrawRules[name] = {
spritesheet: [{
spritesheet: [ // vertical belts
spritesheet: [ // Up
// spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png.0"], // 0 to 31
],
sizeInTiles: {
@@ -242,18 +245,44 @@ entityDrawRules["chemical-plant"] = {
x:-0.1,y:-0,
}
},{
spritesheet: [ // horizontal belts
spritesheet: [ // Right
// spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png.0"], // 0 to 31
],
sizeInTiles: {
x:1.2,y:1.4,
},
positionOffset: {
x:-0.1,y:-0.2,
}
},{
spritesheet: [ // Down
// spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png.27"], // 32 to 63
],
flip: "y",
sizeInTiles: {
x:1.3,y:1.6,
},
positionOffset: {
x:-0.15,y:-0.25,
x:-0.15,y:-1.6,
}
},{
spritesheet: [ // Left
// spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png.27"], // 32 to 63
],
flip: "x",
sizeInTiles: {
x:1.3,y:1.6,
},
positionOffset: {
x:-1.35,y:-0.25,
}
}],
}
for(let i = 0; i < 32; i++){
// down
entityDrawRules[name].spritesheet[3].spritesheet.push(spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png."+i]);
// left
entityDrawRules[name].spritesheet[2].spritesheet.push(spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png."+(i+32)]);
// up
entityDrawRules[name].spritesheet[1].spritesheet.push(spritesheetJson.frames["images/factorio/entity/"+name+"/"+name+".png."+i]);
// right
+24 -4
View File
@@ -472,11 +472,26 @@ function drawEntity(entity, dontCache){
} else {
// correct for whether we have 4 or 8 directions
let spriteSheetRotIndex = dir / (8 / rules.spritesheet.length);
if(rules.spritesheet[spriteSheetRotIndex].spritesheet.length){
var animationStage = Math.floor(Date.now()/16) % rules.spritesheet[spriteSheetRotIndex].spritesheet.length;
var usesAnimation = true;
} else {
var usesAnimation = false;
}
sprWidth = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.w;
sprHeight = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.h;
offLeft = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.x;
offTop = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.y;
if(usesAnimation){
try{
sprWidth = rules.spritesheet[spriteSheetRotIndex].spritesheet[animationStage].frame.w;
sprHeight = rules.spritesheet[spriteSheetRotIndex].spritesheet[animationStage].frame.h;
offLeft = rules.spritesheet[spriteSheetRotIndex].spritesheet[animationStage].frame.x;
offTop = rules.spritesheet[spriteSheetRotIndex].spritesheet[animationStage].frame.y;
}catch(e){} // TODO throws error due to yellow belt rendering
} else {
sprWidth = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.w;
sprHeight = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.h;
offLeft = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.x;
offTop = rules.spritesheet[spriteSheetRotIndex].spritesheet.frame.y;
}
image = global.spritesheet;
if(rules.spritesheet[spriteSheetRotIndex].positionOffset){
@@ -489,6 +504,11 @@ function drawEntity(entity, dontCache){
y: remoteMapConfig.tileSize * rules.spritesheet[spriteSheetRotIndex].sizeInTiles.y,
};
}
if(rules.spritesheet[spriteSheetRotIndex].flip){
let flip = rules.spritesheet[spriteSheetRotIndex].flip;
if(flip == "x") flipX = true;
if(flip == "y") flipY = true;
}
}
} else if(rules.spritesheet){
sprWidth = rules.spritesheet.frame.w;