UNPKG

dazscript-framework

Version:

The **DazScript Framework** is a TypeScript-based framework for writing Daz Studio scripts. It provides all the advantages of a typed language such as autocompletion, error checking, and method parameter documentation and hinting. The framework also inclu

53 lines (45 loc) 1.92 kB
import { sceneHelper } from '@dsf/core/global' /** * Sets the DzPropertyGroup path (and appropriate geometryregion_dz) for the given property. * @param property The property to change the path of. * @param path The new path for the given property. */ export const setPath = (property: DzProperty, path: string) => { sceneHelper.setPropertyPath(property, path) } /** * Get the internal name of property (or its alias target), or “Unknown”. * @param property * @returns The internal name of property (or its alias target), or “Unknown”. */ export const getName = (property: DzProperty): string => { return sceneHelper.getInternalName(property).valueOf() } /** * Unlocks a property temporarily and executes the specified callback while it's unlocked * @param property the property to unlock * @param then the callback to exectue while the property is unlocked */ export const unlock = (property: DzProperty, then: (property: DzProperty) => void) => { let locked = property.isLocked() if (locked) property.lock(true) then(property) if (locked) property.lock(false) } export const isNumeric = (property: DzProperty): boolean => { return property.inherits('DzNumericProperty') } export const cast = <T extends DzProperty>(property: DzProperty, type: 'DzNumericProperty' | 'DzFloatProperty' | 'DzIntProperty'): T | null => { return property.inherits(type) ? property as T : null } export const toNumeric = (property: DzProperty): DzFloatProperty | DzIntProperty | null => { return toFloat(property) ?? toInt(property) } export const toFloat = (property: DzProperty): DzFloatProperty | null => { return cast<DzFloatProperty>(property, 'DzFloatProperty') } export const toInt = (property: DzProperty): DzIntProperty | null => { return cast<DzIntProperty>(property, 'DzIntProperty') }