added blocks, templates, unifcation, basic preview pane
This commit is contained in:
commit
224f4c46c5
|
@ -0,0 +1,175 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<assets>
|
||||
<Configs name="configs">
|
||||
<Config>Configs\Default</Config>
|
||||
</Configs>
|
||||
<NewExtensions/>
|
||||
<sounds name="sound"/>
|
||||
<sprites name="sprites">
|
||||
<sprite>sprites\pixel</sprite>
|
||||
<sprites name="placeholders">
|
||||
<sprite>sprites\placeholder\placeholder</sprite>
|
||||
<sprite>sprites\placeholder\placeholderBlock</sprite>
|
||||
<sprite>sprites\placeholder\placeholderInputAnchor</sprite>
|
||||
<sprite>sprites\placeholder\placeholderInputAnchorWhite</sprite>
|
||||
<sprite>sprites\placeholder\placeholderOutputAnchor</sprite>
|
||||
<sprite>sprites\placeholder\placeholderOutputAnchorWhite</sprite>
|
||||
<sprite>sprites\placeholder\placeholderVariableType</sprite>
|
||||
<sprite>sprites\placeholder\placeholderMonoType</sprite>
|
||||
<sprite>sprites\placeholder\placeholderFunctionType</sprite>
|
||||
<sprite>sprites\placeholder\placeholderTypeTrait</sprite>
|
||||
<sprite>sprites\placeholder\placeholderParameter</sprite>
|
||||
<sprite>sprites\placeholder\placeholderError</sprite>
|
||||
<sprite>sprites\placeholder\placeholderLine</sprite>
|
||||
<sprite>sprites\placeholder\placeholderOrderLink</sprite>
|
||||
<sprite>sprites\placeholder\placeholderPane</sprite>
|
||||
<sprite>sprites\placeholder\placeholderOneUse</sprite>
|
||||
</sprites>
|
||||
<sprites name="masks">
|
||||
<sprite>sprites\mask\maskConnection</sprite>
|
||||
</sprites>
|
||||
</sprites>
|
||||
<backgrounds name="background"/>
|
||||
<paths name="paths"/>
|
||||
<scripts name="scripts">
|
||||
<scripts name="debug">
|
||||
<script>scripts\debug\sceneNodeToString.gml</script>
|
||||
<script>scripts\debug\typesToDot.gml</script>
|
||||
</scripts>
|
||||
<scripts name="generic">
|
||||
<script>scripts\generic\assert.gml</script>
|
||||
<script>scripts\generic\assertInstanceof.gml</script>
|
||||
<script>scripts\generic\cancelTouchEvent.gml</script>
|
||||
<script>scripts\generic\delete.gml</script>
|
||||
<script>scripts\generic\format.gml</script>
|
||||
<script>scripts\generic\getInstObjName.gml</script>
|
||||
<script>scripts\generic\hermite.gml</script>
|
||||
<script>scripts\generic\instanceof.gml</script>
|
||||
<script>scripts\generic\new.gml</script>
|
||||
<script>scripts\generic\performAs.gml</script>
|
||||
<script>scripts\generic\string_base.gml</script>
|
||||
</scripts>
|
||||
<scripts name="graph">
|
||||
<script>scripts\graph\addLink.gml</script>
|
||||
<script>scripts\graph\removeLink.gml</script>
|
||||
<script>scripts\graph\replaceLink.gml</script>
|
||||
</scripts>
|
||||
<scripts name="scene">
|
||||
<script>scripts\scene\layout.gml</script>
|
||||
<script>scripts\scene\setMargin.gml</script>
|
||||
<script>scripts\scene\setPadding.gml</script>
|
||||
</scripts>
|
||||
<scripts name="set">
|
||||
<script>scripts\set\ds_set_add_all.gml</script>
|
||||
<script>scripts\set\ds_set_add.gml</script>
|
||||
<script>scripts\set\ds_set_choose.gml</script>
|
||||
<script>scripts\set\ds_set_clear.gml</script>
|
||||
<script>scripts\set\ds_set_copy.gml</script>
|
||||
<script>scripts\set\ds_set_create.gml</script>
|
||||
<script>scripts\set\ds_set_delete.gml</script>
|
||||
<script>scripts\set\ds_set_destroy.gml</script>
|
||||
<script>scripts\set\ds_set_empty.gml</script>
|
||||
<script>scripts\set\ds_set_exists.gml</script>
|
||||
<script>scripts\set\ds_set_first.gml</script>
|
||||
<script>scripts\set\ds_set_is_disjoint.gml</script>
|
||||
<script>scripts\set\ds_set_is_equal.gml</script>
|
||||
<script>scripts\set\ds_set_is_subset.gml</script>
|
||||
<script>scripts\set\ds_set_last.gml</script>
|
||||
<script>scripts\set\ds_set_next.gml</script>
|
||||
<script>scripts\set\ds_set_previous.gml</script>
|
||||
<script>scripts\set\ds_set_size.gml</script>
|
||||
</scripts>
|
||||
<scripts name="treenode">
|
||||
<script>scripts\treenode\addChild.gml</script>
|
||||
<script>scripts\treenode\hasChild.gml</script>
|
||||
<script>scripts\treenode\hasParentNode.gml</script>
|
||||
<script>scripts\treenode\removeChild.gml</script>
|
||||
</scripts>
|
||||
<scripts name="typing">
|
||||
<script>scripts\typing\copyType.gml</script>
|
||||
<script>scripts\typing\freshTypes.gml</script>
|
||||
<script>scripts\typing\getRandomType.gml</script>
|
||||
<script>scripts\typing\removeType.gml</script>
|
||||
<script>scripts\typing\setParameter.gml</script>
|
||||
<script>scripts\typing\testUnify.gml</script>
|
||||
<script>scripts\typing\unify.gml</script>
|
||||
<script>scripts\typing\unifyAnchors.gml</script>
|
||||
</scripts>
|
||||
<scripts name="blocks">
|
||||
<script>scripts\blocks\blockFromTemplate.gml</script>
|
||||
<script>scripts\blocks\createBlock.gml</script>
|
||||
<script>scripts\blocks\createTypeInstance.gml</script>
|
||||
<script>scripts\blocks\detachConnectionEnd.gml</script>
|
||||
<script>scripts\blocks\getBlockCluster.gml</script>
|
||||
<script>scripts\blocks\getConnectionsForCluster.gml</script>
|
||||
<script>scripts\blocks\layoutCluster.gml</script>
|
||||
</scripts>
|
||||
</scripts>
|
||||
<objects name="objects">
|
||||
<objects name="generic">
|
||||
<objects name="scene">
|
||||
<object>objects\generic\scene\SceneNode</object>
|
||||
<object>objects\generic\scene\SpritelessSceneNode</object>
|
||||
</objects>
|
||||
<object>objects\generic\Draggable</object>
|
||||
<object>objects\generic\Error</object>
|
||||
<object>objects\generic\MaximizeView</object>
|
||||
<object>objects\generic\MultitouchEventGenerator</object>
|
||||
<object>objects\generic\OrderedTree</object>
|
||||
</objects>
|
||||
<objects name="types">
|
||||
<object>objects\types\ConcreteType</object>
|
||||
<object>objects\types\FreeType</object>
|
||||
<object>objects\types\FunctionType</object>
|
||||
<object>objects\types\Parametric</object>
|
||||
<object>objects\types\Trait</object>
|
||||
<object>objects\types\Type</object>
|
||||
<object>objects\types\TypeCon1Link</object>
|
||||
<object>objects\types\TypeConLink</object>
|
||||
</objects>
|
||||
<objects name="scene">
|
||||
<objects name="types">
|
||||
<object>objects\scene\types\ConcreteTypeInstance</object>
|
||||
<object>objects\scene\types\FreeTypeInstance</object>
|
||||
<object>objects\scene\types\FunctionTypeInstance</object>
|
||||
<object>objects\scene\types\ParametricInstance</object>
|
||||
<object>objects\scene\types\TraitInstance</object>
|
||||
<object>objects\scene\types\TypeCon1Instance</object>
|
||||
<object>objects\scene\types\TypeConInstance</object>
|
||||
</objects>
|
||||
<objects name="blocks">
|
||||
<object>objects\scene\blocks\Anchor</object>
|
||||
<object>objects\scene\blocks\Block</object>
|
||||
<object>objects\scene\blocks\Connection</object>
|
||||
<object>objects\scene\blocks\ConnectionDrain</object>
|
||||
<object>objects\scene\blocks\ConnectionEnd</object>
|
||||
<object>objects\scene\blocks\ConnectionSource</object>
|
||||
<object>objects\scene\blocks\InputAnchor</object>
|
||||
<object>objects\scene\blocks\OutputAnchor</object>
|
||||
</objects>
|
||||
<object>objects\scene\PreviewPane</object>
|
||||
</objects>
|
||||
<objects name="blueprint">
|
||||
<object>objects\blueprint\AnchorTemplate</object>
|
||||
<object>objects\blueprint\BlockTemplate</object>
|
||||
<object>objects\blueprint\HigherOrderLink</object>
|
||||
<object>objects\blueprint\InputTemplate</object>
|
||||
<object>objects\blueprint\OneUse</object>
|
||||
<object>objects\blueprint\OutputTemplate</object>
|
||||
<object>objects\blueprint\ParameterLink</object>
|
||||
</objects>
|
||||
<object>objects\Debug</object>
|
||||
<object>objects\TypeParser</object>
|
||||
</objects>
|
||||
<rooms name="rooms">
|
||||
<room>rooms\room0</room>
|
||||
</rooms>
|
||||
<help>
|
||||
<rtf>help.rtf</rtf>
|
||||
</help>
|
||||
<TutorialState>
|
||||
<IsTutorial>0</IsTutorial>
|
||||
<TutorialName></TutorialName>
|
||||
<TutorialPage>0</TutorialPage>
|
||||
</TutorialState>
|
||||
</assets>
|
|
@ -0,0 +1,4 @@
|
|||
{\rtf1\ansi\ansicpg1252\deff0\deflang1043{\fonttbl{\f0\fnil\fcharset0 Arial;}}
|
||||
{\colortbl ;\red0\green0\blue0;}
|
||||
\viewkind4\uc1\pard\cf1\fs24\par
|
||||
}
|
|
@ -0,0 +1,358 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName><undefined></spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Build object tree
|
||||
objectList = ds_list_create();
|
||||
objectNames = ds_map_create();
|
||||
var objects = ds_priority_create();
|
||||
|
||||
for (var obj = 0; obj < 200; obj++)
|
||||
if (object_exists(obj)) {
|
||||
var prio = obj;
|
||||
for (var parent = object_get_parent(obj); object_exists(parent); parent = object_get_parent(parent))
|
||||
prio = parent+prio/200;
|
||||
|
||||
ds_priority_add(objects, obj, prio);
|
||||
}
|
||||
|
||||
repeat (ds_priority_size(objects)) {
|
||||
var obj = ds_priority_delete_min(objects);
|
||||
|
||||
ds_list_add(objectList, obj);
|
||||
|
||||
var dep = 0;
|
||||
for (var parent = object_get_parent(obj); object_exists(parent); parent = object_get_parent(parent))
|
||||
dep++;
|
||||
|
||||
objectNames[?obj] = string_repeat(" ", dep)+object_get_name(obj);
|
||||
}
|
||||
|
||||
ds_priority_destroy(objects);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>ds_list_destroy(objectList);
|
||||
ds_map_destroy(objectNames);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="2">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>visible</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>DEBUG</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="2">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Initialize DEBUG value
|
||||
globalvar DEBUG;
|
||||
DEBUG = false;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="64">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Draw instance counts
|
||||
var objs = ds_map_create();
|
||||
|
||||
with (all)
|
||||
if (ds_map_exists(objs, self.object_index))
|
||||
objs[?self.object_index]++;
|
||||
else
|
||||
objs[?self.object_index] = 1;
|
||||
|
||||
str = "";
|
||||
|
||||
for (var i = 0; i < ds_list_size(objectList); i++) {
|
||||
var obj = objectList[|i];
|
||||
if (ds_map_exists(objs, obj))
|
||||
str += objectNames[?obj]+": "+string(objs[?obj])+"#";
|
||||
}
|
||||
|
||||
ds_map_destroy(objs);
|
||||
|
||||
draw_text(x, y, str);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Draw sprites of invisible objects
|
||||
with (all)
|
||||
if (!self.visible && sprite_exists(self.sprite_index))
|
||||
draw_self();
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///highlight ParameterLink endpoints
|
||||
var col = draw_get_colour();
|
||||
draw_set_colour(c_red);
|
||||
|
||||
with (ParameterLink)
|
||||
if (collision_point(mouse_x, mouse_y, id, true, false) != noone) {
|
||||
with (self.source)
|
||||
draw_rectangle(bbox_left, bbox_top, bbox_right, bbox_bottom, true);
|
||||
with (self.drain)
|
||||
draw_rectangle(bbox_left, bbox_top, bbox_right, bbox_bottom, true);
|
||||
}
|
||||
|
||||
draw_set_colour(col);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="9" enumb="117">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>DEBUG</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>!DEBUG</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="9" enumb="116">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>331</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_restart_game</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="9" enumb="67">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>keyboard_check(vk_control)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///copy type DOT to clipboard
|
||||
clipboard_set_text(typesToDot());
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="9" enumb="27">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>332</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_end_game</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,233 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName><undefined></spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>typeMap</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_map_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Create built-in types
|
||||
root = new(TypeConLink);
|
||||
|
||||
//functor = new(Trait);
|
||||
function = new(TypeCon1Link);
|
||||
function.type = new(FunctionType);
|
||||
addLink(root, function);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Destroy typeMap
|
||||
ds_map_destroy(typeMap);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="12">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Create free types
|
||||
var types = ds_map_create();
|
||||
|
||||
with (FunctionType)
|
||||
if (id != other.function.type)
|
||||
other.typeMap[?id] = other.function;
|
||||
|
||||
with (Parametric)
|
||||
if (self.object_index == Parametric) {
|
||||
var type = new(FreeType);
|
||||
types[?id] = new(TypeCon1Link);
|
||||
types[?id].type = type;
|
||||
}
|
||||
|
||||
with (ParameterLink) {
|
||||
if (!instanceof(self.source, Trait))
|
||||
other.typeMap[?self.drain] = types[?self.source];
|
||||
}
|
||||
|
||||
with (ParameterLink) {
|
||||
if (instanceof(self.source, Trait)) {
|
||||
var t1 = types[?self.drain];
|
||||
var t2 = t1.type;
|
||||
var t3 = t2.traits;
|
||||
ds_set_add(t3, self.source);
|
||||
}
|
||||
}
|
||||
|
||||
ds_map_destroy(types);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Call User 2 for all block templates
|
||||
with (BlockTemplate) {
|
||||
event_user(2);
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="4">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Call User 2
|
||||
event_user(2);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Create preview blocks for all templates
|
||||
with (BlockTemplate) {
|
||||
var preview = blockFromTemplate(id);
|
||||
addChild(PreviewPane.id, preview);
|
||||
}
|
||||
|
||||
layout(PreviewPane);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,106 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>con</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="12">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Find type root and call User 2 recursively
|
||||
var links = ds_priority_create();
|
||||
var block = noone;
|
||||
|
||||
with (BlockTemplate)
|
||||
if (place_meeting(self.x, self.y, other))
|
||||
block = id;
|
||||
|
||||
with (HigherOrderLink)
|
||||
if (place_meeting(self.x, self.y, block))
|
||||
if (instance_nearest(self.x, self.y, AnchorTemplate) == other.id)
|
||||
ds_priority_add(links, id, self.x);
|
||||
|
||||
if (ds_priority_empty(links))
|
||||
with (Type)
|
||||
if (place_meeting(self.x, self.y, block))
|
||||
if (instance_nearest(self.x, self.y, AnchorTemplate) == other.id)
|
||||
ds_priority_add(links, id, self.x);
|
||||
|
||||
assert(!ds_priority_empty(links), "No type found for anchor "+getInstObjName(id));
|
||||
|
||||
var root = ds_priority_delete_min(links);
|
||||
ds_priority_destroy(links);
|
||||
|
||||
with (root)
|
||||
event_user(2);
|
||||
|
||||
if (instanceof(root, Type)) {
|
||||
with (TypeParser)
|
||||
other.con = self.typeMap[?root];
|
||||
}
|
||||
else
|
||||
self.con = root.con;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,178 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderBlock</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>2</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>inputs</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_list_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>outputs</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_list_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>allowedUses</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>1</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Count number of allowed uses of this template
|
||||
var uses = 0;
|
||||
|
||||
with (OneUse) {
|
||||
if (place_meeting(x, y, other))
|
||||
uses++;
|
||||
}
|
||||
|
||||
if (uses > 0)
|
||||
allowedUses = uses;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="12">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Find anchors, call User 2 recursively, attach inputs and outputs
|
||||
var anchors = ds_priority_create();
|
||||
|
||||
with (InputTemplate) {
|
||||
if (place_meeting(self.x, self.y, other))
|
||||
ds_priority_add(anchors, id, self.x);
|
||||
}
|
||||
|
||||
with (OutputTemplate) {
|
||||
if (place_meeting(self.x, self.y, other))
|
||||
ds_priority_add(anchors, id, self.x);
|
||||
}
|
||||
|
||||
repeat (ds_priority_size(anchors)) {
|
||||
var anchor = ds_priority_delete_min(anchors);
|
||||
with (anchor)
|
||||
event_user(2);
|
||||
|
||||
with (TypeParser)
|
||||
addLink(self.root, anchor.con);
|
||||
|
||||
if (instanceof(anchor, InputTemplate))
|
||||
ds_list_add(self.inputs, anchor.con);
|
||||
else
|
||||
ds_list_add(self.outputs, anchor.con);
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,100 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderOrderLink</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>1</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>con</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>new(TypeConLink)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="12">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Find con arguments, call User 2 recursively, build con
|
||||
var links = ds_priority_create();
|
||||
var myCon = self.con;
|
||||
|
||||
with (Type)
|
||||
if (place_meeting(self.x, self.y, other))
|
||||
ds_priority_add(links, id, self.x);
|
||||
|
||||
with (HigherOrderLink)
|
||||
if (id != other.id && self.x > other.x && place_meeting(self.x, self.y, other))
|
||||
ds_priority_add(links, id, self.x);
|
||||
|
||||
repeat (ds_priority_size(links)) {
|
||||
with (ds_priority_delete_min(links)) {
|
||||
event_user(2);
|
||||
|
||||
if (instanceof(id, Type)) {
|
||||
var t = id;
|
||||
with (TypeParser)
|
||||
addLink(myCon, self.typeMap[?t]);
|
||||
}
|
||||
else
|
||||
addLink(other.con, self.con);
|
||||
}
|
||||
}
|
||||
|
||||
ds_priority_destroy(links);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderInputAnchor</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>AnchorTemplate</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderOneUse</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderOutputAnchor</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>AnchorTemplate</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,74 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderLine</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>1</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>source</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>collision_point(x, y, Parametric, false, true)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>drain</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>collision_point(x+lengthdir_x(sprite_width, image_angle), y+lengthdir_y(sprite_width, image_angle), Parametric, false, true)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,508 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName><undefined></spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>-2</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="56">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>4</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>-2</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="50">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>4</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>xoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_x-dx</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>yoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_y-dy</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="4">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>4</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>1</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>dx</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_x-xoffset</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>dy</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_y-yoffset</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderError</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,226 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName><undefined></spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>-1</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>109</id>
|
||||
<kind>0</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_move_to</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>view_wview[0]</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>view_hview[0]</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="76">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>window_get_width() > 0 and window_get_height() > 0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>109</id>
|
||||
<kind>0</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_move_to</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>window_get_width()</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>window_get_height()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>x == xprevious and y == yprevious</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Set view and application surface to the window size
|
||||
view_wview[0] = x;
|
||||
view_hview[0] = y;
|
||||
view_wport[0] = x;
|
||||
view_hport[0] = y;
|
||||
|
||||
surface_resize(application_surface, x, y);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="65">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>109</id>
|
||||
<kind>0</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_move_to</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>window_get_width()</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>window_get_height()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Set view and application surface to the window size
|
||||
view_wview[0] = x;
|
||||
view_hview[0] = y;
|
||||
view_wport[0] = x;
|
||||
view_hport[0] = y;
|
||||
|
||||
surface_resize(application_surface, x, y);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,274 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName><undefined></spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>-1</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>global.touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>-1</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>global.touch_x</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>global.touch_y</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>Remove if globalvar is deprecated and use global. qualifier in your project.</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Register touch_ variables as globalvars
|
||||
globalvar touch_id, touch_x, touch_y;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="1">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Copy mouse_x, mouse_y to touch_x, touch_y
|
||||
global.touch_x = mouse_x;
|
||||
global.touch_y = mouse_y;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Fire mouse events for multiple mouse devices
|
||||
for (var mid = 0; mid <= 4; mid++) {
|
||||
global.touch_x = device_mouse_x(mid);
|
||||
global.touch_y = device_mouse_y(mid);
|
||||
|
||||
//Perform button press
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button_pressed(mid, mb_left))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_left_press);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_left_press);
|
||||
}
|
||||
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button_pressed(mid, mb_right))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_right_press);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_right_press);
|
||||
}
|
||||
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button_pressed(mid, mb_middle))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_middle_press);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_middle_press);
|
||||
}
|
||||
|
||||
//Perform button hold
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button(mid, mb_left))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_left_button);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_left_button);
|
||||
}
|
||||
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button(mid, mb_right))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_right_button);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_right_button);
|
||||
}
|
||||
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button(mid, mb_middle))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_middle_button);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_middle_button);
|
||||
}
|
||||
|
||||
//Perform button release
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button_released(mid, mb_left))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_left_release);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_left_release);
|
||||
}
|
||||
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button_released(mid, mb_right))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_right_release);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_right_release);
|
||||
}
|
||||
|
||||
global.touch_id = mid;
|
||||
if (device_mouse_check_button_released(mid, mb_middle))
|
||||
with (all) {
|
||||
event_perform(ev_mouse, ev_global_middle_release);
|
||||
if (collision_point(device_mouse_x(mid), device_mouse_y(mid), id, true, false))
|
||||
event_perform(ev_mouse, ev_middle_release);
|
||||
}
|
||||
}
|
||||
|
||||
global.touch_id = -1;
|
||||
global.touch_x = 0;
|
||||
global.touch_y = 0;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,122 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName><undefined></spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>Defines the attributes `parent` and `children`. Children are implemented as an ordered list.</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>parent</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>children</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_list_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Clear all children's parent and remove the children list
|
||||
for (i = 0; i < ds_list_size(children); i++)
|
||||
children[|i].parent = noone;
|
||||
|
||||
ds_list_destroy(children);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,685 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>OrderedTree</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>Base class for SceneNodes. Defines size, offset, margins, padding alignment.</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>width</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>sprite_width</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>sprite_height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>xoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>x</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>yoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>y</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>halign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>fa_left</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>valign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>fa_top</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>setMargin</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>setPadding</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Destroy children and children list
|
||||
while (!ds_list_empty(children))
|
||||
with (children[|0])
|
||||
instance_destroy();
|
||||
|
||||
ds_list_destroy(children);
|
||||
|
||||
if (instance_exists(parent))
|
||||
removeChild(parent, id);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="11">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>Recalculate position event</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>default implementation: set position from local offset and call children</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>visible</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent.visible</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Calculate absolute position from offsets
|
||||
x = xoffset+paddingLeft;
|
||||
y = yoffset+paddingTop;
|
||||
|
||||
if (instance_exists(parent)) {
|
||||
x += parent.x;
|
||||
y += parent.y;
|
||||
|
||||
switch (parent.halign) {
|
||||
case fa_center:
|
||||
x -= width/2;
|
||||
break;
|
||||
case fa_right:
|
||||
x -= width;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (parent.valign) {
|
||||
case fa_middle:
|
||||
y += parent.height/2;
|
||||
y -= height/2;
|
||||
break;
|
||||
case fa_bottom:
|
||||
y += parent.height;
|
||||
y -= height;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Call children
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
with (children[|i]) {
|
||||
event_user(1);
|
||||
|
||||
/* switch (other.halign) {
|
||||
case fa_center:
|
||||
x += other.width/2;
|
||||
break;
|
||||
case fa_right:
|
||||
x += other.width;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (other.valign) {
|
||||
case fa_middle:
|
||||
y += other.height/2;
|
||||
break;
|
||||
case fa_bottom:
|
||||
y += other.height;
|
||||
break;
|
||||
}*/
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>Recalculate dimensions event</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>default implementation: call children</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Call children
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
with (children[|i])
|
||||
event_user(0);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="64">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>DEBUG</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Debug draw outline of SceneNode
|
||||
var alp = draw_get_alpha();
|
||||
var col = draw_get_colour();
|
||||
var x2, y2;
|
||||
|
||||
switch (halign) {
|
||||
case fa_left:
|
||||
x2 = x;
|
||||
break;
|
||||
case fa_center:
|
||||
x2 = x-width/2;
|
||||
break;
|
||||
case fa_right:
|
||||
x2 = x-width;
|
||||
break;
|
||||
default:
|
||||
show_error("Unknown h-alignment "+string(halign)+" in "+object_get_name(object_index)+"@"+string(id)+".", true);
|
||||
}
|
||||
|
||||
switch (valign) {
|
||||
case fa_top:
|
||||
y2 = y;
|
||||
break;
|
||||
case fa_middle:
|
||||
y2 = y-height/2;
|
||||
break;
|
||||
case fa_bottom:
|
||||
y2 = y-height;
|
||||
break;
|
||||
default:
|
||||
show_error("Unknown v-alignment "+string(valign)+" in "+object_get_name(object_index)+"@"+string(id)+".", true);
|
||||
}
|
||||
|
||||
draw_set_colour(make_colour_hsv(256/7.5*object_index, 255, 255));
|
||||
draw_set_alpha(0.3);
|
||||
draw_rectangle(x2, y2, x2+width, y2+height, false);
|
||||
draw_set_alpha(0.7);
|
||||
draw_rectangle(x2, y2, x2+width, y2+height, true);
|
||||
|
||||
if (instance_exists(parent))
|
||||
draw_line(x, y, parent.x, parent.y);
|
||||
|
||||
draw_set_alpha(alp);
|
||||
draw_set_colour(col);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,328 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>pixel</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>For rectangular SceneNodes that have no sensible sprite but require mouse events.</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>width</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>sprite_width</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>sprite_height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>541</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_set</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>5</kind>
|
||||
<sprite>pixel</sprite>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>1</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>542</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_transform</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>width</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>override default implementation: set image scale to width and height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>542</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_transform</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>width</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="64">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>override default implementation: only debug draw outline</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>DEBUG</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Debug draw outline of SceneNode
|
||||
var alp = draw_get_alpha();
|
||||
var col = draw_get_colour();
|
||||
|
||||
draw_set_colour(make_colour_hsv(256/7*object_index, 255, 255));
|
||||
draw_set_alpha(0.3);
|
||||
draw_rectangle(x, y, x+width, y+height, false);
|
||||
draw_set_alpha(0.7);
|
||||
draw_rectangle(x, y, x+width, y+height, true);
|
||||
|
||||
if (instance_exists(parent))
|
||||
draw_line(x, y, parent.x, parent.y);
|
||||
|
||||
draw_set_alpha(alp);
|
||||
draw_set_colour(col);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,237 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderPane</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>2</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>width</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>sprite_width</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>sprite_height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>halign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>fa_center</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>setPadding</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>20</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>20</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Layout blocks from top to bottom
|
||||
var yoff = 0;
|
||||
var lastMargin = 0;
|
||||
var newWidth = 0;
|
||||
|
||||
for (var i = 0; i < ds_list_size(self.children); i++)
|
||||
with (self.children[|i]) {
|
||||
self.xoffset = other.width/2;
|
||||
self.yoffset = yoff+max(self.marginTop, lastMargin);
|
||||
newWidth = max(self.width, newWidth);
|
||||
yoff = self.yoffset+self.height;
|
||||
lastMargin = self.marginBottom;
|
||||
}
|
||||
|
||||
/*self.width = max(newWidth, 20);
|
||||
self.height = max(yoff+lastMargin, 60);
|
||||
*/
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>542</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_transform</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>width/sprite_get_width(sprite_index)</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>height/sprite_get_height(sprite_index)</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,311 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>setMargin</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>10</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>10</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>halign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>fa_center</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>freshType</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>currentType</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>removeType</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>freshType</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>removeType</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>currentType</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Increase width if type is larger
|
||||
width = max(sprite_width, children[|0].width);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,289 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>Vertical spline between two endpoints.</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>FADETIME</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>3*1000000</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>destroyTime</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Create source and drain endpoints
|
||||
source = new(ConnectionSource);
|
||||
drain = new(ConnectionDrain);
|
||||
|
||||
addChild(id, source);
|
||||
addChild(id, drain);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>destroyTime</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>2</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>destroyTime</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>get_timer()</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>3</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>203</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_kill_object</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>other</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///draw spline
|
||||
var overshoot = max(200, abs(source.x-drain.x))+max(0, source.y-drain.y);
|
||||
|
||||
if (destroyTime > get_timer())
|
||||
draw_set_alpha(min(1, (destroyTime-get_timer())/2000000));
|
||||
|
||||
draw_primitive_begin(pr_linestrip);
|
||||
for (var t = 0; t <= 1; t += 1/40)
|
||||
draw_vertex(hermite(source.x, 0, drain.x, 0, t), hermite(source.y, overshoot, drain.y, overshoot, t));
|
||||
draw_primitive_end();
|
||||
|
||||
draw_set_alpha(1);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>DEBUG</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///draw debug text
|
||||
draw_text((source.x+drain.x)/2, (source.y+drain.y)/2,
|
||||
"source: "+getInstObjName(source.target)+" "+string(source.x)+","+string(source.y)+"#"+
|
||||
"drain: "+getInstObjName(drain.target)+" "+string(drain.x)+","+string(drain.y)+"#"+
|
||||
"sourceTouch: "+string(source.mid)+", drainTouch: "+string(drain.mid)+"#"
|
||||
);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,115 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>-1</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>ConnectionEnd</parentName>
|
||||
<maskName>maskConnection</maskName>
|
||||
<events>
|
||||
<event eventtype="6" enumb="56">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Snap to InputAnchor if possible
|
||||
var nearest = instance_nearest(x, y, InputAnchor);
|
||||
|
||||
if (place_meeting(x, y, nearest) && !hasParentNode(nearest, PreviewPane)) {
|
||||
if (self.parent.source.target == noone)
|
||||
self.target = nearest;
|
||||
else
|
||||
if (testUnify(nearest.currentType, self.parent.source.target.currentType))
|
||||
self.target = nearest;
|
||||
}
|
||||
|
||||
if (self.target != noone) {
|
||||
with (self.target.line) {
|
||||
self.drain.target = noone;
|
||||
self.destroyTime = get_timer()+Connection.FADETIME;
|
||||
}
|
||||
|
||||
self.target.line = self.parent;
|
||||
|
||||
if (self.parent.source.target != noone)
|
||||
unifyAnchors(self.parent.source.target, self.target);
|
||||
|
||||
layoutCluster(self.target.parent);
|
||||
}
|
||||
else
|
||||
self.parent.destroyTime = get_timer()+1.5*Connection.FADETIME;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,798 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>-1</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName>maskConnection</maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>performAs</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>Draggable</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>target</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>target</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>target.line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="2">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>target</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>xoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>target.x</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>yoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>target.y</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>layout</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="56">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>performAs</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>Draggable</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="50">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>performAs</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>Draggable</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>layout</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="4">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>performAs</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>Draggable</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>4</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>cancelTouchEvent</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>parent.destroyTime</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>target</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>detachConnectionEnd</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="11">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>DEBUG</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>visible</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>true</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>421</id>
|
||||
<kind>3</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>visible</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>false</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,115 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>-1</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>ConnectionEnd</parentName>
|
||||
<maskName>maskConnection</maskName>
|
||||
<events>
|
||||
<event eventtype="6" enumb="56">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>mid</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Snap to OutputAnchor if possible
|
||||
var nearest = instance_nearest(x, y, OutputAnchor);
|
||||
|
||||
if (place_meeting(x, y, nearest) && !hasParentNode(nearest, PreviewPane)) {
|
||||
if (self.parent.drain.target == noone)
|
||||
self.target = nearest;
|
||||
else
|
||||
if (testUnify(nearest.currentType, self.parent.drain.target.currentType))
|
||||
self.target = nearest;
|
||||
}
|
||||
|
||||
if (self.target != noone) {
|
||||
with (self.target.line) {
|
||||
self.source.target = noone;
|
||||
self.destroyTime = get_timer()+Connection.FADETIME;
|
||||
}
|
||||
|
||||
self.target.line = self.parent;
|
||||
|
||||
if (self.parent.drain.target != noone)
|
||||
unifyAnchors(self.target, self.parent.drain.target);
|
||||
|
||||
layoutCluster(self.target.parent);
|
||||
}
|
||||
else
|
||||
self.parent.destroyTime = get_timer()+1.5*Connection.FADETIME;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,475 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderInputAnchorWhite</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>Anchor</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>line.destroyTime</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>get_timer()+Connection.FADETIME</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>detachConnectionEnd</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>line.drain</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="2">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>self.line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Light up if compatible, unconnected line nearby
|
||||
var nearest = noone;
|
||||
var distance = 0;
|
||||
|
||||
with (ConnectionDrain)
|
||||
if (self.target == noone && self.parent.source.target != noone) {
|
||||
var d = distance_to_object(other);
|
||||
if (d < 100 && (nearest == noone || d < distance)) {
|
||||
nearest = id;
|
||||
distance = d;
|
||||
}
|
||||
}
|
||||
|
||||
if (nearest != noone) {
|
||||
if (testUnify(self.currentType, nearest.parent.source.target.currentType))
|
||||
self.image_blend = c_green;
|
||||
else
|
||||
self.image_blend = c_red;
|
||||
}
|
||||
else
|
||||
self.image_blend = c_black;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>421</id>
|
||||
<kind>3</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>543</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_color</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>13</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>1</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="4">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>4</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>hasParentNode(id, PreviewPane)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Create connection
|
||||
line = new(Connection);
|
||||
|
||||
line.drain.target = id;
|
||||
|
||||
with (line.source) {
|
||||
xoffset = touch_x;
|
||||
yoffset = touch_y;
|
||||
event_perform(ev_mouse, ev_left_press);
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>children[|0].height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,539 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderOutputAnchorWhite</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>Anchor</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>valign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>fa_bottom</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>line.destroyTime</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>get_timer()+Connection.FADETIME</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>601</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_execute_script</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>9</kind>
|
||||
<script>detachConnectionEnd</script>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>line.source</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string></string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="3" enumb="2">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>self.line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Light up if compatible, unconnected line nearby
|
||||
var nearest = noone;
|
||||
var distance = 0;
|
||||
|
||||
with (ConnectionSource)
|
||||
if (self.target == noone && self.parent.drain.target != noone) {
|
||||
var d = distance_to_object(other);
|
||||
if (d < 100 && (nearest == noone || d < distance)) {
|
||||
nearest = id;
|
||||
distance = d;
|
||||
}
|
||||
}
|
||||
|
||||
if (nearest != noone) {
|
||||
if (testUnify(self.currentType, nearest.parent.drain.target.currentType))
|
||||
self.image_blend = c_green;
|
||||
else
|
||||
self.image_blend = c_red;
|
||||
}
|
||||
else
|
||||
self.image_blend = c_black;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>421</id>
|
||||
<kind>3</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>543</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_color</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>13</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>1</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="6" enumb="4">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>touch_id</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>4</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>408</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>hasParentNode(id, PreviewPane)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>line</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>422</id>
|
||||
<kind>1</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Create connection
|
||||
line = new(Connection);
|
||||
|
||||
line.source.target = id;
|
||||
|
||||
with (line.drain) {
|
||||
xoffset = touch_x;
|
||||
yoffset = touch_y;
|
||||
event_perform(ev_mouse, ev_left_press);
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>424</id>
|
||||
<kind>2</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>height</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>children[|0].height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>children[|0].yoffset</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>-children[|0].height</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderMonoType</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>TypeCon1Instance</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderVariableType</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>TypeCon1Instance</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,40 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderFunctionType</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>TypeCon1Instance</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="8" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>500</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring>draw_self();</codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,107 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>parameter</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>500</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring>draw_self();</codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Draw parameter
|
||||
with (parameter)
|
||||
draw_sprite_ext(self.sprite_index, self.image_index, other.x, other.y, self.image_xscale, self.image_yscale, self.image_angle, self.image_blend, self.image_alpha);
|
||||
|
||||
if (parameter == noone)
|
||||
draw_sprite_stretched(placeholder, 0, x, y, sprite_width, sprite_height);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,23 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderTypeTrait</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>ParametricInstance</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events/>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,172 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>ParametricInstance</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>type</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>override default</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///layout all children from left to right
|
||||
var tempWidth = sprite_width;
|
||||
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
with (children[|i]) {
|
||||
tempWidth += self.marginLeft;
|
||||
self.xoffset = tempWidth;
|
||||
event_user(0);
|
||||
tempWidth += self.width;
|
||||
tempWidth += self.marginRight;
|
||||
}
|
||||
|
||||
self.width = tempWidth;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>valign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent.valign</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,226 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>-1</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>SceneNode</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="7" enumb="11">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Set offsets of children
|
||||
var tempOffset = 0;
|
||||
var yoff;
|
||||
|
||||
if (hasParentNode(id, InputAnchor))
|
||||
yoff = 3;
|
||||
else
|
||||
yoff = -3;
|
||||
|
||||
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
with (children[|i]) {
|
||||
self.xoffset = tempOffset;
|
||||
self.yoffset = yoff;
|
||||
tempOffset += self.width;
|
||||
|
||||
}
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>612</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>-1</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_if_variable</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>-1</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>4</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>valign</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>parent.valign</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="7" enumb="10">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>605</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>0</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>override default</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///determine width and height
|
||||
var tempWidth = 0, tempHeight = 0;
|
||||
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
with (children[|i]) {
|
||||
tempWidth += self.marginLeft;
|
||||
event_user(0);
|
||||
tempWidth += self.width;
|
||||
tempWidth += self.marginRight;
|
||||
tempHeight = max(tempHeight, self.height);
|
||||
}
|
||||
|
||||
self.width = tempWidth;
|
||||
self.height = tempHeight+3;
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="8" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Draw self at offset
|
||||
var xCombiner, yCombiner;
|
||||
|
||||
if (hasParentNode(id, InputAnchor)) {
|
||||
xCombiner = x;
|
||||
yCombiner = y;
|
||||
}
|
||||
else {
|
||||
xCombiner = x;
|
||||
yCombiner = y+height-3;
|
||||
}
|
||||
|
||||
draw_set_colour(c_white);
|
||||
draw_rectangle(xCombiner, yCombiner, xCombiner+width, yCombiner+3, false);
|
||||
draw_set_colour(c_black);
|
||||
draw_rectangle(xCombiner, yCombiner, xCombiner+width, yCombiner+3, true);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,64 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderMonoType</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>Type</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>instance</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ConcreteTypeInstance</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,64 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderVariableType</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>Type</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>instance</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>FreeTypeInstance</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,64 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderFunctionType</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>ConcreteType</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>instance</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>FunctionTypeInstance</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,102 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderParameter</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName><undefined></parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>541</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_sprite_set</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>5</kind>
|
||||
<sprite>placeholderParameter</sprite>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>irandom_range(0, sprite_get_number(placeholderParameter)-1)</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>0</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>image_blend</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>make_colour_hsv(irandom(255), 255, 255)</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>instance</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>Error</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,89 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholderTypeTrait</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>Parametric</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>traits</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_set_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Destroy traits set
|
||||
ds_set_destroy(traits);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,89 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>Parametric</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>traits</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_set_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Destroy traits set
|
||||
ds_set_destroy(traits);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,64 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>TypeConLink</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>604</id>
|
||||
<kind>0</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>0</useapplyto>
|
||||
<exetype>1</exetype>
|
||||
<functionname>action_inherited</functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>type</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>noone</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,123 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<object>
|
||||
<spriteName>placeholder</spriteName>
|
||||
<solid>0</solid>
|
||||
<visible>0</visible>
|
||||
<depth>0</depth>
|
||||
<persistent>0</persistent>
|
||||
<parentName>self</parentName>
|
||||
<maskName><undefined></maskName>
|
||||
<events>
|
||||
<event eventtype="0" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>to</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_list_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>611</id>
|
||||
<kind>6</kind>
|
||||
<userelative>-1</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>from</string>
|
||||
</argument>
|
||||
<argument>
|
||||
<kind>0</kind>
|
||||
<string>ds_set_create()</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
<event eventtype="1" enumb="0">
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Check whether no links left
|
||||
assert(ds_list_empty(to) && ds_set_empty(from), "'"+getInstObjName(id)+"' still connected.");
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
<action>
|
||||
<libid>1</libid>
|
||||
<id>603</id>
|
||||
<kind>7</kind>
|
||||
<userelative>0</userelative>
|
||||
<isquestion>0</isquestion>
|
||||
<useapplyto>-1</useapplyto>
|
||||
<exetype>2</exetype>
|
||||
<functionname></functionname>
|
||||
<codestring></codestring>
|
||||
<whoName>self</whoName>
|
||||
<relative>0</relative>
|
||||
<isnot>0</isnot>
|
||||
<arguments>
|
||||
<argument>
|
||||
<kind>1</kind>
|
||||
<string>///Clear up `from` and `to` links
|
||||
ds_set_destroy(from);
|
||||
ds_list_destroy(to);
|
||||
|
||||
</string>
|
||||
</argument>
|
||||
</arguments>
|
||||
</action>
|
||||
</event>
|
||||
</events>
|
||||
<PhysicsObject>0</PhysicsObject>
|
||||
<PhysicsObjectSensor>0</PhysicsObjectSensor>
|
||||
<PhysicsObjectShape>0</PhysicsObjectShape>
|
||||
<PhysicsObjectDensity>0.5</PhysicsObjectDensity>
|
||||
<PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
|
||||
<PhysicsObjectGroup>0</PhysicsObjectGroup>
|
||||
<PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
|
||||
<PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
|
||||
<PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
|
||||
<PhysicsObjectAwake>-1</PhysicsObjectAwake>
|
||||
<PhysicsObjectKinematic>0</PhysicsObjectKinematic>
|
||||
<PhysicsShapePoints/>
|
||||
</object>
|
|
@ -0,0 +1,151 @@
|
|||
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
||||
<room>
|
||||
<caption></caption>
|
||||
<width>4000</width>
|
||||
<height>4000</height>
|
||||
<vsnap>16</vsnap>
|
||||
<hsnap>16</hsnap>
|
||||
<isometric>0</isometric>
|
||||
<speed>1000</speed>
|
||||
<persistent>0</persistent>
|
||||
<colour>12632256</colour>
|
||||
<showcolour>-1</showcolour>
|
||||
<code></code>
|
||||
<enableViews>-1</enableViews>
|
||||
<clearViewBackground>-1</clearViewBackground>
|
||||
<clearDisplayBuffer>-1</clearDisplayBuffer>
|
||||
<makerSettings>
|
||||
<isSet>-1</isSet>
|
||||
<w>980</w>
|
||||
<h>600</h>
|
||||
<showGrid>0</showGrid>
|
||||
<showObjects>-1</showObjects>
|
||||
<showTiles>-1</showTiles>
|
||||
<showBackgrounds>-1</showBackgrounds>
|
||||
<showForegrounds>-1</showForegrounds>
|
||||
<showViews>0</showViews>
|
||||
<deleteUnderlyingObj>0</deleteUnderlyingObj>
|
||||
<deleteUnderlyingTiles>-1</deleteUnderlyingTiles>
|
||||
<page>0</page>
|
||||
<xoffset>-75</xoffset>
|
||||
<yoffset>-95</yoffset>
|
||||
</makerSettings>
|
||||
<backgrounds>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
<background visible="0" foreground="0" name="" x="0" y="0" htiled="-1" vtiled="-1" hspeed="0" vspeed="0" stretch="0"/>
|
||||
</backgrounds>
|
||||
<views>
|
||||
<view visible="-1" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
<view visible="0" objName="<undefined>" xview="0" yview="0" wview="1024" hview="768" xport="0" yport="0" wport="1024" hport="768" hborder="32" vborder="32" hspeed="-1" vspeed="-1"/>
|
||||
</views>
|
||||
<instances>
|
||||
<instance objName="MaximizeView" x="336" y="0" name="inst_BF2ED050" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="MultitouchEventGenerator" x="352" y="0" name="inst_F353B671" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Debug" x="368" y="0" name="inst_099EBE8B" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="BlockTemplate" x="406" y="340" name="inst_E5F776A5" locked="0" code="" scaleX="5.15000009536743" scaleY="8.80645179748535" colour="4290567902" rotation="0"/>
|
||||
<instance objName="BlockTemplate" x="966" y="375" name="inst_BC9D9691" locked="0" code="" scaleX="3.0759494304657" scaleY="7.19354820251465" colour="4291755982" rotation="0"/>
|
||||
<instance objName="BlockTemplate" x="700" y="727" name="inst_CCB3C2D0" locked="0" code="" scaleX="6.26582288742065" scaleY="6.74193525314331" colour="4294950847" rotation="0"/>
|
||||
<instance objName="ParameterLink" x="474" y="455" name="inst_7D52012C" locked="0" code="" scaleX="1.45000004768372" scaleY="1" colour="4278223040" rotation="90"/>
|
||||
<instance objName="ParameterLink" x="475" y="456" name="inst_0AD8ACB0" locked="0" code="" scaleX="4.09999990463257" scaleY="1" colour="4278223040" rotation="21"/>
|
||||
<instance objName="ParameterLink" x="556" y="459" name="inst_B5B9A3F4" locked="0" code="" scaleX="1.70000004768372" scaleY="1" colour="4294944591" rotation="122"/>
|
||||
<instance objName="ParameterLink" x="557" y="457" name="inst_03005EAE" locked="0" code="" scaleX="2.20000004768372" scaleY="1" colour="4294944591" rotation="-87"/>
|
||||
<instance objName="ParameterLink" x="623" y="458" name="inst_DF1C0390" locked="0" code="" scaleX="2.70000004768372" scaleY="1" colour="4284866655" rotation="-123"/>
|
||||
<instance objName="ParameterLink" x="624" y="457" name="inst_8FE1C2BB" locked="0" code="" scaleX="1.64999997615814" scaleY="1" colour="4284405079" rotation="66"/>
|
||||
<instance objName="ParameterLink" x="934" y="307" name="inst_F5755416" locked="0" code="" scaleX="5.40000009536743" scaleY="1" colour="4289749759" rotation="206"/>
|
||||
<instance objName="ParameterLink" x="1077" y="485" name="inst_34036969" locked="0" code="" scaleX="1.5" scaleY="1" colour="4294946398" rotation="-82"/>
|
||||
<instance objName="ParameterLink" x="1077" y="482" name="inst_821CC915" locked="0" code="" scaleX="1.29999995231628" scaleY="1" colour="4294946398" rotation="105"/>
|
||||
<instance objName="ParameterLink" x="935" y="307" name="inst_1C700CB2" locked="0" code="" scaleX="3.04999995231628" scaleY="1" colour="4290740479" rotation="-64"/>
|
||||
<instance objName="HigherOrderLink" x="1058" y="577" name="inst_A3352B2A" locked="0" code="" scaleX="1.375" scaleY="0.387096762657166" colour="4294967295" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="662" y="350" name="inst_253C8B33" locked="0" code="" scaleX="1.875" scaleY="0.349999994039536" colour="4294967295" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="522" y="594" name="inst_A806A4C0" locked="0" code="" scaleX="1.74000000953674" scaleY="0.375" colour="4294967295" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="439" y="351" name="inst_944CF49F" locked="0" code="" scaleX="2" scaleY="0.484848499298096" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FunctionType" x="432" y="355" name="inst_69290DC7" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="465" y="355" name="inst_E05C3F1F" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="490" y="356" name="inst_9378F066" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="658" y="352" name="inst_4E21E078" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="712" y="353" name="inst_AC105FC0" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="522" y="592" name="inst_35BD8E0E" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="556" y="590" name="inst_3082976E" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Trait" x="927" y="297" name="inst_7E7323C3" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1049" y="393" name="inst_67F8EA6B" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1059" y="570" name="inst_BDDB5D7E" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1082" y="571" name="inst_D9C7BCE6" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Parametric" x="1068" y="475" name="inst_F8F88040" locked="0" code="" scaleX="1" scaleY="1" colour="4294934528" rotation="0"/>
|
||||
<instance objName="Parametric" x="466" y="449" name="inst_7DDA2A93" locked="0" code="" scaleX="1" scaleY="1" colour="4278190335" rotation="0"/>
|
||||
<instance objName="Parametric" x="548" y="449" name="inst_A5B1DCEC" locked="0" code="" scaleX="1" scaleY="1" colour="4294934528" rotation="0"/>
|
||||
<instance objName="Parametric" x="616" y="449" name="inst_1F1768D6" locked="0" code="" scaleX="1" scaleY="1" colour="4278222848" rotation="0"/>
|
||||
<instance objName="FunctionType" x="725" y="750" name="inst_2D9C653F" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FunctionType" x="788" y="764" name="inst_76CE1CB5" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="754" y="751" name="inst_0552041D" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="813" y="762" name="inst_6DE05713" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="837" y="762" name="inst_419B49DF" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1067" y="746" name="inst_54A4421D" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1101" y="747" name="inst_4B202803" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="868" y="912" name="inst_2785F773" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Parametric" x="807" y="828" name="inst_D40047C9" locked="0" code="" scaleX="1" scaleY="1" colour="4278255360" rotation="0"/>
|
||||
<instance objName="Parametric" x="1065" y="830" name="inst_BD88AA92" locked="0" code="" scaleX="1" scaleY="1" colour="4294934528" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="724" y="749" name="inst_935C3CB8" locked="0" code="" scaleX="2.19000005722046" scaleY="0.419354826211929" colour="4294967295" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="785" y="759" name="inst_142BBFF2" locked="0" code="" scaleX="2.28999996185303" scaleY="0.389999985694885" colour="4294967295" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="1067" y="744" name="inst_2DA66580" locked="0" code="" scaleX="1.54838705062866" scaleY="0.479999989271164" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Parametric" x="866" y="828" name="inst_C2D9F438" locked="0" code="" scaleX="1" scaleY="1" colour="4278190335" rotation="0"/>
|
||||
<instance objName="ParameterLink" x="1074" y="839" name="inst_6514ACA6" locked="0" code="" scaleX="1.29999995231628" scaleY="1" colour="4294945107" rotation="90"/>
|
||||
<instance objName="ParameterLink" x="936" y="307" name="inst_3A8B3F51" locked="0" code="" scaleX="8.60000038146973" scaleY="1" colour="4291466751" rotation="284.5"/>
|
||||
<instance objName="ParameterLink" x="816" y="836" name="inst_9875E93E" locked="0" code="" scaleX="4.69999980926514" scaleY="1" colour="4288020373" rotation="15"/>
|
||||
<instance objName="ParameterLink" x="814" y="837" name="inst_8C1CC0D6" locked="0" code="" scaleX="1.45000004768372" scaleY="1" colour="4288020373" rotation="124"/>
|
||||
<instance objName="ParameterLink" x="875" y="837" name="inst_7FB660CD" locked="0" code="" scaleX="1.35000002384186" scaleY="1" colour="4287401215" rotation="129"/>
|
||||
<instance objName="ParameterLink" x="875" y="838" name="inst_62753B61" locked="0" code="" scaleX="1.14999997615814" scaleY="1" colour="4287401215" rotation="113"/>
|
||||
<instance objName="ParameterLink" x="875" y="836" name="inst_3779D346" locked="0" code="" scaleX="1.29999995231628" scaleY="1" colour="4287401215" rotation="-89"/>
|
||||
<instance objName="FreeType" x="947" y="742" name="inst_2E79FC3E" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="ParameterLink" x="875" y="836" name="inst_81EEB4C0" locked="0" code="" scaleX="1.79999995231628" scaleY="1" colour="4288388095" rotation="47"/>
|
||||
<instance objName="InputTemplate" x="468" y="345" name="inst_2F2E3D0A" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="690" y="344" name="inst_6FB51AD3" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="1057" y="380" name="inst_D880C890" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="811" y="731" name="inst_CCE9F8A5" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="955" y="733" name="inst_D74AD4FE" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="1091" y="733" name="inst_4B0C061D" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="OutputTemplate" x="548" y="615" name="inst_673BF23C" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="OutputTemplate" x="1083" y="603" name="inst_908C390B" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="OutputTemplate" x="876" y="938" name="inst_17B7FF11" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Parametric" x="1012" y="475" name="inst_89BE2ADE" locked="0" code="" scaleX="1" scaleY="1" colour="4278190335" rotation="0"/>
|
||||
<instance objName="ParameterLink" x="1021" y="484" name="inst_CE199BAD" locked="0" code="" scaleX="1.64999997615814" scaleY="1" colour="4286743295" rotation="295"/>
|
||||
<instance objName="TypeParser" x="384" y="0" name="inst_0CCD2FC5" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="BlockTemplate" x="1381" y="326" name="inst_7E8DCA5D" locked="0" code="" scaleX="4.61250019073486" scaleY="6.4193549156189" colour="4288471010" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="1452" y="331" name="inst_D78610D9" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="InputTemplate" x="1657" y="332" name="inst_0281850D" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="OutputTemplate" x="1555" y="524" name="inst_0B32BB86" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="Parametric" x="1602" y="420" name="inst_4601A169" locked="0" code="" scaleX="1" scaleY="1" colour="4294934528" rotation="0"/>
|
||||
<instance objName="Parametric" x="1480" y="421" name="inst_1128BD9B" locked="0" code="" scaleX="1" scaleY="1" colour="4278222848" rotation="0"/>
|
||||
<instance objName="HigherOrderLink" x="1409" y="340" name="inst_B58872CD" locked="0" code="" scaleX="2.74193549156189" scaleY="0.516129016876221" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1452" y="347" name="inst_6D9F6AE0" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1477" y="347" name="inst_35C6E794" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1545" y="500" name="inst_FD4D1D98" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FreeType" x="1651" y="341" name="inst_53F87FF2" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="FunctionType" x="1416" y="349" name="inst_84857CDB" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>
|
||||
<instance objName="ParameterLink" x="1490" y="428" name="inst_35277574" locked="0" code="" scaleX="1.20000004768372" scaleY="1" colour="4288148121" rotation="111"/>
|
||||
<instance objName="ParameterLink" x="1489" y="430" name="inst_A0990D83" locked="0" code="" scaleX="2.95000004768372" scaleY="1" colour="4288148121" rotation="25.5"/>
|
||||
<instance objName="ParameterLink" x="1611" y="430" name="inst_9BA355BE" locked="0" code="" scaleX="2.29999995231628" scaleY="1" colour="4294949493" rotation="150"/>
|
||||
<instance objName="ParameterLink" x="1611" y="427" name="inst_01781C5F" locked="0" code="" scaleX="1.60000002384186" scaleY="1" colour="4294949493" rotation="-124"/>
|
||||
<instance objName="PreviewPane" x="0" y="64" name="inst_6D910659" locked="0" code="" scaleX="4" scaleY="11" colour="4294967295" rotation="0"/>
|
||||
</instances>
|
||||
<tiles/>
|
||||
<PhysicsWorld>0</PhysicsWorld>
|
||||
<PhysicsWorldTop>0</PhysicsWorldTop>
|
||||
<PhysicsWorldLeft>0</PhysicsWorldLeft>
|
||||
<PhysicsWorldRight>1024</PhysicsWorldRight>
|
||||
<PhysicsWorldBottom>768</PhysicsWorldBottom>
|
||||
<PhysicsWorldGravityX>0</PhysicsWorldGravityX>
|
||||
<PhysicsWorldGravityY>10</PhysicsWorldGravityY>
|
||||
<PhysicsWorldPixToMeters>0.100000001490116</PhysicsWorldPixToMeters>
|
||||
</room>
|
|
@ -0,0 +1,19 @@
|
|||
///blockFromTemplate(template)
|
||||
/**
|
||||
* blockFromTemplate :: BlockTemplate -> Instance
|
||||
*
|
||||
* Creates a block from the given template.
|
||||
*
|
||||
* @param template the block tempalte to use
|
||||
* @returns the id of the block instance
|
||||
*/
|
||||
|
||||
var template = argument0;
|
||||
|
||||
assertInstanceof(template, BlockTemplate);
|
||||
|
||||
var block = createBlock(template.inputs, template.outputs);
|
||||
block.template = template;
|
||||
|
||||
return block;
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
///createBlock(inputTypes, outputTypes)
|
||||
/**
|
||||
* createBlock :: List Type -> List Type -> Instance
|
||||
*
|
||||
* Creates a block with the given types and returns the id of the block.
|
||||
*
|
||||
* @param inputTypes a list of input types
|
||||
* @param outputTypes a list of output types
|
||||
* @returns the id of the block instance
|
||||
*/
|
||||
|
||||
var inputTypes = argument0;
|
||||
var outputTypes = argument1;
|
||||
var block = new(Block);
|
||||
|
||||
for (var i = 0; i < ds_list_size(inputTypes); i++) {
|
||||
var anchor = new(InputAnchor);
|
||||
anchor.freshType = new(TypeConLink);
|
||||
addLink(anchor.freshType, inputTypes[|i]);
|
||||
|
||||
addChild(block, anchor);
|
||||
}
|
||||
|
||||
for (var i = 0; i < ds_list_size(outputTypes); i++) {
|
||||
var anchor = new(OutputAnchor);
|
||||
anchor.freshType = new(TypeConLink);
|
||||
addLink(anchor.freshType, outputTypes[|i]);
|
||||
|
||||
addChild(block, anchor);
|
||||
}
|
||||
|
||||
freshTypes(block);
|
||||
layout(block);
|
||||
|
||||
return block;
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
///createTypeInstance(con)
|
||||
/**
|
||||
* createTypeInstance :: TypeConLink -> TypeConInstance
|
||||
*
|
||||
* Creates a visual type instance for a type.
|
||||
*
|
||||
* @param con the type for which to make a type instance
|
||||
* @returns a type instance
|
||||
*/
|
||||
|
||||
var con = argument0;
|
||||
|
||||
assertInstanceof(con, TypeConLink);
|
||||
|
||||
var inst;
|
||||
|
||||
if (instanceof(con, TypeCon1Link)) {
|
||||
inst = new(con.type.instance);
|
||||
inst.parameter = con.type;
|
||||
|
||||
var traits = con.type.traits;
|
||||
for (var trait = ds_set_first(traits); ds_set_exists(traits, trait); trait = ds_set_next(traits, trait)) {
|
||||
var traitInst = new(TraitInstance);
|
||||
traitInst.parameter = trait;
|
||||
addChild(inst, traitInst);
|
||||
}
|
||||
}
|
||||
else {
|
||||
inst = new(TypeConInstance);
|
||||
|
||||
for (var i = 0; i < ds_list_size(con.to); i++)
|
||||
addChild(inst, createTypeInstance(con.to[|i]));
|
||||
}
|
||||
|
||||
return inst;
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
///detachConnectionEnd(conn)
|
||||
/**
|
||||
* layoutCluster :: ConnectionEnd -> ()
|
||||
*
|
||||
* Detaches a connection end from an anchor
|
||||
*
|
||||
* @param conn the end point to detach
|
||||
*/
|
||||
|
||||
var conn = argument0;
|
||||
|
||||
if (conn.target == noone)
|
||||
show_error("Connection not attached.", true);
|
||||
|
||||
var targetBlock = conn.target.parent;
|
||||
var otherEnd = noone;
|
||||
var blocks = getBlockCluster(targetBlock);
|
||||
|
||||
if (instanceof(conn, ConnectionSource))
|
||||
otherEnd = conn.parent.drain;
|
||||
if (instanceof(conn, ConnectionDrain))
|
||||
otherEnd = conn.parent.source;
|
||||
|
||||
if (otherEnd.target != noone) {
|
||||
for (var block = ds_set_first(blocks); ds_set_exists(blocks, block); block = ds_set_next(blocks, block))
|
||||
freshTypes(block);
|
||||
|
||||
conn.target.line = noone;
|
||||
conn.target = noone;
|
||||
|
||||
var lines = getConnectionsForCluster(blocks);
|
||||
for (var line = ds_set_first(lines); ds_set_exists(lines, line); line = ds_set_next(lines, line))
|
||||
unifyAnchors(line.source.target, line.drain.target);
|
||||
|
||||
layoutCluster(ds_set_first(blocks));
|
||||
for (var block = ds_set_first(blocks); ds_set_exists(blocks, block); block = ds_set_next(blocks, block))
|
||||
layout(block);
|
||||
|
||||
ds_set_destroy(lines);
|
||||
}
|
||||
else {
|
||||
conn.target.line = noone;
|
||||
conn.target = noone;
|
||||
}
|
||||
|
||||
ds_set_destroy(blocks);
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
///getBlockCluster(block)
|
||||
/**
|
||||
* getBlockCluster :: Block -> Set Block
|
||||
*
|
||||
* Returns a set of all blocks in the connected component.
|
||||
*
|
||||
* @param block a block within the cluster
|
||||
*/
|
||||
|
||||
var discovered = ds_set_create();
|
||||
var visited = ds_set_create();
|
||||
ds_set_add(discovered, argument0);
|
||||
|
||||
while (!ds_set_empty(discovered)) {
|
||||
var block = ds_set_first(discovered);
|
||||
ds_set_delete(discovered, block);
|
||||
ds_set_add(visited, block);
|
||||
|
||||
for (var i = 0; i < ds_list_size(block.children); i++)
|
||||
with (block.children[|i]) {
|
||||
var otherEnd = noone;
|
||||
|
||||
if (instanceof(id, OutputAnchor))
|
||||
if (self.line != noone)
|
||||
var otherEnd = self.line.drain;
|
||||
|
||||
if (instanceof(id, InputAnchor))
|
||||
if (self.line != noone)
|
||||
var otherEnd = self.line.source;
|
||||
|
||||
with (otherEnd)
|
||||
if (self.target != noone)
|
||||
if (!ds_set_exists(visited, self.target.parent))
|
||||
ds_set_add(discovered, self.target.parent);
|
||||
}
|
||||
}
|
||||
|
||||
ds_set_destroy(discovered);
|
||||
|
||||
return visited;
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
///getConnectionsForCluster(blocks)
|
||||
/**
|
||||
* getConnectionsForCluster :: Set Block -> Set Connection
|
||||
*
|
||||
* Returns a set of all connections connecting two blocks within the cluster of blocks.
|
||||
*
|
||||
* @param blocks a set of blocks
|
||||
*/
|
||||
|
||||
var blocks = argument0;
|
||||
var connections = ds_set_create();
|
||||
|
||||
with (Connection) {
|
||||
if (self.source.target != noone && self.drain.target != noone)
|
||||
if (ds_set_exists(blocks, self.source.target.parent) && ds_set_exists(blocks, self.drain.target.parent))
|
||||
ds_set_add(connections, id);
|
||||
}
|
||||
|
||||
return connections;
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
///layoutCluster(block)
|
||||
/**
|
||||
* layoutCluster :: Block -> ()
|
||||
*
|
||||
* Performs layout() for all blocks in a cluster.
|
||||
*
|
||||
* @param block a block within the cluster
|
||||
*/
|
||||
|
||||
var blocks = getBlockCluster(argument0);
|
||||
|
||||
for (var block = ds_set_first(blocks); ds_set_exists(blocks, block); block = ds_set_next(blocks, block))
|
||||
with (block) {
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
if (instanceof(children[|i], Anchor)) {
|
||||
var typeInst = children[|i].children[|0];
|
||||
|
||||
removeChild(children[|i], typeInst);
|
||||
|
||||
delete(typeInst);
|
||||
addChild(children[|i], createTypeInstance(children[|i].currentType.to[|0]));
|
||||
}
|
||||
|
||||
layout(id);
|
||||
}
|
||||
ds_set_destroy(blocks);
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
///sceneNodeToString(id)
|
||||
/**
|
||||
* sceneNodeToString :: SceneNode -> String
|
||||
*
|
||||
* Returns the scene node with all its children as a string.
|
||||
*
|
||||
* @param id the scene node to convert to a string
|
||||
* @returns the scene node as a string
|
||||
*/
|
||||
|
||||
var node = argument0;
|
||||
var str = object_get_name(node.object_index)+"@"+string(node.id);
|
||||
|
||||
/*
|
||||
str += " parent: "+string(argument0.parent);
|
||||
str += " x: "+string(argument0.x)+" y: "+string(argument0.y);
|
||||
str += " dx: "+string(argument0.xoffset)+" dy: "+string(argument0.yoffset);
|
||||
str += " width: "+string(argument0.width)+" height: "+string(argument0.height);
|
||||
*/
|
||||
|
||||
for (var i = 0; i < ds_list_size(node.children); i++) {
|
||||
if (is_real(node.children[|i]) && instance_exists(node.children[|i]))
|
||||
str += string_replace_all("#"+sceneNodeToString(node.children[|i]), "#", "# ");
|
||||
else
|
||||
str += "# [error]: child is "+string(node.children[|i]);
|
||||
}
|
||||
|
||||
return str;
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
///typesToDot()
|
||||
/**
|
||||
* typesToDot :: () -> String
|
||||
*
|
||||
* Builds a DOT string for all types.
|
||||
*
|
||||
* @returns the DOT string representation of all types
|
||||
*/
|
||||
|
||||
var nl = chr(13)+chr(10);
|
||||
var dq = '"';
|
||||
var str = "digraph {";
|
||||
|
||||
str += "{rank = same"+nl;
|
||||
with (Block) {
|
||||
str += format("i%i[shape=rectangle,style=dashed,label=%'%o%']%n", id, id);
|
||||
}
|
||||
if (DEBUG)
|
||||
with (BlockTemplate) {
|
||||
str += format("i%i[shape=rectangle,color=%'%c%',style=dashed,label=%'%o%']%n",id,self.image_blend,id);
|
||||
}
|
||||
str += "}"+nl;
|
||||
|
||||
if (DEBUG) {
|
||||
str += "{rank = same"+nl;
|
||||
with (HigherOrderLink) {
|
||||
str += format("i%i[shape=rectangle,color=darkgreen,style=dashed,label=%'%o%']%n", id, id);
|
||||
}
|
||||
with (AnchorTemplate) {
|
||||
str += format("i%i[shape=rectangle,color=darkgreen,style=dashed,label=%'%o%']%n", id, id);
|
||||
}
|
||||
str += "}"+nl;
|
||||
}
|
||||
|
||||
with (Block) {
|
||||
for (var i = 0; i < ds_list_size(self.children); i++)
|
||||
if (instanceof(self.children[|i], Anchor)) {
|
||||
str += format("i%i->i%i[style=dashed,label=%'curr%i%']%n", id, self.children[|i].currentType, i);
|
||||
str += format("i%i->i%i[style=dashed,label=%'fresh%i%']%n", id, self.children[|i].freshType, i);
|
||||
}
|
||||
}
|
||||
|
||||
if (DEBUG) {
|
||||
with (BlockTemplate) {
|
||||
for (var i = 0; i < ds_list_size(self.inputs); i++)
|
||||
str += format("i%i->i%i[color=%'%c%',style=dashed,label=%'%o%']%n", id, self.inputs[|i], self.image_blend, id);
|
||||
for (var i = 0; i < ds_list_size(self.outputs); i++)
|
||||
str += format("i%i->i%i[color=%'%c%',style=dashed,label=%'%o%']%n", id, self.outputs[|i], self.image_blend, id);
|
||||
|
||||
var coll = id;
|
||||
with (AnchorTemplate)
|
||||
if (place_meeting(self.x, self.y, coll))
|
||||
str += format("i%i->i%i[color=%'%c%',style=dashed]%n", coll, id, coll.image_blend);
|
||||
}
|
||||
|
||||
with (HigherOrderLink)
|
||||
str += format("i%i->i%i[color=darkgreen,style=dashed]%n", id, self.con);
|
||||
|
||||
with (AnchorTemplate)
|
||||
str += format("i%i->i%i[color=darkgreen,style=dashed]%n", id, self.con);
|
||||
|
||||
with (ParameterLink)
|
||||
str += format("i%i->i%i[color=%'%c%',label=%'%o%']%n", self.source, self.drain, self.image_blend, id);
|
||||
}
|
||||
|
||||
with (TypeConLink) {
|
||||
if (instanceof(id, TypeCon1Link)) {
|
||||
str += format("i%i[shape=diamond,label=%'s-con%']%n", id);
|
||||
str += format("i%i->i%i%n", id, self.type);
|
||||
}
|
||||
else {
|
||||
str += format("i%i[shape=diamond,label=%'%i-con%']%n", id, ds_list_size(self.to));
|
||||
}
|
||||
|
||||
for (var i = 0; i < ds_list_size(self.to); i++) {
|
||||
var err = "";
|
||||
if (!ds_set_exists(self.to[|i].from, id))
|
||||
err = "color=red,";
|
||||
|
||||
str += format("i%i->i%i[%slabel=%'%i%']%n", id, self.to[|i], err, i);
|
||||
}
|
||||
|
||||
for (var from = ds_set_first(self.from); ds_set_exists(self.from, from); from = ds_set_next(self.from, from)) {
|
||||
if (ds_list_find_index(from.to, id) == -1)
|
||||
str += format("i%i->i%i[color=red,style=dashed]%n", from, id);
|
||||
}
|
||||
}
|
||||
|
||||
with (Parametric) {
|
||||
if (instanceof(id, FreeType))
|
||||
str += format("i%i[shape=ellipse,label=%'%o%']%n", id, id);
|
||||
else if (instanceof(id, ConcreteType))
|
||||
str += format("i%i[shape=rectangle,label=%'%o%']%n", id, id);
|
||||
else
|
||||
str += format("i%i[shape=ellipse,style=dashed,color=%'%c%',label=%'%o%']%n", id, self.image_blend, id);
|
||||
|
||||
if (instanceof(id, Type))
|
||||
for (var trait = ds_set_first(self.traits); ds_set_exists(self.traits, trait); trait = ds_set_next(self.traits, trait))
|
||||
str += format("i%i->i%i%n", id, trait);
|
||||
}
|
||||
|
||||
with (Trait) {
|
||||
str += format("i%i[shape=house,label=%'%o%']%n", id, id);
|
||||
|
||||
for (var trait = ds_set_first(self.traits); ds_set_exists(self.traits, trait); trait = ds_set_next(self.traits, trait))
|
||||
str += format("i%i->i%i%n", id, trait);
|
||||
}
|
||||
|
||||
str += "}";
|
||||
|
||||
return str;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
///assert(expr, msg)
|
||||
/**
|
||||
* assert :: Boolean -> a[a->String] -> ()
|
||||
*
|
||||
* Asserts an expression is true. If not, the program halts with the given message.
|
||||
*
|
||||
* @param expr the expression to test
|
||||
* @param msg the message shown if the assertion fails
|
||||
*/
|
||||
|
||||
if (!argument0)
|
||||
show_error(string(argument1), true);
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
///assertInstanceof(id, ind)
|
||||
/**
|
||||
* assertInstanceof :: Instance -> Class -> Bool
|
||||
*
|
||||
* Asserts `id` is of type `ind`, either directly or via the parent hierarchy.
|
||||
*
|
||||
* @param id the instance to check
|
||||
* @param ind the object type to check for
|
||||
* @returns true if id is of type ind, false otherwise
|
||||
*/
|
||||
|
||||
var res = instanceof(argument0, argument1);
|
||||
|
||||
assert(res, "'"+getInstObjName(argument0)+"' is not an instance of "+getInstObjName(argument1));
|
||||
|
||||
return res;
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
///cancelTouchEvent()
|
||||
/**
|
||||
* cancelTouchEvent :: () -> ()
|
||||
*
|
||||
* Stops a touch event by resetting the touch_id.
|
||||
*/
|
||||
|
||||
global.touch_id = -1;
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
///delete(id)
|
||||
/**
|
||||
* delete :: Instance -> ()
|
||||
*
|
||||
* Removes an instance.
|
||||
*
|
||||
* @param the instance id
|
||||
*/
|
||||
|
||||
with (argument0)
|
||||
instance_destroy();
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
#define format
|
||||
///format(str, arg...)
|
||||
/**
|
||||
* format :: String -> ... -> String
|
||||
*
|
||||
* Formats a string by replacing parameters `%` by the given values.
|
||||
* A parameter is either an escape sequence or a conversion type.
|
||||
*
|
||||
* Available escape sequences:
|
||||
* - `%%` for a percent sign `%`
|
||||
* - `%'` for a double quote `"`
|
||||
* - `%"` for a single quote `'`
|
||||
* - `%t` for a tab character
|
||||
* - `%n` for a newline
|
||||
*
|
||||
* Available parameter conversions:
|
||||
* - `%s` for a string
|
||||
* - `%i` for a decimal integer
|
||||
* - `%x` for a hexadecimal integer
|
||||
* - `%f` for a real value
|
||||
* - `%o` for an instance or object
|
||||
* - `%c` for a HTML colour code (`#RRGGBB`)
|
||||
* - `%dm` for a ds_map
|
||||
*
|
||||
* @param str the format string
|
||||
* @param arg any value that is compatible with its respective conversion format
|
||||
* @returns a formatted string
|
||||
*/
|
||||
|
||||
var str = argument[0];
|
||||
|
||||
var in = str;
|
||||
var out = "";
|
||||
var i = 1;
|
||||
|
||||
for (var pos = string_pos("%", in); pos > 0; pos = string_pos("%", in)) {
|
||||
out += string_copy(in, 1, pos-1);
|
||||
var token = _format_get_token(string_delete(in, 1, pos));
|
||||
in = string_delete(in, 1, pos+string_length(token));
|
||||
|
||||
if (token == "")
|
||||
show_error("Unexpected format parameter.", false);
|
||||
else
|
||||
switch (token) {
|
||||
case "%":
|
||||
out += "%";
|
||||
break;
|
||||
case "'":
|
||||
out += '"';
|
||||
break;
|
||||
case '"':
|
||||
out += "'";
|
||||
break;
|
||||
case "n":
|
||||
out += chr($A);
|
||||
break;
|
||||
case "t":
|
||||
out += chr($9);
|
||||
break;
|
||||
case "s":
|
||||
out += string(argument[i]);
|
||||
i++;
|
||||
break;
|
||||
case "i":
|
||||
out += string(floor(argument[i]));
|
||||
i++;
|
||||
break;
|
||||
case "x":
|
||||
out += string_base(floor(argument[i]), 16);
|
||||
i++;
|
||||
break;
|
||||
case "f":
|
||||
out += string(argument[i]);
|
||||
i++;
|
||||
break;
|
||||
case "o":
|
||||
out += getInstObjName(argument[i]);
|
||||
i++;
|
||||
break;
|
||||
case "c":
|
||||
var r = ((argument[i] >> 0) mod 256) << 16;
|
||||
var g = ((argument[i] >> 8) mod 256) << 8;
|
||||
var b = ((argument[i] >> 16) mod 256) << 0;
|
||||
|
||||
out += "#"+string_base(r+g+b, 16);
|
||||
i++;
|
||||
break;
|
||||
default:
|
||||
show_error("Unexpected format parameter '%"+token+"'.", false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
out += in;
|
||||
|
||||
return out;
|
||||
|
||||
|
||||
#define _format_get_token
|
||||
if (string_pos(string_char_at(argument0, 1), "%'nt"+'"') > 0)
|
||||
return string_copy(argument0, 1, 1);
|
||||
if (string_pos(string_char_at(argument0, 1), "sixfoc") > 0)
|
||||
return string_copy(argument0, 1, 1);
|
||||
if (string_pos(string_char_at(argument0, 1), "d") > 0)
|
||||
return string_copy(argument0, 1, 2);
|
||||
|
||||
return "";
|
|
@ -0,0 +1,36 @@
|
|||
///getInstObjName(i)
|
||||
/**
|
||||
* getInstObjName :: Any -> String
|
||||
*
|
||||
* Returns the given instance/object/keyword as a string.
|
||||
*/
|
||||
|
||||
if (!is_real(argument0))
|
||||
return "[NaN "+string(argument0)+"]";
|
||||
|
||||
if (argument0 >= 0) {
|
||||
if (object_exists(argument0))
|
||||
return "<"+object_get_name(argument0)+">";
|
||||
if (instance_exists(argument0))
|
||||
return "<"+object_get_name(argument0.object_index)+"@"+string(argument0)+">";
|
||||
|
||||
return "[unknown "+string(argument0)+"]";
|
||||
}
|
||||
|
||||
switch (argument0) {
|
||||
case global:
|
||||
return "global";
|
||||
case -7:
|
||||
return "local";
|
||||
case self:
|
||||
return "self";
|
||||
case other:
|
||||
return "other";
|
||||
case noone:
|
||||
return "noone";
|
||||
case all:
|
||||
return "all";
|
||||
}
|
||||
|
||||
return "[unknown "+string(argument0)+"]";
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
///hermite(x0, dx0, x1, dx1, t)
|
||||
/**
|
||||
* hermite :: Real -> Real -> Real -> Real -> Real -> Real
|
||||
*
|
||||
* Cubic Hermite interpolation between `x0` and `x1` with tangents `dx0` and `dx1` given a time 0 <= `t` <= 1.
|
||||
*
|
||||
* @param x0 the value of x at t=0
|
||||
* @param dx0 the tangent of x at t=0
|
||||
* @param x1 the value of x at t=1
|
||||
* @param dx1 the tangent of x at t=1
|
||||
* @param t the interpolation parameter 0<=t<=1
|
||||
* @returns the value x(t)
|
||||
*/
|
||||
var t = argument4, t2 = t*t, t3 = t2*t;
|
||||
|
||||
return (2*t3-3*t2+1)*argument0+(t3-2*t2+t)*argument1+(-2*t3+3*t2)*argument2+(t3-t2)*argument3;
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
///instanceof(id, ind)
|
||||
/**
|
||||
* instanceof :: Instance -> Class -> Boolean
|
||||
*
|
||||
* Returns whether `id` is of type `ind`, either directly or via the parent hierarchy.
|
||||
*
|
||||
* @param id the instance to check
|
||||
* @param ind the object type to check for
|
||||
* @returns true if id is of type ind, false otherwise
|
||||
*/
|
||||
|
||||
var inst = argument0;
|
||||
var ind = argument1;
|
||||
|
||||
if (!instance_exists(inst))
|
||||
return false;
|
||||
|
||||
for (var obj = inst.object_index; object_exists(obj); obj = object_get_parent(obj))
|
||||
if (obj == ind)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
///new(ind)
|
||||
/**
|
||||
* new :: Class -> Instance
|
||||
*
|
||||
* Creates an instance of object `ind`.
|
||||
*
|
||||
* @param ind the object class of the desired instance
|
||||
* @returns an instance id
|
||||
*/
|
||||
|
||||
return instance_create(0, 0, argument0);
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
///performAs(ind)
|
||||
/**
|
||||
* performAs :: Class -> ()
|
||||
*
|
||||
* Performs the current event within another class on the current instance.
|
||||
*
|
||||
* @param ind the object whose event to perform
|
||||
*/
|
||||
|
||||
event_perform_object(argument0, event_type, event_number);
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
///string_base(val, base)
|
||||
/**
|
||||
* string_base :: Integer -> Integer -> String
|
||||
*
|
||||
* Converts an integer to a string using a given base.
|
||||
*
|
||||
* @param val the number to convert
|
||||
* @param base the number base to use
|
||||
* @returns a string representation of the number
|
||||
*/
|
||||
|
||||
var val = floor(argument0);
|
||||
var base = floor(argument1);
|
||||
var symbols = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||
|
||||
if (base == 10)
|
||||
return string(val);
|
||||
|
||||
if (val < 0)
|
||||
return "-"+string_base(val, base);
|
||||
|
||||
if (base == 1)
|
||||
return string_repeat("1", val);
|
||||
|
||||
if (base <= 0 || base > string_length(symbols)) {
|
||||
show_error("Unsupported base '"+string(base)+"'.", false);
|
||||
return "0";
|
||||
}
|
||||
|
||||
if (val == 0)
|
||||
return "0";
|
||||
|
||||
|
||||
|
||||
for (var str = ""; val > 0; val = val div base)
|
||||
str = string_char_at(symbols, 1+(val mod base))+str;
|
||||
|
||||
return str;
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
///addLink(from, to)
|
||||
/**
|
||||
* addLink :: TypeConLink -> TypeConLink -> ()
|
||||
*
|
||||
* Adds an edge from one type con to another.
|
||||
*
|
||||
* @param from the source of the edge
|
||||
* @param to the target of the edge
|
||||
*/
|
||||
|
||||
var from = argument0;
|
||||
var to = argument1;
|
||||
|
||||
assertInstanceof(from, TypeConLink);
|
||||
assertInstanceof(to, TypeConLink);
|
||||
|
||||
ds_list_add(from.to, to);
|
||||
ds_set_add(to.from, from);
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
///removeLink(from, to)
|
||||
/**
|
||||
* removeLink :: TypeConLink -> TypeConLink -> ()
|
||||
*
|
||||
* Removes an edge from one type con to another.
|
||||
*
|
||||
* @param from the source of the edge
|
||||
* @param to the target of the edge
|
||||
*/
|
||||
|
||||
var from = argument0;
|
||||
var to = argument1;
|
||||
|
||||
assertInstanceof(from, TypeConLink);
|
||||
assertInstanceof(to, TypeConLink);
|
||||
|
||||
ds_list_delete(from.to, ds_list_find_index(from.to, to));
|
||||
|
||||
if (ds_list_find_index(from.to, to) == -1)
|
||||
ds_set_delete(to.from, from);
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
///replaceLink(from, toOld, toNew)
|
||||
/**
|
||||
* replaceLink :: TypeConLink -> TypeConLink -> TypeConLink -> ()
|
||||
*
|
||||
* Replaces an edge between one type con and another with a new target.
|
||||
*
|
||||
* @param from the source of the edge
|
||||
* @param toOld the current target of the edge
|
||||
* @param toNew the new target of the edge
|
||||
*/
|
||||
|
||||
var from = argument0;
|
||||
var toOld = argument1;
|
||||
var toNew = argument2;
|
||||
|
||||
assertInstanceof(from, TypeConLink);
|
||||
assertInstanceof(toOld, TypeConLink);
|
||||
assertInstanceof(toNew, TypeConLink);
|
||||
|
||||
assert(toOld != toNew, "Replacing link from "+getInstObjName(from)+" to "+getInstObjName(toOld)+" by itself.");
|
||||
|
||||
ds_list_replace(from.to, ds_list_find_index(from.to, toOld), toNew);
|
||||
if (ds_list_find_index(from.to, toOld) == -1)
|
||||
ds_set_delete(toOld.from, from);
|
||||
ds_set_add(toNew.from, from);
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
///layout(id)
|
||||
/**
|
||||
* layout :: SceneNode -> ()
|
||||
*
|
||||
* Updates the dimensions and position of a scene node.
|
||||
*
|
||||
* @param id the SceneNode to update
|
||||
*/
|
||||
|
||||
with (argument0) {
|
||||
event_user(0);
|
||||
event_user(1);
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
///setMargin(top, right, bottom, left)
|
||||
/**
|
||||
* setMargin :: Real -> Real -> Real -> Real -> ()
|
||||
*
|
||||
* Sets the margins of a scene node.
|
||||
*
|
||||
* @param top the new top margin
|
||||
* @param right the new right margin
|
||||
* @param bottom the new bottom margin
|
||||
* @param left the new left margin
|
||||
*/
|
||||
|
||||
if (!instanceof(id, SceneNode))
|
||||
show_error("Cannot set margins because this instance is not a "+object_get_name(SceneNode), true);
|
||||
|
||||
self.marginTop = argument0;
|
||||
self.marginRight = argument1;
|
||||
self.marginBottom = argument2;
|
||||
self.marginLeft = argument3;
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
///setPadding(top, right, bottom, left)
|
||||
/**
|
||||
* setPadding :: Real -> Real -> Real -> Real -> ()
|
||||
*
|
||||
* Sets the padding of a scene node.
|
||||
*
|
||||
* @param top the new top padding
|
||||
* @param right the new right padding
|
||||
* @param bottom the new bottom padding
|
||||
* @param left the new left padding
|
||||
*/
|
||||
|
||||
if (!instanceof(id, SceneNode))
|
||||
show_error("Cannot set padding because this instance is not a "+object_get_name(SceneNode), true);
|
||||
|
||||
self.paddingTop = argument0;
|
||||
self.paddingRight = argument1;
|
||||
self.paddingBottom = argument2;
|
||||
self.paddingLeft = argument3;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
///ds_set_add(set, val)
|
||||
/**
|
||||
* ds_set_add :: Set a -> a -> Boolean
|
||||
*
|
||||
* Adds an element to the set. Returns whether the element was newly added.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @param val the value to add to the set
|
||||
* @returns true if the element was added, false if it already exists
|
||||
*/
|
||||
|
||||
return ds_map_add(argument0, argument1, 0);
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
///ds_set_add_all(a, b)
|
||||
/**
|
||||
* ds_set_add_all :: Set a -> Set a -> ()
|
||||
*
|
||||
* Adds all elements from set `b` to `a`.
|
||||
*
|
||||
* @param a the set to add elements to
|
||||
* @param b the set of elements to add
|
||||
*/
|
||||
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
for (var el = ds_set_first(b); ds_set_exists(b, el); el = ds_set_next(b, el))
|
||||
ds_set_add(a, el);
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
///ds_set_choose(set)
|
||||
/**
|
||||
* ds_set_choose :: Set a -> a
|
||||
*
|
||||
* Returns a random element from the set or `undefined` if the set is empty.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns an element of the set or undefined
|
||||
*/
|
||||
|
||||
var set = argument0;
|
||||
var element = ds_map_find_first(set);
|
||||
|
||||
repeat (irandom(ds_map_size(set)-1))
|
||||
element = ds_map_find_next(set, element);
|
||||
|
||||
return element;
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
///ds_set_clear(set)
|
||||
/**
|
||||
* ds_set_clear :: Set a -> ()
|
||||
*
|
||||
* Removes all element from a set.
|
||||
*
|
||||
* @param set the set resource
|
||||
*/
|
||||
|
||||
ds_map_clear(argument0);
|
|
@ -0,0 +1,11 @@
|
|||
///ds_set_copy(set)
|
||||
/**
|
||||
* ds_set_copy :: Set a -> Set a
|
||||
*
|
||||
* Returns a copy of the given set.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns a copy of all elements of this set
|
||||
*/
|
||||
|
||||
return ds_map_copy(argument0, ds_map_create());
|
|
@ -0,0 +1,10 @@
|
|||
///ds_set_create()
|
||||
/**
|
||||
* ds_set_create :: () -> Set a
|
||||
*
|
||||
* Creates a new set.
|
||||
*
|
||||
* @returns the set id
|
||||
*/
|
||||
|
||||
return ds_map_create();
|
|
@ -0,0 +1,17 @@
|
|||
///ds_set_delete(set, val)
|
||||
/**
|
||||
* ds_set_delete :: Set a -> a -> ()
|
||||
*
|
||||
* Removes an element from the set. Returns whether the element was present in the set.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @param val the value to remove from the set
|
||||
* @returns true if the element was removed, false if it was not present
|
||||
*/
|
||||
|
||||
if (ds_map_exists(argument0, argument1)) {
|
||||
ds_map_delete(argument0, argument1);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
|
@ -0,0 +1,10 @@
|
|||
///ds_set_destroy(set)
|
||||
/**
|
||||
* ds_set_destroy :: Set a -> ()
|
||||
*
|
||||
* Destroys a set.
|
||||
*
|
||||
* @param set the set resource
|
||||
*/
|
||||
|
||||
ds_map_destroy(argument0);
|
|
@ -0,0 +1,11 @@
|
|||
///ds_set_empty(set)
|
||||
/**
|
||||
* ds_set_empty :: Set a -> Boolean
|
||||
*
|
||||
* Returns whether the given set is empty.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns true if the set has no elements, false otherwise
|
||||
*/
|
||||
|
||||
return ds_map_empty(argument0);
|
|
@ -0,0 +1,12 @@
|
|||
///ds_set_exists(set, val)
|
||||
/**
|
||||
* ds_set_exists :: Set a -> a -> Boolean
|
||||
*
|
||||
* Returns whether the given set contains the given value.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @param val the value to find
|
||||
* @returns true if the element is present, false otherwise
|
||||
*/
|
||||
|
||||
return ds_map_exists(argument0, argument1);
|
|
@ -0,0 +1,12 @@
|
|||
///ds_set_first(set)
|
||||
/**
|
||||
* ds_set_first :: Set a -> a
|
||||
*
|
||||
* Returns the 'first' element of the set for iterating over it.
|
||||
* Guarantees all elements will be enumerated with subsequent calls to {@link ds_set_next}.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns an element of the set
|
||||
*/
|
||||
|
||||
return ds_map_find_first(argument0);
|
|
@ -0,0 +1,20 @@
|
|||
///ds_set_is_disjoint(a, b)
|
||||
/**
|
||||
* ds_set_is_disjoint :: Set a -> Set a -> Boolean
|
||||
*
|
||||
* Returns whether sets `a` and `b` are disjoint.
|
||||
*
|
||||
* @param a one set
|
||||
* @param b another set
|
||||
* @returns true if a and b have no common element, false otherwise
|
||||
*/
|
||||
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
for (var el = ds_set_first(a); ds_set_exists(a, el); el = ds_set_next(a, el))
|
||||
if (ds_set_exists(b, el))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
///ds_set_is_equal(a, b)
|
||||
/**
|
||||
* ds_set_is_equal :: Set a -> Set a -> Boolean
|
||||
*
|
||||
* Returns whether sets `a` and `b` are equal.
|
||||
*
|
||||
* @param a one set
|
||||
* @param b another set
|
||||
* @returns true if all elements appear in both sets, false otherwise
|
||||
*/
|
||||
|
||||
return (ds_set_is_subset(a, b) && ds_set_is_subset(b, a));
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
///ds_set_is_subset(a, b)
|
||||
/**
|
||||
* ds_set_is_subset :: Set a -> Set a -> Boolean
|
||||
*
|
||||
* Returns whether set `a` is a subset of set `b`.
|
||||
*
|
||||
* @param a one set
|
||||
* @param b another set
|
||||
* @returns true if all elements of a appear in b, false otherwise
|
||||
*/
|
||||
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
for (var el = ds_set_first(a); ds_set_exists(a, el); el = ds_set_next(a, el))
|
||||
if (!ds_set_exists(b, el))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
///ds_set_last(set)
|
||||
/**
|
||||
* ds_set_last :: Set a -> a
|
||||
*
|
||||
* Returns the 'last' element of the set for iterating over it.
|
||||
* Guarantees all elements will be enumerated with subsequent calls to {@link ds_set_previous}.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns an element of the set
|
||||
*/
|
||||
|
||||
return ds_map_find_last(argument0);
|
|
@ -0,0 +1,12 @@
|
|||
///ds_set_next(set, val)
|
||||
/**
|
||||
* ds_set_next :: Set a -> a -> a
|
||||
*
|
||||
* Returns the 'next' element of the set given a current element or `undefined` if the element is {@link ds_set_last}.
|
||||
* Guarantees it will return the input value when composed with {@link ds_set_previous}.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns an element of the set or undefined
|
||||
*/
|
||||
|
||||
return ds_map_find_next(argument0, argument1);
|
|
@ -0,0 +1,12 @@
|
|||
///ds_set_previous(set, val)
|
||||
/**
|
||||
* ds_set_previous :: Set a -> a -> a
|
||||
*
|
||||
* Returns the 'previous' element of the set given a current element or `undefined` if the element is {@link ds_set_first}.
|
||||
* Guarantees it will return the input value when composed with {@link ds_set_next}.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns an element of the set or undefined
|
||||
*/
|
||||
|
||||
return ds_map_find_previous(argument0, argument1);
|
|
@ -0,0 +1,11 @@
|
|||
///ds_set_size(set)
|
||||
/**
|
||||
* ds_set_size :: Set a -> Integer
|
||||
*
|
||||
* Returns the number of elements in the given set.
|
||||
*
|
||||
* @param set the set resource
|
||||
* @returns the number of elements in this set
|
||||
*/
|
||||
|
||||
return ds_map_size(argument0);
|
|
@ -0,0 +1,13 @@
|
|||
///addChild(parent, child)
|
||||
/**
|
||||
* addChild :: TreeNode -> TreeNode -> ()
|
||||
*
|
||||
* Adds `child` to the list of children in `parent` and sets the parent of the `child` to `parent`.
|
||||
*
|
||||
* @param parent the parent TreeNode
|
||||
* @param child the child TreeNode
|
||||
*/
|
||||
|
||||
ds_list_add(argument0.children, argument1);
|
||||
argument1.parent = argument0;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
///hasChild(parent, id)
|
||||
/**
|
||||
* hasChild :: TreeNode -> TreeNode -> Boolean
|
||||
*
|
||||
* Returns whether `parent` directly contains `id` as a child.
|
||||
*
|
||||
* @param parent the parent TreeNode
|
||||
* @param id the child TreeNode
|
||||
* @returns true if id is a child of parent
|
||||
*/
|
||||
|
||||
return ds_list_find_index(argument0.children, argument1);
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
///hasParentNode(id, ind)
|
||||
/**
|
||||
* hasParentNode :: TreeNode -> Class -> Bool
|
||||
*
|
||||
* Returns whether `id` has a parent node of type `ind` somewhere up the tree.
|
||||
*
|
||||
* @param id the node to check
|
||||
* @param ind the node type type to look for
|
||||
* @returns true if id has a parent of type ind, false otherwise
|
||||
*/
|
||||
|
||||
for (var node = argument0.parent; node != noone; node = node.parent)
|
||||
if (node.object_index == argument1)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
///removeChild(parent, child)
|
||||
/**
|
||||
* removeChild :: TreeNode -> TreeNode -> ()
|
||||
*
|
||||
* Removes `child` from the list of children in `parent` and sets the parent of the `child` to noone.
|
||||
*
|
||||
* @param parent the parent TreeNode
|
||||
* @param child the child TreeNode
|
||||
*/
|
||||
|
||||
ds_list_delete(argument0.children, ds_list_find_index(argument0.children, argument1));
|
||||
argument1.parent = noone;
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
///copyType(id)
|
||||
/**
|
||||
* copyType :: Type -> Type
|
||||
*
|
||||
* Returns a deep copy of the given type instance.
|
||||
*
|
||||
* @param id the type to copy
|
||||
*/
|
||||
|
||||
assert(false, "deprecated");
|
||||
|
||||
var orig = argument0;
|
||||
var copy = new(orig.object_index);
|
||||
|
||||
for (var trait = ds_set_first(orig.traits); ds_set_exists(orig.traits, trait); trait = ds_set_next(orig.traits, trait)) {
|
||||
var newTrait = new(trait.object_index);
|
||||
newTrait.parameter = trait.parameter;
|
||||
ds_set_add(copy.traits, newTrait);
|
||||
addChild(copy, newTrait);
|
||||
}
|
||||
|
||||
if (instanceof(orig, ParametricType))
|
||||
setParameter(copy, orig.parameter);
|
||||
|
||||
if (instanceof(orig, UnaryType)) {
|
||||
copy.first = copyType(orig.first);
|
||||
addChild(copy, copy.first);
|
||||
}
|
||||
|
||||
if (instanceof(orig, BinaryType)) {
|
||||
copy.first = copyType(orig.first);
|
||||
copy.second = copyType(orig.second);
|
||||
addChild(copy, copy.first);
|
||||
addChild(copy, copy.second);
|
||||
}
|
||||
|
||||
return copy;
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
#define freshTypes
|
||||
///freshTypes(block)
|
||||
/**
|
||||
* freshTypes :: Block -> ()
|
||||
*
|
||||
* Refreshes the anchor types of this block.
|
||||
*
|
||||
* @param block the block to refresh
|
||||
*/
|
||||
|
||||
var block = argument0;
|
||||
|
||||
assertInstanceof(block, Block);
|
||||
|
||||
with (block) {
|
||||
for (var i = 0; i < ds_list_size(self.children); i++)
|
||||
if (instanceof(self.children[|i], Anchor)) {
|
||||
var anchor = self.children[|i];
|
||||
|
||||
if (!ds_list_empty(anchor.children))
|
||||
delete(anchor.children[|0]);
|
||||
}
|
||||
|
||||
var tmap = ds_map_create();
|
||||
var vmap = ds_map_create();
|
||||
for (var i = 0; i < ds_list_size(children); i++)
|
||||
if (instanceof(self.children[|i], Anchor)) {
|
||||
var anchor = self.children[|i];
|
||||
|
||||
if (anchor.currentType != noone) {
|
||||
if (!instanceof(anchor.currentType, TypeCon1Link))
|
||||
removeType(anchor.currentType);
|
||||
|
||||
anchor.currentType = noone;
|
||||
}
|
||||
|
||||
anchor.currentType = copyFreshCon(tmap, vmap, anchor.freshType);
|
||||
addChild(anchor, createTypeInstance(anchor.currentType.to[|0]));
|
||||
}
|
||||
|
||||
ds_map_destroy(tmap);
|
||||
ds_map_destroy(vmap);
|
||||
}
|
||||
|
||||
|
||||
#define copyFreshCon
|
||||
///copyFreshCon(cmap, vmap, id)
|
||||
/**
|
||||
* copyFreshCon :: Map TypeConLink TypeConLink -> Map FreeType FreeType -> TypeConLink -> TypeConLink
|
||||
*
|
||||
* Returns a deep copy of the given type structure with fresh type variables.
|
||||
*
|
||||
* @param cmap a map of old cons to fresh ones
|
||||
* @param vmap a map of old free types to fresh ones
|
||||
* @param id the type to copy
|
||||
*/
|
||||
|
||||
var cmap = argument0;
|
||||
var vmap = argument1;
|
||||
var con = argument2;
|
||||
|
||||
assertInstanceof(con, TypeConLink);
|
||||
|
||||
if (!ds_map_exists(cmap, con)) {
|
||||
if (instanceof(con, TypeCon1Link)) {
|
||||
if (instanceof(con.type, FreeType))
|
||||
with (new(TypeCon1Link)) {
|
||||
self.type = copyFreshType(vmap, con.type);
|
||||
|
||||
cmap[?con] = id;
|
||||
}
|
||||
else
|
||||
return con;
|
||||
}
|
||||
else if (instanceof(con, TypeConLink))
|
||||
with (new(TypeConLink)) {
|
||||
for (var i = 0; i < ds_list_size(con.to); i++)
|
||||
addLink(id, copyFreshCon(cmap, vmap, con.to[|i]));
|
||||
|
||||
cmap[?con] = id;
|
||||
}
|
||||
}
|
||||
|
||||
return cmap[?con];
|
||||
|
||||
|
||||
#define copyFreshType
|
||||
///copyFreshType(vmap, id)
|
||||
/**
|
||||
* copyFreshType :: Map FreeType FreeType -> Type -> Type
|
||||
*
|
||||
* Returns a copy of the given type with a fresh type variable (if applicable).
|
||||
*
|
||||
* @param vmap a map of old free types to fresh ones
|
||||
* @param id the type to copy
|
||||
*/
|
||||
|
||||
var vmap = argument0;
|
||||
var type = argument1;
|
||||
|
||||
assertInstanceof(type, Type);
|
||||
|
||||
if (instanceof(type, ConcreteType))
|
||||
return type;
|
||||
|
||||
if (instanceof(type, FreeType)) {
|
||||
if (!ds_map_exists(vmap, type))
|
||||
with (new(FreeType)) {
|
||||
ds_set_add_all(self.traits, type.traits);
|
||||
|
||||
vmap[?type] = id;
|
||||
}
|
||||
|
||||
return vmap[?type];
|
||||
}
|
||||
|
||||
assert(false, "Unknown type "+getInstObjName(type));
|
|
@ -0,0 +1,32 @@
|
|||
///getRandomType(conset)
|
||||
/**
|
||||
* getRandomType :: Set TypeCon1Link -> TypeConLink
|
||||
*
|
||||
*/
|
||||
|
||||
var conset = argument0;
|
||||
var con;
|
||||
|
||||
if (irandom_range(0, sqrt(ds_set_size(conset))) == 0) {
|
||||
con = new(choose(TypeConLink, TypeCon1Link, TypeCon1Link, TypeCon1Link));
|
||||
|
||||
if (instanceof(con, TypeCon1Link)) {
|
||||
con.type = new(choose(FreeType, ConcreteType));
|
||||
ds_set_add(conset, con);
|
||||
}
|
||||
else {
|
||||
if (random(1) < 0.50) {
|
||||
addLink(con, function);
|
||||
addLink(con, getRandomType(conset));
|
||||
addLink(con, getRandomType(conset));
|
||||
}
|
||||
else
|
||||
repeat (irandom_range(1, 3))
|
||||
addLink(con, getRandomType(conset));
|
||||
}
|
||||
}
|
||||
else
|
||||
con = ds_set_choose(conset);
|
||||
|
||||
return con;
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
///removeType(con)
|
||||
/**
|
||||
* removeType :: TypeConLink -> ()
|
||||
*
|
||||
* Removes a type con and all orphaned children.
|
||||
*
|
||||
* @param con the type con to remove
|
||||
*/
|
||||
|
||||
var con = argument0;
|
||||
|
||||
assertInstanceof(con, TypeConLink);
|
||||
|
||||
var visited = ds_set_create();
|
||||
|
||||
repeat (ds_list_size(con.to)) {
|
||||
var to = con.to[|0];
|
||||
removeLink(con, to);
|
||||
if (ds_set_empty(to.from))
|
||||
removeType(to);
|
||||
}
|
||||
|
||||
repeat (ds_set_size(con.from)) {
|
||||
removeLink(ds_set_first(con.from), con);
|
||||
}
|
||||
|
||||
if (instanceof(con, TypeCon1Link))
|
||||
delete(con.type);
|
||||
|
||||
delete(con);
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
///setParameter(type, param)
|
||||
/**
|
||||
* setParameter :: ParametricType -> Parameter -> ()
|
||||
*
|
||||
* Changes the parameter (name/link) of a parametrized type.
|
||||
*
|
||||
* @param type the type instance to change
|
||||
* @param param the new parameter
|
||||
*/
|
||||
var type = argument0;
|
||||
var param = argument1;
|
||||
|
||||
if (type.parameter == param)
|
||||
exit;
|
||||
|
||||
with (type.parameter) {
|
||||
ds_set_delete(self.types, type);
|
||||
|
||||
if (ds_set_empty(self.types))
|
||||
delete(id);
|
||||
}
|
||||
|
||||
with (param)
|
||||
ds_set_add(self.types, type);
|
||||
|
||||
type.parameter = param;
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
#define testUnify
|
||||
///testUnify(a, b)
|
||||
/**
|
||||
* testUnify :: TypeConLink -> TypeConLink -> Boolean
|
||||
*
|
||||
* Returns whether types `a` and `b` can be unified.
|
||||
*
|
||||
* @param a the first type con
|
||||
* @param b the second type con
|
||||
* @returns true if a and b can be unified, false otherwise
|
||||
*/
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
assertInstanceof(a, TypeConLink);
|
||||
assertInstanceof(b, TypeConLink);
|
||||
|
||||
|
||||
//same instance can always be unified
|
||||
if (a == b)
|
||||
return true;
|
||||
|
||||
|
||||
//test whether inhabited type can be unified
|
||||
if (instanceof(a, TypeCon1Link) && instanceof(b, TypeCon1Link))
|
||||
return testUnifyType(a.type, b.type);
|
||||
|
||||
|
||||
//inhabited type can only be unified with type con if it is a free type
|
||||
if (!instanceof(a, TypeCon1Link) && instanceof(b, TypeCon1Link))
|
||||
return testUnify(b, a);
|
||||
if (instanceof(a, TypeCon1Link) && !instanceof(b, TypeCon1Link)) {
|
||||
if (instanceof(a.type, FreeType) && !containsType(a.type, b) && instanceof(b.to[|0], TypeCon1Link))
|
||||
return testUnify(a, b.to[|0]);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
//type cons can only be unified if they have the same arity and their inhabited types match
|
||||
if (!instanceof(a, TypeCon1Link) && !instanceof(b, TypeCon1Link)) {
|
||||
if (ds_list_size(a.to) != ds_list_size(b.to))
|
||||
return false;
|
||||
|
||||
for (var i = 0; i < ds_list_size(a.to); i++)
|
||||
if (!testUnify(a.to[|i], b.to[|i]))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
#define testUnifyType
|
||||
///testUnify(a, b)
|
||||
/**
|
||||
* testUnify :: Type -> Type -> Boolean
|
||||
*
|
||||
* Returns whether types `a` and `b` can be unified.
|
||||
*
|
||||
* @param a the first type
|
||||
* @param b the second type
|
||||
* @returns true if a and b can be unified, false otherwise
|
||||
*/
|
||||
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
assertInstanceof(a, Type);
|
||||
assertInstanceof(b, Type);
|
||||
|
||||
//the same type can always be unified
|
||||
if (a == b)
|
||||
return true;
|
||||
|
||||
|
||||
//two free variables can always be unified
|
||||
if (instanceof(a, FreeType) && instanceof(b, FreeType))
|
||||
return true;
|
||||
|
||||
|
||||
//a type variable can be unified with a concrete type iff its traits are a subset of the concrete traits
|
||||
if (instanceof(a, FreeType) && !instanceof(b, FreeType))
|
||||
return ds_set_is_subset(a.traits, b.traits);
|
||||
if (!instanceof(a, FreeType) && instanceof(b, FreeType))
|
||||
return ds_set_is_subset(b.traits, a.traits);
|
||||
|
||||
|
||||
//two different concrete types cannot be unified
|
||||
return false;
|
||||
#define containsType
|
||||
///containsType(type, con)
|
||||
/**
|
||||
* containsType :: FreeType -> TypeConLink -> Boolean
|
||||
*
|
||||
* Returns whether a free type appears within a typecon.
|
||||
*/
|
||||
|
||||
var type = argument0;
|
||||
var con = argument1;
|
||||
|
||||
assertInstanceof(type, FreeType);
|
||||
assertInstanceof(con, TypeConLink);
|
||||
|
||||
if (instanceof(con, TypeCon1Link))
|
||||
return con.type == type;
|
||||
else
|
||||
for (var i = 0; i < ds_list_size(con.to); i++)
|
||||
if (containsType(type, con.to[|i]))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
#define unify
|
||||
///unify(a, b)
|
||||
/**
|
||||
* unify :: TypeConLink -> TypeConLink -> ()
|
||||
*
|
||||
* Unifies types `a` and `b`.
|
||||
*
|
||||
* @param a the first type con
|
||||
* @param b the second type con
|
||||
*/
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
assertInstanceof(a, TypeConLink);
|
||||
assertInstanceof(b, TypeConLink);
|
||||
|
||||
if (instanceof(a, TypeCon1Link) && instanceof(b, TypeCon1Link))
|
||||
unifyType(a, b);
|
||||
else if (instanceof(a, TypeCon1Link) && !instanceof(b, TypeCon1Link))
|
||||
unify(b, a);
|
||||
else if (!instanceof(a, TypeCon1Link) && instanceof(b, TypeCon1Link)) {
|
||||
while (!ds_set_empty(b.from))
|
||||
replaceLink(ds_set_first(b.from), b, a);
|
||||
|
||||
delete(b.type);
|
||||
delete(b);
|
||||
exit;
|
||||
|
||||
}
|
||||
else if (!instanceof(a, TypeCon1Link) && !instanceof(b, TypeCon1Link)) {
|
||||
for (var i = 0; i < ds_list_size(a.to); i++)
|
||||
unify(a.to[|i], b.to[|i]);
|
||||
}
|
||||
|
||||
|
||||
#define unifyType
|
||||
///unifyType(a, b)
|
||||
/**
|
||||
* unifyType :: TypeConLink -> TypeConLink -> ()
|
||||
*
|
||||
* Unifies types `a` and `b`.
|
||||
*
|
||||
* @param a the first type con
|
||||
* @param b the second type con
|
||||
*/
|
||||
var a = argument0;
|
||||
var b = argument1;
|
||||
|
||||
assertInstanceof(a, TypeCon1Link);
|
||||
assertInstanceof(b, TypeCon1Link);
|
||||
assertInstanceof(a.type, Type);
|
||||
assertInstanceof(b.type, Type);
|
||||
|
||||
if (a == b)
|
||||
exit;
|
||||
|
||||
//unify free types by taking the union of their traits and destroying the second type
|
||||
if (instanceof(a.type, FreeType) && instanceof(b.type, FreeType)) {
|
||||
ds_set_add_all(a.type.traits, b.type.traits);
|
||||
for (var trait = ds_set_first(b.type.traits); ds_set_exists(b.type.traits, trait); trait = ds_set_next(b.type.traits, trait))
|
||||
ds_set_add(a.type.traits, trait);
|
||||
|
||||
while (!ds_set_empty(b.from))
|
||||
replaceLink(ds_set_first(b.from), b, a);
|
||||
|
||||
delete(b.type);
|
||||
delete(b);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
//unify free type with concrete type by replacing all occurrences with the concrete type
|
||||
if (instanceof(a.type, FreeType) && !instanceof(b.type, FreeType)) {
|
||||
unify(b, a);
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!instanceof(a.type, FreeType) && instanceof(b.type, FreeType)) {
|
||||
while (!ds_set_empty(b.from))
|
||||
replaceLink(ds_set_first(b.from), b, a);
|
||||
|
||||
delete(b.type);
|
||||
delete(b);
|
||||
exit;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
///unifyAnchors(source, drain)
|
||||
/**
|
||||
* unifyAnchors :: OutputAnchor -> InputAnchor -> ()
|
||||
*
|
||||
* Unifies two anchors.
|
||||
*
|
||||
* @param source the output anchor to unify
|
||||
* @param drain the input anchor to unify
|
||||
*/
|
||||
|
||||
var source = argument0;
|
||||
var drain = argument1;
|
||||
|
||||
|
||||
unify(source.currentType.to[|0], drain.currentType.to[|0]);
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 70 B |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue