From 8e08067788e9204ca352b52aef5c6c3a6f95a3d1 Mon Sep 17 00:00:00 2001 From: Michael Kapelko Date: Fri, 6 Sep 2019 22:35:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=A2=D0=B5=D0=BC=D0=B0=D0=A4=D0=B8=D1=88=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- классы/ТемаФишек/2019-09-06.js | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 классы/ТемаФишек/2019-09-06.js diff --git a/классы/ТемаФишек/2019-09-06.js b/классы/ТемаФишек/2019-09-06.js new file mode 100644 index 0000000..26bb80a --- /dev/null +++ b/классы/ТемаФишек/2019-09-06.js @@ -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.выбор[номер] = мат; + } + } +};