Made extrude optional and disabled it for wires

pull/1317/head
DJ1TJOO 3 years ago
parent a7a2aad2b6
commit 54fa648238

@ -149,8 +149,9 @@ export class AtlasSprite extends BaseSprite {
* @param {number} w
* @param {number} h
* @param {boolean=} clipping Whether to perform culling
* @param {boolean=} extrude Whether to extrude
*/
drawCached(parameters, x, y, w = null, h = null, clipping = true) {
drawCached(parameters, x, y, w = null, h = null, clipping = true, extrude = true) {
if (G_IS_DEV) {
assert(parameters instanceof DrawParameters, "Not a valid context");
assert(!!w && w > 0, "Not a valid width:" + w);
@ -201,6 +202,7 @@ export class AtlasSprite extends BaseSprite {
destH = intersection.h;
}
const extrudeValue = extrude ? EXTRUDE : 0;
parameters.context.drawImage(
link.atlas,
@ -213,10 +215,10 @@ export class AtlasSprite extends BaseSprite {
srcH,
// dest pos and size
destX - EXTRUDE,
destY - EXTRUDE,
destW + 2 * EXTRUDE,
destH + 2 * EXTRUDE
destX - extrudeValue,
destY - extrudeValue,
destW + 2 * extrudeValue,
destH + 2 * extrudeValue
);
}
@ -228,8 +230,9 @@ export class AtlasSprite extends BaseSprite {
* @param {number} w
* @param {number} h
* @param {Rectangle=} clipRect The rectangle in local space (0 ... 1) to draw of the image
* @param {boolean=} extrude Whether to extrude
*/
drawCachedWithClipRect(parameters, x, y, w = null, h = null, clipRect = FULL_CLIP_RECT) {
drawCachedWithClipRect(parameters, x, y, w = null, h = null, clipRect = FULL_CLIP_RECT, extrude = true) {
if (G_IS_DEV) {
assert(parameters instanceof DrawParameters, "Not a valid context");
assert(!!w && w > 0, "Not a valid width:" + w);
@ -257,6 +260,7 @@ export class AtlasSprite extends BaseSprite {
let srcW = link.packedW * clipRect.w;
let srcH = link.packedH * clipRect.h;
const extrudeValue = extrude ? EXTRUDE : 0;
parameters.context.drawImage(
link.atlas,
@ -269,10 +273,10 @@ export class AtlasSprite extends BaseSprite {
srcH,
// dest pos and size
destX - EXTRUDE,
destY - EXTRUDE,
destW + 2 * EXTRUDE,
destH + 2 * EXTRUDE
destX - extrudeValue,
destY - extrudeValue,
destW + 2 * extrudeValue,
destH + 2 * extrudeValue
);
}

@ -255,8 +255,15 @@ export class StaticMapEntityComponent extends Component {
* @param {AtlasSprite} sprite
* @param {number=} extrudePixels How many pixels to extrude the sprite
* @param {Vector=} overridePosition Whether to drwa the entity at a different location
* @param {boolean=} extrude Whether to extrude
*/
drawSpriteOnBoundsClipped(parameters, sprite, extrudePixels = 0, overridePosition = null) {
drawSpriteOnBoundsClipped(
parameters,
sprite,
extrudePixels = 0,
overridePosition = null,
extrude = true
) {
if (!this.shouldBeDrawn(parameters) && !overridePosition) {
return;
}
@ -276,7 +283,9 @@ export class StaticMapEntityComponent extends Component {
worldX - extrudePixels * size.x,
worldY - extrudePixels * size.y,
globalConfig.tileSize * size.x + 2 * extrudePixels * size.x,
globalConfig.tileSize * size.y + 2 * extrudePixels * size.y
globalConfig.tileSize * size.y + 2 * extrudePixels * size.y,
true,
extrude
);
} else {
const rotationCenterX = worldX + globalConfig.halfTileSize;
@ -290,7 +299,8 @@ export class StaticMapEntityComponent extends Component {
-globalConfig.halfTileSize - extrudePixels * size.y,
globalConfig.tileSize * size.x + 2 * extrudePixels * size.x,
globalConfig.tileSize * size.y + 2 * extrudePixels * size.y,
false // no clipping possible here
false, // no clipping possible here
extrude
);
parameters.context.rotate(-Math.radians(this.rotation));
parameters.context.translate(-rotationCenterX, -rotationCenterY);

@ -616,7 +616,7 @@ export class WireSystem extends GameSystemWithFilter {
assert(sprite, "Unknown wire type: " + wireType);
const staticComp = entity.components.StaticMapEntity;
parameters.context.globalAlpha = opacity;
staticComp.drawSpriteOnBoundsClipped(parameters, sprite, 0);
staticComp.drawSpriteOnBoundsClipped(parameters, sprite, 0, null, false);
// DEBUG Rendering
if (G_IS_DEV && globalConfig.debug.renderWireRotations) {

Loading…
Cancel
Save