mirror of
https://github.com/RDCN-Community-Developers/rdkt.git
synced 2026-09-04 17:25:33 +08:00
Added PulseCameraEvent.
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package cn.rdlevel.rdkt.core.events
|
||||
|
||||
|
||||
import cn.rdlevel.rdkt.core.data.ROOM1
|
||||
import cn.rdlevel.rdkt.core.data.RoomsOrTopLayer
|
||||
import cn.rdlevel.rdkt.core.data.roomsOf
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
/**
|
||||
* Pulses the camera by zooming in and out.
|
||||
*/
|
||||
@Serializable
|
||||
@SerialName("PulseCamera")
|
||||
public class PulseCameraEvent() : ActionEvent(), MutableRoomsOrTopLayerSpecificEvent {
|
||||
/**
|
||||
* The zoom strength of the pulse. Must between 0 and 2.
|
||||
*/
|
||||
public var strength: Int = 1
|
||||
set(value) {
|
||||
require(value in 0..2) { "strength must be in range 0..2" }
|
||||
field = value
|
||||
}
|
||||
|
||||
/**
|
||||
* The number of pulses. Must be non-negative.
|
||||
*/
|
||||
public var count: Int = 1
|
||||
set(value) {
|
||||
require(value >= 0) { "count must be non-negative" }
|
||||
field = value
|
||||
}
|
||||
|
||||
/**
|
||||
* The delay between each pulse in beats. Must be non-negative.
|
||||
*/
|
||||
public var frequency: Double = 1.0
|
||||
set(value) {
|
||||
require(value >= 0) { "frequency must be non-negative" }
|
||||
field = value
|
||||
}
|
||||
|
||||
override var rooms: RoomsOrTopLayer = roomsOf(ROOM1)
|
||||
|
||||
/**
|
||||
* Creates a new [PulseCameraEvent] with the specified parameters.
|
||||
*/
|
||||
public constructor(
|
||||
strength: Int = 1,
|
||||
count: Int = 1,
|
||||
frequency: Double = 1.0,
|
||||
rooms: RoomsOrTopLayer = roomsOf(ROOM1),
|
||||
) : this() {
|
||||
this.strength = strength
|
||||
this.count = count
|
||||
this.frequency = frequency
|
||||
this.rooms = rooms
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user