mirror of
https://github.com/TicTicBoooom-Mods/MasterfulMachinery.git
synced 2026-01-18 16:37:23 +01:00
added texture overrides and some wiki content
This commit is contained in:
@@ -18,7 +18,7 @@ apply plugin: 'net.minecraftforge.gradle'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
version = '1.16.5-0.1.21-T' + System.currentTimeMillis()
|
||||
version = '1.16.5-0.1.22-T' + System.currentTimeMillis()
|
||||
group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
archivesBaseName = 'MasterfulMachinery'
|
||||
|
||||
|
||||
@@ -33,14 +33,17 @@ public class ControllerBlock extends DirectionalBlock {
|
||||
private String controllerName;
|
||||
@Getter
|
||||
private String controllerId;
|
||||
@Getter
|
||||
private String texOverride;
|
||||
|
||||
public ControllerBlock(RegistryObject<TileEntityType<?>> type, String name, String id) {
|
||||
public ControllerBlock(RegistryObject<TileEntityType<?>> type, String name, String id, String texOverride) {
|
||||
super(AbstractBlock.Properties.of(Material.METAL)
|
||||
.harvestLevel(1)
|
||||
.harvestTool(ToolType.PICKAXE));
|
||||
this.type = type;
|
||||
this.controllerName = name;
|
||||
this.controllerId = id;
|
||||
this.texOverride = texOverride;
|
||||
this.registerDefaultState(this.defaultBlockState().setValue(FACING, Direction.NORTH));
|
||||
}
|
||||
|
||||
|
||||
@@ -30,12 +30,15 @@ public class MachinePortBlock extends Block {
|
||||
private String langName;
|
||||
@Getter
|
||||
private String controllerId;
|
||||
@Getter
|
||||
private String textureOverride;
|
||||
|
||||
public MachinePortBlock(RegistryObject<TileEntityType<?>> type, String name, String controllerId) {
|
||||
public MachinePortBlock(RegistryObject<TileEntityType<?>> type, String name, String controllerId, String textureOverride) {
|
||||
super(AbstractBlock.Properties.of(Material.METAL));
|
||||
this.type = type;
|
||||
this.langName = name;
|
||||
this.controllerId = controllerId;
|
||||
this.textureOverride = textureOverride;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.ticticboooom.mods.mm.datagen.gen;
|
||||
import com.ticticboooom.mods.mm.MM;
|
||||
import com.ticticboooom.mods.mm.block.ControllerBlock;
|
||||
import com.ticticboooom.mods.mm.block.MachinePortBlock;
|
||||
import com.ticticboooom.mods.mm.helper.RLUtils;
|
||||
import com.ticticboooom.mods.mm.registration.MMLoader;
|
||||
import net.minecraft.block.DirectionalBlock;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
@@ -29,7 +30,7 @@ public class MMBlockStateProvider extends BlockStateProvider {
|
||||
@Override
|
||||
protected void registerStatesAndModels() {
|
||||
for (RegistryObject<ControllerBlock> controller : MMLoader.BLOCKS) {
|
||||
dynamicBlockNorthOverlay(controller.getId(), BASE_TEXTURE, CONTROLLER_TEXTURE);
|
||||
dynamicBlockNorthOverlay(controller.getId(), controller.get().getTexOverride() != null ? RLUtils.toRL(controller.get().getTexOverride()) : BASE_TEXTURE, CONTROLLER_TEXTURE);
|
||||
VariantBlockStateBuilder variantBuilder = getVariantBuilder(controller.get());
|
||||
variantBuilder.partialState().with(DirectionalBlock.FACING, Direction.NORTH).modelForState().modelFile(new ModelFile.UncheckedModelFile(new ResourceLocation(MM.ID, "block/" + controller.getId().getPath()))).rotationY(0).addModel();
|
||||
variantBuilder.partialState().with(DirectionalBlock.FACING, Direction.SOUTH).modelForState().modelFile(new ModelFile.UncheckedModelFile(new ResourceLocation(MM.ID, "block/" + controller.getId().getPath()))).rotationY(180).addModel();
|
||||
@@ -38,13 +39,12 @@ public class MMBlockStateProvider extends BlockStateProvider {
|
||||
variantBuilder.partialState().with(DirectionalBlock.FACING, Direction.UP).modelForState().modelFile(new ModelFile.UncheckedModelFile(new ResourceLocation(MM.ID, "block/" + controller.getId().getPath()))).rotationY(0).addModel();
|
||||
variantBuilder.partialState().with(DirectionalBlock.FACING, Direction.DOWN).modelForState().modelFile(new ModelFile.UncheckedModelFile(new ResourceLocation(MM.ID, "block/" + controller.getId().getPath()))).rotationY(0).addModel();
|
||||
}
|
||||
|
||||
for (RegistryObject<MachinePortBlock> port : MMLoader.IPORT_BLOCKS) {
|
||||
dynamicBlock(port.getId(), BASE_TEXTURE, IPORT_TEXTURE);
|
||||
dynamicBlock(port.getId(), port.get().getTextureOverride() != null ? RLUtils.toRL(port.get().getTextureOverride()) : BASE_TEXTURE, IPORT_TEXTURE);
|
||||
simpleBlock(port.get(), new ModelFile.UncheckedModelFile(new ResourceLocation(MM.ID, "block/" + port.getId().getPath())));
|
||||
}
|
||||
for (RegistryObject<MachinePortBlock> port : MMLoader.OPORT_BLOCKS) {
|
||||
dynamicBlock(port.getId(), BASE_TEXTURE, OPORT_TEXTURE);
|
||||
dynamicBlock(port.getId(), port.get().getTextureOverride() != null ? RLUtils.toRL(port.get().getTextureOverride()) : BASE_TEXTURE, OPORT_TEXTURE);
|
||||
simpleBlock(port.get(), new ModelFile.UncheckedModelFile(new ResourceLocation(MM.ID, "block/" + port.getId().getPath())));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,8 +44,7 @@ public class MMLoader {
|
||||
public static final ArrayList<RegistryObject<MachinePortBlock>> IPORT_BLOCKS = new ArrayList<>();
|
||||
public static final ArrayList<RegistryObject<MachinePortBlock>> OPORT_BLOCKS = new ArrayList<>();
|
||||
public static final ArrayList<RegistryObject<ContainerType<ControllerBlockContainer>>> CONTAINERS = new ArrayList<>();
|
||||
public static final ArrayList<RegistryObject<ContainerType<?>>> PORT_CONTAINERS = new ArrayList<RegistryObject<ContainerType<?>>>();
|
||||
|
||||
public static final ArrayList<RegistryObject<ContainerType<?>>> PORT_CONTAINERS = new ArrayList<>();
|
||||
|
||||
public static void load() {
|
||||
Path rootPath = FMLPaths.CONFIGDIR.get().resolve("masterful_machinery");
|
||||
@@ -59,12 +58,17 @@ public class MMLoader {
|
||||
for (JsonObject obj : load) {
|
||||
String controllerId = obj.get("controllerId").getAsString();
|
||||
String controllerName = obj.get("name").getAsString();
|
||||
String texOverride = null;
|
||||
if (obj.has("textureOverride")) {
|
||||
texOverride = obj.get("textureOverride").getAsString();
|
||||
}
|
||||
final String textureOverrideFinal = texOverride;
|
||||
{
|
||||
Registerable<RegistryObject<TileEntityType<?>>> controllerTile = new Registerable<>();
|
||||
Registerable<RegistryObject<ControllerBlock>> controllerBlock = new Registerable<>();
|
||||
Registerable<RegistryObject<ContainerType<ControllerBlockContainer>>> cont = new Registerable<>();
|
||||
cont.set(MMSetup.CONTAINER_REG.register(controllerId + "_controller", () -> IForgeContainerType.create((i, o, u) -> new ControllerBlockContainer(cont.get().get(), i, o, u))));
|
||||
controllerBlock.set(MMSetup.BLOCKS_REG.register(controllerId + "_controller", () -> new ControllerBlock(controllerTile.get(), controllerName, controllerId)));
|
||||
controllerBlock.set(MMSetup.BLOCKS_REG.register(controllerId + "_controller", () -> new ControllerBlock(controllerTile.get(), controllerName, controllerId, textureOverrideFinal)));
|
||||
controllerTile.set(MMSetup.TILES_REG.register(controllerId + "_controller", () -> TileEntityType.Builder.of(() -> new ControllerBlockEntity(controllerTile.get(), cont.get(), controllerId), controllerBlock.get().get()).build(null)));
|
||||
MMSetup.ITEMS_REG.register(controllerId + "_controller", () -> new BlockItem(controllerBlock.get().get(), new Item.Properties().tab(MASTERFUL_ITEM_GROUP)));
|
||||
BLOCKS.add(controllerBlock.get());
|
||||
@@ -77,7 +81,13 @@ public class MMLoader {
|
||||
String type = portObj.get("type").getAsString();
|
||||
String id = portObj.get("id").getAsString();
|
||||
String name = portObj.get("name").getAsString();
|
||||
|
||||
String portTexOverride = null;
|
||||
if (portObj.has("textureOverride")){
|
||||
portTexOverride = portObj.get("name").getAsString();
|
||||
} else {
|
||||
portTexOverride = textureOverrideFinal;
|
||||
}
|
||||
final String portTextureOverrideFinal = portTexOverride;
|
||||
ResourceLocation resourceLocation = RLUtils.toRL(type);
|
||||
MasterfulPortType value = MMPorts.PORTS.get(resourceLocation);
|
||||
Supplier<PortStorage> data = value.getParser().createStorage(portObj.get("data").getAsJsonObject());
|
||||
@@ -87,7 +97,7 @@ public class MMLoader {
|
||||
Registerable<RegistryObject<MachinePortBlock>> block = new Registerable<>();
|
||||
Registerable<RegistryObject<ContainerType<?>>> cont = new Registerable<>();
|
||||
cont.set(MMSetup.CONTAINER_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> IForgeContainerType.create((i, o, u) -> new PortBlockContainer(cont.get().get(), i, o, u))));
|
||||
block.set(MMSetup.BLOCKS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> new MachinePortBlock(tile.get(), name, controllerId)));
|
||||
block.set(MMSetup.BLOCKS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> new MachinePortBlock(tile.get(), name, controllerId, portTextureOverrideFinal)));
|
||||
tile.set(MMSetup.TILES_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> TileEntityType.Builder.of(() -> new MachinePortBlockEntity(tile.get().get(),cont.get().get(), data.get(), true), block.get().get()).build(null)));
|
||||
MMSetup.ITEMS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_input", () -> new BlockItem(block.get().get(), new Item.Properties().tab(MASTERFUL_ITEM_GROUP)));
|
||||
PORT_CONTAINERS.add(cont.get());
|
||||
@@ -99,7 +109,7 @@ public class MMLoader {
|
||||
Registerable<RegistryObject<MachinePortBlock>> block = new Registerable<>();
|
||||
Registerable<RegistryObject<ContainerType<?>>> cont = new Registerable<>();
|
||||
cont.set(MMSetup.CONTAINER_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> IForgeContainerType.create((i, o, u) -> new PortBlockContainer(cont.get().get(), i, o, u))));
|
||||
block.set(MMSetup.BLOCKS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> new MachinePortBlock(tile.get(), name, controllerId)));
|
||||
block.set(MMSetup.BLOCKS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> new MachinePortBlock(tile.get(), name, controllerId, portTextureOverrideFinal)));
|
||||
tile.set(MMSetup.TILES_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> TileEntityType.Builder.of(() -> new MachinePortBlockEntity(tile.get().get(), cont.get().get(), data.get(), false), block.get().get()).build(null)));
|
||||
MMSetup.ITEMS_REG.register(controllerId + "_" + id + "_port_" + resourceLocation.getPath() + "_output", () -> new BlockItem(block.get().get(), new Item.Properties().tab(MASTERFUL_ITEM_GROUP)));
|
||||
PORT_CONTAINERS.add(cont.get());
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
title: "Contact"
|
||||
description: "Drop us an email."
|
||||
date: 2020-08-27T19:25:12+02:00
|
||||
lastmod: 2020-08-27T19:25:12+02:00
|
||||
draft: true
|
||||
images: []
|
||||
---
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
title: "Step By Step"
|
||||
description: "Config for defining Controllers and Ports."
|
||||
lead: "All config driven blocks must bge created in the modpack config folder under the masterful_machinery directory/folder."
|
||||
date: 2020-10-06T08:49:31+00:00
|
||||
lastmod: 2020-10-06T08:49:31+00:00
|
||||
draft: false
|
||||
images: [ '/assets/images/screenshot.png']
|
||||
menu:
|
||||
docs:
|
||||
parent: "config"
|
||||
weight: 630
|
||||
toc: true
|
||||
---
|
||||
|
||||
## Why not DataPack For The Blocks?
|
||||
|
||||
In minecraft blocks and items are registered a long time before the datapack's are even loaded. This means that to register blocks and items from JSON files, the mod must have a non-datapack-driven way of creating and configuring those blocks and such.
|
||||
|
||||
# Creating A Controller Block
|
||||
|
||||
Firstly, we must create the block which controls and handles the machines and recipes. This block is called a Controller.
|
||||
|
||||
To create a controller block you must navigate to the following directory/folder relative to the `.minecraft` or the equivalent root directory/folder for your modpack.
|
||||
|
||||
Path: `/config/masterful_machinery/controllers`.
|
||||
|
||||
Once you are inside the above directory. create a new JSON file, you can call it anything you want as long as it ends in `.json`.
|
||||
|
||||
Open the JSON file in your favorite JSON supporting text editor
|
||||
|
||||
16
wiki_src/content/docs/config/examples.md
Normal file
16
wiki_src/content/docs/config/examples.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "Controller & Ports Examples"
|
||||
description: "Examples of the controllers config files."
|
||||
lead: "Examples of the controllers config files."
|
||||
date: 2020-10-06T08:49:31+00:00
|
||||
lastmod: 2020-10-06T08:49:31+00:00
|
||||
draft: false
|
||||
images: []
|
||||
menu:
|
||||
docs:
|
||||
parent: "config"
|
||||
weight: 650
|
||||
toc: true
|
||||
---
|
||||
|
||||
|
||||
14
wiki_src/content/docs/config/reference.md
Normal file
14
wiki_src/content/docs/config/reference.md
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: "Controller & Ports Reference"
|
||||
description: "A Config file reference to help with understanding each field."
|
||||
lead: "A Config file reference to help with understanding each field."
|
||||
date: 2020-10-06T08:49:31+00:00
|
||||
lastmod: 2020-10-06T08:49:31+00:00
|
||||
draft: false
|
||||
images: []
|
||||
menu:
|
||||
docs:
|
||||
parent: "config"
|
||||
weight: 650
|
||||
toc: true
|
||||
---
|
||||
186
wiki_src/content/docs/config/stepbystep.md
Normal file
186
wiki_src/content/docs/config/stepbystep.md
Normal file
@@ -0,0 +1,186 @@
|
||||
---
|
||||
title: "Controller & Ports Tutorial"
|
||||
description: "Config for defining Controllers and Ports."
|
||||
lead: "All config driven blocks must bge created in the modpack config folder under the masterful_machinery directory/folder."
|
||||
date: 2020-10-06T08:49:31+00:00
|
||||
lastmod: 2020-10-06T08:49:31+00:00
|
||||
draft: false
|
||||
images: []
|
||||
menu:
|
||||
docs:
|
||||
parent: "config"
|
||||
weight: 630
|
||||
toc: true
|
||||
---
|
||||
|
||||
## Why not DataPack For The Blocks?
|
||||
|
||||
In minecraft blocks and items are registered a long time before the datapack's are even loaded. This means that to register blocks and items from JSON files, the mod must have a non-datapack-driven way of creating and configuring those blocks and such.
|
||||
|
||||
## Creating A Controller
|
||||
|
||||
Firstly, we must create the block which controls and handles the machines and recipes. This block is called a Controller.
|
||||
|
||||
To create a controller block you must navigate to the following directory/folder relative to the `.minecraft` or the equivalent root directory/folder for your modpack.
|
||||
|
||||
Path: `/config/masterful_machinery/controllers`.
|
||||
|
||||
Once you are inside the above directory. create a new JSON file, you can call it anything you want as long as it ends in `.json`.
|
||||
|
||||
## Writing the JSON File
|
||||
|
||||
Firstly, inside of our newly created json file we must set a unique identifier for the controller:
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic"
|
||||
}
|
||||
```
|
||||
|
||||
Controller blocks and items are created with the registry id of the following format: `masterfulmachinery:[controllerId]_controller`.
|
||||
|
||||
Using this format we know that our controller will be created with the block and item ids of `masterfulmachinery:basic_controller`
|
||||
|
||||
Next we must create a more human-readable name for our controller.
|
||||
To do this amend the previous JSON to match the following.
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic"
|
||||
}
|
||||
```
|
||||
|
||||
Similarly to the id, the name is created in a defined format. The format for the name is as follows: `[name] Controller`.
|
||||
|
||||
From this we know that the name of our controller with be `Basic Controller`
|
||||
|
||||
However, the file is not ready to be used yet, to make it "bare-minimum" usable (a single controller block) we must add an empty array for our ports.
|
||||
To do this amend the previous JSON to match the following.
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": []
|
||||
}
|
||||
```
|
||||
|
||||
> The above file is now able to be loaded by the mod and will function as a very useless controller block.
|
||||
|
||||
## Defining Ports
|
||||
|
||||
Ports are a block which allow a player to input and output all sorts of different resources of many different types to and from machines.
|
||||
|
||||
To create ports which are usable to a player, we must add an entry to our `ports` array.
|
||||
To do this amend the previous JSON to match the following.
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
In it's current state the empty JSON object will crash the game, but it is a good demonstration of JSON and it's format.
|
||||
|
||||
Next we must define a type field, this will tell the mod what type of port we want to create (item/fluid/energy/etc.) within the JSON object.
|
||||
To do this amend the previous JSON to match the following.
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
"type": "masterfulmachinery:items"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
The type defined above is that of an item port, this is similar to a chest and will contain slots which can store stacks of items.
|
||||
|
||||
> To see a list of available port types [Click Here](/docs/config/types)
|
||||
|
||||
Next we must set a unqiue id for our port, this is is relative to the port type and controller.
|
||||
To do this amend the previous JSON to match the following.
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"id": "small"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Port block/item ids are formatted as follows: `masterfulmachinery:[controllerId]_[id]_port_[type]_[input/output]`
|
||||
|
||||
With this in mind we know the above ports will have the ids of:
|
||||
- `mastefulmachinery:basic_small_port_items_input`
|
||||
- `mastefulmachinery:basic_small_port_items_output`
|
||||
|
||||
Keep in mind the fact that 1 port definition will make 2 blocks and items, 1 for input, 1 for output.
|
||||
|
||||
Also keep in mind that the id of a port only has to be unique within the same port type and controller, so if you have 3 port with different types they could have the same id. Also if you have 2 different controllers with a port of the same type each, you can give those the same id ad they will not clash due to the rather lengthy concatination of the name.
|
||||
|
||||
Next we must define a human-readable name for our Port.
|
||||
To do this amend the previous JSON to match the following.
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"id": "small",
|
||||
"name": "Small"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
The ingame name of the block will be formatted as follows: `[controller name] - [port name] [port type name] Input/Output`. with this in mind we know that the port blocks will be created with the following names for the above config:
|
||||
- `Basic - Small Item Input`
|
||||
- `Basic - Small Item Output`
|
||||
|
||||
The next section gets a little confusing due to the dynamic nature of the mod. We must define the limits/config/data for the ports we want to create.
|
||||
|
||||
Different port types have different fields within the `data` JSON object. For item ports we can do the following:
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"controllerId": "basic",
|
||||
"name": "Basic",
|
||||
"ports": [
|
||||
{
|
||||
"type": "masterfulmachinery:items",
|
||||
"id": "small",
|
||||
"name": "Small",
|
||||
"data": {
|
||||
"rows": 3,
|
||||
"columns": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
This will create both input and outputs ports of this type and tier have a chest layout of 3 rows and 4 columns.
|
||||
|
||||
> For each port type's data section's fields, [Click Here](/docs/config/types/#controllers-file-config-data-section)
|
||||
|
||||
Now run the game with this config and you should get a result of 1 `Basic Controller` and 2 Port blocks with chest like inventories (when clicked) of 3 rows and 4 columns.
|
||||
|
||||
For m,ore/larger examples [Click Here](/docs/config/types/#controllers-file-config-data-section)
|
||||
81
wiki_src/content/docs/config/types.md
Normal file
81
wiki_src/content/docs/config/types.md
Normal file
@@ -0,0 +1,81 @@
|
||||
---
|
||||
title: "Port Types"
|
||||
description: "A list of the available port types in Masterful Machinery."
|
||||
lead: "A list of the available port types in Masterful Machinery."
|
||||
date: 2020-10-06T08:49:31+00:00
|
||||
lastmod: 2020-10-06T08:49:31+00:00
|
||||
draft: false
|
||||
images: []
|
||||
menu:
|
||||
docs:
|
||||
parent: "config"
|
||||
weight: 660
|
||||
toc: true
|
||||
---
|
||||
|
||||
- `masterfulmachinery:items` (Item Ports)
|
||||
- `masterfulmachinery:fluids` (Fluid Ports)
|
||||
- `masterfulmachinery:energy` (Forge Energy Ports)
|
||||
- `masterfulmachinery:mekanism_gas` (Mekanism Gas Ports)
|
||||
- `masterfulmachinery:mekanism_slurry` (Mekanism Slurry Ports)
|
||||
|
||||
|
||||
## Controllers File Config Data Section
|
||||
|
||||
- `masterfulmachinery:items` (Item Ports)
|
||||
|
||||
```json
|
||||
{
|
||||
"rows": INTEGER,
|
||||
"columns": INTEGER
|
||||
}
|
||||
```
|
||||
|
||||
Replace `INTEGER` with a whole number (integer) for example: `6` or `9`
|
||||
|
||||
---
|
||||
|
||||
- `masterfulmachinery:fluids` (Fluid Ports)
|
||||
```json
|
||||
{
|
||||
"capacity": INTEGER
|
||||
}
|
||||
```
|
||||
|
||||
Replace `INTEGER` with a whole number (integer) for example: `10000` or `1000000`
|
||||
|
||||
---
|
||||
- `masterfulmachinery:energy` (Forge Energy Ports)
|
||||
|
||||
```json
|
||||
{
|
||||
"capacity": INTEGER
|
||||
}
|
||||
```
|
||||
|
||||
Replace `INTEGER` with a whole number (integer) for example: `10000` or `1000000`
|
||||
|
||||
---
|
||||
|
||||
- `masterfulmachinery:mekanism_gas` (Mekanism Gas Ports)
|
||||
|
||||
```json
|
||||
{
|
||||
"capacity": INTEGER
|
||||
}
|
||||
```
|
||||
|
||||
Replace `INTEGER` with a whole number (integer) for example: `10000` or `1000000`
|
||||
|
||||
---
|
||||
|
||||
- `masterfulmachinery:mekanism_slurry` (Mekanism Slurry Ports)
|
||||
```json
|
||||
{
|
||||
"capacity": INTEGER
|
||||
}
|
||||
```
|
||||
|
||||
Replace `INTEGER` with a whole number (integer) for example: `10000` or `1000000`
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user