Creating MCreator Link workspace
Create a new workspace and give it a name and set a mod id. Open workspace settings by clicking on the settings button.
Next, check the MCreator Link under External API settings and click Save changes.
Setting default pin modes
We need to add a procedure that will set the pin modes on the device connect. To do this, add a new mod element with type Procedure. After the procedure editor is open, set the global event to MCreator Link: New device connected. Then we add the pin mode procedure blocks (found in MCreator Link category in the block palette). This will ensure that pins will be set to the proper modes when the device is connected. If you are connecting LED or any other actuator on the pin, set this to output, if you are connecting a button or other sensors to the pin, set the mode to output. An example can be seen below:
Controlling devices from MCreator mods
MCreator Link procedure blocks can be used to control the currently connected device. If no device is connected, these blocks are simply ignored.
You can use them from any procedure as they require no dependencies. Digital read, and analog read blocks return values that can be used in conditions.
Example 1: Turning on LED at daytime
In this example, we make a block that turns on the onboard LED on Arduino (pin 13) at daytime but can be used on any other device too. We just use pin 13 in this example as this is commonly used on Arduinos as the onboard LED. Make sure to set the pin 13 mode to output for this example to work.
Creating a block
First, create a new block and call it NightDetector. Give it any properties you wish, but make sure to keep tick rate on 10 or set it higher, so we don't send too much data to the device at once.
In the procedures section of the block, we click + on the Update tick procedure trigger.
Defining the procedure
Keep the default name and define the following procedure:
This procedure will turn on the LED on the pin 13 if the block can see the sky and there is a day in the world. We can simplify this procedure to this one too, but you can keep the first version for better readability:
Click Add procedure to add the procedure to the trigger. Then save the block.
Testing it out
Open test Minecraft in MCreator, press 'L' in the main screen to open MCreator Link screen. Connect to your device and close MCreator Link screen. Create a new world, place your block and test it by setting the world time and watch as your LED turns on on the daytime and turns off in the night.
Example 2: Exploding block when a button is pressed on the device
In this example, we will make a block that will check if a button on the device on pin 1 is pressed and if it is, the block will explode.
Wiring the button
Connect the button to the pin 1 and the other connector of the button to the ground. In the pin modes procedure, define pin 1 as input with internal pull-up resistor enabled:
Creating a block
First, create a new block and call it ExplodingBlock. Give it any properties you wish.
In the procedures section of the block, we click + on the Update tick procedure trigger.
Defining the procedure
Keep the default name and define the following procedure:
This procedure will explode when a digital pin will be low (button is pressed). In some cases, you might need to remove the not block if your block explodes when the button is not pressed.
Testing it out
Open test Minecraft in MCreator, press 'L' in the main screen to open MCreator Link screen. Connect to your device and close MCreator Link screen. Create a new world and place your block. Click on the button connected to your device and watch as the block explodes when you trigger it by pressing the button.