Object

┗> Class

The base class of all objects in Kristal. \ When added to the stage, an object will be updated and rendered.


Constructor


Object(x: any, y: any, width: any, height: any)

Arguments:

x: any
y: any
width: any
height: any




Methods


Object.LAYER_SORT(a: any, b: any)

Arguments:

a: any
b: any

Returns:

1: boolean


Object._clearCache()

(Called internally) Clears all cached transforms, and force-stops caching.



Object:addChild(child: Object)

Adds the specified object as a child to this object, and adds it to a stage if it was not added to one previously.
Calls child:onAdd(self).

Arguments:

child: Object

The object to be added.

Returns:

child: Object

The object that was added.



Object:addFX(fx: DrawFX, id: string?)

Adds a DrawFX to the object.
DrawFX are classes that can apply visual effects to an object when drawing it.
Each effect will be applied in sequence, with effects of higher priority rendering later.

Arguments:

fx: DrawFX

The DrawFX instance to add to the object.

id: string?

An optional string ID that can be used to reference the DrawFX in other functions.

Returns:

fx: DrawFX

The DrawFX instance that was added to the object.



Object:applyScissor()

Called during drawing to apply cutouts.



Object:applyTransformTo(transform: any, floor_x: any, floor_y: any)

Arguments:

transform: any
floor_x: any
floor_y: any


Object:canDebugSelect()

(Override)
By default, returns self.debug_select.

Returns:

can_select: boolean

Whether the object can be selected by the Object Selection debug feature.





Object:canDeepCopyKey(key: any)

Arguments:

key: any

Returns:

1: boolean


Object:collidesWith(other: Collider|Object)

Whether the object is colliding with another object or collider.

Arguments:

other: Collider|Object

The object or collider to check collision with.

Returns:

collided: boolean

Whether the collision occurred or not.





Object:draw()

(Override) Called every frame by its parent during drawing if the object is visible.
By default, draws its children.



Object:drawChildren(min_layer: any, max_layer: any)

Arguments:

min_layer: any
max_layer: any


Object:drawSelf(no_children: any, dont_transform: any)

Arguments:

no_children: any
dont_transform: any


Object.endCache()

End caching the transforms of all objects (started with Object.startCache()).



Object:explode(x: number?, y: number?, dont_remove: boolean?, options: (table|"play_sound")?)

options:
    | "play_sound" -- Whether it should play the sound. (Defaults to true)

Arguments:

x: number?

The explosion's horizontal offset.

y: number?

The explosion's vertical offset.

dont_remove: boolean?

Whether the object should not be removed.

options: (table|"play_sound")?

Additional properties.

Returns:

1: Explosion|nil


Object:fadeOutAndRemove(time: number?)

Fades the object's alpha to 0 over time seconds, then removes it.

Arguments:

time: number?

The amount of time, in seconds, that the fade should take. (Defaults to 1 second)



Object:fadeOutSpeedAndRemove(speed: number?)

Fades the object's alpha to 0 at a speed of speed per frame, then removes it.

Arguments:

speed: number?

The amount that the object's alpha should approach the target value, per frame at 30FPS. (Defaults to 0.04)



Object:fadeTo(target: number, time: number?, callback: function?)

Fades the object's alpha to the specified value over time seconds.

Arguments:

target: number

The alpha value that the object's alpha should approach.

time: number?

The amount of time, in seconds, that the fade should take. (Defaults to 1 second)

callback: function?

A function that will be called when the alpha value is reached. Receives self as an argument.



Object:fadeToSpeed(target: number, speed: number?, callback: function?)

Fades the object's alpha to the specified value at a speed of speed per frame.

Arguments:

target: number

The alpha value that the object's alpha should approach.

speed: number?

The amount that the object's alpha should approach the target value, per frame at 30FPS. (Defaults to 0.04)

callback: function?

A function that will be called when the alpha value is reached. Receives self as an argument.



Object:fullDraw(no_children: any, dont_transform: any)

Arguments:

no_children: any
dont_transform: any




Object:getCameraOrigin()

Returns the camera origin of the object, simplifying to be a ratio relative to its width and height if its current camera origin is exact.

Returns:

x: number

The horizontal camera origin of the object.

y: number

The vertical camera origin of the object.



Object:getCameraOriginExact()

Returns the camera origin of the object, multiplying to give the exact pixels if its current camera origin is not exact.

Returns:

x: number

The horizontal camera origin of the object.

y: number

The vertical camera origin of the object.



Object:getColor()

Returns the values of the object's color and alpha values.

Returns:

r: number

The red value of the object's color.

g: number

The green value of the object's color.

b: number

The blue value of the object's color.

a: number

The alpha value of the object.



Object:getCutout()

Returns the object's cutout values.

Returns:

The: number|nil

cutout_left value of the object.

The: number|nil

cutout_top value of the object.

The: number|nil

cutout_right value of the object.

The: number|nil

cutout_bottom value of the object.



Object:getDebugInfo()

(Override)
By default, returns an empty table.

Returns:

info: table

A list of strings to display if the object is selected by the Object Selection debug feature.



Object:getDebugOptions(context: ContextMenu)

(Override) Defines options that can be used when selecting the object with the Object Selection debug feature.
By default, defines options that all objects use. To define an option, use context:addMenuItem(name: string, description: string, code: function), where:

  • name defines the name that appears in the menu.
  • description defines the text that appears when hovering over the option.
  • code is the function that will be called when selecting the option.

Arguments:

context: ContextMenu

The menu object containing the debug options that can be used.

Returns:

context: ContextMenu

The modified menu object.



Object:getDebugRectangle()

(Override) Returns a table defining the rectangle to use for selecting the object with the Object Selection debug feature.
By default, returns self.debug_rect, or a rectangle with the same width and height as the object if self.debug_rect is nil.

Returns:

rectangle: table

A table containing 4 number values, defining the x, y, width and height of the selection rectangle.



Object:getDirection()

Returns the object's physics.direction, or the object's rotation if physics.match_rotation is true.

Returns:

dir: number

The movement direction of the object.



Object:getDrawColor()

Returns the object's color and alpha.
If the object's inherit_color is true, the result is multiplied by its parent's color and alpha, to get the color it should draw at.

Returns:

r: number

The red value of the object's draw color.

g: number

The green value of the object's draw color.

b: number

The blue value of the object's draw color.

a: number

The object's draw alpha.



Object:getFX(id: string|Class|DrawFX)

Returns a DrawFX added to the object.

Arguments:

id: string|Class|DrawFX

A string referring to the ID of a DrawFX, the class type that a DrawFX includes, or a DrawFX instance.

Returns:

fx: DrawFX|nil

A DrawFX instance if the object has one that matches the ID, or nil otherwise.



Object:getFullScale()

Returns the object's scale, multiplied by its parent's full scale.

Returns:

x: number

The horizontal scale of the object.

y: number

The vertical scale of the object.





Object:getHierarchy()

@return hierarchy — A table of all parents between this object and its stage (inclusive).

Returns:

hierarchy: table

A table of all parents between this object and its stage (inclusive).



Object:getHitbox()

Returns the dimensions of the object's collider if that collider is a Hitbox.

Returns:

x: number|nil

The x position of the collider, relative to the object.

y: number|nil

The y position of the collider, relative to the object.

width: number|nil

The width of the collider, in pixels.

height: number|nil

The height of the collider, in pixels.



Object:getLayer()

Returns the layer of the object.

Returns:

The: number

layer value of the object.



Object:getOrigin()

Returns the origin of the object, simplifying to be a ratio relative to its width and height if its current origin is exact.

Returns:

x: number

The horizontal origin of the object.

y: number

The vertical origin of the object.



Object:getOriginExact()

Returns the origin of the object, multiplying to give the exact pixels if its current origin is not exact.

Returns:

x: number

The horizontal origin of the object.

y: number

The vertical origin of the object.



Object:getParallax()

Returns the parallax of the object.

Returns:

x: number

The parallax_x value of the object.

y: number

The parallax_y value of the object.



Object:getParallaxOrigin()

Returns the parallax origin of the object.

Returns:

x: number

The parallax_origin_x value of the object.

y: number

The parallax_origin_y value of the object.



Object:getPosition()

Returns the position of the object.

Returns:

x: number

The x position of the object.

y: number

The y position of the object.



Object:getRelativePos(x: number?, y: number?, other: Object?)

Returns the specified position for the object, relative to another object.

Arguments:

x: number?

The x position relative to the object.

y: number?

The y position relative to the object.

other: Object?

The object the returned values should be relative to.

Returns:

x: number

The new x position relative to the other object.

y: number

The new y position relative to the other object.



Object:getRelativePosFor(other: Object)

Returns the object's position, relative to another object.

Arguments:

other: Object

The object the returned values should be relative to.

Returns:

x: number

The new x position relative to the other object.

y: number

The new y position relative to the other object.



Object:getRotationOrigin()

Returns the rotation origin of the object, simplifying to be a ratio relative to its width and height if its current rotation origin is exact.
If the object doesn't have a rotation origin defined, it will return self:getOrigin() instead.

Returns:

x: number

The horizontal rotation origin of the object.

y: number

The vertical rotation origin of the object.



Object:getRotationOriginExact()

Returns the rotation origin of the object, multiplying to give the exact pixels if its current rotation origin is not exact.
If the object doesn't have a rotation origin defined, it will return self:getOriginExact() instead.

Returns:

x: number

The horizontal rotation origin of the object.

y: number

The vertical rotation origin of the object.



Object:getScale()

Returns the scale of the object.

Returns:

x: number

The scale_x value of the object.

y: number

The scale_y value of the object.



Object:getScaleOrigin()

Returns the scaling origin of the object, simplifying to be a ratio relative to its width and height if its current scaling origin is exact.
If the object doesn't have a scaling origin defined, it will return self:getOrigin() instead.

Returns:

x: number

The horizontal scaling origin of the object.

y: number

The vertical scaling origin of the object.



Object:getScaleOriginExact()

Returns the scaling origin of the object, multiplying to give the exact pixels if its current scaling origin is not exact.
If the object doesn't have a scaling origin defined, it will return self:getOriginExact() instead.

Returns:

x: number

The horizontal scaling origin of the object.

y: number

The vertical scaling origin of the object.



Object:getScaledHeight()

Returns the height of the object, accounting for scale.

Returns:

height: number

The height of the object multiplied by its scale_y.



Object:getScaledSize()

Returns the size of the object, accounting for scale.

Returns:

width: number

The width of the object multiplied by its scale_x.

height: number

The height of the object multiplied by its scale_y.



Object:getScaledWidth()

Returns the width of the object, accounting for scale.

Returns:

width: number

The width of the object multiplied by its scale_x.



Object:getScreenPos()

Returns the object's position relative to the topleft of the game window.

Returns:

x: number

The x position of the object.

y: number

The y position of the object.



Object:getSize()

Returns the size of the object.

Returns:

width: number

The width value of the object.

height: number

The height value of the object.



Object:getSortPosition()

(Override) Used by World to determine what position should be used when sorting its layer.
By default, returns self:getRelativePos(self.width/2, self.height).

Returns:

x: number

The horizontal position to use.

y: number

The vertical position to use.



Object:getSpeedDir()

Returns the velocity and direction of the object's physics, converting physics.speed_x and physics.speed_y if necessary.

Returns:

speed: number

The linear speed the object moves at.

direction: number

The direction the object is moving in.



Object:getSpeedXY()

Returns the horizontal and vertical speed of the object's physics, converting physics.speed and physics.direction if necessary

Returns:

speed_x: number

The horizontal speed of the object.

speed_y: number

The vertical speed of the object.



Object:getStage()

@return stage — The object's highest parent.

Returns:

stage: Object|nil

The object's highest parent.





Object:isCameraAttachable()

(Override)
By default, returns true.

Returns:

attached: boolean

Whether a Camera attached to this object should follow it.



Object:isFullyActive()

Returns whether the object and its parents are active, determining whether the object should be updated or not.

Returns:

active: boolean

Whether the object and its parents are active.



Object:isFullyVisible()

Returns whether the object and its parents are visible, determining whether the object should be drawn or not.

Returns:

visible: boolean

Whether the object and its parents are visible.



Object:isRemoved()

@return has_stage — Whether the object has a parent or not.

Returns:

has_stage: boolean

Whether the object has a parent or not.



Object:localToScreenPos(x: number?, y: number?)

Returns the specified position for the object, relative to the object's stage.

Arguments:

x: number?

The x position relative to the object.

y: number?

The y position relative to the object.

Returns:

x: number

The new x position relative to the object's stage.

y: number

The new y position relative to the object's stage.



Object:move(x: number, y: number, speed: number?)

Moves the object's x and y values by the specified values.

Arguments:

x: number

How much to add to the object's x value.

y: number

How much to add to the object's y value.

speed: number?

How much to multiply the x and y movement by. (Defaults to 1)



Object:onAdd(parent: Object)

(Override) Called when the object is added to a parent object via parent:addChild(self) or self:setParent(parent).

Arguments:

parent: Object

The parent that the object is being added to.



Object:onAddToStage(stage: Object)

(Override) Called when the object is first added to the Game stage, via parent:addChild(self) or self:setParent(parent).
Will not be called when changing to a new parent via self:setParent(new_parent) if the object had a parent prior.

Arguments:

stage: Object

The Stage object that the object is being added to.



Object:onClone(src: any)

Arguments:

src: any


Object:onRemove(parent: Object)

(Override) Called when the object is removed from its parent object via self:remove(), parent:removeChild(self), or self:setParent(new_parent).

Arguments:

parent: Object

The parent that the object is being removed from.



Object:onRemoveFromStage(stage: Object)

(Override) Called when the object is removed from the Game stage via self:remove() or parent:removeChild(self).
Will not be called when changing to a new parent via self:setParent(new_parent).

Arguments:

stage: Object

The Stage object that the object was a child of.





Object:preDraw(dont_transform: any)

Arguments:

dont_transform: any


Object:processDrawFX(canvas: any, transformed: any)

Arguments:

canvas: any
transformed: any

Returns:

1: love.Canvas|nil


Object:remove()

Removes the object from its parent.



Object:removeChild(child: Object)

Removes the specified object from this object's children, and removes it from its stage.
Calls child:onRemove(self).

Arguments:

child: Object

The object to be removed.

Returns:

child: Object

The object that was removed.



Object:removeFX(id: string|Class|DrawFX)

Removes the specified DrawFX from the object.

Arguments:

id: string|Class|DrawFX

A string referring to the ID of a DrawFX, the class type that a DrawFX includes, or a DrawFX instance.

Returns:

fx: DrawFX|nil

The removed DrawFX instance if the object has one that matches the ID, or nil otherwise.



Object:resetGraphics()

Resets all of the object's graphics table values to their default values,
making it so it will stop transforming if it was before.



Object:resetPhysics()

Resets all of the object's physics table values to their default values,
making it so it will stop moving if it was before.



Object:screenToLocalPos(x: number?, y: number?)

Returns the specified position for the object's stage, relative to this object.

Arguments:

x: number?

The x position relative to the object's stage.

y: number?

The y position relative to the object's stage.

Returns:

x: number

The new x position relative to the object.

y: number

The new y position relative to the object.



Object:setCameraOrigin(x: number, y: number?)

Sets the object's camera_origin_x and camera_origin_y values to the specified origin, and sets camera_origin_exact to false.
The camera origin set by this function will therefore be a ratio relative to the object's width and height.

Arguments:

x: number

The value to set camera_origin_x to.

y: number?

The value to set camera_origin_y to. (Defaults to the x parameter)



Object:setCameraOriginExact(x: number, y: number?)

Sets the object's camera_origin_x and camera_origin_y values to the specified origin, and sets camera_origin_exact to true.
The camera origin set by this function will therefore be in exact pixels.

Arguments:

x: number

The value to set camera_origin_x to.

y: number?

The value to set camera_origin_y to. (Defaults to the x parameter)



Object:setColor(r: number, g: number, b: number, a: number?)

Sets the object's color and alpha values to the specified color.

Arguments:

r: number

The red value to set for the object's color.

g: number

The green value to set for the object's color.

b: number

The blue value to set for the object's color.

a: number?

The value to set alpha to. (Doesn't change alpha if unspecified)



Object:setCutout(left: number|nil, top: number|nil, right: number|nil, bottom: number|nil)

Sets the object's cutout values to the specified cutout.

Arguments:

left: number|nil

The value to set cutout_left to.

top: number|nil

The value to set cutout_top to.

right: number|nil

The value to set cutout_right to.

bottom: number|nil

The value to set cutout_bottom to.



Object:setDirection(dir: number)

Sets the object's movement direction to the specified direction, or its rotation if physics.match_rotation is true.

Arguments:

dir: number

The value to set physics.direction or rotation to.



Object:setGraphics(graphics: graphics_table)

Resets the object's graphics and sets new values for it.

Arguments:

graphics: graphics_table

A table of values to set for the object's graphics transformation.



Object:setHitbox(x: number, y: number, w: number, h: number)

Sets the object's collider to a new Hitbox with the specified dimensions.

Arguments:

x: number

The x position of the collider, relative to the object.

y: number

The y position of the collider, relative to the object.

w: number

The width of the collider, in pixels.

h: number

The height of the collider, in pixels.



Object:setLayer(layer: number)

Sets the object's layer, and updates its position in its parent's children list.

Arguments:

layer: number

The value to set layer to.



Object:setOrigin(x: number, y: number?)

Sets the object's origin_x and origin_y values to the specified origin, and sets origin_exact to false.
The origin set by this function will therefore be a ratio relative to the object's width and height.

Arguments:

x: number

The value to set origin_x to.

y: number?

The value to set origin_y to. (Defaults to the x parameter)



Object:setOriginExact(x: number, y: number?)

Sets the object's origin_x and origin_y values to the specified origin, and sets origin_exact to true.
The origin set by this function will therefore be in exact pixels.

Arguments:

x: number

The value to set origin_x to.

y: number?

The value to set origin_y to. (Defaults to the x parameter)



Object:setParallax(x: number, y: number?)

Sets the object's parallax_x and parallax_y to the specified parallax.

Arguments:

x: number

The value to set parallax_x to.

y: number?

The value to set parallax_y to. (Defaults to the x parameter)



Object:setParallaxOrigin(x: number, y: number)

Sets the object's parallax_origin_x and parallax_origin_y values to the specified origin.

Arguments:

x: number

The value to set parallax_origin_x to.

y: number

The value to set parallax_origin_y to.



Object:setParent(parent: Object)

Sets the object's parent, removing it from its previous parent if it had one.

Arguments:

parent: Object

The object to add self to.



Object:setPhysics(physics: physics_table)

Resets the object's physics and sets new values for it.

Arguments:

physics: physics_table

A table of values to set for the object's physics.



Object:setPosition(x: number, y: number)

Sets the object's x and y values to the specified position.

Arguments:

x: number

The value to set x to.

y: number

The value to set y to.



Object:setRotationOrigin(x: number, y: number?)

Sets the object's rotation_origin_x and rotation_origin_y values to the specified origin, and sets rotation_origin_exact to false.
The rotation origin set by this function will therefore be a ratio relative to the object's width and height.

Arguments:

x: number

The value to set rotation_origin_x to.

y: number?

The value to set rotation_origin_y to. (Defaults to the x parameter)



Object:setRotationOriginExact(x: number, y: number?)

Sets the object's rotation_origin_x and rotation_origin_y values to the specified origin, and sets rotation_origin_exact to true.
The rotation origin set by this function will therefore be in exact pixels.

Arguments:

x: number

The value to set rotation_origin_x to.

y: number?

The value to set rotation_origin_y to. (Defaults to the x parameter)



Object:setScale(x: number, y: number?)

Sets the object's scale_x and scale_y values to the specified scale.

Arguments:

x: number

The value to set scale_x to.

y: number?

The value to set scale_y to. (Defaults to the x parameter)



Object:setScaleOrigin(x: number, y: number?)

Sets the object's scale_origin_x and scale_origin_y values to the specified origin, and sets scale_origin_exact to false.
The scaling origin set by this function will therefore be a ratio relative to the object's width and height.

Arguments:

x: number

The value to set scale_origin_x to.

y: number?

The value to set scale_origin_y to. (Defaults to the x parameter)



Object:setScaleOriginExact(x: number, y: number?)

Sets the object's scale_origin_x and scale_origin_y values to the specified origin, and sets scale_origin_exact to true.
The scaling origin set by this function will therefore be in exact pixels.

Arguments:

x: number

The value to set scale_origin_x to.

y: number?

The value to set scale_origin_y to. (Defaults to the x parameter)



Object:setScreenPos(x: number, y: number)

Sets the object's position relative to the topleft of the game window.

Arguments:

x: number

The x position for the object.

y: number

The y position for the object.



Object:setSize(width: number, height: number?)

Sets the object's width and height values to the specified size.

Arguments:

width: number

The value to set width to.

height: number?

The value to set height to. (Defaults to the width parameter)



Object:setSpeed(x: number, y: number)

Sets the object's speed in its physics table.

Arguments:

x: number

The value to set physics.speed_x to.

y: number

The value to set physics.speed_y to.



Object:shake(x: number?, y: number?, friction: number?, delay: number?)

Makes the object shake by the specified amount.

Arguments:

x: number?

The amount of shake in the x direction. (Defaults to 4)

y: number?

The amount of shake in the y direction. (Defaults to 0)

friction: number?

The amount that the shake should decrease by, per frame at 30FPS. (Defaults to 1)

delay: number?

The time it takes for the object to invert its shake direction, in seconds. (Defaults to 1/30)



Object:shiftOrigin(ox: number, oy: number?)

Sets the object's relative origin to the specified values, and adjusts its position so that it stays in the same place visually.

Arguments:

ox: number

The value to set origin_x to.

oy: number?

The value to set origin_y to. (Defaults to the ox parameter)



Object:shiftOriginExact(ox: number, oy: number?)

Sets the object's exact origin to the specified values, and adjusts its position so that it stays in the same place visually.

Arguments:

ox: number

The value to set origin_x to.

oy: number?

The value to set origin_y to. (Defaults to the ox parameter)





Object:slidePath(path: table, options: (table|"after"|"ease"|"loop"|"move_func"...(+6))?)

Moves the object along a path of points.

options:
    | "time" -- The amount of time, in seconds, that the object should take to travel along the full path.
    | "speed" -- The speed at which the object should travel along the path, in pixels per frame at 30FPS.
    | "ease" -- The ease type to use when travelling along the path. Unused if `speed` is specified instead of `time`. (Defaults to "linear")
    | "after" -- A function that will be called when the end of the path is reached. Receives no arguments.
    | "move_func" -- A function called every frame while the object is travelling along the path. Receives `self` and the `x` and `y` offset from the previous frame as arguments.
    | "relative" -- Whether the path should be relative to the object's current position, or simply set its position directly.
    | "loop" -- Whether the path should loop back to the first point when reaching the end, or if it should stop.
    | "reverse" -- If true, reverse all of the points on the path.
    | "skip" -- A number defining how many points of the path to skip.
    | "snap" -- Whether the object's position should immediately "snap" to the first point, or if its initial position should be counted as a point on the path.

Arguments:

path: table

A table containing a list of tables with two number values in each, defining a list of points the object should follow.

options: (table|"after"|"ease"|"loop"|"move_func"...(+6))?

A table defining additional properties that the path should use.



Object:slideTo(x: number, y: number, time: number?, ease: string?, after: function?)

Moves the object's x and y values to the new specified position over time seconds.

Arguments:

x: number

The new x value to approach.

y: number

The new y value to approach.

time: number?

The amount of time, in seconds, that the slide should take. (Defaults to 1 second)

ease: string?

The ease type to use when moving to the new position. (Defaults to "linear")

after: function?

A function that will be called when the target position is reached. Receives no arguments.

Returns:

success: boolean

Whether the sliding will occur. False if the object's current position is already at the specified position, and true otherwise.



Object:slideToSpeed(x: number, y: number, speed: number?, after: function?)

Moves the object's x and y values to the new specified position at a speed of speed pixels per frame.

Arguments:

x: number

The new x value to approach.

y: number

The new y value to approach.

speed: number?

The amount that the object's x and y should approach the specified position, in pixels per frame at 30FPS. (Defaults to 4)

after: function?

A function that will be called when the target position is reached. Receives no arguments.

Returns:

success: boolean

Whether the sliding will occur. False if the object's current position is already at the specified position, and true otherwise.





Object.startCache()

Begin caching the transforms of all objects.
This should be called before any collision checks, and ended with Object.endCache().
If an object is moved mid-cache, call Object.uncache() on it.



Object:stopShake()

Stops the object from shaking.



Object.uncache(obj: any)

Uncache an object's transform, if Object.startCache() is active.
This recalculates the object's transform and all of its children, incase it was moved.

Arguments:

obj: any


Object.uncacheFull(obj: any)

(Called internally) Uncaches an object's full transform, including all of its children.

Arguments:

obj: any


Object:update()

(Override) Called every frame by its parent if the object is active.
By default, updates its physics and graphics tables, and its children.












Fields


Object._dont_draw_children: boolean

(Used internally) Whether the object should draw its children or not.


Object.active: boolean

Whether the object should update itself and its children.


Object.alpha: number

The alpha transparency of the object, between 0 (invisible) and 1 (fully visible).


Object.camera: Camera|nil

A camera instance that will automatically move and scale the object and its children. Should be nil for most objects.


Object.camera_origin_exact: boolean

Whether the object's camera origin is measured as a ratio of its width and height, or in exact pixels. (Defaults to false)


Object.camera_origin_x: number

The horizontal camera origin of the object. (Defaults to 0.5)
Camera origin defines what position on the object a camera attached to it should follow.


Object.camera_origin_y: number

The vertical camera origin of the object. (Defaults to 0.5)
Camera origin defines what position on the object a camera attached to it should follow.


Object.children: table

A list of all of this object's children.


Object.children_to_remove: table

(Used internally) A list of children for the object to remove next time it updates.


Object.collidable: boolean

Whether the object should be able to collide with other objects.


Object.collider: Collider|nil

A Collider class used to check collision with other objects.


Object.color: table

The color of the object in the form {R, G, B}.
The values of R, G, and B are between 0 and 1.


Object.cutout_bottom: number|nil

The amount of pixels to cut from the bottom of the object when drawing.


Object.cutout_left: number|nil

The amount of pixels to cut from the left of the object when drawing.


Object.cutout_right: number|nil

The amount of pixels to cut from the right of the object when drawing.


Object.cutout_top: number|nil

The amount of pixels to cut from the top of the object when drawing.


Object.debug_rect: table|nil

Defines the rectangle used for selecting the object with the Object Selection debug feature.


Object.debug_select: boolean

Whether the object can be selected by the Object Selection debug feature. (Defaults to true)


Object.draw_children_above: number|nil

If defined, children with a layer greater than this value will be drawn above the object.


Object.draw_children_below: number|nil

If defined, children with a layer less than this value will be drawn underneath the object.


Object.draw_fx: table

A list of all DrawFX that are being applied to the object.


Object.flip_x: boolean

Whether the object is flipped horizontally.


Object.flip_y: boolean

Whether the object is flipped vertically.


Object.graphics: graphics_table

A table of data, defining ways the object's properties should automatically update.


Object.height: number

The height of the object.


Object.inherit_color: boolean

Whether the object's color will be multiplied by its parent's color.


Object.init_x: number

The horizontal position of the object when it was created.


Object.init_y: number

The vertical position of the object when it was created.


Object.last_x: number

The horizontal position of the object in the previous frame.


Object.last_y: number

The vertical position of the object in the previous frame.


Object.layer: number

The layer of the object within its parent.
Objects update and draw their children in order sorted by layer. Objects with a higher layer will update and draw later than objects with lower layers.

All children of an object will draw at the same visual layer as the parent. In other words, a child cannot render above an object that is higher than its parent, even if its own layer is higher.


Object.origin_exact: boolean

Whether the object's origin is measured as a ratio of its width and height, or in exact pixels. (Defaults to false)


Object.origin_x: number

The horizontal origin of the object.
Origin is used to define the point that the object is scaled, rotated, and positioned from.
This determines where the position (0, 0) is within the object.

If origin_exact is false, the origin will be a ratio relative to the object's width and height, meaning an origin of 0.5, 0.5 will cause the object to be centered.
If it is true, then the origin will be measured in exact pixels.


Object.origin_y: number

The vertical origin of the object.
Origin is used to define the point that the object is scaled, rotated, and positioned from.
This determines where the position (0, 0) is within the object.

If origin_exact is false, the origin will be a ratio relative to the object's width and height, meaning an origin of 0.5, 0.5 will cause the object to be centered.
If it is true, then the origin will be measured in exact pixels.


Object.parallax_origin_x: number

The horizontal position on the object's parent that the object's parallax will orient around.


Object.parallax_origin_y: number

The vertical position on the object's parent that the object's parallax will orient around.


Object.parallax_x: number|nil

How much an object's position will be affected by the camera horizontally.
A value of 1 means it fully moves with the camera (aka default behavior), and a value of 0 means it will not move at all when the camera moves.
Parallax will only affect an object if its parent has a camera.


Object.parallax_y: number|nil

How much an object's position will be affected by the camera vertically.
A value of 1 means it fully moves with the camera (aka default behavior), and a value of 0 means it will not move at all when the camera moves.
Parallax will only affect an object if its parent has a camera.


Object.parent: Object|nil

The object's parent.


Object.physics: physics_table

A table of data, defining ways the object should automatically move when updating.


Object.rotation: number

The rotation of the object, in radians. (0 is right, positive is clockwise)


Object.rotation_origin_exact: boolean

Whether the object's rotation origin is measured as a ratio of its width and height, or in exact pixels. (Defaults to false)


Object.rotation_origin_x: number|nil

The horizontal rotation origin of the object.
Rotation origin overrides the object's origin, and defines where the object will rotate from.


Object.rotation_origin_y: number|nil

The vertical rotation origin of the object.
Rotation origin overrides the object's origin, and defines where the object will rotate from.


Object.scale_origin_exact: boolean

Whether the object's scale origin is measured as a ratio of its width and height, or in exact pixels. (Defaults to false)


Object.scale_origin_x: number|nil

The horizontal scale origin of the object.
Scale origin overrides the object's origin, and defines where the object will scale from.


Object.scale_origin_y: number|nil

The vertical scale origin of the object.
Scale origin overrides the object's origin, and defines where the object will scale from.


Object.scale_x: number

The horizontal scale of the object.


Object.scale_y: number

The vertical scale of the object.


Object.timescale: number

A multiplier that determines the speed at which the object updates.


Object.update_child_list: boolean

(Used internally) If true, the object will re-sort its children list.


Object.visible: boolean

Whether the object should draw itself and its children.


Object.width: number

The width of the object.


Object.x: number

The horizontal position of the object, relative to its parent.


Object.y: number

The vertical position of the object, relative to its parent.



Undocumented