1
0
mirror of https://github.com/Mojang/bedrock-protocol-docs.git synced 2025-07-12 03:08:52 +00:00
Files
bedrock-protocol-docs/html/svg/NetworkItemStackDescriptor.svg
Oswaldo Leyva Barrientos a27d6bb22a Protocol for r/21_u6 NetworkProtocolVersion 776 (#18)
* Protocol for r/21_u6 NetworkProtocolVersion 776

* Protocol for r/21_u6 NetworkProtocolVersion 776 - Fix README version

* Protocol for r/21_u6 NetworkProtocolVersion 776 - Fix changelog release

* Protocol for r/21_u6 NetworkProtocolVersion 776 - Add NoteBlockInstrument to protocol doc
2025-02-13 19:28:13 -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 12.2.1 (20241206.2353)
-->
<!-- Title: NetworkItemStackDescriptor Pages: 1 -->
<svg width="1399pt" height="476pt"
viewBox="0.00 0.00 1399.19 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 1395.19,-472 1395.19,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.93" cy="-161" rx="119.93" ry="18"/>
<text text-anchor="middle" x="119.93" y="-155.95" font-family="Times New Roman,serif" font-size="14.00">NetworkItemStackDescriptor</text>
</g>
<!-- 19 -->
<!-- name: &quot;Dependency on &#39;Item is valid?&#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="453.87,-179 275.87,-179 275.87,-143 459.87,-143 459.87,-173 453.87,-179"/>
<polyline fill="none" stroke="black" points="453.87,-179 453.87,-173"/>
<polyline fill="none" stroke="black" points="459.87,-173 453.87,-173"/>
<text text-anchor="middle" x="367.87" y="-155.95" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;Item is valid?&#39;</text>
</g>
<!-- 18&#45;&gt;19 -->
<g id="edge1" class="edge">
<title>18&#45;&gt;19</title>
<path fill="none" stroke="black" d="M240.3,-161C248.27,-161 256.27,-161 264.15,-161"/>
<polygon fill="black" stroke="black" points="264.09,-164.5 274.09,-161 264.09,-157.5 264.09,-164.5"/>
</g>
<!-- 20 -->
<!-- name: &quot;If False&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="551.12,-275 495.87,-257 551.12,-239 606.37,-257 551.12,-275"/>
<text text-anchor="middle" x="551.12" y="-251.95" font-family="Times New Roman,serif" font-size="14.00">If False</text>
</g>
<!-- 19&#45;&gt;20 -->
<g id="edge2" class="edge">
<title>19&#45;&gt;20</title>
<path fill="none" stroke="black" d="M403.39,-179.28C436.84,-197 487.12,-223.63 519.28,-240.66"/>
<polygon fill="black" stroke="black" points="517.22,-243.54 527.7,-245.12 520.5,-237.35 517.22,-243.54"/>
</g>
<!-- 42 -->
<!-- name: &quot;If True&quot;, typeName: &quot;&quot;, id: 42, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>42</title>
<polygon fill="none" stroke="black" points="551.12,-152 499.49,-134 551.12,-116 602.75,-134 551.12,-152"/>
<text text-anchor="middle" x="551.12" y="-128.95" font-family="Times New Roman,serif" font-size="14.00">If True</text>
</g>
<!-- 19&#45;&gt;42 -->
<g id="edge21" class="edge">
<title>19&#45;&gt;42</title>
<path fill="none" stroke="black" d="M460.29,-147.38C474.99,-145.19 489.66,-143.01 502.75,-141.06"/>
<polygon fill="black" stroke="black" points="502.94,-144.57 512.32,-139.63 501.91,-137.64 502.94,-144.57"/>
</g>
<!-- 21 -->
<!-- name: &quot;Id&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="921.37" cy="-442" rx="27" ry="18"/>
<text text-anchor="middle" x="921.37" y="-436.95" 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="M557.12,-273.34C567.49,-304.19 594.45,-370.71 642.37,-402 716.89,-450.66 826.46,-450.27 883.22,-446.03"/>
<polygon fill="black" stroke="black" points="883.32,-449.54 892.99,-445.21 882.74,-442.56 883.32,-449.54"/>
</g>
<!-- 23 -->
<!-- name: &quot;Stack size&quot;, typeName: &quot;&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>23</title>
<ellipse fill="none" stroke="black" cx="1087.51" cy="-392" rx="48.28" ry="18"/>
<text text-anchor="middle" x="1087.51" y="-386.95" font-family="Times New Roman,serif" font-size="14.00">Stack size</text>
</g>
<!-- 20&#45;&gt;23 -->
<g id="edge5" class="edge">
<title>20&#45;&gt;23</title>
<path fill="none" stroke="black" d="M565.4,-270.64C581.87,-286.67 611.57,-312.75 642.37,-326 771.9,-381.71 940.12,-391.64 1027.69,-392.68"/>
<polygon fill="black" stroke="black" points="1027.44,-396.17 1037.47,-392.75 1027.5,-389.17 1027.44,-396.17"/>
</g>
<!-- 25 -->
<!-- name: &quot;Aux value&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>25</title>
<ellipse fill="none" stroke="black" cx="921.37" cy="-335" rx="49.3" ry="18"/>
<text text-anchor="middle" x="921.37" y="-329.95" font-family="Times New Roman,serif" font-size="14.00">Aux value</text>
</g>
<!-- 20&#45;&gt;25 -->
<g id="edge7" class="edge">
<title>20&#45;&gt;25</title>
<path fill="none" stroke="black" d="M573.4,-268.14C591.33,-277.04 617.88,-289.13 642.37,-296 716.12,-316.7 804.1,-326.68 861.04,-331.31"/>
<polygon fill="black" stroke="black" points="860.6,-334.78 870.84,-332.07 861.14,-327.8 860.6,-334.78"/>
</g>
<!-- 27 -->
<!-- name: &quot;Include Net Id&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>27</title>
<ellipse fill="none" stroke="black" cx="1087.51" cy="-284" rx="64.66" ry="18"/>
<text text-anchor="middle" x="1087.51" y="-278.95" font-family="Times New Roman,serif" font-size="14.00">Include Net Id</text>
</g>
<!-- 20&#45;&gt;27 -->
<g id="edge9" class="edge">
<title>20&#45;&gt;27</title>
<path fill="none" stroke="black" d="M600.01,-259.42C693.42,-264.14 900.5,-274.6 1011.99,-280.23"/>
<polygon fill="black" stroke="black" points="1011.78,-283.73 1021.94,-280.74 1012.13,-276.74 1011.78,-283.73"/>
</g>
<!-- 29 -->
<!-- name: &quot;Dependency on &#39;Include Net Id&#39;&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>29</title>
<polygon fill="none" stroke="black" points="824.12,-252 642.37,-252 642.37,-216 830.12,-216 830.12,-246 824.12,-252"/>
<polyline fill="none" stroke="black" points="824.12,-252 824.12,-246"/>
<polyline fill="none" stroke="black" points="830.12,-246 824.12,-246"/>
<text text-anchor="middle" x="736.24" y="-228.95" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;Include Net Id&#39;</text>
</g>
<!-- 20&#45;&gt;29 -->
<g id="edge11" class="edge">
<title>20&#45;&gt;29</title>
<path fill="none" stroke="black" d="M592.31,-251.95C604.02,-250.48 617.39,-248.8 631.15,-247.07"/>
<polygon fill="black" stroke="black" points="631.25,-250.59 640.74,-245.87 630.38,-243.64 631.25,-250.59"/>
</g>
<!-- 38 -->
<!-- name: &quot;Block Runtime Id&quot;, typeName: &quot;&quot;, id: 38, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>38</title>
<ellipse fill="none" stroke="black" cx="736.24" cy="-157" rx="77.97" ry="18"/>
<text text-anchor="middle" x="736.24" y="-151.95" font-family="Times New Roman,serif" font-size="14.00">Block Runtime Id</text>
</g>
<!-- 20&#45;&gt;38 -->
<g id="edge17" class="edge">
<title>20&#45;&gt;38</title>
<path fill="none" stroke="black" d="M572.51,-245.61C590.78,-235.43 618.32,-220.14 642.37,-207 659.27,-197.77 677.96,-187.68 694.12,-179"/>
<polygon fill="black" stroke="black" points="695.32,-182.33 702.48,-174.52 692.01,-176.16 695.32,-182.33"/>
</g>
<!-- 40 -->
<!-- name: &quot;User Data Buffer&quot;, typeName: &quot;&quot;, id: 40, 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="node20" class="node">
<title>40</title>
<ellipse fill="none" stroke="black" cx="1087.51" cy="-76" rx="74.89" ry="18"/>
<text text-anchor="middle" x="1087.51" y="-70.95" font-family="Times New Roman,serif" font-size="14.00">User Data Buffer</text>
</g>
<!-- 20&#45;&gt;40 -->
<g id="edge19" class="edge">
<title>20&#45;&gt;40</title>
<path fill="none" stroke="black" d="M558.22,-241.27C569.88,-213.51 598.21,-156.29 642.37,-130 755.78,-62.49 914.3,-60.8 1008.09,-67.31"/>
<polygon fill="black" stroke="black" points="1007.74,-70.79 1017.97,-68.05 1008.26,-63.81 1007.74,-70.79"/>
</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="1294.8" cy="-450" rx="32.41" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-444.95" 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="M948.78,-442.57C1012.16,-443.93 1173.3,-447.4 1250.84,-449.07"/>
<polygon fill="black" stroke="black" points="1250.51,-452.57 1260.58,-449.28 1250.66,-445.57 1250.51,-452.57"/>
</g>
<!-- 24 -->
<!-- name: &quot;unsigned short&quot;, typeName: &quot;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>24</title>
<ellipse fill="none" stroke="black" cx="1294.8" cy="-396" rx="65.17" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-390.95" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
</g>
<!-- 23&#45;&gt;24 -->
<g id="edge6" class="edge">
<title>23&#45;&gt;24</title>
<path fill="none" stroke="black" d="M1136.13,-392.93C1160.49,-393.4 1190.72,-393.99 1218.17,-394.53"/>
<polygon fill="black" stroke="black" points="1217.76,-398.02 1227.83,-394.71 1217.9,-391.02 1217.76,-398.02"/>
</g>
<!-- 26 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>26</title>
<ellipse fill="none" stroke="black" cx="1294.8" cy="-342" rx="68.24" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-336.95" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 25&#45;&gt;26 -->
<g id="edge8" class="edge">
<title>25&#45;&gt;26</title>
<path fill="none" stroke="black" d="M970.93,-335.92C1033.02,-337.09 1141.35,-339.13 1215.25,-340.52"/>
<polygon fill="black" stroke="black" points="1214.77,-344.01 1224.83,-340.7 1214.9,-337.01 1214.77,-344.01"/>
</g>
<!-- 28 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>28</title>
<ellipse fill="none" stroke="black" cx="1294.8" cy="-288" rx="27.3" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-282.95" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 27&#45;&gt;28 -->
<g id="edge10" class="edge">
<title>27&#45;&gt;28</title>
<path fill="none" stroke="black" d="M1152.34,-285.24C1186.27,-285.9 1226.84,-286.7 1255.81,-287.26"/>
<polygon fill="black" stroke="black" points="1255.5,-290.75 1265.57,-287.45 1255.64,-283.76 1255.5,-290.75"/>
</g>
<!-- 30 -->
<!-- name: &quot;If False&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>30</title>
<polygon fill="none" stroke="black" points="921.37,-252 866.12,-234 921.37,-216 976.62,-234 921.37,-252"/>
<text text-anchor="middle" x="921.37" y="-228.95" font-family="Times New Roman,serif" font-size="14.00">If False</text>
</g>
<!-- 29&#45;&gt;30 -->
<g id="edge12" class="edge">
<title>29&#45;&gt;30</title>
<path fill="none" stroke="black" d="M830.42,-234C838.07,-234 845.71,-234 853.12,-234"/>
<polygon fill="black" stroke="black" points="853.03,-237.5 863.03,-234 853.03,-230.5 853.03,-237.5"/>
</g>
<!-- 32 -->
<!-- name: &quot;If True&quot;, typeName: &quot;&quot;, id: 32, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>32</title>
<polygon fill="none" stroke="black" points="921.37,-198 869.74,-180 921.37,-162 973,-180 921.37,-198"/>
<text text-anchor="middle" x="921.37" y="-174.95" font-family="Times New Roman,serif" font-size="14.00">If True</text>
</g>
<!-- 29&#45;&gt;32 -->
<g id="edge14" class="edge">
<title>29&#45;&gt;32</title>
<path fill="none" stroke="black" d="M799.75,-215.57C826.82,-207.59 857.67,-198.49 881.39,-191.49"/>
<polygon fill="black" stroke="black" points="882.37,-194.86 890.97,-188.67 880.39,-188.14 882.37,-194.86"/>
</g>
<!-- 31 -->
<!-- name: &quot;[No Data]&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="1294.8" cy="-234" rx="48.28" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-228.95" font-family="Times New Roman,serif" font-size="14.00">[No Data]</text>
</g>
<!-- 30&#45;&gt;31 -->
<g id="edge13" class="edge">
<title>30&#45;&gt;31</title>
<path fill="none" stroke="black" d="M977.98,-234C1046.99,-234 1164.18,-234 1234.75,-234"/>
<polygon fill="black" stroke="black" points="1234.57,-237.5 1244.57,-234 1234.57,-230.5 1234.57,-237.5"/>
</g>
<!-- 33 -->
<!-- name: &quot;Net Id Variant&quot;, typeName: &quot;ItemStackNetIdVariant&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>33</title>
<ellipse fill="none" stroke="black" cx="1087.51" cy="-180" rx="63.12" ry="18"/>
<text text-anchor="middle" x="1087.51" y="-174.95" font-family="Times New Roman,serif" font-size="14.00">Net Id Variant</text>
</g>
<!-- 32&#45;&gt;33 -->
<g id="edge15" class="edge">
<title>32&#45;&gt;33</title>
<path fill="none" stroke="black" d="M974.31,-180C986.51,-180 999.75,-180 1012.71,-180"/>
<polygon fill="black" stroke="black" points="1012.48,-183.5 1022.48,-180 1012.48,-176.5 1012.48,-183.5"/>
</g>
<!-- 37 -->
<!-- name: &quot;ItemStackNetIdVariant&quot;, typeName: &quot;&quot;, id: 37, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>37</title>
<ellipse fill="none" stroke="black" cx="1294.8" cy="-180" rx="96.39" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-174.95" font-family="Times New Roman,serif" font-size="14.00">ItemStackNetIdVariant</text>
</g>
<!-- 33&#45;&gt;37 -->
<g id="edge16" class="edge">
<title>33&#45;&gt;37</title>
<path fill="none" stroke="black" d="M1150.94,-180C1162.32,-180 1174.48,-180 1186.73,-180"/>
<polygon fill="black" stroke="black" points="1186.47,-183.5 1196.47,-180 1186.47,-176.5 1186.47,-183.5"/>
</g>
<!-- 39 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 39, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>39</title>
<ellipse fill="none" stroke="black" cx="1294.8" cy="-126" rx="32.41" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 38&#45;&gt;39 -->
<g id="edge18" class="edge">
<title>38&#45;&gt;39</title>
<path fill="none" stroke="black" d="M812.59,-152.8C930.92,-146.21 1156.52,-133.65 1250.76,-128.4"/>
<polygon fill="black" stroke="black" points="1250.81,-131.9 1260.6,-127.85 1250.42,-124.91 1250.81,-131.9"/>
</g>
<!-- 41 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 41, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>41</title>
<ellipse fill="none" stroke="black" cx="1294.8" cy="-72" rx="31.9" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 40&#45;&gt;41 -->
<g id="edge20" class="edge">
<title>40&#45;&gt;41</title>
<path fill="none" stroke="black" d="M1162.63,-74.56C1192.5,-73.97 1225.89,-73.32 1251.5,-72.82"/>
<polygon fill="black" stroke="black" points="1251.23,-76.33 1261.16,-72.64 1251.1,-69.33 1251.23,-76.33"/>
</g>
<!-- 43 -->
<!-- name: &quot;Id&quot;, typeName: &quot;&quot;, id: 43, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Send fixed Id of 0 for invalid item&quot; -->
<g id="node23" class="node">
<title>43</title>
<ellipse fill="none" stroke="black" cx="736.24" cy="-26" rx="27" ry="18"/>
<text text-anchor="middle" x="736.24" y="-20.95" font-family="Times New Roman,serif" font-size="14.00">Id</text>
</g>
<!-- 42&#45;&gt;43 -->
<g id="edge22" class="edge">
<title>42&#45;&gt;43</title>
<path fill="none" stroke="black" d="M567.85,-121.56C585.43,-107.97 615.02,-86.01 642.37,-70 661.71,-58.67 684.44,-47.87 702.57,-39.8"/>
<polygon fill="black" stroke="black" points="703.78,-43.09 711.54,-35.87 700.97,-36.68 703.78,-43.09"/>
</g>
<!-- 44 -->
<!-- name: &quot;varint&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="1294.8" cy="-18" rx="32.41" ry="18"/>
<text text-anchor="middle" x="1294.8" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 43&#45;&gt;44 -->
<g id="edge23" class="edge">
<title>43&#45;&gt;44</title>
<path fill="none" stroke="black" d="M763.71,-25.62C852.61,-24.34 1141.03,-20.2 1250.83,-18.62"/>
<polygon fill="black" stroke="black" points="1250.64,-22.12 1260.58,-18.48 1250.53,-15.12 1250.64,-22.12"/>
</g>
</g>
</svg>