June 7, 2018♦
<?php
require_once(dirname(__FILE__) . "/Main.php");
echo new folder\Main();
<?php
namespace folder;
require_once dirname(__FILE__) . "/../../account/get_user_path.php";
$GLOBALS["BACK_TEXT"] = "← Back";
$GLOBALS["PROGRESS_FILE_NAME"] = "progress";
class Builder extends \XMLWriter
{
public function __construct($child=True)
{
$this->child = $child;
$this->set_user_path();
$this->set_progress();
}
private function set_user_path()
{
$this->user_path = \account\get_user_path();
}
private function set_progress()
{
$path = $this->user_path . $GLOBALS["PROGRESS_FILE_NAME"];
$ignore = FILE_IGNORE_NEW_LINES;
$this->progress = file_get_contents($path, $ignore);
}
public function __toString()
{
header("Content-type: text/xml");
return $this->build();
}
public function build()
{
$this->openMemory();
$this->populate();
return $this->outputMemory();
}
private function populate()
{
$this->startElement("folder");
$this->add_back_option();
$this->add_options();
$this->endElement();
}
private function add_back_option()
{
if ($this->child)
{
$this->startElement("option");
$this->writeAttribute("action", "escape");
$this->text($GLOBALS["BACK_TEXT"]);
$this->endElement();
}
}
protected function add_options()
{
return null;
}
}
<?php
namespace folder;
require_once "Builder.php";
class Album extends Builder
{
protected function add_options()
{
for ($ii = 1; $ii <= $this->progress; $ii++)
{
$this->startElement("option");
$this->writeAttribute("action", "load_album");
$this->text($ii);
$this->writeElement("parameter", $ii);
$this->endElement();
}
}
}
<?php
namespace folder;
require_once "Builder.php";
define("LEVEL_IDS_PATH", "../../../../../../users/level_ids");
define("LEVEL_LIMIT", 10);
class Levels extends Builder
{
public function __construct($practice=false)
{
parent::__construct();
$this->practice = $practice;
$this->set_level_names();
}
private function set_level_names()
{
$entries = $this->get_level_data();
$names = array();
foreach ($entries as $entry)
{
$fields = explode("|", $entry);
$names[] = trim($fields[1]);
}
$this->names = $names;
}
private function get_level_data()
{
$path = LEVEL_IDS_PATH;
$ignore = FILE_IGNORE_NEW_LINES;
return file($path, $ignore);
}
protected function add_options()
{
$names = $this->names;
for ($ii = 0; $ii < $this->progress + 1 && $ii < LEVEL_LIMIT; $ii++)
{
$practice = $this->practice ? 1 : 0;
$this->startElement("option");
$this->writeAttribute("action", "load_level");
$this->text($names[$ii]);
$this->writeElement("parameter", $ii + 1);
$this->writeElement("parameter", $practice);
$this->endElement();
}
}
}
<?php
require_once(dirname(__FILE__) . "/Levels.php");
echo new folder\Levels();
EVR.include("field/landscape/Landscape.js");
EVR.Field = function(container)
{
EVR.Component.call(this, container, "div", container.firstChild);
this.colors = FIELD_COLORS;
this.scrollers = [];
this.style();
this.append();
this.add_fader();
this.populate();
}
EVR.Field.prototype = new EVR.Component;
EVR.Field.prototype.style = function()
{
this.set_color(this.colors[0]);
this.css.position = "relative";
this.css.margin = "auto";
this.css.width = "100%";
this.css.height = "100%";
this.css.overflow = "hidden";
}
EVR.Field.prototype.append = function()
{
EVR.Component.prototype.append.call(this);
this.update_dimensions();
}
EVR.Field.prototype.add_fader = function()
{
this.fader = new EVR.Animation.Fader(
this, this.colors[1], FIELD_FADE_RATE, FIELD_FADE_LENGTH,
FIELD_FADE_LOOP);
}
EVR.Field.prototype.set_colors = function(colors)
{
this.set_color(colors[0]);
this.fader.set_path(colors[1]);
}
EVR.Field.prototype.populate = function()
{
this.add_ground();
this.add_clouds();
this.add_trees();
}
EVR.Field.prototype.repopulate = function()
{
this.update_dimensions();
this.ground.draw();
this.redraw_clouds();
this.redraw_trees();
}
EVR.Field.prototype.add_ground = function()
{
this.ground = new EVR.Field.Landscape.Ground(this);
}
EVR.Field.prototype.add_clouds = function()
{
this.clouds = [];
for (var ii = 0; ii < CLOUD_COUNT; ii++)
{
this.clouds.push(new EVR.Field.Landscape.Cloud(this));
}
this.add_scroller(this.clouds, CLOUD_STEP, CLOUD_SCROLL_RATE);
}
EVR.Field.prototype.add_scroller = function(graphics, rate, step)
{
var scroller = new EVR.Animation.Scroller(graphics, rate, step);
this.scrollers.push(scroller);
scroller.play();
}
EVR.Field.prototype.redraw_clouds = function()
{
for (var ii = 0; ii < this.clouds.length; ii++)
{
this.clouds[ii].draw();
}
}
EVR.Field.prototype.add_trees = function()
{
this.trees = [];
for (var ii = 0; ii < TREE_COUNT; ii++)
{
this.trees.push(new EVR.Field.Landscape.Tree(this, this.ground));
}
this.add_scroller(this.trees, TREE_STEP, TREE_SCROLL_RATE);
}
EVR.Field.prototype.redraw_trees = function()
{
for (var ii = 0; ii < this.trees.length; ii++)
{
this.trees[ii].draw();
}
}
EVR.Field.prototype.update_dimensions = function()
{
this.dimensions = EVR.Component.prototype.get_dimensions.call(this);
}
EVR.Field.prototype.get_dimensions = function(ratio)
{
return this.dimensions;
}
EVR.Field.prototype.stop_trees = function()
{
this.scrollers[1].stop();
}
EVR.Field.prototype.start_trees = function()
{
this.scrollers[1].play();
}
EVR.Field.prototype.toString = function()
{
return "[object EVR.Field]";
}