Skip to content

Hold finished tiles and hand them back by seed #44

Open

Description

@KurbyDoo

Background

Generating a tile is expensive and the same tile gets asked for more than once as the user moves around, so finished grids are kept rather than thrown away.

This is not a second store beside the sum and weight grids. It is the same tiled space at a later stage.

A tile is a fixed block of the world and does not overlap its neighbours. The sum and weight grids are held per tile, and a window crossing a boundary is split between the two tiles it covers.

A tile can only be handed out or dropped once every window covering it has been added. Dropping one part way through either loses it completely, or adds its windows a second time into the neighbour that shared them.

Description

Create a function to put a finished grid in under a tile and one to get it back out, returning nothing if that tile has not been generated yet.

A tile is identified by the global seed together with its coordinate, kept as three separate numbers rather than worked into one. See #59.

Testing:

  • Assert a tile that was put in comes back out unchanged
  • Assert asking for a tile that was never put in returns nothing
  • Assert two different tiles do not overwrite each other
  • Assert the same coordinate under two different global seeds does not overwrite either
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions