Files
rive-ios/Source/Utils/RiveStateMachineInstance+Extensions.swift
2025-08-27 14:55:10 +00:00

46 lines
1.2 KiB
Swift

//
// RiveStateMachineInstance+Extensions.swift
// RiveRuntime
//
// Created by Zachary Duncan on 5/13/22.
// Copyright © 2022 Rive. All rights reserved.
//
import Foundation
extension RiveStateMachineInstance {
@objc public var inputs: [StateMachineInput] {
var inputs: [StateMachineInput] = []
for i in 0 ..< inputCount() {
let input = try! input(from: i)
var type: StateMachineInputType = .boolean
if input.isTrigger() {
type = .trigger
} else if input.isNumber() {
type = .number
}
inputs.append(StateMachineInput(name: input.name(), type: type))
}
return inputs
}
}
/// State machine input types
@objc public enum StateMachineInputType: IntegerLiteralType {
case trigger, number, boolean
}
/// Simple data type for passing state machine input names and their types
@objc public class StateMachineInput: NSObject {
public let name: String
public let type: StateMachineInputType
init(name: String, type: StateMachineInputType) {
self.name = name
self.type = type
}
}