allejo / bzflag-rendering.php
A library for rendering thumbnails of BZFlag worlds
                                    Fund package maintenance!
                                                                            
                                                                                                                                        allejo
                                                                                    
                                                                            
                                                                                                                                        Ko Fi
                                                                                    
                                                                            
                                                                                                                                        www.buymeacoffee.com/allejo
                                                                                    
                                                                
Installs: 330
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 1
Open Issues: 1
pkg:composer/allejo/bzflag-rendering.php
Requires
- php: >=7.1
- ext-json: *
- allejo/bzflag-networking.php: ^1.1.0
- meyfa/php-svg: ^0.9.1
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpstan/phpstan: ^1.5.6
- phpunit/phpunit: ^7.0
- symfony/finder: ^5.4
Suggests
- ext-imagick: Needed to export thumbnails as PNGs
README
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.
|  |  | 
|  |  | 
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 | ❌ |