also, clean up the net_splitter.getSides() return, it should use the
exact same index values you need to use in setSides.
added getChannel() on link cards. Link cards of the same channel are
linked in the same network. Also inventory controllers can read this as
the `linkChannel` from the item
closes#2400
also the distance check for nanomachine wireless comm was perhaps
not as intended. this change increases the range by correctly computing
the distance
closes#2505
Trades can be grouped by the merchant offering them
The index is the sort order placement of a merchant in the list of
available merchants offering trades within range. Because it is merely a
sort index, it can change between calls to getTrades if merchants leave
or enter the range, or any previous merchant stops offering any trades
closes#2383
drones, mcus, robots, and tablets can be crafted with an eeprom
the code was erroneously inserting an entire eeprom stack into the
device, while leaving the crafting grid with n-1 of the stack, thus
duplicating a lot of eeproms :)
closes#2800
this modifies the return value for 3 component methods
robot.suck
robot.suckFromSlot
transposer.transferItem
These methods used to return true or false. They continue to return
false for failed transfers, but return the transfered item count instead
of true (which in lua environments is still truethy)
closes#2807
The simulated stack from inventories may not be a copy, and we modify it
thus, we should copy it before using it. This fixes our interaction with
ae interfaces
closes#2845
The network card's wake-on-lan previously was sending a computer.start
message directly to the machine. But some hosts, specifically the Drone
need to make certain start actions before the machine starts. For
instance, the drone zeros its velocity (technically, it rises by .5m)
closes#2866
inventory calls such as `suck` and `suckFromSlot` were creating a
sideless inventory handler on the agents (drones and robots). The
sideless access was allowing the api calls to access slot indexes beyond
the intended main inventory size, and creep into their component
inventory (e.g. starting with slot index 69 on creatix), thus creating
a copy of the agent's first component (e.g. a Screen block)
This fix creates a sided inventory handler from the inventoryAt call,
fixing these cases.
closes#2935
Mimicking vanilla minecraft, we now only compare Item types in recipe
inputs for making a trade with villagers. This commit also adds a
parameter to our inv utils for extracting ItemStacks, whether to make
a strict and exact comparison (as it was always doing before, and is
still the default) or to make a weak check only (which only verifies the
Item types are the same)
closes#2788
since 1.10 block.removedByPlayer now calls onBlockHarvested for us
Interestingly enough, SkullBlock generates its drop items in a custom
onBlockHarvested override, and thus we were duplicating it
closes#2624