# Rewrite of the game's simulation system
Giant merge from http://svn.wildfiregames.com/hg-source/file/5fb522019d5e Infrastructure is largely complete, gameplay is largely missing Disabled by default; use command-line flag "-sim2" (Second attempt at commit...) This was SVN commit r7259.
This commit is contained in:
parent
3339aea2a7
commit
7c2e9027c2
@ -0,0 +1,11 @@
|
||||
function TestScript2A() {}
|
||||
|
||||
TestScript2A.prototype.Init = function() {
|
||||
this.x = eval(this.template.y);
|
||||
};
|
||||
|
||||
TestScript2A.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A);
|
12
binaries/data/mods/_test.sim/simulation/components/error.js
Normal file
12
binaries/data/mods/_test.sim/simulation/components/error.js
Normal file
@ -0,0 +1,12 @@
|
||||
function TestScript1A() {}
|
||||
|
||||
try {
|
||||
Engine.RegisterComponentType(12345, "TestScript1A", TestScript1A);
|
||||
Engine.TS_FAIL("Missed exception");
|
||||
} catch (e) {
|
||||
// print("Caught exception: " + e + "\n");
|
||||
}
|
||||
|
||||
var n = Engine.QueryInterface(12345, IID_Test1);
|
||||
if (n !== null)
|
||||
Engine.TS_FAIL("QueryInterface return "+n+", not null");
|
@ -0,0 +1,12 @@
|
||||
function TestScript1A() {}
|
||||
|
||||
TestScript1A.prototype.GetX = function() {
|
||||
// Test that .entity is readonly
|
||||
delete this.entity;
|
||||
this.entity = -1;
|
||||
|
||||
// and return the value
|
||||
return this.entity;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A);
|
@ -0,0 +1,7 @@
|
||||
function TestScript1_Helper() {}
|
||||
|
||||
TestScript1_Helper.prototype.GetX = function() {
|
||||
return AdditionHelper(1, 2);
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_Helper", TestScript1_Helper);
|
@ -0,0 +1,23 @@
|
||||
function HotloadA() {}
|
||||
|
||||
HotloadA.prototype.Init = function() {
|
||||
this.x = +this.template.x;
|
||||
};
|
||||
|
||||
HotloadA.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "HotloadA", HotloadA);
|
||||
|
||||
function HotloadB() {}
|
||||
|
||||
HotloadB.prototype.Init = function() {
|
||||
this.x = +this.template.x;
|
||||
};
|
||||
|
||||
HotloadB.prototype.GetX = function() {
|
||||
return this.x*2;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "HotloadB", HotloadB);
|
@ -0,0 +1,11 @@
|
||||
function HotloadA() {}
|
||||
|
||||
HotloadA.prototype.Init = function() {
|
||||
this.x = +this.template.x;
|
||||
};
|
||||
|
||||
HotloadA.prototype.GetX = function() {
|
||||
return this.x*10;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "HotloadA", HotloadA);
|
@ -0,0 +1,32 @@
|
||||
function TestScript1A() {}
|
||||
|
||||
TestScript1A.prototype.Init = function() {
|
||||
this.x = 100;
|
||||
};
|
||||
|
||||
TestScript1A.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
TestScript1A.prototype.OnUpdate = function(msg) {
|
||||
this.x += msg.turnLength;
|
||||
}
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript2A() {}
|
||||
|
||||
TestScript2A.prototype.Init = function() {
|
||||
this.x = 200;
|
||||
};
|
||||
|
||||
TestScript2A.prototype.GetX = function() {
|
||||
Engine.BroadcastMessage(MT_Update, { turnLength: 50 });
|
||||
Engine.PostMessage(1, MT_Update, { turnLength: 500 });
|
||||
Engine.PostMessage(2, MT_Update, { turnLength: 5000 });
|
||||
return this.x;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A);
|
@ -0,0 +1,31 @@
|
||||
function TestScript1_Init() {}
|
||||
|
||||
TestScript1_Init.prototype.Init = function() {
|
||||
var param = this.template;
|
||||
// print("# ",uneval(param),"\n");
|
||||
if (param)
|
||||
this.x = (+param.x) + (+param.y._string) + (+param.y.z['@w']) + (+param.y.z.a);
|
||||
else
|
||||
this.x = 100;
|
||||
};
|
||||
|
||||
TestScript1_Init.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_Init", TestScript1_Init);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript1_readonly() {}
|
||||
|
||||
TestScript1_readonly.prototype.GetX = function() {
|
||||
this.template = null;
|
||||
delete this.template;
|
||||
try { this.template.x += 1000; } catch(e) { }
|
||||
try { delete this.template.x; } catch(e) { }
|
||||
try { this.template.y = 2000; } catch(e) { }
|
||||
return +(this.template.x || 1) + +(this.template.y || 2);
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_readonly", TestScript1_readonly);
|
@ -0,0 +1,26 @@
|
||||
function TestScript1A() {}
|
||||
|
||||
TestScript1A.prototype.Init = function() {
|
||||
this.x = 100;
|
||||
};
|
||||
|
||||
TestScript1A.prototype.GetX = function() {
|
||||
var test2 = Engine.QueryInterface(this.entity, IID_Test2);
|
||||
return test2.GetX() + (test2.x || 0);
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript2A() {}
|
||||
|
||||
TestScript2A.prototype.Init = function() {
|
||||
this.x = 200;
|
||||
};
|
||||
|
||||
TestScript2A.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A);
|
@ -0,0 +1,68 @@
|
||||
function TestScript1_values() {}
|
||||
|
||||
TestScript1_values.prototype.Init = function() {
|
||||
this.x = +this.template.x;
|
||||
this.str = "this is a string";
|
||||
this.things = { a: 1, b: "2", c: [3, "4", [5, []]] };
|
||||
};
|
||||
|
||||
TestScript1_values.prototype.GetX = function() {
|
||||
// print(uneval(this));
|
||||
return this.x;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_values", TestScript1_values);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript1_entity() {}
|
||||
|
||||
TestScript1_entity.prototype.GetX = function() {
|
||||
// Test that .entity is readonly
|
||||
delete this.entity;
|
||||
this.entity = -1;
|
||||
|
||||
// and return the value
|
||||
return this.entity;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_entity", TestScript1_entity);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript1_nontree() {}
|
||||
|
||||
TestScript1_nontree.prototype.Init = function() {
|
||||
var n = [1];
|
||||
this.x = [n, n, null, { y: n }];
|
||||
this.x[2] = this.x;
|
||||
};
|
||||
|
||||
TestScript1_nontree.prototype.GetX = function() {
|
||||
// print(uneval(this)+"\n");
|
||||
this.x[0][0] += 1;
|
||||
return this.x[0][0] + this.x[1][0] + this.x[2][0][0] + this.x[3].y[0];
|
||||
}
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_nontree", TestScript1_nontree);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript1_getter() {}
|
||||
|
||||
TestScript1_getter.prototype.Init = function() {
|
||||
this.x = 100;
|
||||
this.__defineGetter__('x', function () { return 200; });
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_getter", TestScript1_getter);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript1_consts() {}
|
||||
|
||||
TestScript1_consts.prototype.GetX = function() {
|
||||
return (+this.entity) + (+this.template.x);
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1_consts", TestScript1_consts);
|
45
binaries/data/mods/_test.sim/simulation/components/test.js
Normal file
45
binaries/data/mods/_test.sim/simulation/components/test.js
Normal file
@ -0,0 +1,45 @@
|
||||
function TestScript1A() {}
|
||||
|
||||
TestScript1A.prototype.Init = function() {
|
||||
this.x = 101000;
|
||||
};
|
||||
|
||||
TestScript1A.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
TestScript1A.prototype.OnTurnStart = function(msg) {
|
||||
this.x += 1;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1A", TestScript1A);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript1B() {}
|
||||
|
||||
TestScript1B.prototype = new TestScript1A();
|
||||
|
||||
TestScript1B.prototype.Init = function() {
|
||||
this.x = 102000;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test1, "TestScript1B", TestScript1B);
|
||||
|
||||
// -------- //
|
||||
|
||||
function TestScript2A() {}
|
||||
|
||||
TestScript2A.prototype.Init = function() {
|
||||
this.x = 201000;
|
||||
};
|
||||
|
||||
TestScript2A.prototype.GetX = function() {
|
||||
return this.x;
|
||||
};
|
||||
|
||||
TestScript2A.prototype.OnUpdate = function(msg) {
|
||||
this.x += msg.turnLength;
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Test2, "TestScript2A", TestScript2A);
|
@ -0,0 +1,5 @@
|
||||
function AdditionHelper(a, b) {
|
||||
return a+b;
|
||||
}
|
||||
|
||||
Engine.RegisterGlobal("AdditionHelper", AdditionHelper);
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<x>12345</x>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<HotloadA>
|
||||
<x>100</x>
|
||||
</HotloadA>
|
||||
</Entity>
|
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="inherit-nonexistent">broken</Entity>
|
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity loop2="2" parent="inherit-loop">loop-2</Entity>
|
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity loop1="1" parent="inherit-loop-2">loop</Entity>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<x a="a1" b="b1" c="c1">
|
||||
<d>d1</d>
|
||||
<e>e1</e>
|
||||
<f>f1</f>
|
||||
</x>
|
||||
</Entity>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="inherit1">
|
||||
<x a="a2">
|
||||
<d>d2</d>
|
||||
<g>g2</g>
|
||||
</x>
|
||||
</Entity>
|
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<TestScript1_consts><x>12345</x></TestScript1_consts>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="test1">
|
||||
<Test1A>
|
||||
<x>1234</x>
|
||||
</Test1A>
|
||||
</Entity>
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity>
|
||||
<Test1A>
|
||||
<x>999</x>
|
||||
</Test1A>
|
||||
<TestScript2A>
|
||||
<y>(600+17)*20+5</y>
|
||||
</TestScript2A>
|
||||
</Entity>
|
@ -14,7 +14,7 @@
|
||||
function messageBox (mbWidth, mbHeight, mbMessage, mbTitle, mbMode, mbButtonCaptions, mbButtonsCode)
|
||||
{
|
||||
|
||||
pushGuiPage("page_msgbox.xml", {
|
||||
Engine.PushGuiPage("page_msgbox.xml", {
|
||||
width: mbWidth,
|
||||
height: mbHeight,
|
||||
message: mbMessage,
|
||||
|
@ -39,7 +39,7 @@ function launchGame ()
|
||||
closeMainMenuSubWindow ("pgSessionSetup");
|
||||
|
||||
// Display loading screen.
|
||||
switchGuiPage("page_loading.xml");
|
||||
Engine.SwitchGuiPage("page_loading.xml");
|
||||
|
||||
console.write( "running startGame()" );
|
||||
|
||||
@ -47,7 +47,7 @@ function launchGame ()
|
||||
if (! startGame())
|
||||
{
|
||||
// Failed to start the game; go back to the main menu.
|
||||
switchGuiPage("page_pregame.xml");
|
||||
Engine.SwitchGuiPage("page_pregame.xml");
|
||||
// Restore default cursor.
|
||||
setCursor ("arrow-default");
|
||||
// Show an error message
|
||||
|
@ -146,42 +146,18 @@
|
||||
==========================================
|
||||
-->
|
||||
|
||||
<color name="black"
|
||||
>0 0 0
|
||||
</color>
|
||||
|
||||
<color name="gold"
|
||||
>237 227 167
|
||||
</color>
|
||||
|
||||
<color name="white"
|
||||
>255 255 255
|
||||
</color>
|
||||
|
||||
<color name="gray"
|
||||
>243 242 240
|
||||
</color>
|
||||
|
||||
<color name="darkgray"
|
||||
>43 42 40
|
||||
</color>
|
||||
|
||||
<color name="blue"
|
||||
>0 0 255
|
||||
</color>
|
||||
|
||||
<color name="green"
|
||||
>0 200 0
|
||||
</color>
|
||||
|
||||
<color name="mustard"
|
||||
>191 191 2
|
||||
</color>
|
||||
|
||||
<color name="brown"
|
||||
>159 98 24
|
||||
</color>
|
||||
<color name="black">0 0 0</color>
|
||||
<color name="white">255 255 255</color>
|
||||
<color name="red">255 0 0</color>
|
||||
<color name="blue">0 0 255</color>
|
||||
<color name="yellow">255 255 0</color>
|
||||
|
||||
<color name="gold">237 227 167</color>
|
||||
<color name="gray">243 242 240</color>
|
||||
<color name="darkgray">43 42 40</color>
|
||||
<color name="green">0 200 0</color>
|
||||
<color name="mustard">191 191 2</color>
|
||||
<color name="brown">159 98 24</color>
|
||||
|
||||
<!--
|
||||
NOT YET CONVERTED NOT YET CONVERTED NOT YET CONVERTED NOT YET CONVERTED NOT YET CONVERTED NOT YET CONVERTED
|
||||
|
@ -38,7 +38,10 @@ function reallyStartGame()
|
||||
// to start the game (ie loading progress has reached 100%).
|
||||
|
||||
// Switch GUI from loading screen to game session.
|
||||
switchGuiPage("page_session.xml");
|
||||
if (Engine.IsNewSimulation())
|
||||
Engine.SwitchGuiPage("page_session_new.xml");
|
||||
else
|
||||
Engine.SwitchGuiPage("page_session.xml");
|
||||
|
||||
// Restore default cursor.
|
||||
setCursor ("arrow-default");
|
||||
|
@ -49,19 +49,19 @@
|
||||
if (data.buttonCaptions.length >= 1)
|
||||
{
|
||||
mbButton1Obj.caption = data.buttonCaptions[0];
|
||||
mbButton1Obj.onPress = function () { popGuiPage(); if (codes[0]) codes[0](); }
|
||||
mbButton1Obj.onPress = function () { Engine.PopGuiPage(); if (codes[0]) codes[0](); }
|
||||
mbButton1Obj.hidden = false;
|
||||
}
|
||||
if (data.buttonCaptions.length >= 2)
|
||||
{
|
||||
mbButton2Obj.caption = data.buttonCaptions[1];
|
||||
mbButton2Obj.onPress = function () { popGuiPage(); if (codes[1]) codes[1](); }
|
||||
mbButton2Obj.onPress = function () { Engine.PopGuiPage(); if (codes[1]) codes[1](); }
|
||||
mbButton2Obj.hidden = false;
|
||||
}
|
||||
if (data.buttonCaptions.length >= 3)
|
||||
{
|
||||
mbButton3Obj.caption = data.buttonCaptions[2];
|
||||
mbButton3Obj.onPress = function () { popGuiPage(); if (codes[2]) codes[2](); }
|
||||
mbButton3Obj.onPress = function () { Engine.PopGuiPage(); if (codes[2]) codes[2](); }
|
||||
mbButton3Obj.hidden = false;
|
||||
}
|
||||
|
||||
|
9
binaries/data/mods/public/gui/page_session_new.xml
Normal file
9
binaries/data/mods/public/gui/page_session_new.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<page>
|
||||
<include>common/setup.xml</include>
|
||||
<include>common/styles.xml</include>
|
||||
<include>common/sprite1.xml</include>
|
||||
<include>common/init.xml</include>
|
||||
<include>session_new/session.xml</include>
|
||||
<include>common/global.xml</include>
|
||||
</page>
|
@ -71,7 +71,7 @@ function endSession (closeType)
|
||||
cancelInterval();
|
||||
|
||||
// Swap GUIs to display main menu.
|
||||
switchGuiPage("page_pregame.xml");
|
||||
Engine.SwitchGuiPage("page_pregame.xml");
|
||||
break;
|
||||
case ("exit"):
|
||||
// If the player has chosen to shutdown and immediately return to operating system,
|
||||
|
72
binaries/data/mods/public/gui/session_new/input.js
Normal file
72
binaries/data/mods/public/gui/session_new/input.js
Normal file
@ -0,0 +1,72 @@
|
||||
const SDL_BUTTON_LEFT = 1;
|
||||
const SDL_BUTTON_MIDDLE = 2;
|
||||
const SDL_BUTTON_RIGHT = 3;
|
||||
// TODO: these constants should be defined somewhere else instead, in
|
||||
// case any other code wants to use them too
|
||||
|
||||
|
||||
var INPUT_NORMAL = 0;
|
||||
var INPUT_DRAGGING = 1;
|
||||
|
||||
var inputState = INPUT_NORMAL;
|
||||
|
||||
function handleInputBeforeGui(ev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Selection methods: (not all currently implemented)
|
||||
|
||||
- Left-click on entity to select (always chooses the 'closest' one if the mouse is over several).
|
||||
Includes non-controllable units (e.g. trees, enemy units).
|
||||
- Double-left-click to select entity plus all of the same type on the screen.
|
||||
- Triple-left-click to select entity plus all of the same type in the world.
|
||||
- Left-click-and-drag to select all in region. Only includes controllable units.
|
||||
- Left-click on empty space to deselect all.
|
||||
- Hotkeys to select various groups.
|
||||
- Shift plus left-click on entity to toggle selection of that unit. Only includes controllable.
|
||||
- Shift plus any other selection method above, to add them to current selection.
|
||||
|
||||
*/
|
||||
|
||||
function handleInputAfterGui(ev)
|
||||
{
|
||||
switch (inputState)
|
||||
{
|
||||
case INPUT_NORMAL:
|
||||
switch (ev.type)
|
||||
{
|
||||
case "mousebuttondown":
|
||||
if (ev.button == SDL_BUTTON_LEFT)
|
||||
{
|
||||
var ents = Engine.PickEntitiesAtPoint(ev.x, ev.y);
|
||||
if (!ents.length)
|
||||
{
|
||||
resetEntitySelection();
|
||||
return true;
|
||||
}
|
||||
|
||||
resetEntitySelection();
|
||||
addEntitySelection([ents[0]]);
|
||||
|
||||
Engine.PostNetworkCommand({"type": "spin", "entities": [ents[0]]});
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (ev.button == SDL_BUTTON_RIGHT)
|
||||
{
|
||||
var ents = getEntitySelection();
|
||||
if (ents.length)
|
||||
{
|
||||
var target = Engine.GetTerrainAtPoint(ev.x, ev.y);
|
||||
Engine.PostNetworkCommand({"type": "walk", "entities": ents, "x": target.x, "z": target.z});
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
46
binaries/data/mods/public/gui/session_new/selection.js
Normal file
46
binaries/data/mods/public/gui/session_new/selection.js
Normal file
@ -0,0 +1,46 @@
|
||||
var g_Selection = {}; // { id: 1, id: 1, ... } for each selected entity ID 'id'
|
||||
|
||||
var g_ActiveSelectionColour = { r:1, g:1, b:1, a:1 };
|
||||
var g_InactiveSelectionColour = { r:0, g:0, b:0, a:0 };
|
||||
|
||||
function toggleEntitySelection(ent)
|
||||
{
|
||||
if (g_Selection[ent])
|
||||
{
|
||||
Engine.SetEntitySelectionHighlight(ent, g_InactiveSelectionColour);
|
||||
delete g_Selection[ent];
|
||||
}
|
||||
else
|
||||
{
|
||||
Engine.SetEntitySelectionHighlight(ent, g_ActiveSelectionColour);
|
||||
g_Selection[ent] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
function addEntitySelection(ents)
|
||||
{
|
||||
for each (var ent in ents)
|
||||
{
|
||||
if (!g_Selection[ent])
|
||||
{
|
||||
Engine.SetEntitySelectionHighlight(ent, g_ActiveSelectionColour);
|
||||
g_Selection[ent] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function resetEntitySelection()
|
||||
{
|
||||
for (var ent in g_Selection)
|
||||
Engine.SetEntitySelectionHighlight(ent, g_InactiveSelectionColour);
|
||||
|
||||
g_Selection = {};
|
||||
}
|
||||
|
||||
function getEntitySelection()
|
||||
{
|
||||
var ents = [];
|
||||
for (var ent in g_Selection)
|
||||
ents.push(ent);
|
||||
return ents;
|
||||
}
|
22
binaries/data/mods/public/gui/session_new/session.js
Normal file
22
binaries/data/mods/public/gui/session_new/session.js
Normal file
@ -0,0 +1,22 @@
|
||||
function init()
|
||||
{
|
||||
updateDebug();
|
||||
}
|
||||
|
||||
function onSimulationUpdate()
|
||||
{
|
||||
updateDebug();
|
||||
}
|
||||
|
||||
function updateDebug()
|
||||
{
|
||||
var debug = getGUIObjectByName("debug");
|
||||
var simState = Engine.GetSimulationState();
|
||||
var text = "Simulation:\n" + uneval(simState);
|
||||
text += "\n\n";
|
||||
for (var ent in g_Selection)
|
||||
{
|
||||
text += "Entity "+ent+":\n" + uneval(Engine.GetEntityState(ent)) + "\n";
|
||||
}
|
||||
debug.caption = text;
|
||||
}
|
74
binaries/data/mods/public/gui/session_new/session.xml
Normal file
74
binaries/data/mods/public/gui/session_new/session.xml
Normal file
@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<objects>
|
||||
|
||||
<!--
|
||||
<script file="gui/common/functions_utility.js" />
|
||||
<script file="gui/common/functions_utility_list.js" />
|
||||
<script file="gui/common/functions_utility_object.js" />
|
||||
<script file="gui/common/functions_utility_coord.js" />
|
||||
<script file="gui/common/functions_utility_music.js" />
|
||||
<script file="gui/common/functions_utility_animation.js" />
|
||||
-->
|
||||
<script file="gui/common/functions_global_object.js" />
|
||||
<!--
|
||||
<script file="gui/common/functions_page_pregame.js" />
|
||||
<script file="gui/common/functions_page_pregame_multiplayer.js" />
|
||||
<script file="gui/common/functions_page_pregame_setup.js" />
|
||||
<script file="gui/common/functions_page_pregame_load.js" />
|
||||
<script file="gui/common/functions_page_session.js"/>
|
||||
<script file="gui/common/functions_page_session_status_pane.js" />
|
||||
<script file="gui/common/functions_page_session_status_commands.js" />
|
||||
<script file="gui/common/functions_page_session_manual.js" />
|
||||
<script file="gui/common/functions_sim_player.js"/>
|
||||
<script file="gui/common/functions_sim_entity.js"/>
|
||||
-->
|
||||
<script file="gui/session_new/session.js"/>
|
||||
<script file="gui/session_new/selection.js"/>
|
||||
<script file="gui/session_new/input.js"/>
|
||||
|
||||
<object name="sn" hotkey="session.gui.toggle">
|
||||
<action on="Load">
|
||||
initSession();
|
||||
</action>
|
||||
|
||||
<action on="SimulationUpdate">
|
||||
onSimulationUpdate();
|
||||
</action>
|
||||
|
||||
<action on="Press">
|
||||
this.hidden = !this.hidden;
|
||||
</action>
|
||||
|
||||
<!-- Exit hotkey -->
|
||||
<object name="leave" hotkey="leave">
|
||||
<action on="Press"><![CDATA[
|
||||
messageBox(400, 200, "Do you really want to quit?", "Confirmation", 0,
|
||||
["Yes", "No!"], [confirmLeave, null]);
|
||||
]]></action>
|
||||
</object>
|
||||
|
||||
<!-- Minimap -->
|
||||
<object name="minimap">
|
||||
<object name="minimapDisplay"
|
||||
style="snObject"
|
||||
type="minimap"
|
||||
size="100%-138 100%-138 100%-6 100%-6"
|
||||
/>
|
||||
|
||||
<object name="minimapBorder"
|
||||
style="snMiniMapBorder"
|
||||
type="image"
|
||||
size="100%-172 100%-172 100% 100%"
|
||||
/>
|
||||
</object>
|
||||
|
||||
<!-- Debug text -->
|
||||
<object name="debug" type="text" size="0 0 50% 100%" ghost="true" textcolor="yellow" font="console">[default debug text]</object>
|
||||
</object>
|
||||
|
||||
</objects>
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,31 @@
|
||||
function GuiInterface() {}
|
||||
|
||||
GuiInterface.prototype.Init = function() {};
|
||||
|
||||
GuiInterface.prototype.GetSimulationState = function(player)
|
||||
{
|
||||
// print("GetSimulationState "+player+"\n");
|
||||
|
||||
return { test: "simulation state" };
|
||||
};
|
||||
|
||||
GuiInterface.prototype.GetEntityState = function(player, ent)
|
||||
{
|
||||
// print("GetEntityState "+player+" "+ent+"\n");
|
||||
|
||||
var cmpPosition = Engine.QueryInterface(ent, IID_Position);
|
||||
|
||||
var ret = {
|
||||
position: cmpPosition.GetPosition()
|
||||
};
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
GuiInterface.prototype.SetSelectionHighlight = function(ent, colour)
|
||||
{
|
||||
var cmpSelectable = Engine.QueryInterface(ent, IID_Selectable);
|
||||
cmpSelectable.SetSelectionHighlight(colour);
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_GuiInterface, "GuiInterface", GuiInterface);
|
@ -0,0 +1,32 @@
|
||||
function MotionBallScripted() {}
|
||||
|
||||
MotionBallScripted.prototype.Init = function() {
|
||||
this.speedX = 0;
|
||||
this.speedZ = 0;
|
||||
};
|
||||
|
||||
MotionBallScripted.prototype.OnUpdate = function(msg) {
|
||||
var dt = msg.turnLength;
|
||||
|
||||
var cmpPos = Engine.QueryInterface(this.entity, IID_Position);
|
||||
var cmpTerrain = Engine.QueryInterface(SYSTEM_ENTITY, IID_Terrain);
|
||||
|
||||
var pos = cmpPos.GetPosition();
|
||||
|
||||
var normal = cmpTerrain.CalcNormal(pos.x, pos.z);
|
||||
|
||||
var g = 10;
|
||||
var forceX = normal.x * g;
|
||||
var forceZ = normal.z * g;
|
||||
|
||||
this.speedX += forceX * dt;
|
||||
this.speedZ += forceZ * dt;
|
||||
|
||||
var drag = 0.5; // fractional decay per second
|
||||
this.speedX *= Math.pow(drag, dt);
|
||||
this.speedZ *= Math.pow(drag, dt);
|
||||
|
||||
cmpPos.MoveTo(pos.x + this.speedX * dt, pos.z + this.speedZ * dt);
|
||||
};
|
||||
|
||||
Engine.RegisterComponentType(IID_Motion, "MotionBallScripted", MotionBallScripted);
|
@ -0,0 +1,38 @@
|
||||
var g_ComponentTypes = {};
|
||||
var g_Components = {};
|
||||
|
||||
// Emulate some engine functions:
|
||||
|
||||
Engine.RegisterComponentType = function(iid, name, ctor)
|
||||
{
|
||||
TS_ASSERT(!g_ComponentTypes[name]);
|
||||
g_ComponentTypes[name] = { iid: iid, ctor: ctor };
|
||||
}
|
||||
|
||||
Engine.QueryInterface = function(ent, iid)
|
||||
{
|
||||
if (g_Components[ent] && g_Components[ent][iid])
|
||||
return g_Components[ent][iid];
|
||||
return null;
|
||||
}
|
||||
|
||||
// TODO:
|
||||
// Engine.RegisterGlobal
|
||||
// Engine.PostMessage
|
||||
// Engine.BroadcastMessage
|
||||
|
||||
global.AddMock = function(ent, iid, mock)
|
||||
{
|
||||
if (!g_Components[ent])
|
||||
g_Components[ent] = {};
|
||||
g_Components[ent][iid] = mock;
|
||||
}
|
||||
|
||||
global.ConstructComponent = function(ent, name, template)
|
||||
{
|
||||
var cmp = new g_ComponentTypes[name].ctor();
|
||||
cmp.entity = ent;
|
||||
cmp.template = template;
|
||||
cmp.Init();
|
||||
return cmp;
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
Engine.LoadComponentScript("GuiInterface.js");
|
||||
|
||||
var cmp = ConstructComponent(SYSTEM_ENTITY, "GuiInterface");
|
||||
|
||||
TS_ASSERT_UNEVAL_EQUALS(cmp.GetSimulationState(), { test: "simulation state" });
|
||||
|
||||
AddMock(10, IID_Position, {
|
||||
GetPosition: function() {
|
||||
return {x:1, y:2, z:3};
|
||||
},
|
||||
});
|
||||
|
||||
var state = cmp.GetEntityState(-1, 10);
|
||||
TS_ASSERT_UNEVAL_EQUALS(state, { position: {x:1, y:2, z:3} });
|
30
binaries/data/mods/public/simulation/helpers/Commands.js
Normal file
30
binaries/data/mods/public/simulation/helpers/Commands.js
Normal file
@ -0,0 +1,30 @@
|
||||
function ProcessCommand(player, cmd)
|
||||
{
|
||||
// print("command: " + player + " " + uneval(cmd) + "\n");
|
||||
|
||||
switch (cmd.type)
|
||||
{
|
||||
case "spin":
|
||||
for each (var ent in cmd.entities)
|
||||
{
|
||||
var pos = Engine.QueryInterface(ent, IID_Position);
|
||||
if (! pos)
|
||||
continue;
|
||||
pos.SetYRotation(pos.GetRotation().y + 1);
|
||||
}
|
||||
break;
|
||||
case "walk":
|
||||
for each (var ent in cmd.entities)
|
||||
{
|
||||
var motion = Engine.QueryInterface(ent, IID_UnitMotion);
|
||||
if (! motion)
|
||||
continue;
|
||||
motion.MoveToPoint(cmd.x, cmd.z);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
print("Ignoring unrecognised command type '" + cmd.type + "'\n");
|
||||
}
|
||||
}
|
||||
|
||||
Engine.RegisterGlobal("ProcessCommand", ProcessCommand);
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_1x1.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_2x2.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_3x3.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_3x6.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_4x4.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_5x5.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_6x6.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/plot_field_found.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_foundation">
|
||||
<VisualActor>
|
||||
<Actor>structures/fndn_theatron.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/bear.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/boar.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_passive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/chicken.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_skittish">
|
||||
<VisualActor>
|
||||
<Actor>fauna/deer.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/elephant.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/elephant_african_bush.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/elephant_african_baby.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/elephant_african_forest.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_skittish">
|
||||
<VisualActor>
|
||||
<Actor>fauna/gazelle.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_herd_passive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/goat.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_wild_violent">
|
||||
<VisualActor>
|
||||
<Actor>fauna/lion.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_herd_passive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/muskox.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_herd_passive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/pig1.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_skittish">
|
||||
<VisualActor>
|
||||
<Actor>fauna/rabbit1.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_herd_passive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/sheep1.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_wild_violent">
|
||||
<VisualActor>
|
||||
<Actor>fauna/tiger.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_defensive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/walrus.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_wild_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/wolf.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_wild_aggressive">
|
||||
<VisualActor>
|
||||
<Actor>fauna/wolf_snow.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_fauna_hunt_skittish">
|
||||
<VisualActor>
|
||||
<Actor>fauna/zebra.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_bush_berry">
|
||||
<VisualActor>
|
||||
<Actor>props/flora/foliagebush.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>props/flora/bush_tempe_a.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/aleppo_pine.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/baobab.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/carob.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/palm_date.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/european_beech.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/palm_medit_fan_palm.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/oak.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/oak_large.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/pine.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/pine_w.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/poplar.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/lumbardypoplar.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_flora_tree">
|
||||
<VisualActor>
|
||||
<Actor>flora/trees/palm_senegal_date.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_mineral">
|
||||
<VisualActor>
|
||||
<Actor>geology/metalmine_alpine.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_mineral">
|
||||
<VisualActor>
|
||||
<Actor>geology/metalmine_desert_small.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_mineral">
|
||||
<VisualActor>
|
||||
<Actor>geology/metalmine_granite_greek.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_mineral">
|
||||
<VisualActor>
|
||||
<Actor>geology/metalmine_mediterranean.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_mineral">
|
||||
<VisualActor>
|
||||
<Actor>geology/metalmine_granite_temperate.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_mineral">
|
||||
<VisualActor>
|
||||
<Actor>geology/metalmine_tropic.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_alpine_a.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_desert_small.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_granite_greek.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/light.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_mediterranean.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_savanna_small.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_granite.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_gaia_geo_rock">
|
||||
<VisualActor>
|
||||
<Actor>geology/stonemine_tropic.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_gaia_settlement">
|
||||
<VisualActor>
|
||||
<Actor>structures/wrld_settlement_1.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_unit_super_infantry">
|
||||
<VisualActor>
|
||||
<Actor>temp/mace_su1_hypaspist.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_military_barracks">
|
||||
<VisualActor>
|
||||
<Actor>structures/celts/barracks.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_civic_civil_centre">
|
||||
<VisualActor>
|
||||
<Actor>structures/celts/civil_centre.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user