dead-bunny/js/plugins/Nore_ImageFont.js
2025-01-12 01:21:39 -06:00

124 lines
3.2 KiB
JavaScript

var Nore;
(function (Nore) {
function getBaseTexture() {
var baseTexture = PIXI.utils.BaseTextureCache["system/number"];
if (!baseTexture) {
var bitmap = ImageManager.loadSystem("number");
if (!bitmap.isReady()) {
return;
}
baseTexture = new PIXI.BaseTexture(bitmap._image);
baseTexture.resource.url = "system/number";
PIXI.utils.BaseTextureCache["system/number"] = baseTexture;
}
return baseTexture;
}
Nore.getBaseTexture = getBaseTexture;
Window_Base.prototype.drawNumber = function (num, x, y, w, align, type) {
drawNumber(num, x, y, w, align, type, this._windowContentsSprite);
};
Sprite.prototype.drawNumber = function (num, x, y, w, align, type, parent) {
drawNumber(num, x, y, w, align, type, parent || this);
};
Window_Base.prototype.drawNumberOne = function (index, x, y, type) {
var baseTexture = getBaseTexture();
if (!baseTexture) {
return;
}
switch (type) {
case 1:
var pw = 32;
var ph = 32;
var yy = 0;
var ww = 32;
break;
case 2:
var pw = 48;
var ph = 48;
var yy = 48 * 2;
var ww = 24;
break;
case 3:
var pw = 38;
var ph = 48;
var yy = 48 * 3;
var ww = 24;
break;
}
var texture = new PIXI.Texture(baseTexture);
texture.frame = new PIXI.Rectangle(index * pw, yy, pw, ph);
var sprite = new PIXI.Sprite(texture);
sprite.x = x;
sprite.y = y;
if (parent.paintOpacity !== undefined) {
sprite.alpha = parent.paintOpacity / 256;
}
this._windowContentsSprite.addChild(sprite);
};
function drawNumber(num, x, y, w, align, type, parent) {
var baseTexture = getBaseTexture();
if (!baseTexture) {
return;
}
var xx = 0;
switch (type) {
case 1:
var pw = 32;
var ph = 32;
var yy = 0;
var ww = 10;
break;
case 2:
var pw = 32;
var ph = 32;
var yy = 32;
var ww = 14;
break;
}
var str = num + "";
if (num < 0) {
str = Math.abs(num) + "";
}
var minusW = 0;
for (var i = 0; i < str.length; i++) {
var s;
if (align == "right") {
s = str[str.length - i - 1];
} else {
s = str[i];
}
var c = parseInt(s);
if (isNaN(c)) {
if (s == "%") {
c = 10;
} else if (s == ".") {
c = 10;
} else if (s == "/") {
c = 12;
} else {
c = 11;
}
minusW += -1;
}
var texture = new PIXI.Texture(baseTexture);
texture.frame = new PIXI.Rectangle(c * pw + xx, yy, pw, ph);
var sprite = new PIXI.Sprite(texture);
if (align == "right") {
sprite.x = x + w - (i + 1) * ww - 8 - minusW;
if (type == 1 && i == str.length - 1 && c == 1) {
//sprite.x += 2;
}
} else {
sprite.x = x + i * ww;
}
if (parent.paintOpacity !== undefined) {
sprite.alpha = parent.paintOpacity / 256;
}
sprite.y = y;
parent.addChild(sprite);
if (c == 10) {
minusW += -5;
}
}
}
})(Nore || (Nore = {}));