An interactable object that can be pushed by a ControllableChar.

Hierarchy (view full)

Constructors

Properties

Accessors

Methods

Constructors

  • Parameters

    • game: any
    • data: any
    • key_name: any
    • map_index: any
    • x: any
    • y: any
    • storage_keys: any
    • allowed_tiles: any
    • base_collision_layer: any
    • not_allowed_tiles: any
    • object_drop_tiles: any
    • anchor_x: any
    • anchor_y: any
    • scale_x: any
    • scale_y: any
    • block_climb_collision_layer_shift: any
    • events_info: any
    • enable: any
    • entangled_by_bush: any
    • toggle_enable_events: any
    • label: any
    • allow_jumping_over_it: any
    • allow_jumping_through_it: any
    • psynergies_info: any
    • has_shadow: any
    • animation: any
    • action: any
    • snapshot_info: any
    • affected_by_reveal: any
    • active: any
    • visible: any

    Returns Pushable

Properties

_after_push_events: GameEvent[]
_breakable: boolean
_docked: boolean
_extra_sprites: (Sprite | Group | Graphics)[]
_is_rope_dock: boolean
_pushable: boolean
_rollable: boolean
_whirlwind_source: boolean
allow_jumping_over_it: boolean
allow_jumping_through_it: boolean
anchor_x: number
anchor_y: number
data: GoldenSun
dock_tile_position: {
    collision_layer: number;
    x: number;
    y: number;
}

Type declaration

  • collision_layer: number
  • x: number
  • y: number
game: Game
scale_x: number
scale_y: number
sprite: Sprite
storage_keys: {
    action?: string;
    active?: string;
    affected_by_reveal?: string;
    anchor?: string;
    animation?: string;
    base_collision_layer?: string;
    enable?: string;
    entangled_by_bush?: string;
    position?: string;
    position_px?: string;
    scale?: string;
    visible?: string;
}

Type declaration

  • Optional action?: string
  • Optional active?: string
  • Optional affected_by_reveal?: string
  • Optional anchor?: string
  • Optional animation?: string
  • Optional base_collision_layer?: string
  • Optional enable?: string
  • Optional entangled_by_bush?: string
  • Optional position?: string
  • Optional position_px?: string
  • Optional scale?: string
  • Optional visible?: string
DUST_ANIM_KEY: "spread" = "spread"
DUST_COUNT: 7 = 7
DUST_KEY: "dust" = "dust"
DUST_RADIUS: 18 = 18
PILLAR_IN_THE_WATER_ANCHOR_Y: 1.1 = 1.1
PUSH_SHIFT: 16 = 16

Accessors

  • get active_filters(): {
        alpha_gray: boolean;
        color_blend: boolean;
        colorize: boolean;
        flame: boolean;
        glow: boolean;
        gray: boolean;
        hue: boolean;
        levels: boolean;
        mode7: boolean;
        outline: boolean;
        pixel_shift: boolean;
        tint: boolean;
        watery: boolean;
    }
  • An object containing which filters are active in this IO.

    Returns {
        alpha_gray: boolean;
        color_blend: boolean;
        colorize: boolean;
        flame: boolean;
        glow: boolean;
        gray: boolean;
        hue: boolean;
        levels: boolean;
        mode7: boolean;
        outline: boolean;
        pixel_shift: boolean;
        tint: boolean;
        watery: boolean;
    }

    • alpha_gray: boolean
    • color_blend: boolean
    • colorize: boolean
    • flame: boolean
    • glow: boolean
    • gray: boolean
    • hue: boolean
    • levels: boolean
    • mode7: boolean
    • outline: boolean
    • pixel_shift: boolean
    • tint: boolean
    • watery: boolean
  • get after_psynergy_cast_events(): {
        [psynergy_key: string]: GameEvent[];
    }
  • Object that contains lists of Game Events to fired per psynergy after it finishes. Psynergy is the key, the list of events is the value of this object.

    Returns {
        [psynergy_key: string]: GameEvent[];
    }

  • get before_psynergy_cast_events(): {
        [psynergy_key: string]: GameEvent[];
    }
  • Object that contains lists of Game Events to fired per psynergy before it starts. Psynergy is the key, the list of events is the value of this object.

    Returns {
        [psynergy_key: string]: GameEvent[];
    }

  • get object_drop_tiles(): {
        animation_duration: number;
        dest_x: number;
        dest_y: number;
        destination_collision_layer: number;
        dust_animation: boolean;
        water_animation: boolean;
        x: number;
        y: number;
    }[]
  • Returns {
        animation_duration: number;
        dest_x: number;
        dest_y: number;
        destination_collision_layer: number;
        dust_animation: boolean;
        water_animation: boolean;
        x: number;
        y: number;
    }[]

  • get psynergy_casted(): {
        [field_psynergy_key: string]: boolean;
    }
  • Returns {
        [field_psynergy_key: string]: boolean;
    }

    • [field_psynergy_key: string]: boolean
  • get snapshot_info(): {
        action: string;
        active: boolean;
        active_filters: {
            alpha_gray: boolean;
            color_blend: boolean;
            colorize: boolean;
            flame: boolean;
            glow: boolean;
            gray: boolean;
            hue: boolean;
            levels: boolean;
            mode7: boolean;
            outline: boolean;
            pixel_shift: boolean;
            tint: boolean;
            watery: boolean;
        };
        allow_jumping_over_it: boolean;
        allow_jumping_through_it: boolean;
        anchor: {
            x: number;
            y: number;
        };
        anim_is_playing: boolean;
        animation: string;
        base_collision_layer: number;
        body_in_map: boolean;
        enable: boolean;
        entangled_by_bush: boolean;
        filter_settings?: FilterSettings;
        frame: string;
        index: number;
        key_name: string;
        position: {
            x: number;
            x_px: number;
            y: number;
            y_px: number;
        };
        psynergy_casted: {
            [field_psynergy_key: string]: boolean;
        };
        scale: {
            x: number;
            y: number;
        };
        send_to_back: boolean;
        send_to_front: boolean;
        shadow: {
            x: number;
            y: number;
        };
        shapes_collision_active: boolean;
        state_by_type: {
            breakable?: {
                one_level_broken: boolean;
                two_level_broken: boolean;
            };
            pushable?: {
                docked: boolean;
            };
            rollable?: {
                pillar_is_stuck: boolean;
            };
            rope_dock?: {
                tied: boolean;
            };
        };
        type: {
            breakable: boolean;
            is_rope_dock: boolean;
            rollable: boolean;
        };
        visible: boolean;
    }
  • Returns {
        action: string;
        active: boolean;
        active_filters: {
            alpha_gray: boolean;
            color_blend: boolean;
            colorize: boolean;
            flame: boolean;
            glow: boolean;
            gray: boolean;
            hue: boolean;
            levels: boolean;
            mode7: boolean;
            outline: boolean;
            pixel_shift: boolean;
            tint: boolean;
            watery: boolean;
        };
        allow_jumping_over_it: boolean;
        allow_jumping_through_it: boolean;
        anchor: {
            x: number;
            y: number;
        };
        anim_is_playing: boolean;
        animation: string;
        base_collision_layer: number;
        body_in_map: boolean;
        enable: boolean;
        entangled_by_bush: boolean;
        filter_settings?: FilterSettings;
        frame: string;
        index: number;
        key_name: string;
        position: {
            x: number;
            x_px: number;
            y: number;
            y_px: number;
        };
        psynergy_casted: {
            [field_psynergy_key: string]: boolean;
        };
        scale: {
            x: number;
            y: number;
        };
        send_to_back: boolean;
        send_to_front: boolean;
        shadow: {
            x: number;
            y: number;
        };
        shapes_collision_active: boolean;
        state_by_type: {
            breakable?: {
                one_level_broken: boolean;
                two_level_broken: boolean;
            };
            pushable?: {
                docked: boolean;
            };
            rollable?: {
                pillar_is_stuck: boolean;
            };
            rope_dock?: {
                tied: boolean;
            };
        };
        type: {
            breakable: boolean;
            is_rope_dock: boolean;
            rollable: boolean;
        };
        visible: boolean;
    }

    • action: string
    • active: boolean
    • active_filters: {
          alpha_gray: boolean;
          color_blend: boolean;
          colorize: boolean;
          flame: boolean;
          glow: boolean;
          gray: boolean;
          hue: boolean;
          levels: boolean;
          mode7: boolean;
          outline: boolean;
          pixel_shift: boolean;
          tint: boolean;
          watery: boolean;
      }
      • alpha_gray: boolean
      • color_blend: boolean
      • colorize: boolean
      • flame: boolean
      • glow: boolean
      • gray: boolean
      • hue: boolean
      • levels: boolean
      • mode7: boolean
      • outline: boolean
      • pixel_shift: boolean
      • tint: boolean
      • watery: boolean
    • allow_jumping_over_it: boolean
    • allow_jumping_through_it: boolean
    • anchor: {
          x: number;
          y: number;
      }
      • x: number
      • y: number
    • anim_is_playing: boolean
    • animation: string
    • base_collision_layer: number
    • body_in_map: boolean
    • enable: boolean
    • entangled_by_bush: boolean
    • Optional filter_settings?: FilterSettings
    • frame: string
    • index: number
    • key_name: string
    • position: {
          x: number;
          x_px: number;
          y: number;
          y_px: number;
      }
      • x: number
      • x_px: number
      • y: number
      • y_px: number
    • psynergy_casted: {
          [field_psynergy_key: string]: boolean;
      }
      • [field_psynergy_key: string]: boolean
    • scale: {
          x: number;
          y: number;
      }
      • x: number
      • y: number
    • send_to_back: boolean
    • send_to_front: boolean
    • shadow: {
          x: number;
          y: number;
      }
      • x: number
      • y: number
    • shapes_collision_active: boolean
    • state_by_type: {
          breakable?: {
              one_level_broken: boolean;
              two_level_broken: boolean;
          };
          pushable?: {
              docked: boolean;
          };
          rollable?: {
              pillar_is_stuck: boolean;
          };
          rope_dock?: {
              tied: boolean;
          };
      }
      • Optional breakable?: {
            one_level_broken: boolean;
            two_level_broken: boolean;
        }
        • one_level_broken: boolean
        • two_level_broken: boolean
      • Optional pushable?: {
            docked: boolean;
        }
        • docked: boolean
      • Optional rollable?: {
            pillar_is_stuck: boolean;
        }
        • pillar_is_stuck: boolean
      • Optional rope_dock?: {
            tied: boolean;
        }
        • tied: boolean
    • type: {
          breakable: boolean;
          is_rope_dock: boolean;
          rollable: boolean;
      }
      • breakable: boolean
      • is_rope_dock: boolean
      • rollable: boolean
    • visible: boolean
  • get tile_pos(): {
        x: number;
        y: number;
    }
  • Gets the tile pos object for this interactable object.

    Returns {
        x: number;
        y: number;
    }

    • x: number
    • y: number

Methods

  • Checks if a given char is trying to push this interactable object, if it's trying, starts the push process.

    Parameters

    • char: ControllableChar

      the char that is trying to push this pushable interactable object.

    Returns boolean

    returns whether the char is trying to push or not.

  • Checks if a given char is trying to climb this interactable object, if it's trying, starts the climb process.

    Parameters

    • char: ControllableChar

      the char that is trying to climb this climbable interactable object.

    Returns boolean

    returns whether the char is trying to climb or not.

  • Starts the dust animation when this interactable object fall on the ground.

    Parameters

    • on_animation_end: (() => void)

      the animation end callback.

        • (): void
        • Returns void

    Returns void

  • The main push related method. This actually executes the push process.

    Parameters

    • char: ControllableChar

      the char that is pushing this controllable object.

    • Optional push_end: (() => void)

      after moving this interactable object callback.

        • (): void
        • Returns void

    • Optional before_move: ((x_shift, y_shift) => void)

      before moving this interactable object callback.

        • (x_shift, y_shift): void
        • Parameters

          • x_shift: number
          • y_shift: number

          Returns void

    • target_only: boolean = false

      if true, only this interactable object will move. False means physical move.

    • enable_physics_at_end: boolean = true

      whether you want to enable p2 physics at the end of the process or not.

    • Optional on_push_update: (() => void)

      the callback that is called while the push is happening.

        • (): void
        • Returns void

    Returns void

  • Parameters

    • map: Map
    • snapshot_info: {
          action: string;
          active: boolean;
          active_filters: {
              alpha_gray: boolean;
              color_blend: boolean;
              colorize: boolean;
              flame: boolean;
              glow: boolean;
              gray: boolean;
              hue: boolean;
              levels: boolean;
              mode7: boolean;
              outline: boolean;
              pixel_shift: boolean;
              tint: boolean;
              watery: boolean;
          };
          allow_jumping_over_it: boolean;
          allow_jumping_through_it: boolean;
          anchor: {
              x: number;
              y: number;
          };
          anim_is_playing: boolean;
          animation: string;
          base_collision_layer: number;
          body_in_map: boolean;
          enable: boolean;
          entangled_by_bush: boolean;
          filter_settings?: FilterSettings;
          frame: string;
          index: number;
          key_name: string;
          position: {
              x: number;
              x_px: number;
              y: number;
              y_px: number;
          };
          psynergy_casted: {
              [field_psynergy_key: string]: boolean;
          };
          scale: {
              x: number;
              y: number;
          };
          send_to_back: boolean;
          send_to_front: boolean;
          shadow: {
              x: number;
              y: number;
          };
          shapes_collision_active: boolean;
          state_by_type: {
              breakable?: {
                  one_level_broken: boolean;
                  two_level_broken: boolean;
              };
              pushable?: {
                  docked: boolean;
              };
              rollable?: {
                  pillar_is_stuck: boolean;
              };
              rope_dock?: {
                  tied: boolean;
              };
          };
          type: {
              breakable: boolean;
              is_rope_dock: boolean;
              rollable: boolean;
          };
          visible: boolean;
      }
      • action: string
      • active: boolean
      • active_filters: {
            alpha_gray: boolean;
            color_blend: boolean;
            colorize: boolean;
            flame: boolean;
            glow: boolean;
            gray: boolean;
            hue: boolean;
            levels: boolean;
            mode7: boolean;
            outline: boolean;
            pixel_shift: boolean;
            tint: boolean;
            watery: boolean;
        }
        • alpha_gray: boolean
        • color_blend: boolean
        • colorize: boolean
        • flame: boolean
        • glow: boolean
        • gray: boolean
        • hue: boolean
        • levels: boolean
        • mode7: boolean
        • outline: boolean
        • pixel_shift: boolean
        • tint: boolean
        • watery: boolean
      • allow_jumping_over_it: boolean
      • allow_jumping_through_it: boolean
      • anchor: {
            x: number;
            y: number;
        }
        • x: number
        • y: number
      • anim_is_playing: boolean
      • animation: string
      • base_collision_layer: number
      • body_in_map: boolean
      • enable: boolean
      • entangled_by_bush: boolean
      • Optional filter_settings?: FilterSettings
      • frame: string
      • index: number
      • key_name: string
      • position: {
            x: number;
            x_px: number;
            y: number;
            y_px: number;
        }
        • x: number
        • x_px: number
        • y: number
        • y_px: number
      • psynergy_casted: {
            [field_psynergy_key: string]: boolean;
        }
        • [field_psynergy_key: string]: boolean
      • scale: {
            x: number;
            y: number;
        }
        • x: number
        • y: number
      • send_to_back: boolean
      • send_to_front: boolean
      • shadow: {
            x: number;
            y: number;
        }
        • x: number
        • y: number
      • shapes_collision_active: boolean
      • state_by_type: {
            breakable?: {
                one_level_broken: boolean;
                two_level_broken: boolean;
            };
            pushable?: {
                docked: boolean;
            };
            rollable?: {
                pillar_is_stuck: boolean;
            };
            rope_dock?: {
                tied: boolean;
            };
        }
        • Optional breakable?: {
              one_level_broken: boolean;
              two_level_broken: boolean;
          }
          • one_level_broken: boolean
          • two_level_broken: boolean
        • Optional pushable?: {
              docked: boolean;
          }
          • docked: boolean
        • Optional rollable?: {
              pillar_is_stuck: boolean;
          }
          • pillar_is_stuck: boolean
        • Optional rope_dock?: {
              tied: boolean;
          }
          • tied: boolean
      • type: {
            breakable: boolean;
            is_rope_dock: boolean;
            rollable: boolean;
        }
        • breakable: boolean
        • is_rope_dock: boolean
        • rollable: boolean
      • visible: boolean

    Returns void

  • Initializes the pushable. Must be called just after instantiation.

    Parameters

    • dock_tile_position: {
          collision_layer: number;
          x: number;
          y: number;
      }

      object containing docking info.

      • collision_layer: number
      • x: number
      • y: number
    • after_push_events: any[]

      array of game events to be fired after push.

    Returns void

  • Initialize the shadow sprite of this IO.

    Parameters

    • group: Group

      the group where the shadow sprite is going to be inserted.

    • Optional options: {
          is_world_map?: boolean;
          key_name?: string;
          shadow_anchor_x?: number;
          shadow_anchor_y?: number;
      }

      options to be set like anchor values and whether it's a world map.

      • Optional is_world_map?: boolean
      • Optional key_name?: string
      • Optional shadow_anchor_x?: number
      • Optional shadow_anchor_y?: number

    Returns void

  • Shifts the related events of this interactable object.

    Parameters

    • event_shift_x: number

      the x shift amount.

    • event_shift_y: number

      the y shift amount.

    • Optional manipulate_collision: {
          prev_collision_layer: number;
      }
      • prev_collision_layer: number

    Returns void

  • Shift related events to this IO and also set according collision in tiles in the case of jump events.

    Parameters

    • event_shift_x: number

      the x shift tile value.

    • event_shift_y: number

      the y shift tile value.

    Returns void

  • Starts the push process in which only this interactable object move.

    Parameters

    • char: ControllableChar

      the char that is pushing this controllable object.

    • before_move: ((x_shift, y_shift) => void)

      before moving this interactable object callback.

        • (x_shift, y_shift): void
        • Parameters

          • x_shift: number
          • y_shift: number

          Returns void

    • push_end: (() => void)

      after moving this interactable object callback.

        • (): void
        • Returns void

    • enable_physics_at_end: boolean = true

      whether you want to enable p2 physics at the end of the process or not.

    • Optional on_push_update: (() => void)

      the callback that is called while the push is happening.

        • (): void
        • Returns void

    Returns void