diff --git a/blocks/CCColors/index.json b/blocks/CCColors/index.json
index 67a3507..a719008 100644
--- a/blocks/CCColors/index.json
+++ b/blocks/CCColors/index.json
@@ -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": {
diff --git a/blocks/CCDisk/index.json b/blocks/CCDisk/index.json
index 71aee3a..8ca6e34 100644
--- a/blocks/CCDisk/index.json
+++ b/blocks/CCDisk/index.json
@@ -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": {
diff --git a/blocks/CCKeys/index.json b/blocks/CCKeys/index.json
index ed4ca6a..58f573c 100644
--- a/blocks/CCKeys/index.json
+++ b/blocks/CCKeys/index.json
@@ -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": {
diff --git a/blocks/CCPeripheral/block_design.json b/blocks/CCPeripheral/block_design.json
new file mode 100644
index 0000000..5fadd0f
--- /dev/null
+++ b/blocks/CCPeripheral/block_design.json
@@ -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."
+ }
+}
+
diff --git a/blocks/CCPeripheral/generator.js b/blocks/CCPeripheral/generator.js
new file mode 100644
index 0000000..4621679
--- /dev/null
+++ b/blocks/CCPeripheral/generator.js
@@ -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];
+};
\ No newline at end of file
diff --git a/blocks/CCPeripheral/index.json b/blocks/CCPeripheral/index.json
new file mode 100644
index 0000000..bb444e7
--- /dev/null
+++ b/blocks/CCPeripheral/index.json
@@ -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
+ }
+}
diff --git a/blocks/CCPeripheral/toolbox.xml b/blocks/CCPeripheral/toolbox.xml
new file mode 100644
index 0000000..9adc0e3
--- /dev/null
+++ b/blocks/CCPeripheral/toolbox.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/blocks/CCPeripheral_generic_energy_storage/block_design.json b/blocks/CCPeripheral_generic_energy_storage/block_design.json
new file mode 100644
index 0000000..3664c76
--- /dev/null
+++ b/blocks/CCPeripheral_generic_energy_storage/block_design.json
@@ -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."
+ }
+}
diff --git a/blocks/CCPeripheral_generic_energy_storage/generator.js b/blocks/CCPeripheral_generic_energy_storage/generator.js
new file mode 100644
index 0000000..9d08dea
--- /dev/null
+++ b/blocks/CCPeripheral_generic_energy_storage/generator.js
@@ -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];
+};
\ No newline at end of file
diff --git a/blocks/CCPeripheral_generic_energy_storage/index.json b/blocks/CCPeripheral_generic_energy_storage/index.json
new file mode 100644
index 0000000..8acb676
--- /dev/null
+++ b/blocks/CCPeripheral_generic_energy_storage/index.json
@@ -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
+ }
+}
diff --git a/blocks/CCPeripheral_generic_energy_storage/toolbox.xml b/blocks/CCPeripheral_generic_energy_storage/toolbox.xml
new file mode 100644
index 0000000..7725d16
--- /dev/null
+++ b/blocks/CCPeripheral_generic_energy_storage/toolbox.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/blocks/CCPeripheral_generic_fluid_storage/block_design.json b/blocks/CCPeripheral_generic_fluid_storage/block_design.json
new file mode 100644
index 0000000..3342e3a
--- /dev/null
+++ b/blocks/CCPeripheral_generic_fluid_storage/block_design.json
@@ -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."
+ }
+}
diff --git a/blocks/CCPeripheral_generic_fluid_storage/generator.js b/blocks/CCPeripheral_generic_fluid_storage/generator.js
new file mode 100644
index 0000000..271f829
--- /dev/null
+++ b/blocks/CCPeripheral_generic_fluid_storage/generator.js
@@ -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`
+ }
+};
diff --git a/blocks/CCPeripheral_generic_fluid_storage/index.json b/blocks/CCPeripheral_generic_fluid_storage/index.json
new file mode 100644
index 0000000..0575b5c
--- /dev/null
+++ b/blocks/CCPeripheral_generic_fluid_storage/index.json
@@ -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
+ }
+}
diff --git a/blocks/CCPeripheral_generic_fluid_storage/toolbox.xml b/blocks/CCPeripheral_generic_fluid_storage/toolbox.xml
new file mode 100644
index 0000000..d5fb9c6
--- /dev/null
+++ b/blocks/CCPeripheral_generic_fluid_storage/toolbox.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ 1000
+
+
+
+
+
diff --git a/blocks/CCPeripheral_generic_inventory/block_design.json b/blocks/CCPeripheral_generic_inventory/block_design.json
new file mode 100644
index 0000000..69ef6bd
--- /dev/null
+++ b/blocks/CCPeripheral_generic_inventory/block_design.json
@@ -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."
+ }
+}
diff --git a/blocks/CCPeripheral_generic_inventory/generator.js b/blocks/CCPeripheral_generic_inventory/generator.js
new file mode 100644
index 0000000..cfa7837
--- /dev/null
+++ b/blocks/CCPeripheral_generic_inventory/generator.js
@@ -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`
+ }
+};
diff --git a/blocks/CCPeripheral_generic_inventory/index.json b/blocks/CCPeripheral_generic_inventory/index.json
new file mode 100644
index 0000000..cde8f27
--- /dev/null
+++ b/blocks/CCPeripheral_generic_inventory/index.json
@@ -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
+ }
+}
diff --git a/blocks/CCPeripheral_generic_inventory/toolbox.xml b/blocks/CCPeripheral_generic_inventory/toolbox.xml
new file mode 100644
index 0000000..bc7e329
--- /dev/null
+++ b/blocks/CCPeripheral_generic_inventory/toolbox.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+ 1
+
+
+
+
+ 1
+
+
+
+
+ 64
+
+
+
+
+
diff --git a/blocks/CCRednet/index.json b/blocks/CCRednet/index.json
index 762d65b..0172f34 100644
--- a/blocks/CCRednet/index.json
+++ b/blocks/CCRednet/index.json
@@ -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": {
diff --git a/blocks/CCRedstone/index.json b/blocks/CCRedstone/index.json
index ae02eba..6fbce12 100644
--- a/blocks/CCRedstone/index.json
+++ b/blocks/CCRedstone/index.json
@@ -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": {
diff --git a/blocks/CCSettings/index.json b/blocks/CCSettings/index.json
index 12a9d27..656a11a 100644
--- a/blocks/CCSettings/index.json
+++ b/blocks/CCSettings/index.json
@@ -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": {
diff --git a/blocks/CCSystem/index.json b/blocks/CCSystem/index.json
index 389626c..f7616d9 100644
--- a/blocks/CCSystem/index.json
+++ b/blocks/CCSystem/index.json
@@ -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": {
diff --git a/blocks/CCTextutils/index.json b/blocks/CCTextutils/index.json
index 56ea0d9..9fc7d92 100644
--- a/blocks/CCTextutils/index.json
+++ b/blocks/CCTextutils/index.json
@@ -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": {
diff --git a/blocks/CCTurtle/index.json b/blocks/CCTurtle/index.json
index 036e927..238f77c 100644
--- a/blocks/CCTurtle/index.json
+++ b/blocks/CCTurtle/index.json
@@ -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": {
diff --git a/blocks/NativeIO/index.json b/blocks/NativeIO/index.json
index 6496b73..89fce3a 100644
--- a/blocks/NativeIO/index.json
+++ b/blocks/NativeIO/index.json
@@ -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": {
diff --git a/ccIDE Defines.xlsx b/ccIDE Defines.xlsx
index 3e3602b..23276d2 100644
Binary files a/ccIDE Defines.xlsx and b/ccIDE Defines.xlsx differ
diff --git a/readme.md b/readme.md
index f8cd562..d049b05 100644
--- a/readme.md
+++ b/readme.md
@@ -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