Difference between revisions of "Kit (Satellite Dish)"
From Unofficial Stationeers Wiki
m |
m |
||
(29 intermediate revisions by the same user not shown) | |||
Line 24: | Line 24: | ||
== Medium Satellite Dish == | == Medium Satellite Dish == | ||
After "Big Changes Coming: Terrain Preview, Melting Ice, Modding, & Localization" update, Medium Satellite Dish has internal stack like Autolathe, which user can utilize it to give instructions to. | After "Big Changes Coming: Terrain Preview, Melting Ice, Modding, & Localization" update, Medium Satellite Dish has internal stack like Autolathe, which user can utilize it to give instructions to. | ||
− | The Medium Satellite Dish currently have | + | The Medium Satellite Dish currently have 256Bytes(32 Addresses) stack memory. |
− | {| class="wikitable sortable" style="width: | + | <div class="overflowbugx" style="overflow-x:auto;"> |
+ | {| class="wikitable sortable" style="width:50%;" | ||
! Op_code | ! Op_code | ||
! class="unsortable" | Name | ! class="unsortable" | Name | ||
Line 36: | Line 37: | ||
! rowspan="3" | 1 | ! rowspan="3" | 1 | ||
− | | rowspan="3" | WriteTraderData | + | | rowspan="3" | TraderInstruction.WriteTraderData |
− | | rowspan="3" | The dish will | + | | rowspan="3" | The dish will write out metadata(24 Bytes, in continuous of 3 addresses) to the specified starting index. E.g.: if set WRITE_INDEX to 1, then the metadata will span address 1-3. See [[#Metadata_Payloads|Metadata Payload]]s. |
| rowspan="3" | 0-31 | | rowspan="3" | 0-31 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
Line 46: | Line 47: | ||
|- | |- | ||
| style="text-align:center;" | 16-63 | | style="text-align:center;" | 16-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="3" | 2 | ||
+ | | rowspan="3" | TraderInstruction.StrongestContactIdHash | ||
+ | | rowspan="3" | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 1. | ||
+ | | rowspan="3" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-39 | ||
+ | | TRADER_ID_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 40-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="5" | 3 | ||
+ | | rowspan="5" | TraderInstruction.StrongestContactMetaData | ||
+ | | rowspan="5" | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 2. | ||
+ | | rowspan="5" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | [[#Metadata_Payloads|SHUTTLE_TYPE]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-23 | ||
+ | | [[#Metadata_Payloads|CONTACT_TIER]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 24-31 | ||
+ | | [[#Metadata_Payloads|CONTACTED]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 32-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 4 | ||
+ | | rowspan="4" | TraderInstruction.StrongestContactSignalData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 3. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-23 | ||
+ | | WATTS_TO_RESOLVE<br/>See [[Trader#Trader_Tier |WattsToResolve]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 24-39 | ||
+ | | LIFETIME<br/>See [[Trader#Trader_Tier|LifeTime]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 32-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 5 | ||
+ | | rowspan="4" | TraderInstruction.WriteTraderBuyData | ||
+ | | rowspan="4" | The dish will write out trader buy metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total.<br/>If an item contains child items, then it will be expaned inplace.<br/>E.g.: <BuyPayload><BuyPayload><BuyChildPayload><BuyPayload>.<br/>See [[#Buy.2FSell_Payloads|Buy/Sell Payloads]], [[#Buy.2FSell_Child_Payloads|Buy/Sell Child Payloads]]. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | WRITE_INDEX | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-23 | ||
+ | | WRITE_COUNT | ||
+ | |- | ||
+ | | style="text-align:center;" | 24-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 6 | ||
+ | | rowspan="4" | TraderInstruction.WriteTraderSellData | ||
+ | | rowspan="4" | The dish will write out trader sell metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total.<br/>If an item contains child items, then it will be expaned inplace.<br/>E.g.: <SellPayload><SellPayload><SellChildPayload><SellPayload>.<br/>See [[#Buy.2FSell_Payloads |Buy/Sell Payloads]], [[#Buy.2FSell_Child_Payloads|Buy/Sell Child Payloads]]. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | WRITE_INDEX | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-23 | ||
+ | | WRITE_COUNT | ||
+ | |- | ||
+ | | style="text-align:center;" | 24-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 7 | ||
+ | | rowspan="4" | TraderInstruction.TraderBuyThingData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-47 | ||
+ | | PREFAB_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 48-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 8 | ||
+ | | rowspan="4" | TraderInstruction.TraderBuyThingChildData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-47 | ||
+ | | PREFAB_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 48-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 9 | ||
+ | | rowspan="4" | TraderInstruction.TraderBuyGasData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-47 | ||
+ | | GAS_TYPES_BITFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 48-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 10 | ||
+ | | rowspan="4" | TraderInstruction.TraderSellThingData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-47 | ||
+ | | PREFAB_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 48-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 11 | ||
+ | | rowspan="4" | TraderInstruction.TraderSellGasData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-47 | ||
+ | | GAS_TYPES_BIGFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 48-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 12 | ||
+ | | rowspan="4" | TraderInstruction.TraderSellThingChildData | ||
+ | | rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-47 | ||
+ | | PREFAB_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 48-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="3" | 13 | ||
+ | | rowspan="3" | TraderInstruction.FilterPrefabHashEquals | ||
+ | | rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching PrefabHash. | ||
+ | | rowspan="3" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-39 | ||
+ | | PREFAB_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 40-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="3" | 14 | ||
+ | | rowspan="3" | TraderInstruction.FilterPrefabHashNotEquals | ||
+ | | rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only not matching PrefabHash. | ||
+ | | rowspan="3" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-39 | ||
+ | | PREFAB_HASH | ||
+ | |- | ||
+ | | style="text-align:center;" | 40-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 15 | ||
+ | | rowspan="4" | TraderInstruction.FilterSortingClassCompare | ||
+ | | rowspan="4" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching SortingClass. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | CONDITION_OPERATION<br/>0: Equals<br/>1: Greater<br/>2: Less<br/>3: Not Equals | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-31 | ||
+ | | SORTING_CLASS<br/>See [[Sorting_Class]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 32-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="4" | 16 | ||
+ | | rowspan="4" | TraderInstruction.FilterQuantityCompare | ||
+ | | rowspan="4" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching Quantity Condition. | ||
+ | | rowspan="4" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-15 | ||
+ | | CONDITION_OPERATION<br/>0: Equals<br/>1: Greater<br/>2: Less<br/>3: Not Equals | ||
+ | |- | ||
+ | | style="text-align:center;" | 16-31 | ||
+ | | QUANTITY | ||
+ | |- | ||
+ | | style="text-align:center;" | 32-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="3" | 17 | ||
+ | | rowspan="3" | TraderInstruction.FilterGasContains | ||
+ | | rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching Gases. | ||
+ | | rowspan="3" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-39 | ||
+ | | GAS_TYPES_BITFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 40-63 | ||
+ | | Unused | ||
+ | |- | ||
+ | ! rowspan="3" | 18 | ||
+ | | rowspan="3" | TraderInstruction.FilterGasNotContains | ||
+ | | rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only not matching Gases. | ||
+ | | rowspan="3" | 0-31 | ||
+ | | style="text-align:center;" | 0-7 | ||
+ | | Op_code | ||
+ | |- | ||
+ | | style="text-align:center;" | 8-39 | ||
+ | | GAS_TYPES_BITFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]]. | ||
+ | |- | ||
+ | | style="text-align:center;" | 40-63 | ||
| Unused | | Unused | ||
|} | |} | ||
+ | </div> | ||
=== Metadata Payloads === | === Metadata Payloads === | ||
+ | |||
+ | Since Metadata has 3 addresses, so it's referenced here as a 24 bytes(192 bits) payload. | ||
+ | |||
+ | <div class="overflowbugx" style="overflow-x:auto;"> | ||
{| class="wikitable" style="width:80%;" | {| class="wikitable" style="width:80%;" | ||
! BitsOffset | ! BitsOffset | ||
− | | | + | | 191-168 |
− | | | + | | 167-136 |
− | | | + | | 135-128 |
− | | | + | | 127-96 |
− | | | + | | 95-88 |
− | | | + | | 87-80 |
− | | | + | | 79-72 |
− | | | + | | 71-64 |
+ | | 63-40 | ||
+ | | 39-16 | ||
+ | | 15-8 | ||
+ | | 7-0 | ||
|- | |- | ||
! Contents | ! Contents | ||
| N/A | | N/A | ||
| [[Trader#ContactTypeID|ContactTypeID]] | | [[Trader#ContactTypeID|ContactTypeID]] | ||
− | | | + | | OpCode of TraderInstruction.StrongestContactIdHash. |
− | | Contacted | + | | N/A |
− | | | + | | Contacted<br/>0: false<br/> 1: true |
− | | [[Trader#Trader_Tier|LifeTime]] | + | | Contact Tier: <br/>0: Close<br/>1: Medium<br/>2: Far |
+ | | Shuttle Type: <br/>0:None<br/>1: Small(3x3)<br/>2: SmallGas(3x3)<br/>3: Medium(5x5)<br/>4: MediumGas(5x5)<br/>5: Large(6x6)<br/>6: LargeGas(6x6)<br/>7: MediumPlane(7x7, runway:15)<br/>8: LargePlane(9x9, runway:20) | ||
+ | | OpCode of TraderInstruction.StrongestContactMetaData. | ||
+ | | N/A | ||
+ | | [[Trader#Trader_Tier|LifeTime]] | ||
| [[Trader#Trader_Tier|WattsToResolve]] | | [[Trader#Trader_Tier|WattsToResolve]] | ||
− | | | + | | OpCode of TraderInstruction.StrongestContactSignalData. |
+ | |} | ||
+ | </div> | ||
+ | |||
+ | === Buy/Sell Payloads === | ||
+ | |||
+ | Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload. | ||
+ | |||
+ | <div class="overflowbugx" style="overflow-x:auto;"> | ||
+ | {| class="wikitable" style="width:60%;" | ||
+ | ! BitsOffset | ||
+ | | 63-48 | ||
+ | | 47-16 | ||
+ | | 15-8 | ||
+ | | 7-0 | ||
+ | |- | ||
+ | ! Contents | ||
+ | | N/A | ||
+ | | PrefabHash/GasTypeBitFlag | ||
+ | | Quantity<br/>This value is truncated so it won't be greater than 255 although the trader's Request/Stock is more than 255. | ||
+ | | OpCode<br/>Which OpCode requested this data. | ||
+ | |} | ||
+ | </div> | ||
+ | |||
+ | === Buy/Sell Child Payloads === | ||
+ | |||
+ | Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload. | ||
+ | |||
+ | <div class="overflowbugx" style="overflow-x:auto;"> | ||
+ | {| class="wikitable" style="width:60%;" | ||
+ | ! BitsOffset | ||
+ | | 63-48 | ||
+ | | 47-16 | ||
+ | | 15-8 | ||
+ | | 7-0 | ||
+ | |- | ||
+ | ! Contents | ||
+ | | N/A | ||
+ | | PrefabHash/GasTypeBitFlag | ||
+ | | ChildCount<br/>Counts how many instances of this item appeared as a child item.<br/>Beware it's not quantity, it's just a prefab type count. | ||
+ | | OpCode<br/>If this data is requested by TraderInstruction.WriteTraderBuyData, then it's value is the OpCode of TraderInstruction.TraderBuyThingChildData.<br/>If this data is requested by TraderInstruction.WriteTraderSellData, then it's value is the OpCode of TraderInstruction.TraderSellThingChildData. | ||
+ | |} | ||
+ | </div> | ||
+ | |||
+ | === Gas Type BitFlags === | ||
+ | |||
+ | If the BitFlag equals 0, it's undefined. If the bit at specific offset is 1, it means the gas contains that component. | ||
+ | |||
+ | <div class="overflowbugx" style="overflow-x:auto;"> | ||
+ | {| class="wikitable" style="width:60%;" | ||
+ | ! BitsOffset | ||
+ | | 16 | ||
+ | | 15 | ||
+ | | 14 | ||
+ | | 13 | ||
+ | | 12 | ||
+ | | 11 | ||
+ | | 10 | ||
+ | | 9 | ||
+ | | 8 | ||
+ | | 7 | ||
+ | | 6 | ||
+ | | 5 | ||
+ | | 4 | ||
+ | | 3 | ||
+ | | 2 | ||
+ | | 1 | ||
+ | | 0 | ||
+ | |- | ||
+ | ! Contents | ||
+ | | PollutedWater | ||
+ | | LiquidHydrogen | ||
+ | | Hydrogen | ||
+ | | LiquidNitrousOxide | ||
+ | | LiquidPollutant | ||
+ | | LiquidCarbonDioxide | ||
+ | | Steam | ||
+ | | LiquidVolatiles | ||
+ | | LiquidOxygen | ||
+ | | LiquidNitrogen | ||
+ | | NitrousOxide | ||
+ | | Water | ||
+ | | Pollutant | ||
+ | | Volatiles | ||
+ | | CarbonDioxide | ||
+ | | Nitrogen | ||
+ | | Oxygen | ||
|} | |} | ||
+ | </div> | ||
+ | |||
+ | Special Gas: | ||
+ | # Bit 0,1 both set to 1, which is Air. | ||
+ | # Bit 0,3 both set to 1, which is Fuel. |
Latest revision as of 21:36, 25 March 2025
![]() | |
Properties | |
---|---|
Stacks | Yes (10) |
Recipe | |
Created With | Electronics Printer |
Cost | 5g Gold, 10g Copper, 20g Steel, 5g Nickel, 10g Solder |
![]() | |
Operation | |
---|---|
Power Usage | 200W |
Construction | |
Placed with | Kit (Satellite Dish) |
Placed on | Small Grid |
Stage 1 | |
Deconstruction | |
Deconstructed with | Hand Drill |
Item received | Kit (Satellite Dish) |
Contents
[hide]Description[edit]
The Satellite Dish is used together with a Computer fitted with a Motherboard (Communications) to allow Interstellar Communications.
The Satellite Dish must be guided by Satellite Tracking onto a signal and communications may be established once the signal strength is greater than 94%
Medium Satellite Dish[edit]
After "Big Changes Coming: Terrain Preview, Melting Ice, Modding, & Localization" update, Medium Satellite Dish has internal stack like Autolathe, which user can utilize it to give instructions to. The Medium Satellite Dish currently have 256Bytes(32 Addresses) stack memory.
Op_code | Name | Description | Valid Address | Bits | Bits Description |
---|---|---|---|---|---|
1 | TraderInstruction.WriteTraderData | The dish will write out metadata(24 Bytes, in continuous of 3 addresses) to the specified starting index. E.g.: if set WRITE_INDEX to 1, then the metadata will span address 1-3. See Metadata Payloads. | 0-31 | 0-7 | Op_code |
8-15 | WRITE_INDEX | ||||
16-63 | Unused | ||||
2 | TraderInstruction.StrongestContactIdHash | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 1. | 0-31 | 0-7 | Op_code |
8-39 | TRADER_ID_HASH | ||||
40-63 | Unused | ||||
3 | TraderInstruction.StrongestContactMetaData | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 2. | 0-31 | 0-7 | Op_code |
8-15 | SHUTTLE_TYPE. | ||||
16-23 | CONTACT_TIER. | ||||
24-31 | CONTACTED. | ||||
32-63 | Unused | ||||
4 | TraderInstruction.StrongestContactSignalData | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 3. | 0-31 | 0-7 | Op_code |
8-23 | WATTS_TO_RESOLVE See WattsToResolve. | ||||
24-39 | LIFETIME See LifeTime. | ||||
32-63 | Unused | ||||
5 | TraderInstruction.WriteTraderBuyData | The dish will write out trader buy metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total. If an item contains child items, then it will be expaned inplace. E.g.: <BuyPayload><BuyPayload><BuyChildPayload><BuyPayload>. See Buy/Sell Payloads, Buy/Sell Child Payloads. |
0-31 | 0-7 | Op_code |
8-15 | WRITE_INDEX | ||||
16-23 | WRITE_COUNT | ||||
24-63 | Unused | ||||
6 | TraderInstruction.WriteTraderSellData | The dish will write out trader sell metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total. If an item contains child items, then it will be expaned inplace. E.g.: <SellPayload><SellPayload><SellChildPayload><SellPayload>. See Buy/Sell Payloads, Buy/Sell Child Payloads. |
0-31 | 0-7 | Op_code |
8-15 | WRITE_INDEX | ||||
16-23 | WRITE_COUNT | ||||
24-63 | Unused | ||||
7 | TraderInstruction.TraderBuyThingData | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. | 0-31 | 0-7 | Op_code |
8-15 | QUANTITY | ||||
16-47 | PREFAB_HASH | ||||
48-63 | Unused | ||||
8 | TraderInstruction.TraderBuyThingChildData | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. | 0-31 | 0-7 | Op_code |
8-15 | QUANTITY | ||||
16-47 | PREFAB_HASH | ||||
48-63 | Unused | ||||
9 | TraderInstruction.TraderBuyGasData | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. | 0-31 | 0-7 | Op_code |
8-15 | QUANTITY | ||||
16-47 | GAS_TYPES_BITFLAG See Gas_Type_BitFlags. | ||||
48-63 | Unused | ||||
10 | TraderInstruction.TraderSellThingData | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. | 0-31 | 0-7 | Op_code |
8-15 | QUANTITY | ||||
16-47 | PREFAB_HASH | ||||
48-63 | Unused | ||||
11 | TraderInstruction.TraderSellGasData | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. | 0-31 | 0-7 | Op_code |
8-15 | QUANTITY | ||||
16-47 | GAS_TYPES_BIGFLAG See Gas_Type_BitFlags. | ||||
48-63 | Unused | ||||
12 | TraderInstruction.TraderSellThingChildData | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. | 0-31 | 0-7 | Op_code |
8-15 | QUANTITY | ||||
16-47 | PREFAB_HASH | ||||
48-63 | Unused | ||||
13 | TraderInstruction.FilterPrefabHashEquals | Filter Operation. User can append this OP after any TraderInstruction.Write* OP to filter writer's output. This OP's effective scope is the last Write* OP and before the next Write* OP. Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition. This Filter narrows Write* OP's output to only matching PrefabHash. |
0-31 | 0-7 | Op_code |
8-39 | PREFAB_HASH | ||||
40-63 | Unused | ||||
14 | TraderInstruction.FilterPrefabHashNotEquals | Filter Operation. User can append this OP after any TraderInstruction.Write* OP to filter writer's output. This OP's effective scope is the last Write* OP and before the next Write* OP. Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition. This Filter narrows Write* OP's output to only not matching PrefabHash. |
0-31 | 0-7 | Op_code |
8-39 | PREFAB_HASH | ||||
40-63 | Unused | ||||
15 | TraderInstruction.FilterSortingClassCompare | Filter Operation. User can append this OP after any TraderInstruction.Write* OP to filter writer's output. This OP's effective scope is the last Write* OP and before the next Write* OP. Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition. This Filter narrows Write* OP's output to only matching SortingClass. |
0-31 | 0-7 | Op_code |
8-15 | CONDITION_OPERATION 0: Equals 1: Greater 2: Less 3: Not Equals | ||||
16-31 | SORTING_CLASS See Sorting_Class. | ||||
32-63 | Unused | ||||
16 | TraderInstruction.FilterQuantityCompare | Filter Operation. User can append this OP after any TraderInstruction.Write* OP to filter writer's output. This OP's effective scope is the last Write* OP and before the next Write* OP. Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition. This Filter narrows Write* OP's output to only matching Quantity Condition. |
0-31 | 0-7 | Op_code |
8-15 | CONDITION_OPERATION 0: Equals 1: Greater 2: Less 3: Not Equals | ||||
16-31 | QUANTITY | ||||
32-63 | Unused | ||||
17 | TraderInstruction.FilterGasContains | Filter Operation. User can append this OP after any TraderInstruction.Write* OP to filter writer's output. This OP's effective scope is the last Write* OP and before the next Write* OP. Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition. This Filter narrows Write* OP's output to only matching Gases. |
0-31 | 0-7 | Op_code |
8-39 | GAS_TYPES_BITFLAG See Gas_Type_BitFlags. | ||||
40-63 | Unused | ||||
18 | TraderInstruction.FilterGasNotContains | Filter Operation. User can append this OP after any TraderInstruction.Write* OP to filter writer's output. This OP's effective scope is the last Write* OP and before the next Write* OP. Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition. This Filter narrows Write* OP's output to only not matching Gases. |
0-31 | 0-7 | Op_code |
8-39 | GAS_TYPES_BITFLAG See Gas_Type_BitFlags. | ||||
40-63 | Unused |
Metadata Payloads[edit]
Since Metadata has 3 addresses, so it's referenced here as a 24 bytes(192 bits) payload.
BitsOffset | 191-168 | 167-136 | 135-128 | 127-96 | 95-88 | 87-80 | 79-72 | 71-64 | 63-40 | 39-16 | 15-8 | 7-0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Contents | N/A | ContactTypeID | OpCode of TraderInstruction.StrongestContactIdHash. | N/A | Contacted 0: false 1: true |
Contact Tier: 0: Close 1: Medium 2: Far |
Shuttle Type: 0:None 1: Small(3x3) 2: SmallGas(3x3) 3: Medium(5x5) 4: MediumGas(5x5) 5: Large(6x6) 6: LargeGas(6x6) 7: MediumPlane(7x7, runway:15) 8: LargePlane(9x9, runway:20) |
OpCode of TraderInstruction.StrongestContactMetaData. | N/A | LifeTime | WattsToResolve | OpCode of TraderInstruction.StrongestContactSignalData. |
Buy/Sell Payloads[edit]
Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload.
BitsOffset | 63-48 | 47-16 | 15-8 | 7-0 |
---|---|---|---|---|
Contents | N/A | PrefabHash/GasTypeBitFlag | Quantity This value is truncated so it won't be greater than 255 although the trader's Request/Stock is more than 255. |
OpCode Which OpCode requested this data. |
Buy/Sell Child Payloads[edit]
Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload.
BitsOffset | 63-48 | 47-16 | 15-8 | 7-0 |
---|---|---|---|---|
Contents | N/A | PrefabHash/GasTypeBitFlag | ChildCount Counts how many instances of this item appeared as a child item. Beware it's not quantity, it's just a prefab type count. |
OpCode If this data is requested by TraderInstruction.WriteTraderBuyData, then it's value is the OpCode of TraderInstruction.TraderBuyThingChildData. If this data is requested by TraderInstruction.WriteTraderSellData, then it's value is the OpCode of TraderInstruction.TraderSellThingChildData. |
Gas Type BitFlags[edit]
If the BitFlag equals 0, it's undefined. If the bit at specific offset is 1, it means the gas contains that component.
BitsOffset | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Contents | PollutedWater | LiquidHydrogen | Hydrogen | LiquidNitrousOxide | LiquidPollutant | LiquidCarbonDioxide | Steam | LiquidVolatiles | LiquidOxygen | LiquidNitrogen | NitrousOxide | Water | Pollutant | Volatiles | CarbonDioxide | Nitrogen | Oxygen |
Special Gas:
- Bit 0,1 both set to 1, which is Air.
- Bit 0,3 both set to 1, which is Fuel.