sonolus.script.globals¶
level_data(cls: type[T]) -> T
¶
Define level data.
Level data may only be modified during preprocess.
Compared to level memory, it enables some optimizations during gameplay, so it's recommended to use it
if mutation is only needed during preprocessing.
Usage
@level_data
class LevelData:
variable: int
variable = level_data(Array[int, 10])
def f():
LevelData.variable = 1
variable[0] = 2
level_memory(cls: type[T]) -> T
¶
Define level memory.
Level memory may be modified during gameplay in sequential callbacks
(preprocess,
update_sequential,
touch).
Compared to level data, it allows modification during gameplay, but prevents some optimizations.
Usage
@level_memory
class LevelMemory:
variable: int
variable = level_memory(Array[int, 10])
def f():
LevelMemory.variable = 1
variable[0] = 2