98 lines
4.0 KiB
JavaScript
98 lines
4.0 KiB
JavaScript
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.выбор[номер] = мат;
|
||
}
|
||
}
|
||
};
|