1
0
forked from 0ad/0ad
0ad/binaries/data/mods/official/gui/test/hello.xml

161 lines
6.5 KiB
XML
Executable File

<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE objects SYSTEM "../gui.dtd">
<objects>
<script file="gui/test/test.js"><![CDATA[
writeConsole("GUI file loading");
dudes = 0;
function MakeDude(x, y, z) {
DudeSpawnPoint = new Vector3D(x, y, z);
new Entity(getEntityTemplate("Prometheus Dude"), DudeSpawnPoint, 1.0);
writeConsole("Dude created at " + DudeSpawnPoint + "; " + ++dudes + " Dudes created this way." );
}
function selected()
{
if( selection.length > 0 )
return( selection[0] );
return( null );
}
function updateOrbital()
{
if( !getGUIObjectByName( 'arena' ).hidden )
{
g_ballx += g_balldx;
g_bally += g_balldy;
if (g_ballx > 600) {
g_balldx *= -0.9;
g_ballx = 600-(g_ballx-600);
}
else if (g_ballx < 0) {
g_balldx *= -0.9;
g_ballx = -g_ballx;
}
if (g_bally > 400) {
g_balldy *= -0.9;
g_bally = 400-(g_bally-400);
}
else if (g_bally < 0) {
g_balldy *= -0.9;
g_bally = -g_bally;
}
// Gravitate towards the mouse
var vect_x = g_ballx-g_mousex;
var vect_y = g_bally-g_mousey;
var dsquared = vect_x*vect_x + vect_y*vect_y;
if (dsquared < 1000) dsquared = 1000;
var force = 10000.0 / dsquared;
var mag = Math.sqrt(dsquared);
vect_x /= mag; vect_y /= mag;
g_balldx -= force * vect_x;
g_balldy -= force * vect_y;
var ball = getGUIObjectByName('ball');
var r=5;
ball.size = new GUISize(g_ballx-r, g_bally-r, g_ballx+r, g_bally+r);
}
}
writeConsole("Made MakeDude " + MakeDude);
]]></script>
<object type="button" name="exit_button" sprite="exit_sprite" size="100%-18 2 100%-2 18" z="100" hidden="false">
<action on="Load"><![CDATA[
writeConsole("(GUI) Exit button successfully loaded.");
]]></action>
<action on="Press"><![CDATA[
exit();
]]></action>
</object>
<object type="button" name="Start_Game_Button" sprite="sprite1" sprite-over="sprite1-over" sprite-pressed="sprite1-pressed" size="10%+128 80% 10%+256 80%+20" z="100" textcolor="0 0 0">
Start game
<action on="Press">
startGame();
</action>
</object>
<object type="button" name="End_Game_Button" sprite="sprite1" sprite-over="sprite1-over" sprite-pressed="sprite1-pressed" size="10%+128 80%+22 10%+256 80%+42" z="100" textcolor="0 0 0">
End game
<action on="Press">
endGame();
</action>
</object>
<object type="button" name="Dude_Production_Button" sprite="sprite1" sprite-over="sprite1-over" sprite-pressed="sprite1-pressed" size="10% 80% 10%+128 80%+20" z="100" textcolor="0 0 0">
Make dude
<action on="Press">
MakeDude(15, 0, 15);
</action>
</object>
<object type="button" name="Dude_Production_Button_random" hotkey="dudemachine.random" sprite="sprite1" sprite-over="sprite1-over" sprite-pressed="sprite1-pressed" size="10% 80%+22 10%+128 80%+42" z="100" textcolor="0 0 0">
Make random dude
<action on="Press"><![CDATA[
// Generate random numbers
rand_x = Math.round(Math.random()*100);
rand_y = Math.round(Math.random()*100);
rand_z = Math.round(Math.random()*100);
MakeDude(rand_x, rand_y, rand_z);
]]></action>
</object>
<object type="button" name="arena" sprite="sprite1" sprite-over="sprite1-over" size="0 0 600 400" z="100" hidden="true" textcolor="127 0 0">
<!-- stress-test the text renderer -->
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer nisl libero, ornare sit amet, feugiat sit amet, pretium vitae, tellus. Etiam tempor est vel neque rutrum congue. Quisque sed elit. Suspendisse vel tellus consectetuer lacus blandit varius. Etiam pretium malesuada turpis. Pellentesque urna justo, facilisis sodales, ultrices eget, pretium vestibulum, nibh. Mauris vulputate. Aliquam luctus feugiat felis. In venenatis, nulla eu suscipit auctor, turpis purus tincidunt arcu, non mattis pede urna nec est. Quisque sodales dolor sit amet odio. Suspendisse rutrum tellus ut sem. Vestibulum consequat est.
Sed nec quam sit amet mi blandit ornare. Phasellus condimentum varius urna. Suspendisse velit leo, feugiat sit amet, mattis quis, adipiscing placerat, enim. Vivamus dapibus. Fusce porta felis ac diam. Vestibulum mollis augue non quam. Vestibulum id sapien. Donec ornare felis non eros. Curabitur eget dui. Suspendisse potenti. Phasellus ultrices, sem ac consequat aliquet, felis tellus mollis dui, vitae imperdiet mi arcu eu augue. Duis libero neque, tristique eu, pellentesque et, facilisis sit amet, est. Vestibulum vehicula aliquam enim. Maecenas hendrerit nunc in orci sagittis ullamcorper. Donec cursus, sapien eget luctus tincidunt, mi ante accumsan leo, non fermentum diam ipsum ac tellus. Pellentesque ipsum sapien, mollis a, viverra eget, malesuada id, est. Sed nec tellus nec velit posuere euismod. Aenean turpis. Donec eu nibh. Fusce in libero.
Nunc bibendum metus a tellus. Nulla lorem metus, convallis id, lobortis eu, elementum ut, tellus. Suspendisse et risus sit amet arcu volutpat volutpat. Maecenas vel tortor id lectus suscipit suscipit. Maecenas condimentum ipsum eu augue. Nunc nisl. Etiam libero augue, gravida ac, imperdiet vel, sollicitudin ac, dui. Sed ullamcorper faucibus libero. Etiam egestas tellus vel justo. Etiam venenatis metus in pede. Pellentesque quam tellus, elementum eu, elementum ut, auctor a, velit. Suspendisse potenti. Quisque fermentum justo ut pede. Donec adipiscing, dolor ut consequat eleifend, neque nunc iaculis arcu, et nonummy elit tortor sed enim. Cras ultricies nunc ac massa. Ut turpis massa, sodales et, tincidunt vel, elementum eu, dolor.
<action on="Load"><![CDATA[
g_ballx = 300;
g_bally = 200;
g_balldx = 0;
g_balldy = 0;
g_mousex = 0;
g_mousey = 0;
setInterval( updateOrbital, 100 );
]]></action>
<action on="MouseOver"><![CDATA[
g_mousex = mouse.x;
g_mousey = mouse.y;
]]></action>
</object>
<object type="button" name="ball" sprite="sprite1" size="0 0 1 1" z="120" hotkey="orbital.cheat">
<action on="Press"><![CDATA[
writeConsole(mouse);
g_balldx = 0;
g_balldy = 0;
]]></action>
</object>
<object type="button" sprite="sprite1" size="592 2 608 18" z="200" hotkey="orbital.toggle"> |v|
<action on="Press"><![CDATA[
var arena = getGUIObjectByName('arena');
arena.hidden = !arena.hidden;
this.caption = arena.hidden ? "|v|" : "|^|";
]]></action>
</object>
</objects>