mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2024-11-14 06:24:12 +01:00
Bug and Lang Fixes
- Patched some localization gaps from the registry wipe - TE's with an ItemStackHandler capability are now viable for mounted storage - Fixed pulley placing down ropes when destroyed while moving - Fixed inconsistency with glue removal and placement
This commit is contained in:
parent
752bcf06c0
commit
285cb52894
@ -325,7 +325,7 @@ c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets\create\blockstates\weathered_lim
|
|||||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json
|
7f39521b211441f5c3e06d60c5978cebe16cacfb assets\create\blockstates\zinc_block.json
|
||||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json
|
b7181bcd8182b2f17088e5aa881f374c9c65470c assets\create\blockstates\zinc_ore.json
|
||||||
4311c87a21caccb97b693bf914c8ce79de3f814b assets\create\lang\en_ud.json
|
4311c87a21caccb97b693bf914c8ce79de3f814b assets\create\lang\en_ud.json
|
||||||
67a3e70e553c0b079967fd1142049641a3d3aa3f assets\create\lang\en_us.json
|
c3dad9e33623a13cadd63f53e88acf316e9c4ba6 assets\create\lang\en_us.json
|
||||||
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets\create\models\block\acacia_window.json
|
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets\create\models\block\acacia_window.json
|
||||||
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets\create\models\block\acacia_window_pane_noside.json
|
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets\create\models\block\acacia_window_pane_noside.json
|
||||||
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets\create\models\block\acacia_window_pane_noside_alt.json
|
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets\create\models\block\acacia_window_pane_noside_alt.json
|
||||||
@ -1270,7 +1270,6 @@ e4225555a12384f2607d5ac65e790fb774beecc8 data\create\advancements\crafter.json
|
|||||||
d1fbc14303c7327e9fc02e505e7e434591b7f785 data\create\advancements\crushing_wheel.json
|
d1fbc14303c7327e9fc02e505e7e434591b7f785 data\create\advancements\crushing_wheel.json
|
||||||
0761f3e12d587fec7a2ddf326b43969d262771e3 data\create\advancements\deforester.json
|
0761f3e12d587fec7a2ddf326b43969d262771e3 data\create\advancements\deforester.json
|
||||||
e4e3c1bd7ecf501b40cffc26d8ad145ab4e89118 data\create\advancements\deployer.json
|
e4e3c1bd7ecf501b40cffc26d8ad145ab4e89118 data\create\advancements\deployer.json
|
||||||
7280e15d67926f5911b6d75b62369d86fc98af27 data\create\advancements\drill.json
|
|
||||||
77edd30e3d60b4d492662c673387910f66b5a276 data\create\advancements\dual_extendo_grip.json
|
77edd30e3d60b4d492662c673387910f66b5a276 data\create\advancements\dual_extendo_grip.json
|
||||||
04eaf829696d735244c0e4798dd3bdeb26e13a32 data\create\advancements\electron_tube.json
|
04eaf829696d735244c0e4798dd3bdeb26e13a32 data\create\advancements\electron_tube.json
|
||||||
31c9541b0be08cde351b9a07696bd675514bbcb8 data\create\advancements\extendo_grip.json
|
31c9541b0be08cde351b9a07696bd675514bbcb8 data\create\advancements\extendo_grip.json
|
||||||
@ -1278,6 +1277,8 @@ e4e3c1bd7ecf501b40cffc26d8ad145ab4e89118 data\create\advancements\deployer.json
|
|||||||
62f3610188f7dbd3900ab305edc2d06282705a38 data\create\advancements\goggles.json
|
62f3610188f7dbd3900ab305edc2d06282705a38 data\create\advancements\goggles.json
|
||||||
7e12b7ccb198ef0db7964b8cbef152d8347e333c data\create\advancements\its_alive.json
|
7e12b7ccb198ef0db7964b8cbef152d8347e333c data\create\advancements\its_alive.json
|
||||||
3d0fc63191ef507a018ef996ebf9406a523f3976 data\create\advancements\lava_wheel.json
|
3d0fc63191ef507a018ef996ebf9406a523f3976 data\create\advancements\lava_wheel.json
|
||||||
|
786c2058805ceca3cd3970cc6e918560b54747f5 data\create\advancements\mechanical_drill.json
|
||||||
|
41444ae151ce90d2d68dcda0ed3565f98509c594 data\create\advancements\mechanical_saw.json
|
||||||
9c7f0c2484a84ccf42166704475fafcb1f232ce6 data\create\advancements\millstone.json
|
9c7f0c2484a84ccf42166704475fafcb1f232ce6 data\create\advancements\millstone.json
|
||||||
704c7fc0ed357b1a116ffdc0b6c64fe64e337a5a data\create\advancements\mixer.json
|
704c7fc0ed357b1a116ffdc0b6c64fe64e337a5a data\create\advancements\mixer.json
|
||||||
a135eec618e448f440d9f42cc7a3e6c63fc45a71 data\create\advancements\overstressed.json
|
a135eec618e448f440d9f42cc7a3e6c63fc45a71 data\create\advancements\overstressed.json
|
||||||
@ -1661,14 +1662,13 @@ e548127075559307b767b802f4809ed52eedd543 data\create\advancements\recipes\create
|
|||||||
9790a16fd56e47cb5abbfad4062672303c224d9f data\create\advancements\recipes\create.palettes\weathered_limestone_pillar_from_weathered_limestone_stonecutting.json
|
9790a16fd56e47cb5abbfad4062672303c224d9f data\create\advancements\recipes\create.palettes\weathered_limestone_pillar_from_weathered_limestone_stonecutting.json
|
||||||
e0b9edc5e59647e7dd99be17369b263dadf407d4 data\create\advancements\refined_radiance.json
|
e0b9edc5e59647e7dd99be17369b263dadf407d4 data\create\advancements\refined_radiance.json
|
||||||
fc12b590ab8f5ac901db21c67ba3850f157e1421 data\create\advancements\root.json
|
fc12b590ab8f5ac901db21c67ba3850f157e1421 data\create\advancements\root.json
|
||||||
48f5e6b05378ef3851892f6df7d706b77255f068 data\create\advancements\saw.json
|
|
||||||
8529fc7919b6a3240ede2bb8043906bb72fb7f9e data\create\advancements\shadow_end.json
|
8529fc7919b6a3240ede2bb8043906bb72fb7f9e data\create\advancements\shadow_end.json
|
||||||
c1f162e773518f6b1481221e3e63f9ba33fed647 data\create\advancements\shadow_steel.json
|
c1f162e773518f6b1481221e3e63f9ba33fed647 data\create\advancements\shadow_steel.json
|
||||||
290e1248254abcfd7f1e73906be25662331378ec data\create\advancements\shifting_gears.json
|
290e1248254abcfd7f1e73906be25662331378ec data\create\advancements\shifting_gears.json
|
||||||
7eac9a5f9f96087a74cab1576c59b1b4a9f99ffe data\create\advancements\speed_gauge.json
|
fedeed4c9be574d7c5ddd68b4ab74588f345d3c6 data\create\advancements\speedometer.json
|
||||||
b457a54be7202999be24bb6bcce534f310489412 data\create\advancements\stress_gauge.json
|
44910ea5533c1236fbb185587a58b299a30b0c66 data\create\advancements\stressometer.json
|
||||||
1d7fb82b7c05914b399167dc58b84da10f1a5ae3 data\create\advancements\symmetry_wand.json
|
|
||||||
6b815a2e05e3cd09354e05578515a0060675b67a data\create\advancements\upgraded_zapper.json
|
6b815a2e05e3cd09354e05578515a0060675b67a data\create\advancements\upgraded_zapper.json
|
||||||
|
fe37896bb804d2be9b8abf3744c5b9b7bc1c086e data\create\advancements\wand_of_symmetry.json
|
||||||
50935316d27336ef0858d5a7c5ccc563d288a494 data\create\advancements\water_wheel.json
|
50935316d27336ef0858d5a7c5ccc563d288a494 data\create\advancements\water_wheel.json
|
||||||
4513d0c4dd40c948028a3fc8e6f3b4d0356c0a90 data\create\advancements\wrench.json
|
4513d0c4dd40c948028a3fc8e6f3b4d0356c0a90 data\create\advancements\wrench.json
|
||||||
33c1224f4f6a7bb0a3439eb0f8b8af9341b62574 data\create\advancements\zapper.json
|
33c1224f4f6a7bb0a3439eb0f8b8af9341b62574 data\create\advancements\zapper.json
|
||||||
|
@ -1138,31 +1138,31 @@
|
|||||||
"block.create.radial_chassis.tooltip.control1": "When R-Clicked with Slime Ball",
|
"block.create.radial_chassis.tooltip.control1": "When R-Clicked with Slime Ball",
|
||||||
"block.create.radial_chassis.tooltip.action1": "Makes the clicked face _Sticky_. When Chassis move, all designated blocks attached to the sticky side are moved with it.",
|
"block.create.radial_chassis.tooltip.action1": "Makes the clicked face _Sticky_. When Chassis move, all designated blocks attached to the sticky side are moved with it.",
|
||||||
|
|
||||||
"block.create.mechanical_drill.tooltip": "MECHANICAL mechanical_drill",
|
"block.create.mechanical_drill.tooltip": "MECHANICAL DRILL",
|
||||||
"block.create.mechanical_drill.tooltip.summary": "A mechanical device suitable for _breaking_ _blocks_. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.mechanical_drill.tooltip.summary": "A mechanical device suitable for _breaking_ _blocks_. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.mechanical_drill.tooltip.condition1": "When Rotated",
|
"block.create.mechanical_drill.tooltip.condition1": "When Rotated",
|
||||||
"block.create.mechanical_drill.tooltip.behaviour1": "Acts as a _stationary_ Block Breaker. Also _hurts_ _entities_ in its effective area.",
|
"block.create.mechanical_drill.tooltip.behaviour1": "Acts as a _stationary_ Block Breaker. Also _hurts_ _entities_ in its effective area.",
|
||||||
"block.create.mechanical_drill.tooltip.condition2": "While Moving",
|
"block.create.mechanical_drill.tooltip.condition2": "While Moving",
|
||||||
"block.create.mechanical_drill.tooltip.behaviour2": "Breaks Blocks with which the mechanical_drill collides.",
|
"block.create.mechanical_drill.tooltip.behaviour2": "Breaks Blocks with which the drill collides.",
|
||||||
|
|
||||||
"block.create.mechanical_harvester.tooltip": "MECHANICAL mechanical_harvester",
|
"block.create.mechanical_harvester.tooltip": "MECHANICAL HARVESTER",
|
||||||
"block.create.mechanical_harvester.tooltip.summary": "A mechanical plant cutter suitable for medium scale crop automation. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.mechanical_harvester.tooltip.summary": "A mechanical plant cutter suitable for medium scale crop automation. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.mechanical_harvester.tooltip.condition1": "While Moving",
|
"block.create.mechanical_harvester.tooltip.condition1": "While Moving",
|
||||||
"block.create.mechanical_harvester.tooltip.behaviour1": "_Harvests_ all _mature_ _crops_ which which the blade collides and reset them to their initial growth state.",
|
"block.create.mechanical_harvester.tooltip.behaviour1": "_Harvests_ all _mature_ _crops_ which which the blade collides and reset them to their initial growth state.",
|
||||||
|
|
||||||
"block.create.mechanical_plough.tooltip": "MECHANICAL mechanical_plough",
|
"block.create.mechanical_plough.tooltip": "MECHANICAL PLOUGH",
|
||||||
"block.create.mechanical_plough.tooltip.summary": "A mechanical mechanical_plough has a variety of uses. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.mechanical_plough.tooltip.summary": "A mechanical plough has a variety of uses. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.mechanical_plough.tooltip.condition1": "While Moving",
|
"block.create.mechanical_plough.tooltip.condition1": "While Moving",
|
||||||
"block.create.mechanical_plough.tooltip.behaviour1": "_Breaks_ _blocks_ which _cannot_ _be_ _collided_ with, such as torches, tracks or snow layers. _Applies_ its _motion_ to _entities_ without hurting them. _Tills_ _soil_ _blocks_ as though a Hoe would be used on them.",
|
"block.create.mechanical_plough.tooltip.behaviour1": "_Breaks_ _blocks_ which _cannot_ _be_ _collided_ with, such as torches, tracks or snow layers. _Applies_ its _motion_ to _entities_ without hurting them. _Tills_ _soil_ _blocks_ as though a Hoe would be used on them.",
|
||||||
|
|
||||||
"block.create.mechanical_saw.tooltip": "MECHANICAL mechanical_saw",
|
"block.create.mechanical_saw.tooltip": "MECHANICAL SAW",
|
||||||
"block.create.mechanical_saw.tooltip.summary": "Suitable for _cutting_ _trees_ effectively and for _cutting_ _blocks_ into their carpentered counterparts. It is movable using _Mechanical_ _Pistons_ or _Bearings_.",
|
"block.create.mechanical_saw.tooltip.summary": "Suitable for _cutting_ _trees_ effectively and for _cutting_ _blocks_ into their carpentered counterparts. It is movable using _Mechanical_ _Pistons_ or _Bearings_.",
|
||||||
"block.create.mechanical_saw.tooltip.condition1": "When facing up",
|
"block.create.mechanical_saw.tooltip.condition1": "When facing up",
|
||||||
"block.create.mechanical_saw.tooltip.behaviour1": "Applies _mechanical_sawing_ and _Stonecutting_ _Recipes_ to items dropped onto or inserted into it. When multiple outputs are possible, it cycles through them unless a _filter_ is assigned.",
|
"block.create.mechanical_saw.tooltip.behaviour1": "Applies _Sawing_ and _Stonecutting_ _Recipes_ to items dropped onto or inserted into it. When multiple outputs are possible, it cycles through them unless a _filter_ is assigned.",
|
||||||
"block.create.mechanical_saw.tooltip.condition2": "When facing horizontally",
|
"block.create.mechanical_saw.tooltip.condition2": "When facing horizontally",
|
||||||
"block.create.mechanical_saw.tooltip.behaviour2": "_Breaks_ _logs_ in front of it. If the log supported a tree on its own, the _tree_ _will_ _collapse_ away from the mechanical_saw.",
|
"block.create.mechanical_saw.tooltip.behaviour2": "_Breaks_ _logs_ in front of it. If the log supported a tree on its own, the _tree_ _will_ _collapse_ away from the saw.",
|
||||||
"block.create.mechanical_saw.tooltip.condition3": "While Moving",
|
"block.create.mechanical_saw.tooltip.condition3": "While Moving",
|
||||||
"block.create.mechanical_saw.tooltip.behaviour3": "_Cuts_ all _Trees_ with which the mechanical_saw collides.",
|
"block.create.mechanical_saw.tooltip.behaviour3": "_Cuts_ all _Trees_ with which the saw collides.",
|
||||||
|
|
||||||
"block.create.stockpile_switch.tooltip": "stockpile_switch",
|
"block.create.stockpile_switch.tooltip": "stockpile_switch",
|
||||||
"block.create.stockpile_switch.tooltip.summary": "Toggles a Redstone signal based on the _Storage_ _Space_ in the attached Container.",
|
"block.create.stockpile_switch.tooltip.summary": "Toggles a Redstone signal based on the _Storage_ _Space_ in the attached Container.",
|
||||||
@ -1189,10 +1189,10 @@
|
|||||||
|
|
||||||
"block.create.redstone_contact.tooltip": "REDSTONE CONTACT",
|
"block.create.redstone_contact.tooltip": "REDSTONE CONTACT",
|
||||||
"block.create.redstone_contact.tooltip.summary": "Only emits redstone power in pairs. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.redstone_contact.tooltip.summary": "Only emits redstone power in pairs. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.redstone_contact.tooltip.condition1": "When facing other redstone_contact",
|
"block.create.redstone_contact.tooltip.condition1": "When facing other Contact",
|
||||||
"block.create.redstone_contact.tooltip.behaviour1": "Provides a _Redstone_ _Signal_.",
|
"block.create.redstone_contact.tooltip.behaviour1": "Provides a _Redstone_ _Signal_.",
|
||||||
"block.create.redstone_contact.tooltip.condition2": "While Moving",
|
"block.create.redstone_contact.tooltip.condition2": "While Moving",
|
||||||
"block.create.redstone_contact.tooltip.behaviour2": "Triggers all stationary redstone_contacts it passes.",
|
"block.create.redstone_contact.tooltip.behaviour2": "Triggers all stationary contacts it passes.",
|
||||||
|
|
||||||
"block.create.adjustable_crate.tooltip": "ADJUSTABLE CRATE",
|
"block.create.adjustable_crate.tooltip": "ADJUSTABLE CRATE",
|
||||||
"block.create.adjustable_crate.tooltip.summary": "This _Storage_ _Container_ allows Manual control over its capacity. It can hold up to _16_ _Stacks_ of any Item. Supports _Redstone_ _Comparators_.",
|
"block.create.adjustable_crate.tooltip.summary": "This _Storage_ _Container_ allows Manual control over its capacity. It can hold up to _16_ _Stacks_ of any Item. Supports _Redstone_ _Comparators_.",
|
||||||
|
@ -5,10 +5,10 @@
|
|||||||
"item": "create:mechanical_drill"
|
"item": "create:mechanical_drill"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"translate": "advancement.create.drill"
|
"translate": "advancement.create.mechanical_drill"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"translate": "advancement.create.drill.desc"
|
"translate": "advancement.create.mechanical_drill.desc"
|
||||||
},
|
},
|
||||||
"frame": "task",
|
"frame": "task",
|
||||||
"show_toast": true,
|
"show_toast": true,
|
@ -5,10 +5,10 @@
|
|||||||
"item": "create:mechanical_saw"
|
"item": "create:mechanical_saw"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"translate": "advancement.create.saw"
|
"translate": "advancement.create.mechanical_saw"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"translate": "advancement.create.saw.desc"
|
"translate": "advancement.create.mechanical_saw.desc"
|
||||||
},
|
},
|
||||||
"frame": "task",
|
"frame": "task",
|
||||||
"show_toast": true,
|
"show_toast": true,
|
@ -5,10 +5,10 @@
|
|||||||
"item": "create:speedometer"
|
"item": "create:speedometer"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"translate": "advancement.create.speed_gauge"
|
"translate": "advancement.create.speedometer"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"translate": "advancement.create.speed_gauge.desc"
|
"translate": "advancement.create.speedometer.desc"
|
||||||
},
|
},
|
||||||
"frame": "task",
|
"frame": "task",
|
||||||
"show_toast": true,
|
"show_toast": true,
|
@ -5,10 +5,10 @@
|
|||||||
"item": "create:stressometer"
|
"item": "create:stressometer"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"translate": "advancement.create.stress_gauge"
|
"translate": "advancement.create.stressometer"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"translate": "advancement.create.stress_gauge.desc"
|
"translate": "advancement.create.stressometer.desc"
|
||||||
},
|
},
|
||||||
"frame": "task",
|
"frame": "task",
|
||||||
"show_toast": true,
|
"show_toast": true,
|
@ -5,10 +5,10 @@
|
|||||||
"item": "create:wand_of_symmetry"
|
"item": "create:wand_of_symmetry"
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"translate": "advancement.create.symmetry_wand"
|
"translate": "advancement.create.wand_of_symmetry"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"translate": "advancement.create.symmetry_wand.desc"
|
"translate": "advancement.create.wand_of_symmetry.desc"
|
||||||
},
|
},
|
||||||
"frame": "task",
|
"frame": "task",
|
||||||
"show_toast": true,
|
"show_toast": true,
|
@ -381,7 +381,7 @@ public abstract class KineticTileEntity extends SmartTileEntity
|
|||||||
boolean notFastEnough = !isSpeedRequirementFulfilled() && getSpeed() != 0;
|
boolean notFastEnough = !isSpeedRequirementFulfilled() && getSpeed() != 0;
|
||||||
|
|
||||||
if (overStressed && AllConfigs.CLIENT.enableOverstressedTooltip.get()) {
|
if (overStressed && AllConfigs.CLIENT.enableOverstressedTooltip.get()) {
|
||||||
tooltip.add(spacing + GOLD + Lang.translate("gui.stress_gauge.overstressed"));
|
tooltip.add(spacing + GOLD + Lang.translate("gui.stressometer.overstressed"));
|
||||||
String hint = Lang.translate("gui.contraptions.network_overstressed", I18n.format(getBlockState().getBlock()
|
String hint = Lang.translate("gui.contraptions.network_overstressed", I18n.format(getBlockState().getBlock()
|
||||||
.getTranslationKey()));
|
.getTranslationKey()));
|
||||||
List<String> cutString = TooltipHelper.cutString(spacing + hint, GRAY, TextFormatting.WHITE);
|
List<String> cutString = TooltipHelper.cutString(spacing + hint, GRAY, TextFormatting.WHITE);
|
||||||
|
@ -12,6 +12,7 @@ import net.minecraft.tileentity.ChestTileEntity;
|
|||||||
import net.minecraft.tileentity.ShulkerBoxTileEntity;
|
import net.minecraft.tileentity.ShulkerBoxTileEntity;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||||
@ -37,19 +38,26 @@ public class MountedStorage {
|
|||||||
|
|
||||||
// Split double chests
|
// Split double chests
|
||||||
if (te.getType() == TileEntityType.CHEST || te.getType() == TileEntityType.TRAPPED_CHEST) {
|
if (te.getType() == TileEntityType.CHEST || te.getType() == TileEntityType.TRAPPED_CHEST) {
|
||||||
if (te.getBlockState().get(ChestBlock.TYPE) != ChestType.SINGLE)
|
if (te.getBlockState()
|
||||||
te.getWorld().setBlockState(te.getPos(), te.getBlockState().with(ChestBlock.TYPE, ChestType.SINGLE));
|
.get(ChestBlock.TYPE) != ChestType.SINGLE)
|
||||||
|
te.getWorld()
|
||||||
|
.setBlockState(te.getPos(), te.getBlockState()
|
||||||
|
.with(ChestBlock.TYPE, ChestType.SINGLE));
|
||||||
te.updateContainingBlockInfo();
|
te.updateContainingBlockInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Split double flexcrates
|
// Split double flexcrates
|
||||||
if (AllTileEntities.ADJUSTABLE_CRATE.is(te)) {
|
if (AllTileEntities.ADJUSTABLE_CRATE.is(te)) {
|
||||||
if (te.getBlockState().get(AdjustableCrateBlock.DOUBLE))
|
if (te.getBlockState()
|
||||||
te.getWorld().setBlockState(te.getPos(), te.getBlockState().with(AdjustableCrateBlock.DOUBLE, false));
|
.get(AdjustableCrateBlock.DOUBLE))
|
||||||
|
te.getWorld()
|
||||||
|
.setBlockState(te.getPos(), te.getBlockState()
|
||||||
|
.with(AdjustableCrateBlock.DOUBLE, false));
|
||||||
te.updateContainingBlockInfo();
|
te.updateContainingBlockInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
IItemHandler teHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY).orElse(dummyHandler);
|
IItemHandler teHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||||
|
.orElse(dummyHandler);
|
||||||
if (teHandler == dummyHandler)
|
if (teHandler == dummyHandler)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -82,7 +90,8 @@ public class MountedStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void fill(TileEntity te) {
|
public void fill(TileEntity te) {
|
||||||
IItemHandler teHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY).orElse(dummyHandler);
|
IItemHandler teHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||||
|
.orElse(dummyHandler);
|
||||||
if (teHandler != dummyHandler && teHandler instanceof IItemHandlerModifiable) {
|
if (teHandler != dummyHandler && teHandler instanceof IItemHandlerModifiable) {
|
||||||
IItemHandlerModifiable inv = (IItemHandlerModifiable) teHandler;
|
IItemHandlerModifiable inv = (IItemHandlerModifiable) teHandler;
|
||||||
for (int slot = 0; slot < Math.min(inv.getSlots(), handler.getSlots()); slot++)
|
for (int slot = 0; slot < Math.min(inv.getSlots(), handler.getSlots()); slot++)
|
||||||
@ -113,6 +122,9 @@ public class MountedStorage {
|
|||||||
return true;
|
return true;
|
||||||
if (te instanceof BarrelTileEntity)
|
if (te instanceof BarrelTileEntity)
|
||||||
return true;
|
return true;
|
||||||
|
LazyOptional<IItemHandler> capability = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
|
||||||
|
if (capability.isPresent() && capability.orElse(null) instanceof ItemStackHandler)
|
||||||
|
return true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,6 +92,7 @@ public class PulleyTileEntity extends LinearActuatorTileEntity {
|
|||||||
applyContraptionPosition();
|
applyContraptionPosition();
|
||||||
|
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
|
if (!removed) {
|
||||||
if (offset > 0) {
|
if (offset > 0) {
|
||||||
BlockPos magnetPos = pos.down((int) offset);
|
BlockPos magnetPos = pos.down((int) offset);
|
||||||
world.destroyBlock(magnetPos, world.getBlockState(magnetPos)
|
world.destroyBlock(magnetPos, world.getBlockState(magnetPos)
|
||||||
@ -108,6 +109,7 @@ public class PulleyTileEntity extends LinearActuatorTileEntity {
|
|||||||
}
|
}
|
||||||
for (int i = 1; i <= ((int) offset) - 1; i++)
|
for (int i = 1; i <= ((int) offset) - 1; i++)
|
||||||
world.setBlockState(pos.down(i), AllBlocks.ROPE.getDefaultState(), 66);
|
world.setBlockState(pos.down(i), AllBlocks.ROPE.getDefaultState(), 66);
|
||||||
|
}
|
||||||
|
|
||||||
if (movedContraption != null)
|
if (movedContraption != null)
|
||||||
movedContraption.disassemble();
|
movedContraption.disassemble();
|
||||||
|
@ -49,10 +49,10 @@ public class SpeedGaugeTileEntity extends GaugeTileEntity{
|
|||||||
public boolean addToGoggleTooltip(List<String> tooltip, boolean isPlayerSneaking) {
|
public boolean addToGoggleTooltip(List<String> tooltip, boolean isPlayerSneaking) {
|
||||||
super.addToGoggleTooltip(tooltip, isPlayerSneaking);
|
super.addToGoggleTooltip(tooltip, isPlayerSneaking);
|
||||||
|
|
||||||
tooltip.add(spacing + TextFormatting.GRAY + Lang.translate("gui.speed_gauge.title"));
|
tooltip.add(spacing + TextFormatting.GRAY + Lang.translate("gui.speedometer.title"));
|
||||||
tooltip.add(spacing + SpeedLevel.getFormattedSpeedText(speed, overStressed));
|
tooltip.add(spacing + SpeedLevel.getFormattedSpeedText(speed, overStressed));
|
||||||
if (overStressed)
|
if (overStressed)
|
||||||
tooltip.add(spacing + TextFormatting.DARK_RED + Lang.translate("gui.stress_gauge.overstressed"));
|
tooltip.add(spacing + TextFormatting.DARK_RED + Lang.translate("gui.stressometer.overstressed"));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -65,15 +65,15 @@ public class StressGaugeTileEntity extends GaugeTileEntity {
|
|||||||
double capacity = getNetworkCapacity();
|
double capacity = getNetworkCapacity();
|
||||||
double stressFraction = getNetworkStress() / (capacity == 0 ? 1 : capacity);
|
double stressFraction = getNetworkStress() / (capacity == 0 ? 1 : capacity);
|
||||||
|
|
||||||
tooltip.add(spacing + TextFormatting.GRAY + Lang.translate("gui.stress_gauge.title"));
|
tooltip.add(spacing + TextFormatting.GRAY + Lang.translate("gui.stressometer.title"));
|
||||||
|
|
||||||
if (getTheoreticalSpeed() == 0)
|
if (getTheoreticalSpeed() == 0)
|
||||||
tooltip.add(TextFormatting.DARK_GRAY + ItemDescription.makeProgressBar(3, -1)
|
tooltip.add(TextFormatting.DARK_GRAY + ItemDescription.makeProgressBar(3, -1)
|
||||||
+ Lang.translate("gui.stress_gauge.no_rotation"));
|
+ Lang.translate("gui.stressometer.no_rotation"));
|
||||||
else {
|
else {
|
||||||
tooltip.add(spacing + StressImpact.getFormattedStressText(stressFraction));
|
tooltip.add(spacing + StressImpact.getFormattedStressText(stressFraction));
|
||||||
|
|
||||||
tooltip.add(spacing + TextFormatting.GRAY + Lang.translate("gui.stress_gauge.capacity"));
|
tooltip.add(spacing + TextFormatting.GRAY + Lang.translate("gui.stressometer.capacity"));
|
||||||
|
|
||||||
double remainingCapacity = capacity - getNetworkStress();
|
double remainingCapacity = capacity - getNetworkStress();
|
||||||
double remainingCapacityAtBase = remainingCapacity / Math.abs(getTheoreticalSpeed());
|
double remainingCapacityAtBase = remainingCapacity / Math.abs(getTheoreticalSpeed());
|
||||||
|
@ -117,6 +117,8 @@ public class ExtendoGripItem extends Item {
|
|||||||
ClientPlayerEntity player = mc.player;
|
ClientPlayerEntity player = mc.player;
|
||||||
if (mc.world == null || player == null)
|
if (mc.world == null || player == null)
|
||||||
return;
|
return;
|
||||||
|
if (!isHoldingExtendoGrip(player))
|
||||||
|
return;
|
||||||
|
|
||||||
// Modified version of GameRenderer#getMouseOver
|
// Modified version of GameRenderer#getMouseOver
|
||||||
double d0 = player.getAttribute(PlayerEntity.REACH_DISTANCE)
|
double d0 = player.getAttribute(PlayerEntity.REACH_DISTANCE)
|
||||||
|
@ -81,8 +81,8 @@ public class AllAdvancements implements IDataProvider {
|
|||||||
andesiteExpertLane(t, andesite_casing);
|
andesiteExpertLane(t, andesite_casing);
|
||||||
|
|
||||||
Advancement drill =
|
Advancement drill =
|
||||||
kinecticAdvancement("drill", AllBlocks.MECHANICAL_DRILL.get(), TaskType.NORMAL).withParent(andesite_casing)
|
kinecticAdvancement("mechanical_drill", AllBlocks.MECHANICAL_DRILL.get(), TaskType.NORMAL).withParent(andesite_casing)
|
||||||
.register(t, id + ":drill");
|
.register(t, id + ":mechanical_drill");
|
||||||
|
|
||||||
Advancement press =
|
Advancement press =
|
||||||
advancement("press", AllBlocks.MECHANICAL_PRESS.get(), TaskType.MILESTONE).withParent(andesite_casing)
|
advancement("press", AllBlocks.MECHANICAL_PRESS.get(), TaskType.MILESTONE).withParent(andesite_casing)
|
||||||
@ -98,8 +98,8 @@ public class AllAdvancements implements IDataProvider {
|
|||||||
itemAdvancement("electron_tube", AllItems.ELECTRON_TUBE, TaskType.NORMAL).withParent(rose_quartz)
|
itemAdvancement("electron_tube", AllItems.ELECTRON_TUBE, TaskType.NORMAL).withParent(rose_quartz)
|
||||||
.register(t, id + ":electron_tube");
|
.register(t, id + ":electron_tube");
|
||||||
|
|
||||||
Advancement saw = kinecticAdvancement("saw", AllBlocks.MECHANICAL_SAW.get(), TaskType.NORMAL).withParent(press)
|
Advancement saw = kinecticAdvancement("mechanical_saw", AllBlocks.MECHANICAL_SAW.get(), TaskType.NORMAL).withParent(press)
|
||||||
.register(t, id + ":saw");
|
.register(t, id + ":mechanical_saw");
|
||||||
|
|
||||||
Advancement basin = advancement("basin", AllBlocks.BASIN.get(), TaskType.NORMAL).withParent(press)
|
Advancement basin = advancement("basin", AllBlocks.BASIN.get(), TaskType.NORMAL).withParent(press)
|
||||||
.withCriterion("0", placeBlock(AllBlocks.BASIN.get()))
|
.withCriterion("0", placeBlock(AllBlocks.BASIN.get()))
|
||||||
@ -143,12 +143,12 @@ public class AllAdvancements implements IDataProvider {
|
|||||||
.register(t, id + ":goggles");
|
.register(t, id + ":goggles");
|
||||||
|
|
||||||
Advancement speed_gauge =
|
Advancement speed_gauge =
|
||||||
kinecticAdvancement("speed_gauge", AllBlocks.SPEEDOMETER.get(), TaskType.NORMAL).withParent(goggles)
|
kinecticAdvancement("speedometer", AllBlocks.SPEEDOMETER.get(), TaskType.NORMAL).withParent(goggles)
|
||||||
.register(t, id + ":speed_gauge");
|
.register(t, id + ":speedometer");
|
||||||
|
|
||||||
Advancement stress_gauge =
|
Advancement stress_gauge =
|
||||||
kinecticAdvancement("stress_gauge", AllBlocks.STRESSOMETER.get(), TaskType.NORMAL).withParent(goggles)
|
kinecticAdvancement("stressometer", AllBlocks.STRESSOMETER.get(), TaskType.NORMAL).withParent(goggles)
|
||||||
.register(t, id + ":stress_gauge");
|
.register(t, id + ":stressometer");
|
||||||
|
|
||||||
Advancement shifting_gears =
|
Advancement shifting_gears =
|
||||||
advancement("shifting_gears", AllBlocks.LARGE_COGWHEEL.get(), TaskType.NORMAL).withParent(its_alive)
|
advancement("shifting_gears", AllBlocks.LARGE_COGWHEEL.get(), TaskType.NORMAL).withParent(its_alive)
|
||||||
@ -239,8 +239,8 @@ public class AllAdvancements implements IDataProvider {
|
|||||||
.register(t, id + ":upgraded_zapper");
|
.register(t, id + ":upgraded_zapper");
|
||||||
|
|
||||||
Advancement symmetry_wand =
|
Advancement symmetry_wand =
|
||||||
itemAdvancement("symmetry_wand", AllItems.WAND_OF_SYMMETRY, TaskType.NORMAL).withParent(refined_radiance)
|
itemAdvancement("wand_of_symmetry", AllItems.WAND_OF_SYMMETRY, TaskType.NORMAL).withParent(refined_radiance)
|
||||||
.register(t, id + ":symmetry_wand");
|
.register(t, id + ":wand_of_symmetry");
|
||||||
|
|
||||||
Advancement shadow_end = deadEnd().withParent(shadow_steel)
|
Advancement shadow_end = deadEnd().withParent(shadow_steel)
|
||||||
.withCriterion("0", itemGathered(AllItems.SHADOW_STEEL.get()))
|
.withCriterion("0", itemGathered(AllItems.SHADOW_STEEL.get()))
|
||||||
|
@ -236,7 +236,7 @@
|
|||||||
"block.create.furnace_engine.tooltip.behaviour1": "_Starts_ _powering_ a _Flywheel_ placed in front of it (1m apart). Use a Blast Furnace for higher speeds.",
|
"block.create.furnace_engine.tooltip.behaviour1": "_Starts_ _powering_ a _Flywheel_ placed in front of it (1m apart). Use a Blast Furnace for higher speeds.",
|
||||||
|
|
||||||
"block.create.flywheel.tooltip": "FLYWHEEL",
|
"block.create.flywheel.tooltip": "FLYWHEEL",
|
||||||
"block.create.flywheel.tooltip.summary": "A large metal wheel to _harness_ _and_ _stabilize_ generated force by an _attached_ _Engine_. Flywheels connect to engines if they are _1m_ _apart_ and at a _90°_ _Angle_ from each other.",
|
"block.create.flywheel.tooltip.summary": "A large metal wheel to _harness_ _and_ _stabilize_ generated force by an _attached_ _Engine_. Flywheels connect to engines if they are _1m_ _apart_ and at a _90\u00B0_ _Angle_ from each other.",
|
||||||
"block.create.flywheel.tooltip.condition1": "When Attached to Running Engine",
|
"block.create.flywheel.tooltip.condition1": "When Attached to Running Engine",
|
||||||
"block.create.flywheel.tooltip.behaviour1": "Provides _Rotational_ _Force_ to a connected contraption based on the generator's strength and speed.",
|
"block.create.flywheel.tooltip.behaviour1": "Provides _Rotational_ _Force_ to a connected contraption based on the generator's strength and speed.",
|
||||||
|
|
||||||
@ -314,31 +314,31 @@
|
|||||||
"block.create.radial_chassis.tooltip.control1": "When R-Clicked with Slime Ball",
|
"block.create.radial_chassis.tooltip.control1": "When R-Clicked with Slime Ball",
|
||||||
"block.create.radial_chassis.tooltip.action1": "Makes the clicked face _Sticky_. When Chassis move, all designated blocks attached to the sticky side are moved with it.",
|
"block.create.radial_chassis.tooltip.action1": "Makes the clicked face _Sticky_. When Chassis move, all designated blocks attached to the sticky side are moved with it.",
|
||||||
|
|
||||||
"block.create.mechanical_drill.tooltip": "MECHANICAL mechanical_drill",
|
"block.create.mechanical_drill.tooltip": "MECHANICAL DRILL",
|
||||||
"block.create.mechanical_drill.tooltip.summary": "A mechanical device suitable for _breaking_ _blocks_. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.mechanical_drill.tooltip.summary": "A mechanical device suitable for _breaking_ _blocks_. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.mechanical_drill.tooltip.condition1": "When Rotated",
|
"block.create.mechanical_drill.tooltip.condition1": "When Rotated",
|
||||||
"block.create.mechanical_drill.tooltip.behaviour1": "Acts as a _stationary_ Block Breaker. Also _hurts_ _entities_ in its effective area.",
|
"block.create.mechanical_drill.tooltip.behaviour1": "Acts as a _stationary_ Block Breaker. Also _hurts_ _entities_ in its effective area.",
|
||||||
"block.create.mechanical_drill.tooltip.condition2": "While Moving",
|
"block.create.mechanical_drill.tooltip.condition2": "While Moving",
|
||||||
"block.create.mechanical_drill.tooltip.behaviour2": "Breaks Blocks with which the mechanical_drill collides.",
|
"block.create.mechanical_drill.tooltip.behaviour2": "Breaks Blocks with which the drill collides.",
|
||||||
|
|
||||||
"block.create.mechanical_harvester.tooltip": "MECHANICAL mechanical_harvester",
|
"block.create.mechanical_harvester.tooltip": "MECHANICAL HARVESTER",
|
||||||
"block.create.mechanical_harvester.tooltip.summary": "A mechanical plant cutter suitable for medium scale crop automation. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.mechanical_harvester.tooltip.summary": "A mechanical plant cutter suitable for medium scale crop automation. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.mechanical_harvester.tooltip.condition1": "While Moving",
|
"block.create.mechanical_harvester.tooltip.condition1": "While Moving",
|
||||||
"block.create.mechanical_harvester.tooltip.behaviour1": "_Harvests_ all _mature_ _crops_ which which the blade collides and reset them to their initial growth state.",
|
"block.create.mechanical_harvester.tooltip.behaviour1": "_Harvests_ all _mature_ _crops_ which which the blade collides and reset them to their initial growth state.",
|
||||||
|
|
||||||
"block.create.mechanical_plough.tooltip": "MECHANICAL mechanical_plough",
|
"block.create.mechanical_plough.tooltip": "MECHANICAL PLOUGH",
|
||||||
"block.create.mechanical_plough.tooltip.summary": "A mechanical mechanical_plough has a variety of uses. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.mechanical_plough.tooltip.summary": "A mechanical plough has a variety of uses. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.mechanical_plough.tooltip.condition1": "While Moving",
|
"block.create.mechanical_plough.tooltip.condition1": "While Moving",
|
||||||
"block.create.mechanical_plough.tooltip.behaviour1": "_Breaks_ _blocks_ which _cannot_ _be_ _collided_ with, such as torches, tracks or snow layers. _Applies_ its _motion_ to _entities_ without hurting them. _Tills_ _soil_ _blocks_ as though a Hoe would be used on them.",
|
"block.create.mechanical_plough.tooltip.behaviour1": "_Breaks_ _blocks_ which _cannot_ _be_ _collided_ with, such as torches, tracks or snow layers. _Applies_ its _motion_ to _entities_ without hurting them. _Tills_ _soil_ _blocks_ as though a Hoe would be used on them.",
|
||||||
|
|
||||||
"block.create.mechanical_saw.tooltip": "MECHANICAL mechanical_saw",
|
"block.create.mechanical_saw.tooltip": "MECHANICAL SAW",
|
||||||
"block.create.mechanical_saw.tooltip.summary": "Suitable for _cutting_ _trees_ effectively and for _cutting_ _blocks_ into their carpentered counterparts. It is movable using _Mechanical_ _Pistons_ or _Bearings_.",
|
"block.create.mechanical_saw.tooltip.summary": "Suitable for _cutting_ _trees_ effectively and for _cutting_ _blocks_ into their carpentered counterparts. It is movable using _Mechanical_ _Pistons_ or _Bearings_.",
|
||||||
"block.create.mechanical_saw.tooltip.condition1": "When facing up",
|
"block.create.mechanical_saw.tooltip.condition1": "When facing up",
|
||||||
"block.create.mechanical_saw.tooltip.behaviour1": "Applies _mechanical_sawing_ and _Stonecutting_ _Recipes_ to items dropped onto or inserted into it. When multiple outputs are possible, it cycles through them unless a _filter_ is assigned.",
|
"block.create.mechanical_saw.tooltip.behaviour1": "Applies _Sawing_ and _Stonecutting_ _Recipes_ to items dropped onto or inserted into it. When multiple outputs are possible, it cycles through them unless a _filter_ is assigned.",
|
||||||
"block.create.mechanical_saw.tooltip.condition2": "When facing horizontally",
|
"block.create.mechanical_saw.tooltip.condition2": "When facing horizontally",
|
||||||
"block.create.mechanical_saw.tooltip.behaviour2": "_Breaks_ _logs_ in front of it. If the log supported a tree on its own, the _tree_ _will_ _collapse_ away from the mechanical_saw.",
|
"block.create.mechanical_saw.tooltip.behaviour2": "_Breaks_ _logs_ in front of it. If the log supported a tree on its own, the _tree_ _will_ _collapse_ away from the saw.",
|
||||||
"block.create.mechanical_saw.tooltip.condition3": "While Moving",
|
"block.create.mechanical_saw.tooltip.condition3": "While Moving",
|
||||||
"block.create.mechanical_saw.tooltip.behaviour3": "_Cuts_ all _Trees_ with which the mechanical_saw collides.",
|
"block.create.mechanical_saw.tooltip.behaviour3": "_Cuts_ all _Trees_ with which the saw collides.",
|
||||||
|
|
||||||
"block.create.stockpile_switch.tooltip": "stockpile_switch",
|
"block.create.stockpile_switch.tooltip": "stockpile_switch",
|
||||||
"block.create.stockpile_switch.tooltip.summary": "Toggles a Redstone signal based on the _Storage_ _Space_ in the attached Container.",
|
"block.create.stockpile_switch.tooltip.summary": "Toggles a Redstone signal based on the _Storage_ _Space_ in the attached Container.",
|
||||||
@ -365,10 +365,10 @@
|
|||||||
|
|
||||||
"block.create.redstone_contact.tooltip": "REDSTONE CONTACT",
|
"block.create.redstone_contact.tooltip": "REDSTONE CONTACT",
|
||||||
"block.create.redstone_contact.tooltip.summary": "Only emits redstone power in pairs. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
"block.create.redstone_contact.tooltip.summary": "Only emits redstone power in pairs. It is movable with _Mechanical_ _Pistons_, _Bearings_ or other controllers.",
|
||||||
"block.create.redstone_contact.tooltip.condition1": "When facing other redstone_contact",
|
"block.create.redstone_contact.tooltip.condition1": "When facing other Contact",
|
||||||
"block.create.redstone_contact.tooltip.behaviour1": "Provides a _Redstone_ _Signal_.",
|
"block.create.redstone_contact.tooltip.behaviour1": "Provides a _Redstone_ _Signal_.",
|
||||||
"block.create.redstone_contact.tooltip.condition2": "While Moving",
|
"block.create.redstone_contact.tooltip.condition2": "While Moving",
|
||||||
"block.create.redstone_contact.tooltip.behaviour2": "Triggers all stationary redstone_contacts it passes.",
|
"block.create.redstone_contact.tooltip.behaviour2": "Triggers all stationary contacts it passes.",
|
||||||
|
|
||||||
"block.create.adjustable_crate.tooltip": "ADJUSTABLE CRATE",
|
"block.create.adjustable_crate.tooltip": "ADJUSTABLE CRATE",
|
||||||
"block.create.adjustable_crate.tooltip.summary": "This _Storage_ _Container_ allows Manual control over its capacity. It can hold up to _16_ _Stacks_ of any Item. Supports _Redstone_ _Comparators_.",
|
"block.create.adjustable_crate.tooltip.summary": "This _Storage_ _Container_ allows Manual control over its capacity. It can hold up to _16_ _Stacks_ of any Item. Supports _Redstone_ _Comparators_.",
|
||||||
|
Loading…
Reference in New Issue
Block a user