| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- go.property("start_position", vmath.vector3())
- go.property("end_position", vmath.vector3())
- go.property("start_rotation", vmath.vector3())
- go.property("end_rotation", vmath.vector3())
- go.property("start_scale", vmath.vector3(1, 1, 1))
- go.property("end_scale", vmath.vector3(1, 1, 1))
- go.property("duration", 2)
- local function should_animate_position(self)
- return self.start_position ~= self.end_position
- end
- local function should_animate_rotation(self)
- return self.start_rotation ~= self.end_rotation
- end
- local function should_animate_scale(self)
- return self.start_scale ~= self.end_scale
- end
- local function reset_position_rotation_scale(self)
- if should_animate_position(self) then
- go.set_position(self.start_position)
- end
- if should_animate_rotation(self) then
- go.set(".", "euler", self.start_rotation)
- end
- if should_animate_scale(self) then
- go.set_scale(self.start_scale)
- end
- end
- local function animate(self)
- reset_position_rotation_scale(self)
- if should_animate_position(self) then
- go.animate(".", "position", go.PLAYBACK_LOOP_PINGPONG, self.end_position, self.easing, self.duration)
- end
- if should_animate_rotation(self) then
- go.animate(".", "euler", go.PLAYBACK_LOOP_PINGPONG, self.end_rotation, self.easing, self.duration)
- end
- if should_animate_scale(self) then
- go.animate(".", "scale", go.PLAYBACK_LOOP_PINGPONG, self.end_scale, self.easing, self.duration)
- end
- end
- function on_message(self, message_id, message, sender)
- if message_id == hash("restart") then
- self.easing = message.easing
- animate(self)
- end
- end
|