nikkiii/vlib

PHP库,用于处理Valve数据格式和工具。

dev-master 2015-09-20 18:09 UTC

This package is not auto-updated.

Last update: 2024-09-18 10:06:55 UTC


README

这绝对不稳定,巴拉巴拉。它为我所写的东西工作,需要更多功能时或如果你需要更多功能,请提交问题。

功能

  • 打开VPK存档并提取数据
  • 打开BSP地图并提取实体和pak文件
  • 通过LangWrapper轻松使用语言文件/密钥

安装

使用Composer安装

composer require nikkiii/vlib

使用方法

打开BSP文件

<?php
require_once 'vendor/autoload.php';

use VLib\BSP\BSPFile;

$fh = fopen('path/to/map.bsp', 'r');

$bsp = new BSPFile($fh);

// $bsp->version = format version

// $bsp->entities = entities

// $bsp->pakfile = pak file, use openArchive() to get a ZipArchive.

打开VPK文件(使用Flysystem进行通用文件系统访问)

<?php
require_once 'vendor/autoload.php';

use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;

use VLib\VPK\VPKArchive;

$filesystem = new Filesystem(new Local('/path/to/dir/with/vpks'));

$vpk = new VPKArchive($filesystem, 'pak01_dir.vpk');

$entry = $vpk->get('resource/l4d360ui_english.txt');

// To get a stream:
$stream = $entry->stream();

// To automatically call stream_get_contents:
$contents = $entry->getData();

使用LangWrapper(理想情况下,您会从VPKArchive使用KeyValues加载数据,警告:您可能需要使用mb_convert_encoding从UCS-2LE转换为UTF-8在语言文件中)

<?php
require_once 'vendor/autoload.php';

use VLib\KeyValues\LangWrapper;

$tokens = [
	'Something' => 'Blabla'
];

$data = [
	'nested' => [
		'key' => '#Something'
	]
];

$lang = new LangWrapper($tokens, $data);

echo $lang->get('nested.key'); // Blabla

打开DEM文件

<?php
require_once 'vendor/autoload.php';

use VLib\DEM\DEMFile;

$dem = new DEMFile('some_file.dem'); // Either string or resource (open file handle)

// $dem->... contains properties