Добавить ТемаФишек
This commit is contained in:
97
классы/ТемаФишек/2019-09-06.js
Normal file
97
классы/ТемаФишек/2019-09-06.js
Normal file
@@ -0,0 +1,97 @@
|
||||
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.выбор[номер] = мат;
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user