Files
mir-murom/апи/2019-08-15.js

190 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Уведомитель.
var Уведомитель = Reporter;
Reporter.prototype.уведомить = function()
{
this.report();
}
Reporter.prototype.подписать = function(функция)
{
this.subscribe(функция);
}
// Подписать сразу несколько функций за один вызов.
Reporter.prototype.подписатьМного = function(funcs)
{
this.subscribeMany(funcs);
}
var муром = {};
// Камера.
муром.камера = {};
Object.defineProperty(муром.камера, "цветОчистки", {
get: function()
{
return murom.camera.clearColor;
},
set: function(values)
{
murom.camera.clearColor = values;
}
});
Object.defineProperty(муром.камера, "позиция", {
get: function()
{
return murom.camera.position;
},
set: function(values)
{
murom.camera.position = values;
}
});
Object.defineProperty(муром.камера, "вращение", {
get: function()
{
return murom.camera.rotation;
},
set: function(values)
{
murom.camera.rotation = values;
}
});
муром.камера.узелВПозиции = function(позиция, маска)
{
return murom.camera.nodeAtPosition(позиция, маска);
}
// Мышь.
муром.мышь = {};
Object.defineProperty(муром.мышь, "нажатыеКнопки", {
get: function()
{
return murom.mouse.pressedButtons;
}
});
Object.defineProperty(муром.мышь, "позиция", {
get: function()
{
return murom.mouse.position;
}
});
муром.мышь.позицияИзменилась = new Уведомитель();
murom.mouse.positionChanged.subscribe(function(){
муром.мышь.позицияИзменилась.уведомить();
});
муром.мышь.нажатыеКнопкиИзменились = new Уведомитель();
murom.mouse.pressedButtonsChanged.subscribe(function(){
муром.мышь.нажатыеКнопкиИзменились.уведомить();
});
// Узел.
Object.defineProperty(Node.prototype, "имя", {
get: function()
{
return this.name;
}
});
Object.defineProperty(Node.prototype, "позиция", {
get: function()
{
return this.position;
},
set: function(values)
{
this.position = values;
}
});
Object.defineProperty(Node.prototype, "вращение", {
get: function()
{
return this.rotation;
},
set: function(values)
{
this.rotation = values;
}
});
Node.prototype.добавитьДитя = function(дитя)
{
this.addChild(дитя);
}
Node.prototype.задатьМаску = function(маска)
{
this.setMask(маска);
}
Node.prototype.задатьМатериал = function(материал)
{
this.setMaterial(материал);
}
// Узлы.
муром.узлы = {};
муром.узлы.узел = function(имя)
{
return murom.nodes.node(имя);
}
муром.узлы.создатьСферу = function(имя, радиус)
{
return murom.nodes.createSphere(имя, радиус);
}
муром.узлы.создатьУзел = function(имя, модель)
{
return murom.nodes.createNode(имя, модель);
}
// Материал.
Material.prototype.задатьШейдеры = function(вершинный, фрагментный)
{
this.setShaders(вершинный, фрагментный);
}
Material.prototype.задатьЮниформ = function(имя, значение)
{
this.setUniform(имя, значение)
}
Material.prototype.задатьТекстуру = function(имяЮниформа, текстура)
{
this.setTexture(имяЮниформа, текстура)
}
// Материалы.
муром.материалы = {};
муром.материалы.создатьМатериал = function(имя)
{
return murom.materials.createMaterial(имя);
}
// Ресурс.
Object.defineProperty(Resource.prototype, "имя", {
get: function()
{
return this.name;
}
});
Object.defineProperty(Resource.prototype, "содержимое", {
get: function()
{
return this.contents;
}
});
// Ресурсы.
муром.ресурсы = {};
муром.ресурсы.получить = function(ресурсы, отклик)
{
murom.resources.get(ресурсы, отклик);
}
муром.ресурсы.ресурс = function(имя)
{
return murom.resources.resource(имя);
}