Files
mahjong/классы/ТемаФишек/2019-09-06.js

98 lines
4.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function ТемаФишек(имя)
{
this.имя = имя;
// Частичные имена текстур для загрузки.
this.нейтральТекстуры = [];
this.выборТекстуры = [];
for (var номер = 1; номер <= 42; ++номер)
{
this.нейтральТекстуры.push("0/" + номер);
this.выборТекстуры.push("1/" + номер);
}
// Материалы фишек.
this.нейтраль = [];
this.выбор = [];
};
ТемаФишек.prototype.имяФайлаТекстуры = function(частичноеИмя)
{
return частичноеИмя + ".png";
}
ТемаФишек.prototype.имяТекстуры = function(частичноеИмя)
{
return "tile.tex/" + частичноеИмя;
}
ТемаФишек.prototype.имяМатериала = function(частичноеИмя)
{
return "tile.mat/" + частичноеИмя;
}
ТемаФишек.prototype.загрузить = function(основаАдреса, отклик)
{
var ресурсы = [];
// Список ресурсов для загрузки.
for (var номер in this.нейтральТекстуры)
{
// Нейтраль.
{
const чимя = this.нейтральТекстуры[номер];
const имя = this.имяТекстуры(чимя)
const файл = this.имяФайлаТекстуры(чимя);
ресурсы.push([основаАдреса + файл, имя]);
}
// Выбор.
{
const чимя = this.выборТекстуры[номер];
const имя = this.имяТекстуры(чимя)
const файл = this.имяФайлаТекстуры(чимя);
ресурсы.push([основаАдреса + файл, имя]);
}
}
const времяНачала = Date.now();
// Получить текстуры и завести материалы.
var self = this;
муром.ресурсы.получить(
ресурсы,
function()
{
const прошло = Date.now() - времяНачала;
console.log("ТемаФишек. Загрузка заняла мс: '" + прошло + "'");
self.создатьМатериалы();
отклик();
}
);
};
ТемаФишек.prototype.создатьМатериалы = function()
{
const вер = муром.ресурсы.ресурс("ver").содержимое;
const фра = муром.ресурсы.ресурс("fra").содержимое;
for (var номер in this.нейтральТекстуры)
{
// Нейтраль.
{
const чимя = this.нейтральТекстуры[номер];
const имяТ = this.имяТекстуры(чимя)
const имяМ = this.имяМатериала(чимя);
var мат = муром.материалы.создатьМатериал(имяМ);
var изо = муром.ресурсы.ресурс(имяТ);
мат.задатьТекстуру("image", изо);
мат.задатьШейдеры(вер, фра);
this.нейтраль[номер] = мат;
}
// Выбор.
{
const чимя = this.выборТекстуры[номер];
const имяТ = this.имяТекстуры(чимя)
const имяМ = this.имяМатериала(чимя);
var мат = муром.материалы.создатьМатериал(имяМ);
var изо = муром.ресурсы.ресурс(имяТ);
мат.задатьТекстуру("image", изо);
мат.задатьШейдеры(вер, фра);
this.выбор[номер] = мат;
}
}
};