class Modification: Object
__new(self: Object, ...: any)

The default constructor for the class. Subclasses should override this.

execute(
    self: Modification,
    attachable: SpectrumAttachable,
    editor: Editor
)

Executes the modification. Override this method in subclasses to define the behavior of the modification.

undo(self: Modification, attachable: SpectrumAttachable)

Undoes the modification. Override this method in subclasses to define how the modification is undone.

removeActor(self: Modification, level: any, actor: any)
removed: table
place(
    self: Modification,
    attachable: SpectrumAttachable,
    x: integer,
    y: integer,
    placeable: {entity: Entity, factory: fun(): Entity}
)
placeActor(
    self: Modification,
    attachable: SpectrumAttachable,
    x: integer,
    y: integer,
    placeable: {entity: Entity, factory: fun(): Entity}
)
placed: table
placeCell(
    self: Modification,
    attachable: SpectrumAttachable,
    x: integer,
    y: integer,
    placeable: {entity: Entity, factory: fun(): Entity}
)
replaced: SparseGrid

A sparse grid class that stores data using hashed coordinates. Similar to a SparseMap except here there is only one entry per grid coordinate. This is suitable for stuff like Cells.