FML 1.1
This commit is contained in:
@ -16,9 +16,13 @@ abstract class Builder {
|
||||
*
|
||||
* @param string $labelName Name of the Label
|
||||
* @param string $implementationCode Label Implementation Coding (without declaration)
|
||||
* @param bool $isolate Whether the Code should be isolated in an own Block
|
||||
* @return string
|
||||
*/
|
||||
public static function getLabelImplementationBlock($labelName, $implementationCode) {
|
||||
public static function getLabelImplementationBlock($labelName, $implementationCode, $isolate = true) {
|
||||
if ($isolate) {
|
||||
$implementationCode = 'if(True){' . $implementationCode . '}';
|
||||
}
|
||||
$labelText = PHP_EOL . "***{$labelName}***" . PHP_EOL . "***{$implementationCode}***" . PHP_EOL;
|
||||
return $labelText;
|
||||
}
|
||||
@ -27,13 +31,16 @@ abstract class Builder {
|
||||
* Escape dangerous Characters in the given Text
|
||||
*
|
||||
* @param string $text Text to escape
|
||||
* @param bool $addApostrophes (optional) Whether to add Apostrophes before and after the Text
|
||||
* @return string
|
||||
*/
|
||||
public static function escapeText($text) {
|
||||
$escapedText = $text;
|
||||
public static function escapeText($text, $addApostrophes = false) {
|
||||
$dangers = array('\\', '"', "\n");
|
||||
$replacements = array('\\\\', '\\"', '\n');
|
||||
$escapedText = str_ireplace($dangers, $replacements, $escapedText);
|
||||
$replacements = array('\\\\', '\\"', '\\n');
|
||||
$escapedText = str_ireplace($dangers, $replacements, $text);
|
||||
if ($addApostrophes) {
|
||||
$escapedText = '"' . $escapedText . '"';
|
||||
}
|
||||
return $escapedText;
|
||||
}
|
||||
|
||||
@ -46,13 +53,15 @@ abstract class Builder {
|
||||
public static function getReal($value) {
|
||||
$value = (float) $value;
|
||||
$stringVal = (string) $value;
|
||||
if (!fmod($value, 1)) $stringVal .= '.';
|
||||
if (!fmod($value, 1)) {
|
||||
$stringVal .= '.';
|
||||
}
|
||||
return $stringVal;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the Boolean String-Representation of the given Value
|
||||
*
|
||||
*
|
||||
* @param bool $value The Value to convert to a ManiaScript Boolean
|
||||
* @return string
|
||||
*/
|
||||
@ -63,4 +72,67 @@ abstract class Builder {
|
||||
}
|
||||
return "False";
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the String-Representation of the given Array
|
||||
*
|
||||
* @param array $array Array to convert to a ManiaScript Array
|
||||
* @param bool $associative (optional) Whether the Array should be associative
|
||||
* @return string
|
||||
*/
|
||||
public static function getArray(array $array, $associative = false) {
|
||||
$arrayText = '[';
|
||||
$index = 0;
|
||||
$count = count($array);
|
||||
foreach ($array as $key => $value) {
|
||||
if ($associative) {
|
||||
if (is_string($key)) {
|
||||
$arrayText .= '"' . self::escapeText($key) . '"';
|
||||
}
|
||||
else {
|
||||
$arrayText .= $key;
|
||||
}
|
||||
$arrayText .= ' => ';
|
||||
}
|
||||
if (is_string($value)) {
|
||||
$arrayText .= '"' . self::escapeText($value) . '"';
|
||||
}
|
||||
else {
|
||||
$arrayText .= $value;
|
||||
}
|
||||
if ($index < $count - 1) {
|
||||
$arrayText .= ', ';
|
||||
$index++;
|
||||
}
|
||||
}
|
||||
$arrayText .= ']';
|
||||
return $arrayText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Include Command for the given File and Namespace
|
||||
*
|
||||
* @param string $file Include File
|
||||
* @param string $namespace Include Namespace
|
||||
* @return string
|
||||
*/
|
||||
public static function getInclude($file, $namespace) {
|
||||
$includeText = "#Include \"{$file}\" as {$namespace}" . PHP_EOL;
|
||||
return $includeText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Constant Command for the given Name and Value
|
||||
*
|
||||
* @param string $name Constant Name
|
||||
* @param string $value Constant Value
|
||||
* @return string
|
||||
*/
|
||||
public static function getConstant($name, $value) {
|
||||
if (is_string($value)) {
|
||||
$value = '"' . $value . '"';
|
||||
}
|
||||
$constantText = "#Const {$name} {$value}" . PHP_EOL;
|
||||
return $constantText;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user