update 1.2.2

Added 4 module
- CCPeripheral
- CCPeripheral_generic_energy_storage
- CCPeripheral_generic_fluid_storage
- CCPeripheral_generic_inventory
This commit is contained in:
dharm pimsen 2024-08-19 21:04:51 +07:00
parent fa69cff4da
commit a3cbd59f8a
28 changed files with 651 additions and 16 deletions

View File

@ -7,7 +7,7 @@
"keyword": "Colors",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "disk, operations, ccIDE",
"license": "GPL-3.0-or-later",
"peripherals": true,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "Keyboard",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -0,0 +1,129 @@
{
"peripheral_get_names": {
"message0": "Get all peripheral",
"output": "Array",
"colour": 240,
"tooltip": "Provides a list of all peripherals available."
},
"peripheral_is_present": {
"message0": "Peripheral %1 is present",
"args0": [
{
"type": "input_value",
"name": "NAME"
}
],
"output": "Boolean",
"colour": 240,
"tooltip": "Determines if a peripheral is present with the given name."
},
"peripheral_get_type": {
"message0": "Get type of peripheral %1",
"args0": [
{
"type": "input_value",
"name": "DEVICE",
"check": ["Peripheral", "String"]
}
],
"output": "String",
"colour": 240,
"tooltip": "Get the types of a named or wrapped peripheral."
},
"peripheral_has_type": {
"message0": "Peripheral %1 has type %2",
"args0": [
{
"type": "input_value",
"name": "DEVICE",
"check": ["Peripheral", "String"]
},
{
"type": "input_value",
"name": "TYPE",
"check": "String"
}
],
"output": "Boolean",
"colour": 240,
"tooltip": "Check if a peripheral is of a particular type."
},
"peripheral_get_methods": {
"message0": "Get methods of peripheral %1",
"args0": [
{
"type": "input_value",
"name": "NAME",
"check": "String"
}
],
"output": "Array",
"colour": 240,
"tooltip": "Get all available methods for the peripheral with the given name."
},
"peripheral_get_name": {
"message0": "Get name of peripheral %1",
"args0": [
{
"type": "input_value",
"name": "DEVICE",
"check": "Peripheral"
}
],
"output": "String",
"colour": 240,
"tooltip": "Get the name of a peripheral wrapped with peripheral.wrap."
},
"peripheral_call": {
"message0": "Call peripheral %1 with method %2\nand args %3",
"args0": [
{
"type": "input_value",
"name": "NAME",
"check": "String"
},
{
"type": "input_value",
"name": "METHOD",
"check": "String"
},
{
"type": "input_value",
"name": "ARGS",
"check": "Multiple"
}
],
"previousStatement": null,
"nextStatement": null,
"output": null,
"colour": 240,
"tooltip": "Call a method on the peripheral with the given name."
},
"peripheral_wrap": {
"message0": "Open peripheral %1",
"args0": [
{
"type": "input_value",
"name": "NAME",
"check": "String"
}
],
"output": "Peripheral",
"colour": 240,
"tooltip": "Get a table containing all functions available on a peripheral. These can then be called instead of using peripheral.call every time."
},
"peripheral_find": {
"message0": "Find peripheral %1",
"args0": [
{
"type": "input_value",
"name": "NAME",
"check": "String"
}
],
"output": "Peripheral",
"colour": 240,
"tooltip": "Find all peripherals of a specific type, and return the wrapped peripherals."
}
}

View File

@ -0,0 +1,63 @@
// this file not for generator only
const { luaGenerator } = require('blockly/lua');
// Check if luaGenerator.forBlock is defined and initialize if necessary
if (!luaGenerator.forBlock) {
luaGenerator.forBlock = {};
}
luaGenerator.forBlock['peripheral_get_names'] = function(block, generator) {
return ["peripheral.getNames()", luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_is_present'] = function(block, generator) {
var name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC);
return [`peripheral.isPresent(${name})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_get_type'] = function(block, generator) {
var device = generator.valueToCode(block, 'DEVICE', generator.ORDER_ATOMIC);
return [`peripheral.getType(${device})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_has_type'] = function(block, generator) {
var device = generator.valueToCode(block, 'DEVICE', generator.ORDER_ATOMIC);
var type = generator.valueToCode(block, 'TYPE', generator.ORDER_ATOMIC);
return [`peripheral.hasType(${device}, ${type})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_get_methods'] = function(block, generator) {
var name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC);
return [`peripheral.getMethods(${name})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_get_name'] = function(block, generator) {
var device = generator.valueToCode(block, 'DEVICE', generator.ORDER_ATOMIC);
return [`peripheral.getName(${device})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_call'] = function(block, generator) {
var name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC);
var method = generator.valueToCode(block, 'METHOD', generator.ORDER_ATOMIC);
var args = generator.valueToCode(block, 'ARGS', generator.ORDER_ATOMIC);
return [`peripheral.call(${name}, ${method}, ${args})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_wrap'] = function(block, generator) {
var name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC);
return [`peripheral.wrap(${name})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['peripheral_find'] = function(block, generator) {
var name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC);
return [`peripheral.find(${name})`, luaGenerator.ORDER_NONE];
};

View File

@ -0,0 +1,22 @@
{
"name": "CC: Peripheral",
"author": "DPSoftware Foundation",
"description": "Peripherals are blocks (or turtle and pocket computer upgrades) which can be controlled by a computer.",
"version": "1.0.0",
"category": "Peripheral",
"keyword": "peripheral",
"license": "GPL-3.0-or-later",
"peripherals": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {
"basic": true,
"adv": true,
"command": true,
"pocket": false,
"advpocket": false,
"turtle": true,
"advturtle": true
}
}

View File

@ -0,0 +1,13 @@
<xml id="toolbox" style="display: none;">
<category name="Peripheral" colour="240">
<block type="peripheral_get_names"></block>
<block type="peripheral_is_present"></block>
<block type="peripheral_get_type"></block>
<block type="peripheral_has_type"></block>
<block type="peripheral_get_methods"></block>
<block type="peripheral_get_name"></block>
<block type="peripheral_call"></block>
<block type="peripheral_wrap"></block>
<block type="peripheral_find"></block>
</category>
</xml>

View File

@ -0,0 +1,28 @@
{
"periph_gen_energy_get": {
"message0": "Get current energy from %1",
"args0": [
{
"type": "input_value",
"name": "ENERGY",
"check": "Peripheral"
}
],
"output": "Number",
"colour": 25,
"tooltip": "Get the energy of this block."
},
"periph_gen_energy_get_capacity": {
"message0": "Get max energy capacity from %1",
"args0": [
{
"type": "input_value",
"name": "ENERGY",
"check": "Peripheral"
}
],
"output": "Number",
"colour": 25,
"tooltip": "Get the maximum amount of energy this block can store."
}
}

View File

@ -0,0 +1,20 @@
// this file not for generator only
const { luaGenerator } = require('blockly/lua');
// Check if luaGenerator.forBlock is defined and initialize if necessary
if (!luaGenerator.forBlock) {
luaGenerator.forBlock = {};
}
luaGenerator.forBlock['periph_gen_energy_get'] = function(block, generator) {
var energy = generator.valueToCode(block, 'ENERGY', generator.ORDER_NONE);
return [`${energy}.getEnergy()`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['periph_gen_energy_get_capacity'] = function(block, generator) {
var energy = generator.valueToCode(block, 'ENERGY', generator.ORDER_NONE);
return [`${energy}.getEnergyCapacity()`, luaGenerator.ORDER_NONE];
};

View File

@ -0,0 +1,22 @@
{
"name": "CC: Generic Energy Storage",
"author": "DPSoftware Foundation",
"description": "Methods for interacting with blocks which store energy.",
"version": "1.0.0",
"category": "Peripheral",
"keyword": "generic peripheral storage power",
"license": "GPL-3.0-or-later",
"peripherals": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {
"basic": true,
"adv": true,
"command": true,
"pocket": false,
"advpocket": false,
"turtle": true,
"advturtle": true
}
}

View File

@ -0,0 +1,6 @@
<xml id="toolbox" style="display: none;">
<category name="FluidTanks" colour="25">
<block type="periph_gen_energy_get"></block>
<block type="periph_gen_energy_get_capacity"></block>
</category>
</xml>

View File

@ -0,0 +1,52 @@
{
"periph_gen_fluid_tanks": {
"message0": "Get fluid in tanks %1",
"args0": [
{
"type": "input_value",
"name": "TANKS",
"check": "Peripheral"
}
],
"output": "Array",
"colour": 240,
"tooltip": "Get all \"tanks\" in this fluid storage."
},
"periph_gen_fluid_transfer": {
"message0": "Fluid name %1 in tanks %2 %3 tanks %4\nWith limit %5 mb",
"args0": [
{
"type": "input_value",
"name": "FLUIDNAME",
"check": "String"
},
{
"type": "input_value",
"name": "TANKS1",
"check": "Peripheral"
},
{
"type": "field_dropdown",
"name": "MODE",
"options": [
["Push to", "PUSH"],
["Pull from", "PULL"]
]
},
{
"type": "input_value",
"name": "TANKS2",
"check": "Peripheral"
},
{
"type": "input_value",
"name": "LIMIT",
"check": "Number"
}
],
"previousStatement": null,
"nextStatement": null,
"colour": 240,
"tooltip": "Transfer a fluid from one fluid container to another connected one."
}
}

View File

@ -0,0 +1,28 @@
// this file not for generator only
const { luaGenerator } = require('blockly/lua');
// Check if luaGenerator.forBlock is defined and initialize if necessary
if (!luaGenerator.forBlock) {
luaGenerator.forBlock = {};
}
luaGenerator.forBlock['periph_gen_fluid_tanks'] = function(block, generator) {
var tanks = generator.valueToCode(block, 'TANKS', generator.ORDER_NONE);
return [`${tanks}.tanks()`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['periph_gen_fluid_transfer'] = function(block, generator) {
var fluidname = generator.valueToCode(block, 'FLUIDNAME', generator.ORDER_ATOMIC);
var tanks1 = generator.valueToCode(block, 'TANKS1', generator.ORDER_ATOMIC);
var mode = block.getFieldValue('MODE');
var tanks2 = generator.valueToCode(block, 'TANKS2', generator.ORDER_ATOMIC);
var limit = generator.valueToCode(block, 'LIMIT', generator.ORDER_ATOMIC);
if (mode == "PUSH") {
return `${tanks1}.pushFluid(peripheral.getName(${tanks2}), ${limit}, ${fluidname})\n`
} else {
return `${tanks1}.pullFluid(peripheral.getName(${tanks2}), ${limit}, ${fluidname})\n`
}
};

View File

@ -0,0 +1,22 @@
{
"name": "CC: Generic Fluid Storage",
"author": "DPSoftware Foundation",
"description": "Methods for interacting with tanks and other fluid storage blocks.",
"version": "1.0.0",
"category": "Peripheral",
"keyword": "generic peripheral storage",
"license": "GPL-3.0-or-later",
"peripherals": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {
"basic": true,
"adv": true,
"command": true,
"pocket": false,
"advpocket": false,
"turtle": true,
"advturtle": true
}
}

View File

@ -0,0 +1,12 @@
<xml id="toolbox" style="display: none;">
<category name="FluidTanks" colour="240">
<block type="periph_gen_fluid_tanks"></block>
<block type="periph_gen_fluid_transfer">
<value name="LIMIT">
<shadow type="math_number">
<field name="NUM">1000</field>
</shadow>
</value>
</block>
</category>
</xml>

View File

@ -0,0 +1,107 @@
{
"periph_gen_inv_size": {
"message0": "Size of Inventory %1",
"args0": [
{
"type": "input_value",
"name": "INV",
"check": "Peripheral"
}
],
"output": "Number",
"colour": 130,
"tooltip": "Get the size of this inventory."
},
"periph_gen_inv_list": {
"message0": "List all item in Inventory %1",
"args0": [
{
"type": "input_value",
"name": "INV",
"check": "Peripheral"
}
],
"output": "Array",
"colour": 130,
"tooltip": "List all items in this inventory. This returns a table, with an entry for each slot."
},
"periph_gen_inv_get_item_detail": {
"message0": "Get item detail from inventory %1 in slot %2",
"args0": [
{
"type": "input_value",
"name": "INV",
"check": "Peripheral"
},
{
"type": "input_value",
"name": "SLOT",
"check": "Number"
}
],
"output": "Array",
"colour": 130,
"tooltip": "Get detailed information about an item.",
"helpUrl": "https://tweaked.cc/generic_peripheral/inventory.html#v:getItemDetail"
},
"periph_gen_inv_get_item_limit": {
"message0": "Get item limit from inventory %1 in slot %2",
"args0": [
{
"type": "input_value",
"name": "INV",
"check": "Peripheral"
},
{
"type": "input_value",
"name": "SLOT",
"check": "Number"
}
],
"output": "Number",
"colour": 130,
"tooltip": "Get the maximum number of items which can be stored in this slot."
},
"periph_gen_inv_transfer_items": {
"message0": "Inventory %1 in slot %2 %3 inventory %4 in slot %5\nWith limit %6 items",
"args0": [
{
"type": "input_value",
"name": "INV1",
"check": "Peripheral"
},
{
"type": "input_value",
"name": "INV1SLOT",
"check": "Number"
},
{
"type": "field_dropdown",
"name": "MODE",
"options": [
["Push to", "PUSH"],
["Pull from", "PULL"]
]
},
{
"type": "input_value",
"name": "INV2",
"check": "Peripheral"
},
{
"type": "input_value",
"name": "INV2SLOT",
"check": "Number"
},
{
"type": "input_value",
"name": "LIMIT",
"check": "Number"
}
],
"previousStatement": null,
"nextStatement": null,
"colour": 130,
"tooltip": "Transfer items from one inventory to another connected one."
}
}

View File

@ -0,0 +1,49 @@
// this file not for generator only
const { luaGenerator } = require('blockly/lua');
// Check if luaGenerator.forBlock is defined and initialize if necessary
if (!luaGenerator.forBlock) {
luaGenerator.forBlock = {};
}
luaGenerator.forBlock['periph_gen_inv_size'] = function(block, generator) {
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
return [`${inv}.size()`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['periph_gen_inv_list'] = function(block, generator) {
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
return [`${inv}.list()`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['periph_gen_inv_get_item_detail'] = function(block, generator) {
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
var slot = generator.valueToCode(block, 'SLOT', generator.ORDER_NONE);
return [`${inv}.getItemDetail(${slot})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['periph_gen_inv_get_item_limit'] = function(block, generator) {
var inv = generator.valueToCode(block, 'INV', generator.ORDER_NONE);
var slot = generator.valueToCode(block, 'SLOT', generator.ORDER_NONE);
return [`${inv}.getItemLimit(${slot})`, luaGenerator.ORDER_NONE];
};
luaGenerator.forBlock['periph_gen_inv_transfer_items'] = function(block, generator) {
var inv1 = generator.valueToCode(block, 'INV1', generator.ORDER_ATOMIC);
var inv1slot = generator.valueToCode(block, 'INV1SLOT', generator.ORDER_ATOMIC);
var mode = block.getFieldValue('MODE');
var inv2 = generator.valueToCode(block, 'INV2', generator.ORDER_ATOMIC);
var inv2slot = generator.valueToCode(block, 'INV2SLOT', generator.ORDER_ATOMIC);
var limit = generator.valueToCode(block, 'LIMIT', generator.ORDER_ATOMIC);
if (mode == "PUSH") {
return `${inv1}.pushItems(peripheral.getName(${inv2}), ${inv1slot}, ${limit}, ${inv2slot})\n`
} else {
return `${inv1}.pullItems(peripheral.getName(${inv2}), ${inv2slot}, ${limit}, ${inv1slot})\n`
}
};

View File

@ -0,0 +1,22 @@
{
"name": "CC: Generic Inventory",
"author": "DPSoftware Foundation",
"description": "Methods for interacting with inventories.",
"version": "1.0.0",
"category": "Peripheral",
"keyword": "generic peripheral",
"license": "GPL-3.0-or-later",
"peripherals": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {
"basic": true,
"adv": true,
"command": true,
"pocket": false,
"advpocket": false,
"turtle": true,
"advturtle": true
}
}

View File

@ -0,0 +1,37 @@
<xml id="toolbox" style="display: none;">
<category name="Inventory" colour="130">
<block type="periph_gen_inv_size"></block>
<block type="periph_gen_inv_list"></block>
<block type="periph_gen_inv_get_item_detail">
<value name="NUM1">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="periph_gen_inv_get_item_limit">
<value name="SLOT">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
</block>
<block type="periph_gen_inv_transfer_items">
<value name="INV1SLOT">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="INV2SLOT">
<shadow type="math_number">
<field name="NUM">1</field>
</shadow>
</value>
<value name="LIMIT">
<shadow type="math_number">
<field name="NUM">64</field>
</shadow>
</value>
</block>
</category>
</xml>

View File

@ -7,7 +7,7 @@
"keyword": "Rednet",
"license": "GPL-3.0-or-later",
"peripherals": true,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "Redstone",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "Env",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "System, OS",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "utils",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "turtle",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

View File

@ -7,7 +7,7 @@
"keyword": "Native, Lua, IO",
"license": "GPL-3.0-or-later",
"peripherals": false,
"library": true,
"library": false,
"require_network": false,
"dependencies": {},
"design_for_computer": {

Binary file not shown.

View File

@ -47,9 +47,13 @@ If error "Domain not permitted" try [this solution](https://github.com/cc-tweake
| [Keys](https://tweaked.cc/module/keys.html) | 🟩 Supported all
| [OS](https://tweaked.cc/module/os.html) (System) | 🟩 Supported all
| [RedNet](https://tweaked.cc/module/rednet.html) | 🟩 Supported all
| [Redstone](https://tweaked.cc/module/redstone.html) | 🟩 Supported all
| [Settings](https://tweaked.cc/module/settings.html) | 🟩 Supported all
| [TextUtils](https://tweaked.cc/module/textutils.html) | 🟩 Supported all
| [Peripheral](https://tweaked.cc/module/peripheral.html) | 🟩 Supported all
| [Energy Storage Peripheral](https://tweaked.cc/generic_peripheral/energy_storage.html) | 🟩 Supported all
| [Fluid Storage Peripheral](https://tweaked.cc/generic_peripheral/fluid_storage.html) | 🟩 Supported all
| [Inventory](https://tweaked.cc/generic_peripheral/inventory.html) | 🟩 Supported all
| [Redstone](https://tweaked.cc/module/redstone.html) | 🟨 Partially Supported
| [Colors](https://tweaked.cc/module/colors.html) | 🟨 Partially Supported
| [Commands](https://tweaked.cc/module/commands.html) | 🟥 Unsupport
| [FS](https://tweaked.cc/module/fs.html) | 🟥 Unsupport
@ -59,7 +63,6 @@ If error "Domain not permitted" try [this solution](https://github.com/cc-tweake
| [Multishell](https://tweaked.cc/module/multishell.html) | 🟥 Unsupport
| [PaintUtils](https://tweaked.cc/module/paintutils.html) | 🟥 Unsupport
| [Parallel](https://tweaked.cc/module/parallel.html) | 🟥 Unsupport
| [Peripheral](https://tweaked.cc/module/peripheral.html) | 🟥 Unsupport
| [Pocket](https://tweaked.cc/module/pocket.html) | 🟥 Unsupport
| [Shell](https://tweaked.cc/module/shell.html) | 🟥 Unsupport
| [Term](https://tweaked.cc/module/term.html) | 🟥 Unsupport
@ -81,17 +84,17 @@ If error "Domain not permitted" try [this solution](https://github.com/cc-tweake
| [Monitor Peripheral](https://tweaked.cc/peripheral/monitor.html) | 🟥 Unsupport
| [Printer Peripheral](https://tweaked.cc/peripheral/printer.html) | 🟥 Unsupport
| [Speaker Peripheral](https://tweaked.cc/peripheral/speaker.html) | 🟥 Unsupport
| [Energy Storage Peripheral](https://tweaked.cc/generic_peripheral/energy_storage.html) | 🟥 Unsupport
| [Fluid Storage Peripheral](https://tweaked.cc/generic_peripheral/fluid_storage.html) | 🟥 Unsupport
| [Inventory](https://tweaked.cc/generic_peripheral/inventory.html) | 🟥 Unsupport
Event: https://tweaked.cc/event/alarm.html
### Peripheral mods
| Mod | Status
|------------|--------
|[Advanced Peripherals](https://www.curseforge.com/minecraft/mc-mods/advanced-peripherals) | 🟨 First support
|[Create Additions](https://www.curseforge.com/minecraft/mc-mods/createaddition) | 🟨 First support
|[Advanced Peripherals](https://www.curseforge.com/minecraft/mc-mods/advanced-peripherals) | 🟨 Second support
|[Create](https://www.curseforge.com/minecraft/mc-mods/create) | 🟨 Third support
|[CC:C Bridge](https://www.curseforge.com/minecraft/mc-mods/cccbridge) | 🟥 Unsupport
|[Extreme Reactors](https://www.curseforge.com/minecraft/mc-mods/extreme-reactors) ([Command](https://ftbwiki.org/Reactor_Computer_Port)) | 🟥 Unsupport
|[CC:Destroy Bridge](https://www.curseforge.com/minecraft/mc-mods/ccdbridge) | 🟥 Unsupport
|[More Red x CC:Tweaked Compat](https://www.curseforge.com/minecraft/mc-mods/more-red-x-cc-tweaked-compat) | 🟥 Unsupport
|[More Peripherals](https://www.curseforge.com/minecraft/mc-mods/more-peripherals) | 🟥 Unsupport