mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-10-26 11:27:38 +00:00
Allow generic sources to have instance methods
Rather than assuming static methods are generic, and instance methods are direct, the Generator now has separate entrypoints for handling instance and generic methods. As a result of this change, we've also relaxed some of the validation code. As a result, we now allow calling private/protected methods which are annotated with @LuaFunction.
This commit is contained in:
@@ -11,11 +11,10 @@ import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
* A generic source of {@link LuaFunction} functions.
|
||||
* <p>
|
||||
* Unlike normal objects ({@link IDynamicLuaObject} or {@link IPeripheral}), methods do not target this object but
|
||||
* instead are defined as {@code static} and accept their target as the first parameter. This allows you to inject
|
||||
* methods onto objects you do not own, as well as declaring methods for a specific "trait" (for instance, a Forge
|
||||
* capability or Fabric block lookup interface).
|
||||
* accept their target as the first parameter. This allows you to inject methods onto objects you do not own, as well as
|
||||
* declaring methods for a specific "trait" (for instance, a Forge capability or Fabric block lookup interface).
|
||||
* <p>
|
||||
* Currently the "generic peripheral" system is incompatible with normal peripherals. Peripherals explicitly provided
|
||||
* Currently, the "generic peripheral" system is incompatible with normal peripherals. Peripherals explicitly provided
|
||||
* by capabilities/the block lookup API take priority. Block entities which use this system are given a peripheral name
|
||||
* determined by their id, rather than any peripheral provider, though additional types may be provided by overriding
|
||||
* {@link GenericPeripheral#getType()}.
|
||||
@@ -25,7 +24,7 @@ import dan200.computercraft.api.peripheral.IPeripheral;
|
||||
* <pre>{@code
|
||||
* public class InventoryMethods implements GenericSource {
|
||||
* \@LuaFunction( mainThread = true )
|
||||
* public static int size(IItemHandler inventory) {
|
||||
* public int size(IItemHandler inventory) {
|
||||
* return inventory.getSlots();
|
||||
* }
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user