Skip to content

Place windows on a grid fixed to the world rather than to the request #61

Open

Description

@KurbyDoo

Background

Window positions are worked out from the size of the region being generated and start at its top left corner. The same piece of world therefore gets different windows depending on which request touched it, since a request that starts somewhere else lays its windows down somewhere else.

That leaves nothing able to say whether two requests are talking about the same window. It also means the same area blends differently each time it is asked for, because a different set of windows covers it.

Description

Work out window positions from a grid fixed to the world, so a window sits in the same place no matter which request asked for it.

A window is identified by where its top left corner sits on that grid. Two requests that cover the same area must produce the same windows over it.

The spacing between windows stays what it is now. Only where the grid starts changes, from the corner of whatever was asked for to a fixed point in the world.

Testing:

  • Assert two requests covering the same area produce the same window positions over it
  • Assert a request that starts somewhere else still produces windows at the same world positions where the two overlap
  • Assert the spacing between neighbouring windows is unchanged
  • Assert a window covering a given part of the world has the same position whichever request produced it

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