allejo/bzflag-rendering.php

A library for rendering thumbnails of BZFlag worlds

v0.2.2 2022-04-17 23:54 UTC

This package is auto-updated.

Last update: 2024-04-18 11:45:08 UTC


README

Packagist Code coverage License

A PHP 7.1+ package for drawing BZFlag related things such as map thumbnails; this is a sister project to bzflag-networking.php.

Installation

This package can be installed via Composer.

composer require allejo/bzflag-rendering.php

Usage

This library currently supports exporting maps as SVGs or PNGs. Using the WorldRenderer class, you can give it a WorldDatabase instance from version 1.1+ of bzflag-networking.php.

// use allejo\bzflag\graphics\PNG\Radar\WorldRenderer;
use allejo\bzflag\graphics\SVG\Radar\WorldRenderer;
use allejo\bzflag\replays\Replay;

$replay = new Replay('official-match.rec');
$world = $replay->getHeader()->getWorldDatabase();

$renderer = new WorldRenderer($world);

echo $renderer->writeToFile("thumbnail.svg");

Namespaces in this package

This package is dedicated to drawing and rendering BZFlag related images or files, meaning this will have dependencies for drawing. In order to allow these dependencies to be "opt-in," it is a separate package.

However, the namespace of this project is shared with its sister project. The namespaces available in this package are the following:

  • allejo\bzflag\graphics

Examples

Here are some examples of SVG images generated by this library.

Radar thumbnail of HiX Radar thumbnail of a random map
Radar thumbnail of Pillbox Radar thumbnail of Unknown Mini

Obstacle Drawing Support

This project currently has support for drawing the following BZW 2.x object types.

Object Type Support
arc
base
box
cone
group
mesh
pyramid
sphere
teleporter
tetra

License

MIT