migrate from perforce

This commit is contained in:
2026-04-19 01:16:27 +02:00
commit d161a20915
1810 changed files with 1156171 additions and 0 deletions

257
loader.js Normal file
View File

@@ -0,0 +1,257 @@
(function(htd, undefined) {
(function(data, undefined) {
data.scripts =
{
"Util/index": null,
"Util/PathFinding": null,
"Util/Hex": null,
"GameData/index": null,
"GameData/Enemy": null,
"GameData/ProjectileEffect": null,
"GameData/Simulation": null,
"GameData/Tower": null,
"GameData/Wave": null,
"GameData/Level": null,
"GameData/Root": null,
"Models/index": null,
"Models/Cell": null,
"Models/Enemy": null,
"Models/Level": null,
"Models/Projectile": null,
"Models/Tower": null,
"Simulation/index": null,
"Simulation/Root": null,
"Simulation/SpawnEnemies": null,
"Simulation/MoveEnemies": null,
"Simulation/FireTowers": null,
"Simulation/MoveProjectiles": null,
"Simulation/Commands/index": null,
"Simulation/Commands/CreateTower": null,
"Simulation/Commands/BlockTerrain": null,
"Simulation/Commands/StartNextWave": null,
"Views/view.js": null,
"Views/level.js": null,
"controller/mouse.js": null,
"Game": null,
};
data.images =
{
"images/projectile.svg": null,
"images/tower-0.svg": null,
"images/cell-highlighted.svg": null,
"images/cell-entry-1.svg": null,
"images/cell-entry-2.svg": null,
"images/cell-entry-3.svg": null,
"images/cell-entry-4.svg": null,
"images/cell-entry-6.svg": null,
"images/cell-entry-8.svg": null,
"images/cell-entry-12.svg": null,
"images/cell-entry-16.svg": null,
"images/cell-entry-24.svg": null,
"images/cell-entry-32.svg": null,
"images/cell-entry-33.svg": null,
"images/cell-entry-48.svg": null,
"images/cell-blocked-0.svg": null,
"images/cell-blocked-1.svg": null,
"images/cell-blocked-2.svg": null,
"images/cell-blocked-3.svg": null,
"images/cell-blocked-4.svg": null,
"images/cell-blocked-5.svg": null,
"images/cell-blocked-6.svg": null,
"images/cell-blocked-7.svg": null,
"images/cell-blocked-8.svg": null,
"images/cell-blocked-9.svg": null,
"images/cell-blocked-10.svg": null,
"images/cell-blocked-11.svg": null,
"images/cell-blocked-12.svg": null,
"images/cell-blocked-13.svg": null,
"images/cell-blocked-14.svg": null,
"images/cell-blocked-15.svg": null,
"images/cell-blocked-16.svg": null,
"images/cell-blocked-17.svg": null,
"images/cell-blocked-18.svg": null,
"images/cell-blocked-19.svg": null,
"images/cell-blocked-20.svg": null,
"images/cell-blocked-21.svg": null,
"images/cell-blocked-22.svg": null,
"images/cell-blocked-23.svg": null,
"images/cell-blocked-24.svg": null,
"images/cell-blocked-25.svg": null,
"images/cell-blocked-26.svg": null,
"images/cell-blocked-27.svg": null,
"images/cell-blocked-28.svg": null,
"images/cell-blocked-29.svg": null,
"images/cell-blocked-30.svg": null,
"images/cell-blocked-31.svg": null,
"images/cell-blocked-32.svg": null,
"images/cell-blocked-33.svg": null,
"images/cell-blocked-34.svg": null,
"images/cell-blocked-35.svg": null,
"images/cell-blocked-36.svg": null,
"images/cell-blocked-37.svg": null,
"images/cell-blocked-38.svg": null,
"images/cell-blocked-39.svg": null,
"images/cell-blocked-40.svg": null,
"images/cell-blocked-41.svg": null,
"images/cell-blocked-42.svg": null,
"images/cell-blocked-43.svg": null,
"images/cell-blocked-44.svg": null,
"images/cell-blocked-45.svg": null,
"images/cell-blocked-46.svg": null,
"images/cell-blocked-47.svg": null,
"images/cell-blocked-48.svg": null,
"images/cell-blocked-49.svg": null,
"images/cell-blocked-50.svg": null,
"images/cell-blocked-51.svg": null,
"images/cell-blocked-52.svg": null,
"images/cell-blocked-53.svg": null,
"images/cell-blocked-54.svg": null,
"images/cell-blocked-55.svg": null,
"images/cell-blocked-56.svg": null,
"images/cell-blocked-57.svg": null,
"images/cell-blocked-58.svg": null,
"images/cell-blocked-59.svg": null,
"images/cell-blocked-60.svg": null,
"images/cell-blocked-61.svg": null,
"images/cell-blocked-62.svg": null,
"images/cell-blocked-63.svg": null,
"images/cell.svg": null,
"images/enemy-0.svg": null,
"images/wall.png": null,
};
}(window.htd.data = window.htd.data || {}));
(function(loader, undefined) {
loader.currentScript = 0;
loader.Draw = function()
{
var progress = this.GetProgress();
if (!!htd.loader)
{
var canvas = document.getElementById("canvas");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.rect(20, canvas.height / 2 - 10, progress * (canvas.width - 40), 20);
ctx.fillStyle = "red";
ctx.fill();
requestAnimationFrame(function step(timestamp)
{
htd.loader.Draw();
});
}
}
loader.LoadScripts = function()
{
var keys = [];
for (var key in htd.data.scripts)
{
if (!htd.data.scripts.hasOwnProperty(key))
{
continue;
}
keys.push(key);
}
var scr = document.createElement("script");
scr.src = keys[this.currentScript];
scr.dataName = keys[this.currentScript];
scr.onload = function(key, script)
{
htd.data.scripts[this.dataName] = this;
loader.currentScript += 1;
if (loader.currentScript < keys.length)
{
loader.LoadScripts();
}
};
document.head.appendChild(scr);
}
loader.LoadImages = function()
{
for (var key in htd.data.images)
{
if (!htd.data.images.hasOwnProperty(key))
{
continue;
}
var img = new Image();
img.src = key;
img.dataName = key;
img.onload = function()
{
htd.data.images[this.dataName] = this;
};
};
}
loader.GetProgress = function()
{
var length = 0;
var loaded = 0;
for (var key in htd.data.scripts)
{
if (!htd.data.scripts.hasOwnProperty(key))
{
continue;
}
length += 1;
var obj = htd.data.scripts[key];
if (obj != null)
{
loaded += 1;
}
};
for (var key in htd.data.images)
{
if (!htd.data.images.hasOwnProperty(key))
{
continue;
}
length += 1;
var obj = htd.data.images[key];
if (obj != null)
{
loaded += 1;
}
};
var progress = (loaded / length);
if (progress >= 1)
{
for (var idx in htd.data.scripts)
{
eval(htd.data.scripts[idx]);
}
htd.sim.Load();
htd.view.Load();
htd.controller.mouse.Load();
htd.loader = null;
}
return progress;
}
loader.LoadScripts();
loader.LoadImages();
requestAnimationFrame(function step(timestamp)
{
loader.Draw();
});
}(window.htd.loader = window.htd.loader || {}));
}(window.htd = window.htd || {}));