|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- const ИМЯ = "ОМ | MB";
- const БАЗА = "https://git.opengamestudio.org/mahjong/mahjong-modeli-models/raw/branch/master/";
- const ИМЯ_МОДУЛЯ_РЕСУРСОВ = "Ресурсы Маджонга | Mahjong resources";
-
-
- // // // //
-
-
- ВключитьКэшированиеРесурсовThreeJSДляЗагрузкиРесурсовИзМодулей = мир =>
- {
- THREE.Cache.enabled = true;
- };
-
-
- // // // //
-
-
- УбратьПереворотТекстурыФишки = мир =>
- {
- мир.текстураФишки.flipY = false;
- };
-
-
- // // // //
-
-
- ПовернутьФишку = мир =>
- {
- мир.модельФишки.rotation.x += 0.03;
- мир.модельФишки.rotation.y += 0.02;
- };
-
-
- // // // //
-
-
- Отладка = мир =>
- {
- console.debug("Отладка", Date());
- };
-
-
- // // // //
-
-
- ЗапуститьТаймерПоворотаФишки = мир =>
- {
- setInterval(
- function() {
- мир.уведомить("поворот фишки");
- },
- 60
- );
-
- };
-
-
- // // // //
-
-
- ПодготовитьСцену = мир =>
- {
- мир.камера.position.z = 10;
- мир.свет = new THREE.DirectionalLight(0xffffff, 1);
- мир.свет.position.set(-0.5, 0.5, 1).normalize();
- мир.сцена.add(мир.свет);
- };
-
-
- // // // //
-
-
- СоздатьФишку = мир =>
- {
- мир.сцена.add(мир.модельФишки);
- var материал = new THREE.MeshLambertMaterial({map: мир.текстураФишки});
- мир.модельФишки.traverse(function(ребёнок) {
- if (ребёнок.isMesh)
- {
- ребёнок.material = материал;
- }
- });
- };
-
-
- // // // //
-
-
- ЗагрузитьТекстуруФишкиИзМодуля = мир =>
- {
- var модуль = мир.модули.модульПоИмени(ИМЯ_МОДУЛЯ_РЕСУРСОВ);
- var ресурс = "/текстура.png";
- var содержимое = модуль.содержимое[ресурс];
- var b64 = base64js.fromByteArray(new Uint8Array(содержимое));
- var адрес = `data:image/png;base64,${b64}`;
- мир.загрузчикТекстур.load(
- адрес,
- function(текстура) {
- мир.текстураФишки = текстура;
- мир.уведомить("загрузили текстуру фишки из модуля");
- },
- null,
- function(error) {
- console.error("ОШИБКА | ERROR", error);
- }
- );
- };
-
-
- // // // //
-
-
- СоздатьЗагрузчикТекстур = мир =>
- {
- мир.загрузчикТекстур = new THREE.TextureLoader();
- };
-
-
- // // // //
-
-
- ЗагрузитьМодельФишки = мир =>
- {
- var модуль = мир.модули.модульПоИмени(ИМЯ_МОДУЛЯ_РЕСУРСОВ);
- var ресурс = "/фишка.gltf";
- var адрес = `${window.location.origin}${ресурс}`;
- THREE.Cache.add(адрес, модуль.содержимое[ресурс]);
- мир.загрузчикGLTF.load(
- адрес,
- function(gltf) {
- мир.модельФишки = gltf.scene;
- мир.уведомить("загрузили модель фишки");
- },
- null,
- function(error) {
- console.error("ОШИБКА | ERROR", error);
- }
- );
- };
-
-
- // // // //
-
-
- СоздатьЗагрузчикGLTF = мир =>
- {
- мир.загрузчикGLTF = new THREE.GLTFLoader();
- };
-
|