1
0
mirror of https://github.com/Mojang/bedrock-protocol-docs.git synced 2025-02-24 12:05:28 +00:00
bedrock-protocol-docs/html/svg/NetworkItemStackDescriptor.svg
Oswaldo Leyva Barrientos 933599d224 Protocol version 622 for r/20_u7
2024-02-15 15:10:22 -08:00

324 lines
18 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 9.0.0 (20230911.1827)
-->
<!-- Title: NetworkItemStackDescriptor Pages: 1 -->
<svg width="1377pt" height="476pt"
viewBox="0.00 0.00 1377.33 476.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 472)">
<title>NetworkItemStackDescriptor</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-472 1373.33,-472 1373.33,4 -4,4"/>
<!-- 18 -->
<!-- name: &quot;NetworkItemStackDescriptor&quot;, typeName: &quot;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>18</title>
<ellipse fill="none" stroke="black" cx="119.43" cy="-285" rx="119.43" ry="18"/>
<text text-anchor="middle" x="119.43" y="-279.57" font-family="Times New Roman,serif" font-size="14.00">NetworkItemStackDescriptor</text>
</g>
<!-- 19 -->
<!-- name: &quot;Dependency on &#39;Valid item&#39;&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>19</title>
<polygon fill="none" stroke="black" points="438.6,-303 274.85,-303 274.85,-267 444.6,-267 444.6,-297 438.6,-303"/>
<polyline fill="none" stroke="black" points="438.6,-303 438.6,-297"/>
<polyline fill="none" stroke="black" points="444.6,-297 438.6,-297"/>
<text text-anchor="middle" x="359.73" y="-279.57" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;Valid item&#39;</text>
</g>
<!-- 18&#45;&gt;19 -->
<g id="edge1" class="edge">
<title>18&#45;&gt;19</title>
<path fill="none" stroke="black" d="M239.23,-285C247.22,-285 255.21,-285 263.06,-285"/>
<polygon fill="black" stroke="black" points="262.93,-288.5 272.93,-285 262.93,-281.5 262.93,-288.5"/>
</g>
<!-- 20 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>20</title>
<polygon fill="none" stroke="black" points="521.06,-379 480.6,-361 521.06,-343 561.52,-361 521.06,-379"/>
<text text-anchor="middle" x="521.06" y="-355.57" font-family="Times New Roman,serif" font-size="14.00">if (0)</text>
</g>
<!-- 19&#45;&gt;20 -->
<g id="edge2" class="edge">
<title>19&#45;&gt;20</title>
<path fill="none" stroke="black" d="M399.3,-303.4C427.34,-316.77 464.74,-334.61 490.45,-346.88"/>
<polygon fill="black" stroke="black" points="488.79,-349.96 499.33,-351.11 491.81,-343.65 488.79,-349.96"/>
</g>
<!-- 23 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 23, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>23</title>
<polygon fill="none" stroke="black" points="521.06,-276 480.6,-258 521.06,-240 561.52,-258 521.06,-276"/>
<text text-anchor="middle" x="521.06" y="-252.57" font-family="Times New Roman,serif" font-size="14.00">if (1)</text>
</g>
<!-- 19&#45;&gt;23 -->
<g id="edge5" class="edge">
<title>19&#45;&gt;23</title>
<path fill="none" stroke="black" d="M445.06,-270.71C457.12,-268.67 469.04,-266.65 479.7,-264.84"/>
<polygon fill="black" stroke="black" points="479.96,-268.35 489.24,-263.22 478.79,-261.44 479.96,-268.35"/>
</g>
<!-- 21 -->
<!-- name: &quot;Id&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Send fixed Id of 0 for invalid item&quot; -->
<g id="node4" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="1079.34" cy="-448" rx="27" ry="18"/>
<text text-anchor="middle" x="1079.34" y="-442.57" font-family="Times New Roman,serif" font-size="14.00">Id</text>
</g>
<!-- 20&#45;&gt;21 -->
<g id="edge3" class="edge">
<title>20&#45;&gt;21</title>
<path fill="none" stroke="black" d="M540.07,-371.06C554.99,-378.91 577.01,-389.4 597.52,-395 758.16,-438.86 958.41,-446.57 1040.53,-447.82"/>
<polygon fill="black" stroke="black" points="1040.45,-451.32 1050.49,-447.95 1040.53,-444.32 1040.45,-451.32"/>
</g>
<!-- 22 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 22, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>22</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-450" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 21&#45;&gt;22 -->
<g id="edge4" class="edge">
<title>21&#45;&gt;22</title>
<path fill="none" stroke="black" d="M1106.7,-448.27C1138.8,-448.61 1193.41,-449.17 1231.22,-449.57"/>
<polygon fill="black" stroke="black" points="1230.82,-453.06 1240.85,-449.67 1230.89,-446.06 1230.82,-453.06"/>
</g>
<!-- 24 -->
<!-- name: &quot;Id&quot;, typeName: &quot;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>24</title>
<ellipse fill="none" stroke="black" cx="1079.34" cy="-392" rx="27" ry="18"/>
<text text-anchor="middle" x="1079.34" y="-386.57" font-family="Times New Roman,serif" font-size="14.00">Id</text>
</g>
<!-- 23&#45;&gt;24 -->
<g id="edge6" class="edge">
<title>23&#45;&gt;24</title>
<path fill="none" stroke="black" d="M532.47,-271.26C545.74,-287.13 570.24,-313.15 597.52,-326 749.55,-397.6 956.53,-397.7 1040.56,-394.24"/>
<polygon fill="black" stroke="black" points="1040.71,-397.74 1050.53,-393.79 1040.38,-390.75 1040.71,-397.74"/>
</g>
<!-- 26 -->
<!-- name: &quot;Stack size&quot;, typeName: &quot;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>26</title>
<ellipse fill="none" stroke="black" cx="903.78" cy="-333" rx="48.07" ry="18"/>
<text text-anchor="middle" x="903.78" y="-327.57" font-family="Times New Roman,serif" font-size="14.00">Stack size</text>
</g>
<!-- 23&#45;&gt;26 -->
<g id="edge8" class="edge">
<title>23&#45;&gt;26</title>
<path fill="none" stroke="black" d="M538.4,-268.65C553.21,-277.75 575.95,-290.39 597.52,-297 680.74,-322.49 781.83,-330.11 844.24,-332.29"/>
<polygon fill="black" stroke="black" points="843.81,-335.78 853.91,-332.59 844.03,-328.78 843.81,-335.78"/>
</g>
<!-- 28 -->
<!-- name: &quot;Aux value&quot;, typeName: &quot;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>28</title>
<ellipse fill="none" stroke="black" cx="1079.34" cy="-284" rx="47.57" ry="18"/>
<text text-anchor="middle" x="1079.34" y="-278.57" font-family="Times New Roman,serif" font-size="14.00">Aux value</text>
</g>
<!-- 23&#45;&gt;28 -->
<g id="edge10" class="edge">
<title>23&#45;&gt;28</title>
<path fill="none" stroke="black" d="M558.14,-259.97C570.61,-260.63 584.68,-261.37 597.52,-262 750.04,-269.53 929.81,-277.52 1020.22,-281.48"/>
<polygon fill="black" stroke="black" points="1019.92,-284.97 1030.07,-281.91 1020.23,-277.97 1019.92,-284.97"/>
</g>
<!-- 30 -->
<!-- name: &quot;Include Net Id&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>30</title>
<ellipse fill="none" stroke="black" cx="694.4" cy="-235" rx="64.04" ry="18"/>
<text text-anchor="middle" x="694.4" y="-229.57" font-family="Times New Roman,serif" font-size="14.00">Include Net Id</text>
</g>
<!-- 23&#45;&gt;30 -->
<g id="edge12" class="edge">
<title>23&#45;&gt;30</title>
<path fill="none" stroke="black" d="M553.09,-253.83C573.08,-251.15 599.87,-247.55 624.69,-244.22"/>
<polygon fill="black" stroke="black" points="624.98,-247.72 634.42,-242.92 624.05,-240.78 624.98,-247.72"/>
</g>
<!-- 32 -->
<!-- name: &quot;Dependency on &#39;Include Net Id&#39;&quot;, typeName: &quot;&quot;, id: 32, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>32</title>
<polygon fill="none" stroke="black" points="785.27,-198 597.52,-198 597.52,-162 791.27,-162 791.27,-192 785.27,-198"/>
<polyline fill="none" stroke="black" points="785.27,-198 785.27,-192"/>
<polyline fill="none" stroke="black" points="791.27,-192 785.27,-192"/>
<text text-anchor="middle" x="694.4" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;Include Net Id&#39;</text>
</g>
<!-- 23&#45;&gt;32 -->
<g id="edge14" class="edge">
<title>23&#45;&gt;32</title>
<path fill="none" stroke="black" d="M536.59,-246.44C551.24,-235.26 574.86,-218.52 597.52,-208 601.77,-206.03 606.19,-204.16 610.69,-202.4"/>
<polygon fill="black" stroke="black" points="611.73,-205.74 619.9,-199 609.31,-199.18 611.73,-205.74"/>
</g>
<!-- 41 -->
<!-- name: &quot;Block Runtime Id&quot;, typeName: &quot;&quot;, id: 41, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>41</title>
<ellipse fill="none" stroke="black" cx="903.78" cy="-72" rx="76.51" ry="18"/>
<text text-anchor="middle" x="903.78" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Block Runtime Id</text>
</g>
<!-- 23&#45;&gt;41 -->
<g id="edge20" class="edge">
<title>23&#45;&gt;41</title>
<path fill="none" stroke="black" d="M528.72,-242.94C539.67,-219.95 563.7,-176.31 597.52,-153 663.67,-107.4 754.1,-87.47 819.34,-78.75"/>
<polygon fill="black" stroke="black" points="819.42,-82.27 828.9,-77.54 818.54,-75.33 819.42,-82.27"/>
</g>
<!-- 43 -->
<!-- name: &quot;User Data Buffer&quot;, typeName: &quot;&quot;, id: 43, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;The @ItemInstanceUserData.html#ItemInstanceUserData@ &#160;binary blob encoded as a String, so it&#39;s unsigned varint length prefixed. Get all your nbt+property bytes, calculate the length, write that length, THEN write the data.&quot; -->
<g id="node23" class="node">
<title>43</title>
<ellipse fill="none" stroke="black" cx="694.4" cy="-36" rx="73.52" ry="18"/>
<text text-anchor="middle" x="694.4" y="-30.57" font-family="Times New Roman,serif" font-size="14.00">User Data Buffer</text>
</g>
<!-- 23&#45;&gt;43 -->
<g id="edge22" class="edge">
<title>23&#45;&gt;43</title>
<path fill="none" stroke="black" d="M526.71,-242.44C536.17,-212.71 560,-146.92 597.52,-103 612.73,-85.2 633.68,-69.85 652.12,-58.34"/>
<polygon fill="black" stroke="black" points="653.72,-61.47 660.48,-53.3 650.1,-55.47 653.72,-61.47"/>
</g>
<!-- 25 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>25</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-396" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 24&#45;&gt;25 -->
<g id="edge7" class="edge">
<title>24&#45;&gt;25</title>
<path fill="none" stroke="black" d="M1106.7,-392.55C1138.8,-393.21 1193.41,-394.35 1231.22,-395.13"/>
<polygon fill="black" stroke="black" points="1230.78,-398.63 1240.85,-395.34 1230.93,-391.63 1230.78,-398.63"/>
</g>
<!-- 27 -->
<!-- name: &quot;unsigned short&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>27</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-342" rx="65.04" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
</g>
<!-- 26&#45;&gt;27 -->
<g id="edge9" class="edge">
<title>26&#45;&gt;27</title>
<path fill="none" stroke="black" d="M952.15,-334.16C1014.17,-335.67 1123.62,-338.35 1197.18,-340.15"/>
<polygon fill="black" stroke="black" points="1197.07,-343.65 1207.16,-340.39 1197.25,-336.65 1197.07,-343.65"/>
</g>
<!-- 29 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>29</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-288" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 28&#45;&gt;29 -->
<g id="edge11" class="edge">
<title>28&#45;&gt;29</title>
<path fill="none" stroke="black" d="M1126.94,-284.97C1147.6,-285.4 1172.45,-285.91 1195.75,-286.4"/>
<polygon fill="black" stroke="black" points="1195.45,-289.89 1205.52,-286.6 1195.6,-282.89 1195.45,-289.89"/>
</g>
<!-- 31 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node14" class="node">
<title>31</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-234" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 30&#45;&gt;31 -->
<g id="edge13" class="edge">
<title>30&#45;&gt;31</title>
<path fill="none" stroke="black" d="M758.85,-234.89C879.22,-234.68 1137.4,-234.23 1234.7,-234.07"/>
<polygon fill="black" stroke="black" points="1234.5,-237.57 1244.5,-234.05 1234.49,-230.57 1234.5,-237.57"/>
</g>
<!-- 33 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>33</title>
<polygon fill="none" stroke="black" points="903.78,-198 863.32,-180 903.78,-162 944.24,-180 903.78,-198"/>
<text text-anchor="middle" x="903.78" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">if (0)</text>
</g>
<!-- 32&#45;&gt;33 -->
<g id="edge15" class="edge">
<title>32&#45;&gt;33</title>
<path fill="none" stroke="black" d="M791.5,-180C811.93,-180 832.75,-180 850.77,-180"/>
<polygon fill="black" stroke="black" points="850.66,-183.5 860.66,-180 850.66,-176.5 850.66,-183.5"/>
</g>
<!-- 35 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 35, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>35</title>
<polygon fill="none" stroke="black" points="903.78,-144 863.32,-126 903.78,-108 944.24,-126 903.78,-144"/>
<text text-anchor="middle" x="903.78" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">if (1)</text>
</g>
<!-- 32&#45;&gt;35 -->
<g id="edge17" class="edge">
<title>32&#45;&gt;35</title>
<path fill="none" stroke="black" d="M766.19,-161.57C799.76,-152.83 838.47,-142.75 866.09,-135.55"/>
<polygon fill="black" stroke="black" points="866.94,-138.95 875.73,-133.04 865.18,-132.18 866.94,-138.95"/>
</g>
<!-- 34 -->
<!-- name: &quot;[No Data]&quot;, typeName: &quot;&quot;, id: 34, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>34</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-180" rx="47.57" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">[No Data]</text>
</g>
<!-- 33&#45;&gt;34 -->
<g id="edge16" class="edge">
<title>33&#45;&gt;34</title>
<path fill="none" stroke="black" d="M945.23,-180C1010.59,-180 1139.71,-180 1214.86,-180"/>
<polygon fill="black" stroke="black" points="1214.48,-183.5 1224.48,-180 1214.48,-176.5 1214.48,-183.5"/>
</g>
<!-- 36 -->
<!-- name: &quot;Net Id Variant&quot;, typeName: &quot;ItemStackNetIdVariant&quot;, id: 36, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>36</title>
<ellipse fill="none" stroke="black" cx="1079.34" cy="-126" rx="63.04" ry="18"/>
<text text-anchor="middle" x="1079.34" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Net Id Variant</text>
</g>
<!-- 35&#45;&gt;36 -->
<g id="edge18" class="edge">
<title>35&#45;&gt;36</title>
<path fill="none" stroke="black" d="M945.04,-126C962.7,-126 984.01,-126 1004.36,-126"/>
<polygon fill="black" stroke="black" points="1004.35,-129.5 1014.35,-126 1004.35,-122.5 1004.35,-129.5"/>
</g>
<!-- 40 -->
<!-- name: &quot;ItemStackNetIdVariant&quot;, typeName: &quot;&quot;, id: 40, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>40</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-126" rx="95.47" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">ItemStackNetIdVariant</text>
</g>
<!-- 36&#45;&gt;40 -->
<g id="edge19" class="edge">
<title>36&#45;&gt;40</title>
<path fill="none" stroke="black" d="M1142.84,-126C1150.53,-126 1158.54,-126 1166.65,-126"/>
<polygon fill="black" stroke="black" points="1166.64,-129.5 1176.64,-126 1166.64,-122.5 1166.64,-129.5"/>
</g>
<!-- 42 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 42, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>42</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 41&#45;&gt;42 -->
<g id="edge21" class="edge">
<title>41&#45;&gt;42</title>
<path fill="none" stroke="black" d="M980.6,-72C1056.36,-72 1170.07,-72 1230.9,-72"/>
<polygon fill="black" stroke="black" points="1230.83,-75.5 1240.83,-72 1230.83,-68.5 1230.83,-75.5"/>
</g>
<!-- 44 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 44, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node24" class="node">
<title>44</title>
<ellipse fill="none" stroke="black" cx="1273.85" cy="-18" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1273.85" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 43&#45;&gt;44 -->
<g id="edge23" class="edge">
<title>43&#45;&gt;44</title>
<path fill="none" stroke="black" d="M767.65,-33.75C889.81,-29.94 1133.37,-22.35 1230.97,-19.31"/>
<polygon fill="black" stroke="black" points="1231.01,-22.81 1240.89,-19 1230.79,-15.81 1231.01,-22.81"/>
</g>
</g>
</svg>