1
0
mirror of https://github.com/Mojang/bedrock-protocol-docs.git synced 2025-07-19 17:51:46 +00:00
Files
bedrock-protocol-docs/html/svg/MovePlayerPacket.svg
Oswaldo Leyva Barrientos 7ead0641a8 Removed irrelevant SVGs from PR
2025-05-21 13:32:09 -07:00

335 lines
19 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 12.2.1 (20241206.2353)
-->
<!-- Title: MovePlayerPacket Pages: 1 -->
<svg width="1053pt" height="584pt"
viewBox="0.00 0.00 1052.67 584.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 580)">
<title>MovePlayerPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-580 1048.67,-580 1048.67,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;MovePlayerPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 19, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="81.04" cy="-342" rx="81.04" ry="18"/>
<text text-anchor="middle" x="81.04" y="-336.95" font-family="Times New Roman,serif" font-size="14.00">MovePlayerPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Player Runtime ID&quot;, typeName: &quot;ActorRuntimeID&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;If server&#45;bound, this is always the id of the sending player. If client&#45;bound, the target player.&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="573.12" cy="-549" rx="81.55" ry="18"/>
<text text-anchor="middle" x="573.12" y="-543.95" font-family="Times New Roman,serif" font-size="14.00">Player Runtime ID</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M88.83,-360.37C103.01,-395.82 139.39,-473.22 198.07,-508 287.44,-560.96 410.11,-563.95 490.23,-558.61"/>
<polygon fill="black" stroke="black" points="490.02,-562.13 499.73,-557.91 489.51,-555.15 490.02,-562.13"/>
</g>
<!-- 3 -->
<!-- name: &quot;Position&quot;, typeName: &quot;Vec3&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;The predicted world space position of the player after movement simulation this tick. The server authoritative equivalent of this is PlayerAuthInputPacket::mPos&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="775.8" cy="-500" rx="41.12" ry="18"/>
<text text-anchor="middle" x="775.8" y="-494.95" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M97.63,-359.96C118.17,-382.27 156.57,-419.5 198.07,-437 379.49,-513.49 620.1,-509.9 723.74,-503.93"/>
<polygon fill="black" stroke="black" points="723.82,-507.43 733.59,-503.32 723.4,-500.44 723.82,-507.43"/>
</g>
<!-- 5 -->
<!-- name: &quot;Rotation&quot;, typeName: &quot;Vec2&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;Rotation in degrees of the direction they should look, separate from their body orientation. The server authoritative equivalent of this is PlayerAuthInputPacket::mRot&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="573.12" cy="-443" rx="42.65" ry="18"/>
<text text-anchor="middle" x="573.12" y="-437.95" font-family="Times New Roman,serif" font-size="14.00">Rotation</text>
</g>
<!-- 0&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>0&#45;&gt;5</title>
<path fill="none" stroke="black" d="M107.49,-359.35C130.19,-373.88 164.88,-393.83 198.07,-404 308.59,-437.86 445.12,-443.54 518.85,-443.82"/>
<polygon fill="black" stroke="black" points="518.61,-447.32 528.61,-443.82 518.61,-440.32 518.61,-447.32"/>
</g>
<!-- 7 -->
<!-- name: &quot;Y&#45;Head Rotation&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Rotation in degrees of the head. Almost always matches Y rotation. The server authoritative equivalent of this is PlayerAuthInputPacket::mYHeadRot&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="775.8" cy="-392" rx="73.36" ry="18"/>
<text text-anchor="middle" x="775.8" y="-386.95" font-family="Times New Roman,serif" font-size="14.00">Y&#45;Head Rotation</text>
</g>
<!-- 0&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>0&#45;&gt;7</title>
<path fill="none" stroke="black" d="M151.92,-351.09C167.12,-352.89 183.12,-354.63 198.07,-356 373.62,-372.06 579.89,-383.03 692.01,-388.34"/>
<polygon fill="black" stroke="black" points="691.55,-391.82 701.71,-388.79 691.88,-384.83 691.55,-391.82"/>
</g>
<!-- 9 -->
<!-- name: &quot;Position Mode&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="573.12" cy="-342" rx="65.68" ry="18"/>
<text text-anchor="middle" x="573.12" y="-336.95" font-family="Times New Roman,serif" font-size="14.00">Position Mode</text>
</g>
<!-- 0&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>0&#45;&gt;9</title>
<path fill="none" stroke="black" d="M162.41,-342C254.73,-342 405.08,-342 495.7,-342"/>
<polygon fill="black" stroke="black" points="495.48,-345.5 505.48,-342 495.48,-338.5 495.48,-345.5"/>
</g>
<!-- 11 -->
<!-- name: &quot;On Ground&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;For client bound packets this should have little meaning as it will be reset by the client every frame. For server bound it is true if the player is currently touching the ground. This is indicated by physics trying to move the player down and being stopped by collision. If the player falls freely or moves up it is cleared. If the player isn&#39;t affected by gravity this will stay at whatever value it had. The server authoritative near&#45;equivalent of this is PlayerAuthInputPacket::InputData::VerticalCollision&quot; -->
<g id="node12" class="node">
<title>11</title>
<ellipse fill="none" stroke="black" cx="326.82" cy="-294" rx="52.89" ry="18"/>
<text text-anchor="middle" x="326.82" y="-288.95" font-family="Times New Roman,serif" font-size="14.00">On Ground</text>
</g>
<!-- 0&#45;&gt;11 -->
<g id="edge11" class="edge">
<title>0&#45;&gt;11</title>
<path fill="none" stroke="black" d="M142.92,-330.01C181.69,-322.38 231.55,-312.56 269.41,-305.11"/>
<polygon fill="black" stroke="black" points="269.63,-308.63 278.77,-303.26 268.28,-301.76 269.63,-308.63"/>
</g>
<!-- 13 -->
<!-- name: &quot;Riding Runtime ID&quot;, typeName: &quot;ActorRuntimeID&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;If client bound this has no meaning. If server bound it is the vehicle the client is riding as specified by the last SetActorLinkPacket from the server. The server authoritative near&#45;equivalent is PlayerAuthInputPacket::mClientPredictedVehicle&quot; -->
<g id="node14" class="node">
<title>13</title>
<ellipse fill="none" stroke="black" cx="326.82" cy="-236" rx="83.08" ry="18"/>
<text text-anchor="middle" x="326.82" y="-230.95" font-family="Times New Roman,serif" font-size="14.00">Riding Runtime ID</text>
</g>
<!-- 0&#45;&gt;13 -->
<g id="edge13" class="edge">
<title>0&#45;&gt;13</title>
<path fill="none" stroke="black" d="M104.3,-324.34C126.76,-307.34 163.03,-282.06 198.07,-267 214.48,-259.95 232.8,-254.31 250.32,-249.88"/>
<polygon fill="black" stroke="black" points="250.73,-253.38 259.63,-247.63 249.09,-246.58 250.73,-253.38"/>
</g>
<!-- 15 -->
<!-- name: &quot;Dependency on &#39;Position Mode == Teleport&#39;&quot;, typeName: &quot;&quot;, id: 15, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>15</title>
<polygon fill="none" stroke="black" points="449.57,-198 198.07,-198 198.07,-162 455.57,-162 455.57,-192 449.57,-198"/>
<polyline fill="none" stroke="black" points="449.57,-198 449.57,-192"/>
<polyline fill="none" stroke="black" points="455.57,-192 449.57,-192"/>
<text text-anchor="middle" x="326.82" y="-174.95" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;Position Mode == Teleport&#39;</text>
</g>
<!-- 0&#45;&gt;15 -->
<g id="edge15" class="edge">
<title>0&#45;&gt;15</title>
<path fill="none" stroke="black" d="M92.63,-323.69C110.48,-294.58 149.4,-238.06 198.07,-209 201.7,-206.83 205.48,-204.83 209.36,-202.97"/>
<polygon fill="black" stroke="black" points="210.7,-206.2 218.48,-199 207.91,-199.79 210.7,-206.2"/>
</g>
<!-- 23 -->
<!-- name: &quot;Tick&quot;, typeName: &quot;PlayerInputTick&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;If this packet is referring to the player or a client predicted vehicle they are in control of, this should be the most recently processed PlayerInputTick from their PlayerAuthInputPacket. Otherwise zero.&quot; -->
<g id="node24" class="node">
<title>23</title>
<ellipse fill="none" stroke="black" cx="326.82" cy="-72" rx="27.81" ry="18"/>
<text text-anchor="middle" x="326.82" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Tick</text>
</g>
<!-- 0&#45;&gt;23 -->
<g id="edge23" class="edge">
<title>0&#45;&gt;23</title>
<path fill="none" stroke="black" d="M89.81,-323.75C105.83,-287.73 145.5,-206.34 198.07,-153 226.02,-124.64 265.68,-101.46 293.37,-87.27"/>
<polygon fill="black" stroke="black" points="294.62,-90.56 302,-82.96 291.49,-84.3 294.62,-90.56"/>
</g>
<!-- 2 -->
<!-- name: &quot;ActorRuntimeID&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-558" rx="73.87" ry="18"/>
<text text-anchor="middle" x="970.8" y="-552.95" font-family="Times New Roman,serif" font-size="14.00">ActorRuntimeID</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M654.67,-550.83C721.99,-552.36 817.66,-554.54 885.9,-556.09"/>
<polygon fill="black" stroke="black" points="885.44,-559.58 895.51,-556.31 885.6,-552.58 885.44,-559.58"/>
</g>
<!-- 4 -->
<!-- name: &quot;Vec3&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-504" rx="29.34" ry="18"/>
<text text-anchor="middle" x="970.8" y="-498.95" font-family="Times New Roman,serif" font-size="14.00">Vec3</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M817.26,-500.84C850.24,-501.52 896.58,-502.48 929.51,-503.17"/>
<polygon fill="black" stroke="black" points="929.41,-506.66 939.48,-503.37 929.55,-499.66 929.41,-506.66"/>
</g>
<!-- 6 -->
<!-- name: &quot;Vec2&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-450" rx="29.34" ry="18"/>
<text text-anchor="middle" x="970.8" y="-444.95" font-family="Times New Roman,serif" font-size="14.00">Vec2</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M616.09,-443.74C692.74,-445.1 854.4,-447.96 929.67,-449.29"/>
<polygon fill="black" stroke="black" points="929.41,-452.79 939.47,-449.46 929.53,-445.79 929.41,-452.79"/>
</g>
<!-- 8 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-396" rx="27.81" ry="18"/>
<text text-anchor="middle" x="970.8" y="-390.95" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M849.22,-393.5C877.22,-394.08 908.11,-394.72 931.61,-395.21"/>
<polygon fill="black" stroke="black" points="931.26,-398.7 941.33,-395.41 931.4,-391.7 931.26,-398.7"/>
</g>
<!-- 10 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-342" rx="27" ry="18"/>
<text text-anchor="middle" x="970.8" y="-336.95" font-family="Times New Roman,serif" font-size="14.00">byte</text>
</g>
<!-- 9&#45;&gt;10 -->
<g id="edge10" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M639.02,-342C722.57,-342 865.02,-342 932.39,-342"/>
<polygon fill="black" stroke="black" points="932.17,-345.5 942.17,-342 932.17,-338.5 932.17,-345.5"/>
</g>
<!-- 12 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>12</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-288" rx="27.3" ry="18"/>
<text text-anchor="middle" x="970.8" y="-282.95" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 11&#45;&gt;12 -->
<g id="edge12" class="edge">
<title>11&#45;&gt;12</title>
<path fill="none" stroke="black" d="M380.09,-293.51C505.73,-292.34 822.41,-289.38 931.88,-288.35"/>
<polygon fill="black" stroke="black" points="931.81,-291.86 941.78,-288.26 931.75,-284.86 931.81,-291.86"/>
</g>
<!-- 14 -->
<!-- name: &quot;ActorRuntimeID&quot;, typeName: &quot;&quot;, id: 14, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>14</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-234" rx="73.87" ry="18"/>
<text text-anchor="middle" x="970.8" y="-228.95" font-family="Times New Roman,serif" font-size="14.00">ActorRuntimeID</text>
</g>
<!-- 13&#45;&gt;14 -->
<g id="edge14" class="edge">
<title>13&#45;&gt;14</title>
<path fill="none" stroke="black" d="M410.11,-235.74C532.65,-235.36 761.9,-234.65 885.57,-234.26"/>
<polygon fill="black" stroke="black" points="885.33,-237.76 895.32,-234.23 885.31,-230.76 885.33,-237.76"/>
</g>
<!-- 16 -->
<!-- name: &quot;If False&quot;, typeName: &quot;&quot;, id: 16, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>16</title>
<polygon fill="none" stroke="black" points="775.8,-198 720.55,-180 775.8,-162 831.05,-180 775.8,-198"/>
<text text-anchor="middle" x="775.8" y="-174.95" font-family="Times New Roman,serif" font-size="14.00">If False</text>
</g>
<!-- 15&#45;&gt;16 -->
<g id="edge16" class="edge">
<title>15&#45;&gt;16</title>
<path fill="none" stroke="black" d="M455.91,-180C538.09,-180 641.46,-180 707.83,-180"/>
<polygon fill="black" stroke="black" points="707.46,-183.5 717.46,-180 707.46,-176.5 707.46,-183.5"/>
</g>
<!-- 18 -->
<!-- name: &quot;If True&quot;, typeName: &quot;&quot;, id: 18, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>18</title>
<polygon fill="none" stroke="black" points="573.12,-144 521.49,-126 573.12,-108 624.75,-126 573.12,-144"/>
<text text-anchor="middle" x="573.12" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">If True</text>
</g>
<!-- 15&#45;&gt;18 -->
<g id="edge18" class="edge">
<title>15&#45;&gt;18</title>
<path fill="none" stroke="black" d="M411.21,-161.57C451.03,-152.77 496.97,-142.61 529.55,-135.41"/>
<polygon fill="black" stroke="black" points="529.99,-138.9 539,-133.32 528.48,-132.06 529.99,-138.9"/>
</g>
<!-- 17 -->
<!-- name: &quot;[No Data]&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>17</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-180" rx="48.28" ry="18"/>
<text text-anchor="middle" x="970.8" y="-174.95" font-family="Times New Roman,serif" font-size="14.00">[No Data]</text>
</g>
<!-- 16&#45;&gt;17 -->
<g id="edge17" class="edge">
<title>16&#45;&gt;17</title>
<path fill="none" stroke="black" d="M832.62,-180C857.13,-180 885.92,-180 910.79,-180"/>
<polygon fill="black" stroke="black" points="910.76,-183.5 920.76,-180 910.76,-176.5 910.76,-183.5"/>
</g>
<!-- 19 -->
<!-- name: &quot;Teleportation Cause&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>19</title>
<ellipse fill="none" stroke="black" cx="775.8" cy="-126" rx="85.13" ry="18"/>
<text text-anchor="middle" x="775.8" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">Teleportation Cause</text>
</g>
<!-- 18&#45;&gt;19 -->
<g id="edge19" class="edge">
<title>18&#45;&gt;19</title>
<path fill="none" stroke="black" d="M626.06,-126C642.31,-126 660.8,-126 679.07,-126"/>
<polygon fill="black" stroke="black" points="678.89,-129.5 688.89,-126 678.89,-122.5 678.89,-129.5"/>
</g>
<!-- 21 -->
<!-- name: &quot;Source Actor Type&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="775.8" cy="-72" rx="80.01" ry="18"/>
<text text-anchor="middle" x="775.8" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Source Actor Type</text>
</g>
<!-- 18&#45;&gt;21 -->
<g id="edge21" class="edge">
<title>18&#45;&gt;21</title>
<path fill="none" stroke="black" d="M603.3,-118.15C631.67,-110.51 675.69,-98.67 712.02,-88.89"/>
<polygon fill="black" stroke="black" points="712.81,-92.3 721.56,-86.33 710.99,-85.54 712.81,-92.3"/>
</g>
<!-- 20 -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>20</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-126" rx="27" ry="18"/>
<text text-anchor="middle" x="970.8" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">int</text>
</g>
<!-- 19&#45;&gt;20 -->
<g id="edge20" class="edge">
<title>19&#45;&gt;20</title>
<path fill="none" stroke="black" d="M861.17,-126C886.1,-126 912.13,-126 932.45,-126"/>
<polygon fill="black" stroke="black" points="932.2,-129.5 942.2,-126 932.2,-122.5 932.2,-129.5"/>
</g>
<!-- 22 -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 22, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node23" class="node">
<title>22</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-72" rx="27" ry="18"/>
<text text-anchor="middle" x="970.8" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">int</text>
</g>
<!-- 21&#45;&gt;22 -->
<g id="edge22" class="edge">
<title>21&#45;&gt;22</title>
<path fill="none" stroke="black" d="M856.14,-72C882.45,-72 910.53,-72 932.2,-72"/>
<polygon fill="black" stroke="black" points="932.01,-75.5 942.01,-72 932.01,-68.5 932.01,-75.5"/>
</g>
<!-- 27 -->
<!-- name: &quot;PlayerInputTick&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node25" class="node">
<title>27</title>
<ellipse fill="none" stroke="black" cx="970.8" cy="-18" rx="70.8" ry="18"/>
<text text-anchor="middle" x="970.8" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">PlayerInputTick</text>
</g>
<!-- 23&#45;&gt;27 -->
<g id="edge24" class="edge">
<title>23&#45;&gt;27</title>
<path fill="none" stroke="black" d="M354.59,-69.75C445.91,-62.07 747.51,-36.7 891.69,-24.57"/>
<polygon fill="black" stroke="black" points="891.87,-28.07 901.55,-23.74 891.29,-21.09 891.87,-28.07"/>
</g>
</g>
</svg>