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