\r
Lever* lever = new Lever(translate(vec3(0.f, .4f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "model_duck_2D.png");\r
current_world->addObject(lever);\r
- lever->startanimation((uint)0, 0.0f);\r
+ lever->startanimation((uint)0, 1.0f);\r
lever->setAnimationLoop(false);\r
lever->timeresistant = true;\r
lever->setup(door);\r
#include "Lever.h"
+#include "Scene.h"
Lever::Lever(const mat4& _modelMat, const vec4& _material, string _modelpath, string texturepath) : SceneObject(_modelMat, _material, _modelpath, texturepath)
{
recipient = object;
}
-void Lever::trigger(bool state)
+void Lever::trigger()
{
- if (turned != state)
+ turned = !turned;
+
+ mainScene->addEvent(this, 2);
+
+ if (turned)
+ {
+ this->startanimation((uint)0, 1.0f);
+ recipient->startanimation((uint)0, 1.0f);
+ }
+ else
{
- turned = state;
- //TODO add event
- if (state)
- {
- this->startanimation((uint) 0, 1.0f);
- recipient->startanimation((uint) 0, 1.0f);
- }
- else
- {
- this->startanimation((uint)0, -1.0f);
- recipient->startanimation((uint)0, -1.0f);
- }
+ this->startanimation((uint)0, -1.0f);
+ recipient->startanimation((uint)0, -1.0f);
}
+}
+
+void Lever::reverseTrigger()
+{
+ turned = !turned;
}
\ No newline at end of file
Lever(const mat4& modelMat, const vec4& material, Model* model, string texturepath);
~Lever();
void setup(SceneObject* object);
- void trigger(bool state);
+ void trigger();
+ void reverseTrigger();
protected:
SceneObject* recipient;
{
AnimationTime = 0;
animationSpeed = 0;
- //TODO add event
+
+ mainScene->addEvent(this, 1);
}
}
while (AnimationTime >= model->animationduration)
{
AnimationTime = model->animationduration - 0.01f;
animationSpeed = 0;
- //TODO add event
+
+ mainScene->addEvent(this, 0);
}
}
}