mirror of
https://github.com/overte-org/overte.git
synced 2025-06-19 22:41:54 +02:00
41 lines
No EOL
1.7 KiB
JavaScript
41 lines
No EOL
1.7 KiB
JavaScript
//Superclass
|
|
Script.include("animatedBrush.js");
|
|
|
|
function AnimatedTranslationBrushClass(settings, entityID) {
|
|
AnimatedBrush.call(this);
|
|
this.startingPosition = null;
|
|
this.translation = 0;
|
|
this.activeAxis = settings.axis;
|
|
}
|
|
|
|
AnimatedTranslationBrushClass.prototype.constructor = AnimatedTranslationBrushClass;
|
|
AnimatedTranslationBrushClass.prototype.parent = AnimatedBrush.prototype;
|
|
|
|
AnimatedTranslationBrushClass.prototype.ANIMATED_BRUSH_TIME = 10; //inteval in milliseconds to update the brush width;
|
|
AnimatedTranslationBrushClass.prototype.ANIMATED_BRUSH_INCREMENT = 0.005; //linear increment of brush size;
|
|
AnimatedTranslationBrushClass.prototype.MAX_TRANSLATION = 2;
|
|
AnimatedTranslationBrushClass.prototype.NAME = "animatedTranslationBrush"; //linear increment of brush size;
|
|
|
|
AnimatedTranslationBrushClass.prototype.onUpdate = function(deltaSeconds, entityID) {
|
|
var currentPosition = Entities.getEntityProperties(entityID).position;
|
|
if (this.startingPosition == null) {
|
|
this.startingPosition = currentPosition;
|
|
}
|
|
this.translation = this.translation + ((deltaSeconds * this.ANIMATED_BRUSH_INCREMENT)/this.ANIMATED_BRUSH_TIME);
|
|
|
|
var translationVec = Vec3.multiply(this.translation, this.activeAxis);
|
|
var nextPosition = {
|
|
x: this.startingPosition.x + translationVec.x,
|
|
y: this.startingPosition.y + translationVec.y,
|
|
z: this.startingPosition.z + translationVec.z
|
|
};
|
|
|
|
if (Vec3.distance(nextPosition, this.startingPosition) > this.MAX_TRANSLATION) {
|
|
this.translation = 0;
|
|
nextPosition = this.startingPosition;
|
|
}
|
|
Entities.editEntity(entityID, {position : nextPosition});
|
|
this.parent.updateUserData(entityID, this);
|
|
}
|
|
|
|
AnimatedTranslationBrush = AnimatedTranslationBrushClass; |