Skip to content

Instantly share code, notes, and snippets.

@PrincessOfEvil
Forked from Silverfeelin/animator.md
Created August 13, 2019 16:25
Show Gist options
  • Save PrincessOfEvil/a030b735a8442a25aa8bf803780c7527 to your computer and use it in GitHub Desktop.
Save PrincessOfEvil/a030b735a8442a25aa8bf803780c7527 to your computer and use it in GitHub Desktop.

Revisions

  1. @Silverfeelin Silverfeelin revised this gist Jun 13, 2019. 1 changed file with 16 additions and 0 deletions.
    16 changes: 16 additions & 0 deletions celestial.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,20 @@
    #### `void` celestial.flyShip(`Vec3I` system, `SystemLocation` destination) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Flies the player ship to the specified SystemLocation in the specified system.

    SystemLocation is either of the following types: Null, CelestialCoordinate, Object, Vec2F

    The locations are specified as a pair of type and value

    ```
    local system = celestial.currentSystem().location
    local location = nil -- Null
    location = {"coordinate", {location = system, planet = 1, satellite = 0}} -- CelestialCoordinate
    location = {"object", "11112222333344445555666677778888"} -- Object (UUID)
    location = {0.0, 0.0} -- Vec2F (position in space)
    celestial.flyShip(system, location)
    ```

    * Renamed from `celestial.skyFlying`.

    ---
    @@ -51,6 +66,7 @@ Returns the child orbits for the specified celestial coordinate.
    ---

    #### `List<CelestialCoordinate>` celestial.scanSystems(`RectI` region, [`Set<String>` includedTypes]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Returns a list of systems in the given region. If includedTypes is specified, this will return only systems whose typeName parameter is included in the set. This scans for systems asynchronously, meaning it may not return all systems if they have not been generated or sent to the client. Use `scanRegionFullyLoaded` to see if this is the case.

    * New parameter `includedTypes`.
  2. @Silverfeelin Silverfeelin revised this gist Jun 13, 2019. 6 changed files with 34 additions and 30 deletions.
    26 changes: 14 additions & 12 deletions player.md
    Original file line number Diff line number Diff line change
    @@ -1,67 +1,69 @@
    #### `Json` player.getProperty(`String` name, `Json` default)
    #### `Json` player.getProperty(`String` name, `Json` default) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the value assigned to the specified generic player property. If there is no value set, returns default.

    ---

    #### `void` player.setProperty(`String` name, `Json` value)
    #### `void` player.setProperty(`String` name, `Json` value) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Sets a generic player property to the specified value.

    #### `void` player.addScannedObject(`String` name)
    ---

    #### `void` player.addScannedObject(`String` name) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Adds the specified object to the player's scanned objects.

    ---

    #### `void` player.removeScannedObject(`String` name)
    #### `void` player.removeScannedObject(`String` name) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Removes the specified object from the player's scanned objects.

    ---

    #### `bool` player.hasAcceptedQuest(`String` questId)
    #### `bool` player.hasAcceptedQuest(`String` questId) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns `true` if the player has accepted a quest (which may be active, completed, or failed) with the specified quest id and `false` otherwise.

    ---

    #### `bool` player.hasActiveQuest(`String` questId)
    #### `bool` player.hasActiveQuest(`String` questId) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns `true` if the player has a currently active quest with the specified quest id and `false` otherwise.

    ---

    #### `Maybe<WorldId>` player.currentQuestWorld()
    #### `Maybe<WorldId>` player.currentQuestWorld() <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    If the player's currently tracked quest has an associated world, returns the id of that world.

    ---

    #### `List<pair<WorldId, bool>>` player.questWorlds()
    #### `List<pair<WorldId, bool>>` player.questWorlds() <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns a list of world ids for worlds relevant to the player's current quests, along with a boolean indicating whether that quest is tracked.

    ---

    #### `Maybe<Json>` player.currentQuestLocation()
    #### `Maybe<Json>` player.currentQuestLocation() <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    If the player's currently tracked quest has an associated location (CelestialCoordinate, system orbit, UUID, or system position) returns that location.

    ---

    #### `List<pair<Json, bool>>` player.questWorlds()
    #### `List<pair<Json, bool>>` player.questWorlds() <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns a list of locations for worlds relevant to the player's current quests, along with a boolean indicating whether that quest is tracked.

    ---

    #### `void` player.hasCompletedMission(`String` missionName)
    #### `void` player.hasCompletedMission(`String` missionName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns whether the player has completed the specified mission.

    ---

    #### `List<Json>` player.teleportBookmarks()
    #### `List<Json>` player.teleportBookmarks() <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Lists all of the player's teleport bookmarks.
    6 changes: 4 additions & 2 deletions root.md
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,12 @@
    #### `Json` root.monsterParameters(`String` monsterType, [uint64_t seed])
    #### `Json` root.monsterParameters(`String` monsterType, [uint64_t seed]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Returns the parameters for a monster type.

    * Added optional parameter seed.

    #### `ActorMovementParameters` root.monsterMovementSettings(`String` monsterType, [uint64_t seed])
    ---

    #### `ActorMovementParameters` root.monsterMovementSettings(`String` monsterType, [uint64_t seed]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Returns the configured base movement parameters for the specified monster type.

    4 changes: 2 additions & 2 deletions scriptpane.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,9 @@
    #### `void` pane.addWidget(`Json` widgetConfig, [`String` widgetName])
    #### `void` pane.addWidget(`Json` widgetConfig, [`String` widgetName]) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Creates a new widget with the specified config and adds it to the pane, optionally with the specified name.

    ---

    #### `void` pane.removeWidget(`String` widgetName)
    #### `void` pane.removeWidget(`String` widgetName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Removes the specified widget from the pane.
    2 changes: 1 addition & 1 deletion statuscontroller.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,3 @@
    #### `bool` status.uniqueStatusEffectActive(`String` effectName)
    #### `bool` status.uniqueStatusEffectActive(`String` effectName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns `true` if the specified unique status effect is currently active and `false` otherwise.
    6 changes: 3 additions & 3 deletions widget.md
    Original file line number Diff line number Diff line change
    @@ -1,15 +1,15 @@
    #### `void` widget.addChild(`String` widgetName, `Json` childConfig, [`String` childName])
    #### `void` widget.addChild(`String` widgetName, `Json` childConfig, [`String` childName]) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Creates a new child widget with the specified config and adds it to the specified widget, optionally with the specified name.

    ---

    #### `void` widget.removeAllChildren(`String` widgetName)
    #### `void` widget.removeAllChildren(`String` widgetName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Removes all child widgets of the specified widget.

    ---

    #### `void` widget.removeChild(`String` widgetName, `String` childName)
    #### `void` widget.removeChild(`String` widgetName, `String` childName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Removes the specified child widget from the specified widget.
    20 changes: 10 additions & 10 deletions world.md
    Original file line number Diff line number Diff line change
    @@ -1,63 +1,63 @@
    #### `Tuple<Maybe<Vec2F>, Maybe<Vec2F>>` world.lineCollision(`Vec2F` startPoint, `Vec2F` endPoint, [`CollisionSet` collisionKinds])
    #### `Tuple<Maybe<Vec2F>, Maybe<Vec2F>>` world.lineCollision(`Vec2F` startPoint, `Vec2F` endPoint, [`CollisionSet` collisionKinds]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    If the line between the specified points overlaps any generated collision geometry of the specified collision kinds, returns the point at which the line collides, or `nil` if the line does not collide. If intersecting a side of the poly, also returns the normal of the intersected side as a second return.

    * Return value changed.

    ---

    #### `float` world.surfaceLevel()
    #### `float` world.surfaceLevel() <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the surface layer base height.

    ---

    #### `bool` world.damageTiles(`List<Vec2I>` positions, `String` layerName, `Vec2F` sourcePosition, `String` damageType, `float` damageAmount, [`unsigned` harvestLevel], [`EntityId` sourceEntity])
    #### `bool` world.damageTiles(`List<Vec2I>` positions, `String` layerName, `Vec2F` sourcePosition, `String` damageType, `float` damageAmount, [`unsigned` harvestLevel], [`EntityId` sourceEntity]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Damages all tiles in the specified layer and positions by the specified amount. The source position of the damage determines the initial direction of the damage particles. Damage types are: "plantish", "blockish", "beamish", "explosive", "fire", "tilling". Harvest level determines whether destroyed materials or mods will drop as items. Returns `true` if any damage was done and `false` otherwise.

    * New parameter `sourceEntity`.

    ---

    #### `bool` world.damageTileArea(`Vec2F` center, `float` radius, `String` layerName, `Vec2F` sourcePosition, `String` damageType, `float` damageAmount, [`unsigned` harvestLevel, [`EntityId` sourceEntity)
    #### `bool` world.damageTileArea(`Vec2F` center, `float` radius, `String` layerName, `Vec2F` sourcePosition, `String` damageType, `float` damageAmount, [`unsigned` harvestLevel, [`EntityId` sourceEntity) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Identical to world.damageTiles but applies to tiles in a circular radius around the specified center point.

    * New parameter `sourceEntity`.

    ---

    #### `List<Vec2I>` world.radialTileQuery(`Vec2F` position, `float` radius, `String` layerName)
    #### `List<Vec2I>` world.radialTileQuery(`Vec2F` position, `float` radius, `String` layerName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns a list of existing tiles within `radius` of the given position, on the specified tile layer.

    ---

    #### `Vec2F` world.entityMetaBoundBOx(`EntityId` entityId)
    #### `Vec2F` world.entityMetaBoundBOx(`EntityId` entityId) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the meta bound box of the entity, if any.

    ---

    ### `Maybe<List<MaterialId>>` world.biomeBlocksAt(`Vec2I` position)
    ### `Maybe<List<MaterialId>>` world.biomeBlocksAt(`Vec2I` position) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the list of biome specific blocks that can place in the biome at the specified position.

    ---

    #### `Json` world.getNpcScriptParameter(`EntityId` entityId, `String` parameterName, [`Json` defaultValue])
    #### `Json` world.getNpcScriptParameter(`EntityId` entityId, `String` parameterName, [`Json` defaultValue]) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the value of the specified NPC's variant script config parameter, or defaultValue or `nil` if the parameter is not set or the entity is not an NPC.

    ---

    #### `Promise<Vec2I>` world.enqueuePlacement(`List<Json>` distributionConfigs, [`DungeonId` id])
    #### `Promise<Vec2I>` world.enqueuePlacement(`List<Json>` distributionConfigs, [`DungeonId` id]) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Enqueues a biome distribution config for placement through world generation. The returned promise is fulfilled with the position of the placement, once it has been placed.

    ---

    #### `void` world.placeDungeon(`String` dungeonName, `Vec2I` position, [`DungeonId` dungeonId])
    #### `void` world.placeDungeon(`String` dungeonName, `Vec2I` position, [`DungeonId` dungeonId]) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Generates the specified dungeon in the world at the specified position. Does not ignore anchoring rules, will fail if the dungeon can't be placed. If a dungeon id is specified, it will be assigned to the dungeon.
  3. @Silverfeelin Silverfeelin revised this gist Jun 13, 2019. 2 changed files with 12 additions and 11 deletions.
    5 changes: 3 additions & 2 deletions animator.md
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,10 @@
    #### `Json` animator.transformPoint(`String` partName, `Vec2F` point)
    #### `Json` animator.transformPoint(`String` partName, `Vec2F` point) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Applies the specified part's transformation on the given point.


    ---

    #### `Json` animator.transformPoly(`String` partName, `PolyF` poly)
    #### `Json` animator.transformPoly(`String` partName, `PolyF` poly) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Applies the specified part's transformation on the given poly.
    18 changes: 9 additions & 9 deletions celestial.md
    Original file line number Diff line number Diff line change
    @@ -1,34 +1,34 @@
    #### `void` celestial.flyShip(`Vec3I` system, `SystemLocation` destination)
    #### `void` celestial.flyShip(`Vec3I` system, `SystemLocation` destination) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    * Renamed from `celestial.skyFlying`.

    ---

    #### `WorldId` celestial.objectWarpActionWorld(`Uuid` uuid)
    #### `WorldId` celestial.objectWarpActionWorld(`Uuid` uuid) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the warp action world ID for the specified object.

    ---

    #### `Json` celestial.objectOrbit(`Uuid` uuid)
    #### `Json` celestial.objectOrbit(`Uuid` uuid) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the orbit of the specified object, if any.

    ---

    #### `Maybe<Vec2F>` celestial.objectPosition(`Uuid` uuid)
    #### `Maybe<Vec2F>` celestial.objectPosition(`Uuid` uuid) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the position of the specified object, if any.

    ---

    #### `Json` celestial.objectTypeConfig(`String` typeName)
    #### `Json` celestial.objectTypeConfig(`String` typeName) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the configuration of the specified object type.

    ---

    #### `Uuid` celestial.systemSpawnObject(`String` typeName, [`Vec2F` position], [`Uuid` uuid], [`Json` parameters])
    #### `Uuid` celestial.systemSpawnObject(`String` typeName, [`Vec2F` position], [`Uuid` uuid], [`Json` parameters]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">

    Spawns an object of typeName at position. Optionally with the specified UUID and parameters.

    @@ -38,19 +38,19 @@ If no position is specified, one is automatically chosen in a spawnable range.

    ---

    #### `Maybe<bool>` celestial.hasChildren(`CelestialCoordinate` coordinate)
    #### `Maybe<bool>` celestial.hasChildren(`CelestialCoordinate` coordinate) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns definitively whether the coordinate has orbiting children. `nil` return means the coordinate is not loaded.

    ---

    #### `List<int>` celestial.childOrbits(`CelestialCoordinate` coordinate)
    #### `List<int>` celestial.childOrbits(`CelestialCoordinate` coordinate) <img align="right" src="https://img.shields.io/badge/Status-new-brightgreen.svg">

    Returns the child orbits for the specified celestial coordinate.

    ---

    #### `List<CelestialCoordinate>` celestial.scanSystems(`RectI` region, [`Set<String>` includedTypes])
    #### `List<CelestialCoordinate>` celestial.scanSystems(`RectI` region, [`Set<String>` includedTypes]) <img align="right" src="https://img.shields.io/badge/Status-changed-yellow.svg">
    Returns a list of systems in the given region. If includedTypes is specified, this will return only systems whose typeName parameter is included in the set. This scans for systems asynchronously, meaning it may not return all systems if they have not been generated or sent to the client. Use `scanRegionFullyLoaded` to see if this is the case.

    * New parameter `includedTypes`.
  4. @Silverfeelin Silverfeelin revised this gist Jun 13, 2019. 6 changed files with 0 additions and 12 deletions.
    2 changes: 0 additions & 2 deletions celestial.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,3 @@
    # Changed

    #### `void` celestial.flyShip(`Vec3I` system, `SystemLocation` destination)

    * Renamed from `celestial.skyFlying`.
    2 changes: 0 additions & 2 deletions entity.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1 @@
    # New

    * Now accessible from active item scripts.
    2 changes: 0 additions & 2 deletions player.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,3 @@
    # New

    #### `Json` player.getProperty(`String` name, `Json` default)

    Returns the value assigned to the specified generic player property. If there is no value set, returns default.
    2 changes: 0 additions & 2 deletions scriptpane.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,3 @@
    # New

    #### `void` pane.addWidget(`Json` widgetConfig, [`String` widgetName])

    Creates a new widget with the specified config and adds it to the pane, optionally with the specified name.
    2 changes: 0 additions & 2 deletions statuscontroller.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,3 @@
    # New

    #### `bool` status.uniqueStatusEffectActive(`String` effectName)

    Returns `true` if the specified unique status effect is currently active and `false` otherwise.
    2 changes: 0 additions & 2 deletions widget.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,3 @@
    # New

    #### `void` widget.addChild(`String` widgetName, `Json` childConfig, [`String` childName])

    Creates a new child widget with the specified config and adds it to the specified widget, optionally with the specified name.
  5. @Silverfeelin Silverfeelin revised this gist Jun 13, 2019. 5 changed files with 153 additions and 1 deletion.
    9 changes: 9 additions & 0 deletions animator.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,9 @@
    #### `Json` animator.transformPoint(`String` partName, `Vec2F` point)

    Applies the specified part's transformation on the given point.

    ---

    #### `Json` animator.transformPoly(`String` partName, `PolyF` poly)

    Applies the specified part's transformation on the given poly.
    52 changes: 52 additions & 0 deletions celestial.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,57 @@
    # Changed

    #### `void` celestial.flyShip(`Vec3I` system, `SystemLocation` destination)

    * Renamed from `celestial.skyFlying`.

    ---

    #### `WorldId` celestial.objectWarpActionWorld(`Uuid` uuid)

    Returns the warp action world ID for the specified object.

    ---

    #### `Json` celestial.objectOrbit(`Uuid` uuid)

    Returns the orbit of the specified object, if any.

    ---

    #### `Maybe<Vec2F>` celestial.objectPosition(`Uuid` uuid)

    Returns the position of the specified object, if any.

    ---

    #### `Json` celestial.objectTypeConfig(`String` typeName)

    Returns the configuration of the specified object type.

    ---

    #### `Uuid` celestial.systemSpawnObject(`String` typeName, [`Vec2F` position], [`Uuid` uuid], [`Json` parameters])

    Spawns an object of typeName at position. Optionally with the specified UUID and parameters.

    If no position is specified, one is automatically chosen in a spawnable range.

    * Position is optional.

    ---

    #### `Maybe<bool>` celestial.hasChildren(`CelestialCoordinate` coordinate)

    Returns definitively whether the coordinate has orbiting children. `nil` return means the coordinate is not loaded.

    ---

    #### `List<int>` celestial.childOrbits(`CelestialCoordinate` coordinate)

    Returns the child orbits for the specified celestial coordinate.

    ---

    #### `List<CelestialCoordinate>` celestial.scanSystems(`RectI` region, [`Set<String>` includedTypes])
    Returns a list of systems in the given region. If includedTypes is specified, this will return only systems whose typeName parameter is included in the set. This scans for systems asynchronously, meaning it may not return all systems if they have not been generated or sent to the client. Use `scanRegionFullyLoaded` to see if this is the case.

    22 changes: 22 additions & 0 deletions player.md
    Original file line number Diff line number Diff line change
    @@ -10,6 +10,16 @@ Returns the value assigned to the specified generic player property. If there is

    Sets a generic player property to the specified value.

    #### `void` player.addScannedObject(`String` name)

    Adds the specified object to the player's scanned objects.

    ---

    #### `void` player.removeScannedObject(`String` name)

    Removes the specified object from the player's scanned objects.

    ---

    #### `bool` player.hasAcceptedQuest(`String` questId)
    @@ -45,3 +55,15 @@ If the player's currently tracked quest has an associated location (CelestialCoo
    #### `List<pair<Json, bool>>` player.questWorlds()

    Returns a list of locations for worlds relevant to the player's current quests, along with a boolean indicating whether that quest is tracked.

    ---

    #### `void` player.hasCompletedMission(`String` missionName)

    Returns whether the player has completed the specified mission.

    ---

    #### `List<Json>` player.teleportBookmarks()

    Lists all of the player's teleport bookmarks.
    11 changes: 11 additions & 0 deletions root.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,11 @@
    #### `Json` root.monsterParameters(`String` monsterType, [uint64_t seed])

    Returns the parameters for a monster type.

    * Added optional parameter seed.

    #### `ActorMovementParameters` root.monsterMovementSettings(`String` monsterType, [uint64_t seed])

    Returns the configured base movement parameters for the specified monster type.

    * Added optional parameter seed.
    60 changes: 59 additions & 1 deletion world.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,63 @@
    # New
    #### `Tuple<Maybe<Vec2F>, Maybe<Vec2F>>` world.lineCollision(`Vec2F` startPoint, `Vec2F` endPoint, [`CollisionSet` collisionKinds])

    If the line between the specified points overlaps any generated collision geometry of the specified collision kinds, returns the point at which the line collides, or `nil` if the line does not collide. If intersecting a side of the poly, also returns the normal of the intersected side as a second return.

    * Return value changed.

    ---

    #### `float` world.surfaceLevel()

    Returns the surface layer base height.

    ---

    #### `bool` world.damageTiles(`List<Vec2I>` positions, `String` layerName, `Vec2F` sourcePosition, `String` damageType, `float` damageAmount, [`unsigned` harvestLevel], [`EntityId` sourceEntity])

    Damages all tiles in the specified layer and positions by the specified amount. The source position of the damage determines the initial direction of the damage particles. Damage types are: "plantish", "blockish", "beamish", "explosive", "fire", "tilling". Harvest level determines whether destroyed materials or mods will drop as items. Returns `true` if any damage was done and `false` otherwise.

    * New parameter `sourceEntity`.

    ---

    #### `bool` world.damageTileArea(`Vec2F` center, `float` radius, `String` layerName, `Vec2F` sourcePosition, `String` damageType, `float` damageAmount, [`unsigned` harvestLevel, [`EntityId` sourceEntity)

    Identical to world.damageTiles but applies to tiles in a circular radius around the specified center point.

    * New parameter `sourceEntity`.

    ---

    #### `List<Vec2I>` world.radialTileQuery(`Vec2F` position, `float` radius, `String` layerName)

    Returns a list of existing tiles within `radius` of the given position, on the specified tile layer.

    ---

    #### `Vec2F` world.entityMetaBoundBOx(`EntityId` entityId)

    Returns the meta bound box of the entity, if any.

    ---

    ### `Maybe<List<MaterialId>>` world.biomeBlocksAt(`Vec2I` position)

    Returns the list of biome specific blocks that can place in the biome at the specified position.

    ---

    #### `Json` world.getNpcScriptParameter(`EntityId` entityId, `String` parameterName, [`Json` defaultValue])

    Returns the value of the specified NPC's variant script config parameter, or defaultValue or `nil` if the parameter is not set or the entity is not an NPC.

    ---

    #### `Promise<Vec2I>` world.enqueuePlacement(`List<Json>` distributionConfigs, [`DungeonId` id])

    Enqueues a biome distribution config for placement through world generation. The returned promise is fulfilled with the position of the placement, once it has been placed.

    ---

    #### `void` world.placeDungeon(`String` dungeonName, `Vec2I` position, [`DungeonId` dungeonId])

    Generates the specified dungeon in the world at the specified position. Does not ignore anchoring rules, will fail if the dungeon can't be placed. If a dungeon id is specified, it will be assigned to the dungeon.
  6. @Silverfeelin Silverfeelin created this gist Apr 23, 2019.
    6 changes: 6 additions & 0 deletions celestial.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    # Changed

    #### `List<CelestialCoordinate>` celestial.scanSystems(`RectI` region, [`Set<String>` includedTypes])
    Returns a list of systems in the given region. If includedTypes is specified, this will return only systems whose typeName parameter is included in the set. This scans for systems asynchronously, meaning it may not return all systems if they have not been generated or sent to the client. Use `scanRegionFullyLoaded` to see if this is the case.

    * New parameter `includedTypes`.
    3 changes: 3 additions & 0 deletions entity.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,3 @@
    # New

    * Now accessible from active item scripts.
    47 changes: 47 additions & 0 deletions player.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,47 @@
    # New

    #### `Json` player.getProperty(`String` name, `Json` default)

    Returns the value assigned to the specified generic player property. If there is no value set, returns default.

    ---

    #### `void` player.setProperty(`String` name, `Json` value)

    Sets a generic player property to the specified value.

    ---

    #### `bool` player.hasAcceptedQuest(`String` questId)

    Returns `true` if the player has accepted a quest (which may be active, completed, or failed) with the specified quest id and `false` otherwise.

    ---

    #### `bool` player.hasActiveQuest(`String` questId)

    Returns `true` if the player has a currently active quest with the specified quest id and `false` otherwise.

    ---

    #### `Maybe<WorldId>` player.currentQuestWorld()

    If the player's currently tracked quest has an associated world, returns the id of that world.

    ---

    #### `List<pair<WorldId, bool>>` player.questWorlds()

    Returns a list of world ids for worlds relevant to the player's current quests, along with a boolean indicating whether that quest is tracked.

    ---

    #### `Maybe<Json>` player.currentQuestLocation()

    If the player's currently tracked quest has an associated location (CelestialCoordinate, system orbit, UUID, or system position) returns that location.

    ---

    #### `List<pair<Json, bool>>` player.questWorlds()

    Returns a list of locations for worlds relevant to the player's current quests, along with a boolean indicating whether that quest is tracked.
    11 changes: 11 additions & 0 deletions scriptpane.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,11 @@
    # New

    #### `void` pane.addWidget(`Json` widgetConfig, [`String` widgetName])

    Creates a new widget with the specified config and adds it to the pane, optionally with the specified name.

    ---

    #### `void` pane.removeWidget(`String` widgetName)

    Removes the specified widget from the pane.
    5 changes: 5 additions & 0 deletions statuscontroller.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    # New

    #### `bool` status.uniqueStatusEffectActive(`String` effectName)

    Returns `true` if the specified unique status effect is currently active and `false` otherwise.
    17 changes: 17 additions & 0 deletions widget.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    # New

    #### `void` widget.addChild(`String` widgetName, `Json` childConfig, [`String` childName])

    Creates a new child widget with the specified config and adds it to the specified widget, optionally with the specified name.

    ---

    #### `void` widget.removeAllChildren(`String` widgetName)

    Removes all child widgets of the specified widget.

    ---

    #### `void` widget.removeChild(`String` widgetName, `String` childName)

    Removes the specified child widget from the specified widget.
    5 changes: 5 additions & 0 deletions world.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    # New

    #### `float` world.surfaceLevel()

    Returns the surface layer base height.