- Removed pseudo-modularity of Create's content
This commit is contained in:
simibubi 2020-05-02 18:07:46 +02:00
parent 901cb00426
commit e27927de15
291 changed files with 528 additions and 2224 deletions

View file

@ -10,7 +10,7 @@ import com.simibubi.create.foundation.block.ProperStairsBlock;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.data.ITaggable; import com.simibubi.create.foundation.utility.data.ITaggable;
import com.simibubi.create.foundation.world.OxidizingBlock; import com.simibubi.create.foundation.world.OxidizingBlock;
import com.simibubi.create.modules.IModule; import com.simibubi.create.modules.Sections;
import com.simibubi.create.modules.contraptions.CasingBlock; import com.simibubi.create.modules.contraptions.CasingBlock;
import com.simibubi.create.modules.contraptions.components.actors.DrillBlock; import com.simibubi.create.modules.contraptions.components.actors.DrillBlock;
import com.simibubi.create.modules.contraptions.components.actors.HarvesterBlock; import com.simibubi.create.modules.contraptions.components.actors.HarvesterBlock;
@ -60,11 +60,11 @@ import com.simibubi.create.modules.contraptions.relays.encased.EncasedShaftBlock
import com.simibubi.create.modules.contraptions.relays.encased.GearshiftBlock; import com.simibubi.create.modules.contraptions.relays.encased.GearshiftBlock;
import com.simibubi.create.modules.contraptions.relays.gauge.GaugeBlock; import com.simibubi.create.modules.contraptions.relays.gauge.GaugeBlock;
import com.simibubi.create.modules.contraptions.relays.gearbox.GearboxBlock; import com.simibubi.create.modules.contraptions.relays.gearbox.GearboxBlock;
import com.simibubi.create.modules.curiosities.CocoaLogBlock;
import com.simibubi.create.modules.curiosities.partialWindows.WindowInABlockBlock; import com.simibubi.create.modules.curiosities.partialWindows.WindowInABlockBlock;
import com.simibubi.create.modules.curiosities.symmetry.block.CrossPlaneSymmetryBlock; import com.simibubi.create.modules.curiosities.symmetry.block.CrossPlaneSymmetryBlock;
import com.simibubi.create.modules.curiosities.symmetry.block.PlaneSymmetryBlock; import com.simibubi.create.modules.curiosities.symmetry.block.PlaneSymmetryBlock;
import com.simibubi.create.modules.curiosities.symmetry.block.TriplePlaneSymmetryBlock; import com.simibubi.create.modules.curiosities.symmetry.block.TriplePlaneSymmetryBlock;
import com.simibubi.create.modules.gardens.CocoaLogBlock;
import com.simibubi.create.modules.logistics.block.RedstoneLinkBlock; import com.simibubi.create.modules.logistics.block.RedstoneLinkBlock;
import com.simibubi.create.modules.logistics.block.StockswitchBlock; import com.simibubi.create.modules.logistics.block.StockswitchBlock;
import com.simibubi.create.modules.logistics.block.belts.observer.BeltObserverBlock; import com.simibubi.create.modules.logistics.block.belts.observer.BeltObserverBlock;
@ -120,12 +120,8 @@ import net.minecraftforge.common.ToolType;
public enum AllBlocks implements NonNullSupplier<Block> { public enum AllBlocks implements NonNullSupplier<Block> {
// __SCHEMATICS__(), _1_(Sections.KINETICS),
// SCHEMATICANNON(SchematicannonBlock::new),
// CREATIVE_CRATE(CreativeCrateBlock::new),
// SCHEMATIC_TABLE(SchematicTableBlock::new),
__CONTRAPTIONS__(),
SHAFT(() -> new ShaftBlock(Properties.from(Blocks.ANDESITE))), SHAFT(() -> new ShaftBlock(Properties.from(Blocks.ANDESITE))),
COGWHEEL(() -> new CogWheelBlock(false), (b, p) -> new CogwheelBlockItem(b, p, false)), COGWHEEL(() -> new CogWheelBlock(false), (b, p) -> new CogwheelBlockItem(b, p, false)),
LARGE_COGWHEEL(() -> new CogWheelBlock(true), (b, p) -> new CogwheelBlockItem(b, p, true)), LARGE_COGWHEEL(() -> new CogWheelBlock(true), (b, p) -> new CogwheelBlockItem(b, p, true)),
@ -186,7 +182,8 @@ public enum AllBlocks implements NonNullSupplier<Block> {
FURNACE_ENGINE(FurnaceEngineBlock::new), FURNACE_ENGINE(FurnaceEngineBlock::new),
ROTATION_SPEED_CONTROLLER(SpeedControllerBlock::new), ROTATION_SPEED_CONTROLLER(SpeedControllerBlock::new),
__LOGISTICS__(), _2_(Sections.LOGISTICS),
CONTACT(ContactBlock::new), CONTACT(ContactBlock::new),
REDSTONE_BRIDGE(RedstoneLinkBlock::new), REDSTONE_BRIDGE(RedstoneLinkBlock::new),
STOCKSWITCH(StockswitchBlock::new), STOCKSWITCH(StockswitchBlock::new),
@ -209,17 +206,41 @@ public enum AllBlocks implements NonNullSupplier<Block> {
REDSTONE_LATCH(LatchBlock::new), REDSTONE_LATCH(LatchBlock::new),
TOGGLE_LATCH(ToggleLatchBlock::new), TOGGLE_LATCH(ToggleLatchBlock::new),
__CURIOSITIES__(), _3_(Sections.MATERIALS),
COPPER_ORE(() -> new OxidizingBlock(Properties.from(Blocks.IRON_ORE), 1),
ITaggable.create().withForgeTags("ores/copper")),
ZINC_ORE(() -> new Block(Properties.from(Blocks.GOLD_ORE).harvestLevel(2).harvestTool(ToolType.PICKAXE)),
ITaggable.create().withForgeTags("ores/zinc")),
COPPER_BLOCK(() -> new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1 / 32f),
ITaggable.create().withForgeTags("storage_blocks/copper")),
COPPER_SHINGLES(() -> new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1 / 32f)),
ZINC_BLOCK(() -> new Block(Properties.from(Blocks.IRON_BLOCK)),
ITaggable.create().withForgeTags("storage_blocks/zinc")),
BRASS_BLOCK(() -> new Block(Properties.from(Blocks.IRON_BLOCK)),
ITaggable.create().withForgeTags("storage_blocks/brass")),
_4_(Sections.CURIOSITIES),
SYMMETRY_PLANE(PlaneSymmetryBlock::new, ComesWith.NO_BLOCKITEM), SYMMETRY_PLANE(PlaneSymmetryBlock::new, ComesWith.NO_BLOCKITEM),
SYMMETRY_CROSSPLANE(CrossPlaneSymmetryBlock::new, ComesWith.NO_BLOCKITEM), SYMMETRY_CROSSPLANE(CrossPlaneSymmetryBlock::new, ComesWith.NO_BLOCKITEM),
SYMMETRY_TRIPLEPLANE(TriplePlaneSymmetryBlock::new, ComesWith.NO_BLOCKITEM), SYMMETRY_TRIPLEPLANE(TriplePlaneSymmetryBlock::new, ComesWith.NO_BLOCKITEM),
WINDOW_IN_A_BLOCK(WindowInABlockBlock::new, ComesWith.NO_BLOCKITEM), WINDOW_IN_A_BLOCK(WindowInABlockBlock::new, ComesWith.NO_BLOCKITEM),
COCOA_LOG(CocoaLogBlock::new, ITaggable.create().withVanillaTags(ITaggable.BLOCK, "jungle_logs")), COCOA_LOG(CocoaLogBlock::new, ITaggable.create().withVanillaTags(ITaggable.BLOCK, "jungle_logs")),
__PALETTES__(), _5_(Sections.SCHEMATICS),
TILED_GLASS(() -> new GlassBlock(Properties.from(Blocks.GLASS)), ITaggable.create().withVanillaTags(ITaggable.BLOCK, "impermeable").withForgeTags("glass")),
// SCHEMATICANNON(SchematicannonBlock::new),
// CREATIVE_CRATE(CreativeCrateBlock::new),
// SCHEMATIC_TABLE(SchematicTableBlock::new),
_6_(Sections.PALETTES),
TILED_GLASS(() -> new GlassBlock(Properties.from(Blocks.GLASS)),
ITaggable.create().withVanillaTags(ITaggable.BLOCK, "impermeable").withForgeTags("glass")),
FRAMED_GLASS(() -> new CTGlassBlock(AllCTs.FRAMED_GLASS, false)), FRAMED_GLASS(() -> new CTGlassBlock(AllCTs.FRAMED_GLASS, false)),
HORIZONTAL_FRAMED_GLASS(() -> new HorizontalCTGlassBlock(AllCTs.HORIZONTAL_FRAMED_GLASS, AllCTs.FRAMED_GLASS, false)), HORIZONTAL_FRAMED_GLASS(
() -> new HorizontalCTGlassBlock(AllCTs.HORIZONTAL_FRAMED_GLASS, AllCTs.FRAMED_GLASS, false)),
VERTICAL_FRAMED_GLASS(() -> new VerticalCTGlassBlock(AllCTs.VERTICAL_FRAMED_GLASS, false)), VERTICAL_FRAMED_GLASS(() -> new VerticalCTGlassBlock(AllCTs.VERTICAL_FRAMED_GLASS, false)),
OAK_GLASS(() -> new CTWindowBlock(AllCTs.OAK_GLASS, false)), OAK_GLASS(() -> new CTWindowBlock(AllCTs.OAK_GLASS, false)),
@ -230,7 +251,8 @@ public enum AllBlocks implements NonNullSupplier<Block> {
ACACIA_GLASS(() -> new CTWindowBlock(AllCTs.ACACIA_GLASS, false)), ACACIA_GLASS(() -> new CTWindowBlock(AllCTs.ACACIA_GLASS, false)),
IRON_GLASS(() -> new CTWindowBlock(AllCTs.IRON_GLASS, false)), IRON_GLASS(() -> new CTWindowBlock(AllCTs.IRON_GLASS, false)),
TILED_GLASS_PANE(() -> new GlassPaneBlock(Properties.from(Blocks.GLASS)), ITaggable.create().withForgeTags("glass_panes")), TILED_GLASS_PANE(() -> new GlassPaneBlock(Properties.from(Blocks.GLASS)),
ITaggable.create().withForgeTags("glass_panes")),
FRAMED_GLASS_PANE(() -> new CTGlassPaneBlock(FRAMED_GLASS.get())), FRAMED_GLASS_PANE(() -> new CTGlassPaneBlock(FRAMED_GLASS.get())),
HORIZONTAL_FRAMED_GLASS_PANE(() -> new CTGlassPaneBlock(HORIZONTAL_FRAMED_GLASS.get())), HORIZONTAL_FRAMED_GLASS_PANE(() -> new CTGlassPaneBlock(HORIZONTAL_FRAMED_GLASS.get())),
VERTICAL_FRAMED_GLASS_PANE(() -> new CTGlassPaneBlock(VERTICAL_FRAMED_GLASS.get())), VERTICAL_FRAMED_GLASS_PANE(() -> new CTGlassPaneBlock(VERTICAL_FRAMED_GLASS.get())),
@ -243,63 +265,69 @@ public enum AllBlocks implements NonNullSupplier<Block> {
IRON_GLASS_PANE(() -> new CTGlassPaneBlock(IRON_GLASS.get())), IRON_GLASS_PANE(() -> new CTGlassPaneBlock(IRON_GLASS.get())),
GRANITE_BRICKS(() -> new Block(Properties.from(Blocks.GRANITE))), GRANITE_BRICKS(() -> new Block(Properties.from(Blocks.GRANITE))),
GRANITE_LAYERS(() -> new LayeredCTBlock(Properties.from(Blocks.GRANITE), AllCTs.GRANITE_LAYERS, AllCTs.POLISHED_GRANITE)), GRANITE_LAYERS(
() -> new LayeredCTBlock(Properties.from(Blocks.GRANITE), AllCTs.GRANITE_LAYERS, AllCTs.POLISHED_GRANITE)),
DIORITE_BRICKS(() -> new Block(Properties.from(Blocks.DIORITE))), DIORITE_BRICKS(() -> new Block(Properties.from(Blocks.DIORITE))),
DIORITE_LAYERS(() -> new LayeredCTBlock(Properties.from(Blocks.DIORITE), AllCTs.DIORITE_LAYERS, AllCTs.POLISHED_DIORITE)), DIORITE_LAYERS(
() -> new LayeredCTBlock(Properties.from(Blocks.DIORITE), AllCTs.DIORITE_LAYERS, AllCTs.POLISHED_DIORITE)),
ANDESITE_BRICKS(() -> new Block(Properties.from(Blocks.ANDESITE))), ANDESITE_BRICKS(() -> new Block(Properties.from(Blocks.ANDESITE))),
ANDESITE_LAYERS(() -> ANDESITE_LAYERS(() -> new LayeredCTBlock(Properties.from(Blocks.ANDESITE), AllCTs.ANDESITE_LAYERS,
new LayeredCTBlock(Properties.from(Blocks.ANDESITE), AllCTs.ANDESITE_LAYERS, AllCTs.POLISHED_ANDESITE)), AllCTs.POLISHED_ANDESITE)),
GABBRO(() -> new Block(Properties.from(Blocks.GRANITE)), ITaggable.create().withForgeTags("stone"), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), GABBRO(() -> new Block(Properties.from(Blocks.GRANITE)), ITaggable.create().withForgeTags("stone"),
ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
POLISHED_GABBRO(() -> new Block(Properties.from(GABBRO.get())), ITaggable.create().withForgeTags("stone")), POLISHED_GABBRO(() -> new Block(Properties.from(GABBRO.get())), ITaggable.create().withForgeTags("stone")),
GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get())), ComesWith.STAIRS, ComesWith.WALL), GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get())), ComesWith.STAIRS, ComesWith.WALL),
PAVED_GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get())), ComesWith.SLAB), PAVED_GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get())), ComesWith.SLAB),
INDENTED_GABBRO(() -> new Block(Properties.from(GABBRO.get())), ComesWith.SLAB), INDENTED_GABBRO(() -> new Block(Properties.from(GABBRO.get())), ComesWith.SLAB),
SLIGHTLY_MOSSY_GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get()))), SLIGHTLY_MOSSY_GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get()))),
MOSSY_GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get()))), MOSSY_GABBRO_BRICKS(() -> new Block(Properties.from(GABBRO.get()))),
GABBRO_LAYERS(() -> new LayeredCTBlock(Properties.from(GABBRO.get()), AllCTs.GABBRO_LAYERS, AllCTs.POLISHED_GABBRO)), GABBRO_LAYERS(
() -> new LayeredCTBlock(Properties.from(GABBRO.get()), AllCTs.GABBRO_LAYERS, AllCTs.POLISHED_GABBRO)),
DOLOMITE(() -> new Block(Properties.from(Blocks.QUARTZ_BLOCK)), ITaggable.create().withForgeTags("stone"), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), DOLOMITE(() -> new Block(Properties.from(Blocks.QUARTZ_BLOCK)), ITaggable.create().withForgeTags("stone"),
ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
DOLOMITE_BRICKS(() -> new Block(Properties.from(DOLOMITE.get()))), DOLOMITE_BRICKS(() -> new Block(Properties.from(DOLOMITE.get()))),
POLISHED_DOLOMITE(() -> new Block(Properties.from(DOLOMITE.get())), ITaggable.create().withForgeTags("stone")), POLISHED_DOLOMITE(() -> new Block(Properties.from(DOLOMITE.get())), ITaggable.create().withForgeTags("stone")),
DOLOMITE_PILLAR(() -> new RotatedPillarBlock(Properties.from(DOLOMITE.get()))), DOLOMITE_PILLAR(() -> new RotatedPillarBlock(Properties.from(DOLOMITE.get()))),
DOLOMITE_LAYERS(() -> DOLOMITE_LAYERS(() -> new LayeredCTBlock(Properties.from(DOLOMITE.get()), AllCTs.DOLOMITE_LAYERS,
new LayeredCTBlock(Properties.from(DOLOMITE.get()), AllCTs.DOLOMITE_LAYERS, AllCTs.POLISHED_DOLOMITE)), AllCTs.POLISHED_DOLOMITE)),
LIMESAND(() -> new FallingBlock(Properties.from(Blocks.SAND))), LIMESAND(() -> new FallingBlock(Properties.from(Blocks.SAND))),
LIMESTONE(() -> new Block(Properties.from(Blocks.SANDSTONE)), ITaggable.create().withForgeTags("stone"), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), LIMESTONE(() -> new Block(Properties.from(Blocks.SANDSTONE)), ITaggable.create().withForgeTags("stone"),
LIMESTONE_BRICKS(() -> new Block(Properties.from(LIMESTONE.get())), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
POLISHED_LIMESTONE(() -> new Block(Properties.from(LIMESTONE.get())), ITaggable.create().withForgeTags("stone"), ComesWith.SLAB), LIMESTONE_BRICKS(() -> new Block(Properties.from(LIMESTONE.get())), ComesWith.STAIRS, ComesWith.SLAB,
LIMESTONE_PILLAR(() -> new RotatedPillarBlock(Properties.from(LIMESTONE.get()))),
LIMESTONE_LAYERS(() ->
new LayeredCTBlock(Properties.from(LIMESTONE.get()), AllCTs.LIMESTONE_LAYERS, AllCTs.POLISHED_LIMESTONE)),
WEATHERED_LIMESTONE(() -> new Block(Properties.from(Blocks.ANDESITE)), ITaggable.create().withForgeTags("stone"), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
WEATHERED_LIMESTONE_BRICKS(() -> new Block(Properties.from(WEATHERED_LIMESTONE.get())), ComesWith.STAIRS, ComesWith.SLAB,
ComesWith.WALL), ComesWith.WALL),
POLISHED_WEATHERED_LIMESTONE(() -> new Block(Properties.from(WEATHERED_LIMESTONE.get())), ITaggable.create().withForgeTags("stone"), ComesWith.SLAB), POLISHED_LIMESTONE(() -> new Block(Properties.from(LIMESTONE.get())), ITaggable.create().withForgeTags("stone"),
ComesWith.SLAB),
LIMESTONE_PILLAR(() -> new RotatedPillarBlock(Properties.from(LIMESTONE.get()))),
LIMESTONE_LAYERS(() -> new LayeredCTBlock(Properties.from(LIMESTONE.get()), AllCTs.LIMESTONE_LAYERS,
AllCTs.POLISHED_LIMESTONE)),
WEATHERED_LIMESTONE(() -> new Block(Properties.from(Blocks.ANDESITE)), ITaggable.create().withForgeTags("stone"),
ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
WEATHERED_LIMESTONE_BRICKS(() -> new Block(Properties.from(WEATHERED_LIMESTONE.get())), ComesWith.STAIRS,
ComesWith.SLAB, ComesWith.WALL),
POLISHED_WEATHERED_LIMESTONE(() -> new Block(Properties.from(WEATHERED_LIMESTONE.get())),
ITaggable.create().withForgeTags("stone"), ComesWith.SLAB),
WEATHERED_LIMESTONE_PILLAR(() -> new RotatedPillarBlock(Properties.from(WEATHERED_LIMESTONE.get()))), WEATHERED_LIMESTONE_PILLAR(() -> new RotatedPillarBlock(Properties.from(WEATHERED_LIMESTONE.get()))),
WEATHERED_LIMESTONE_LAYERS(() -> new LayeredCTBlock(Properties.from(WEATHERED_LIMESTONE.get()), WEATHERED_LIMESTONE_LAYERS(() -> new LayeredCTBlock(Properties.from(WEATHERED_LIMESTONE.get()),
AllCTs.WEATHERED_LIMESTONE_LAYERS, AllCTs.POLISHED_WEATHERED_LIMESTONE)), AllCTs.WEATHERED_LIMESTONE_LAYERS, AllCTs.POLISHED_WEATHERED_LIMESTONE)),
NATURAL_SCORIA(ScoriaBlock::new), NATURAL_SCORIA(ScoriaBlock::new),
SCORIA(() -> new Block(Properties.from(Blocks.ANDESITE)), ITaggable.create().withForgeTags("stone"), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), SCORIA(() -> new Block(Properties.from(Blocks.ANDESITE)), ITaggable.create().withForgeTags("stone"),
POLISHED_SCORIA(() -> new Block(Properties.from(SCORIA.get())), ITaggable.create().withForgeTags("stone"), ComesWith.SLAB), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
POLISHED_SCORIA(() -> new Block(Properties.from(SCORIA.get())), ITaggable.create().withForgeTags("stone"),
ComesWith.SLAB),
SCORIA_BRICKS(() -> new Block(Properties.from(SCORIA.get()))), SCORIA_BRICKS(() -> new Block(Properties.from(SCORIA.get()))),
SCORIA_LAYERS(() -> new LayeredCTBlock(Properties.from(SCORIA.get()), AllCTs.SCORIA_LAYERS, AllCTs.POLISHED_SCORIA)), SCORIA_LAYERS(
() -> new LayeredCTBlock(Properties.from(SCORIA.get()), AllCTs.SCORIA_LAYERS, AllCTs.POLISHED_SCORIA)),
SCORIA_PILLAR(() -> new RotatedPillarBlock(Properties.from(SCORIA.get()))), SCORIA_PILLAR(() -> new RotatedPillarBlock(Properties.from(SCORIA.get()))),
DARK_SCORIA(() -> new Block(Properties.from(Blocks.ANDESITE))), DARK_SCORIA(() -> new Block(Properties.from(Blocks.ANDESITE))),
POLISHED_DARK_SCORIA(() -> new Block(Properties.from(DARK_SCORIA.get()))), POLISHED_DARK_SCORIA(() -> new Block(Properties.from(DARK_SCORIA.get()))),
DARK_SCORIA_TILES(() -> new Block(Properties.from(DARK_SCORIA.get())), ComesWith.STAIRS, ComesWith.SLAB), DARK_SCORIA_TILES(() -> new Block(Properties.from(DARK_SCORIA.get())), ComesWith.STAIRS, ComesWith.SLAB),
DARK_SCORIA_BRICKS(() -> new Block(Properties.from(DARK_SCORIA.get())), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL), DARK_SCORIA_BRICKS(() -> new Block(Properties.from(DARK_SCORIA.get())), ComesWith.STAIRS, ComesWith.SLAB,
ComesWith.WALL),
__MATERIALS__(),
COPPER_ORE(() -> new OxidizingBlock(Properties.from(Blocks.IRON_ORE), 1), ITaggable.create().withForgeTags("ores/copper")),
ZINC_ORE(() -> new Block(Properties.from(Blocks.GOLD_ORE).harvestLevel(2).harvestTool(ToolType.PICKAXE)), ITaggable.create().withForgeTags("ores/zinc")),
COPPER_BLOCK(() -> new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1 / 32f), ITaggable.create().withForgeTags("storage_blocks/copper")),
COPPER_SHINGLES(() -> new OxidizingBlock(Properties.from(Blocks.IRON_BLOCK), 1 / 32f)),
ZINC_BLOCK(() -> new Block(Properties.from(Blocks.IRON_BLOCK)), ITaggable.create().withForgeTags("storage_blocks/zinc")),
BRASS_BLOCK(() -> new Block(Properties.from(Blocks.IRON_BLOCK)), ITaggable.create().withForgeTags("storage_blocks/brass")),
; ;
@ -309,43 +337,46 @@ public enum AllBlocks implements NonNullSupplier<Block> {
public final RegistryEntry<? extends Block> block; public final RegistryEntry<? extends Block> block;
public final ImmutableList<RegistryEntry<? extends Block>> alsoRegistered; public final ImmutableList<RegistryEntry<? extends Block>> alsoRegistered;
public final IModule module; public final Sections section;
AllBlocks() { AllBlocks(Sections section) {
Create.registrate().setModule(Lang.asId(name()).replaceAll("__", "")); Create.registrate().startSection(section);
this.block = null; this.block = null;
this.alsoRegistered = ImmutableList.of(); this.alsoRegistered = ImmutableList.of();
this.module = Create.registrate().getModule(); this.section = Create.registrate().currentSection();
} }
AllBlocks(NonNullSupplier<? extends Block> block, ComesWith... comesWith) { AllBlocks(NonNullSupplier<? extends Block> block, ComesWith... comesWith) {
this(block, ITaggable.create(), comesWith); this(block, ITaggable.create(), comesWith);
} }
AllBlocks(NonNullSupplier<? extends Block> block, NonNullBiFunction<? super Block, Item.Properties, ? extends BlockItem> customItemCreator, ComesWith... comesWith) { AllBlocks(NonNullSupplier<? extends Block> block,
this(block, customItemCreator, ITaggable.create(), comesWith); NonNullBiFunction<? super Block, Item.Properties, ? extends BlockItem> customItemCreator,
} ComesWith... comesWith) {
this(block, customItemCreator, ITaggable.create(), comesWith);
AllBlocks(NonNullSupplier<? extends Block> block, ITaggable<?> tags, ComesWith... comesWith) {
this(block, null, tags, comesWith);
} }
AllBlocks(NonNullSupplier<? extends Block> block, NonNullBiFunction<? super Block, Item.Properties, ? extends BlockItem> customItemCreator, ITaggable<?> tags, ComesWith... comesWith){ AllBlocks(NonNullSupplier<? extends Block> block, ITaggable<?> tags, ComesWith... comesWith) {
this.module = Create.registrate().getModule(); this(block, null, tags, comesWith);
}
AllBlocks(NonNullSupplier<? extends Block> block,
NonNullBiFunction<? super Block, Item.Properties, ? extends BlockItem> customItemCreator, ITaggable<?> tags,
ComesWith... comesWith) {
this.section = Create.registrate().currentSection();
this.block = Create.registrate().block(Lang.asId(name()), $ -> block.get()) // TODO take properties as input this.block = Create.registrate().block(Lang.asId(name()), $ -> block.get()) // TODO take properties as input
.blockstate(NonNullBiConsumer.noop()) // TODO .blockstate(NonNullBiConsumer.noop()) // TODO
.loot(NonNullBiConsumer.noop()) // TODO .loot(NonNullBiConsumer.noop()) // TODO
.setData(ProviderType.LANG, NonNullBiConsumer.noop()) // TODO .setData(ProviderType.LANG, NonNullBiConsumer.noop()) // TODO
.transform(applyTags(tags)) .transform(applyTags(tags)).transform(b -> registerItemBlock(b, customItemCreator, comesWith))
.transform(b -> registerItemBlock(b, customItemCreator, comesWith)) .register();
.register();
ImmutableList.Builder<RegistryEntry<? extends Block>> alsoRegistered = ImmutableList.builder(); ImmutableList.Builder<RegistryEntry<? extends Block>> alsoRegistered = ImmutableList.builder();
for (ComesWith with : comesWith) { for (ComesWith with : comesWith) {
if (with != ComesWith.NO_BLOCKITEM) { if (with != ComesWith.NO_BLOCKITEM) {
alsoRegistered.add(makeRelatedBlock(this.block, with)); alsoRegistered.add(makeRelatedBlock(this.block, with));
} }
} }
this.alsoRegistered = alsoRegistered.build(); this.alsoRegistered = alsoRegistered.build();
} }
@ -353,19 +384,21 @@ public enum AllBlocks implements NonNullSupplier<Block> {
public static void register() { public static void register() {
} }
public <B extends Block, P> BlockBuilder<B, P> registerItemBlock(BlockBuilder<B, P> builder, NonNullBiFunction<? super B, Item.Properties, ? extends BlockItem> customItemCreator, ComesWith... comesWith) { public <B extends Block, P> BlockBuilder<B, P> registerItemBlock(BlockBuilder<B, P> builder,
if (ArrayUtils.contains(comesWith, ComesWith.NO_BLOCKITEM)) { NonNullBiFunction<? super B, Item.Properties, ? extends BlockItem> customItemCreator,
return builder; ComesWith... comesWith) {
} if (ArrayUtils.contains(comesWith, ComesWith.NO_BLOCKITEM)) {
return builder;
}
return registerAsItem(builder, customItemCreator); return registerAsItem(builder, customItemCreator);
} }
private <B extends Block, P> BlockBuilder<B, P> registerAsItem(BlockBuilder<B, P> builder, NonNullBiFunction<? super B, Item.Properties, ? extends BlockItem> customItemCreator) { private <B extends Block, P> BlockBuilder<B, P> registerAsItem(BlockBuilder<B, P> builder,
ItemBuilder<? extends BlockItem, BlockBuilder<B, P>> itemBuilder = customItemCreator == null ? builder.item() : builder.item(customItemCreator); NonNullBiFunction<? super B, Item.Properties, ? extends BlockItem> customItemCreator) {
return itemBuilder ItemBuilder<? extends BlockItem, BlockBuilder<B, P>> itemBuilder =
.model(NonNullBiConsumer.noop()) // TODO customItemCreator == null ? builder.item() : builder.item(customItemCreator);
.properties($ -> AllItems.includeInItemGroup()) return itemBuilder.model(NonNullBiConsumer.noop()) // TODO
.build(); .properties($ -> AllItems.includeInItemGroup()).build();
} }
@Override @Override
@ -387,44 +420,41 @@ public enum AllBlocks implements NonNullSupplier<Block> {
switch (feature) { switch (feature) {
case FENCE: case FENCE:
creator = FenceBlock::new; creator = FenceBlock::new;
tag = BlockTags.FENCES; tag = BlockTags.FENCES;
break; break;
case SLAB: case SLAB:
creator = SlabBlock::new; creator = SlabBlock::new;
tag = BlockTags.SLABS; tag = BlockTags.SLABS;
break; break;
case STAIRS: case STAIRS:
creator = p -> new ProperStairsBlock(block.get()); creator = p -> new ProperStairsBlock(block.get());
tag = BlockTags.STAIRS; tag = BlockTags.STAIRS;
break; break;
case WALL: case WALL:
creator = WallBlock::new; creator = WallBlock::new;
tag = BlockTags.WALLS; tag = BlockTags.WALLS;
break; break;
case FENCE_GATE: case FENCE_GATE:
creator = FenceGateBlock::new; creator = FenceGateBlock::new;
tag = null; tag = null;
break; break;
default: default:
throw new IllegalArgumentException("Unknown ComesWith type?"); throw new IllegalArgumentException("Unknown ComesWith type?");
} }
return Create.registrate().block(block.getId().getPath() + "_" + Lang.asId(feature.name()), creator) return Create.registrate().block(block.getId().getPath() + "_" + Lang.asId(feature.name()), creator)
.blockstate(NonNullBiConsumer.noop()) // TODO .blockstate(NonNullBiConsumer.noop()) // TODO
.loot(NonNullBiConsumer.noop()) // TODO .loot(NonNullBiConsumer.noop()) // TODO
.item() .item().model(NonNullBiConsumer.noop()) // TODO
.model(NonNullBiConsumer.noop()) // TODO .build().transform(b -> tag != null ? b.tag(tag) : b).register();
.build()
.transform(b -> tag != null ? b.tag(tag) : b)
.register();
} }
private <B extends Block, P> NonNullUnaryOperator<BlockBuilder<B, P>> applyTags(ITaggable<?> tags) { private <B extends Block, P> NonNullUnaryOperator<BlockBuilder<B, P>> applyTags(ITaggable<?> tags) {
return b -> { return b -> {
tags.getDataTags(ITaggable.BLOCK).forEach(b::tag); tags.getDataTags(ITaggable.BLOCK).forEach(b::tag);
return b; return b;
}; };
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)

View file

@ -1,29 +1,37 @@
package com.simibubi.create; package com.simibubi.create;
import static com.simibubi.create.modules.Sections.SCHEMATICS;
import com.simibubi.create.modules.schematics.block.CreativeCrateBlock; import com.simibubi.create.modules.schematics.block.CreativeCrateBlock;
import com.simibubi.create.modules.schematics.block.SchematicTableBlock; import com.simibubi.create.modules.schematics.block.SchematicTableBlock;
import com.simibubi.create.modules.schematics.block.SchematicannonBlock; import com.simibubi.create.modules.schematics.block.SchematicannonBlock;
import com.tterrag.registrate.util.RegistryEntry; import com.tterrag.registrate.util.RegistryEntry;
import net.minecraft.block.Blocks;
public class AllBlocksNew { public class AllBlocksNew {
private static final CreateRegistrate REGISTRATE = Create.registrate(); private static final CreateRegistrate REGISTRATE = Create.registrate();
static { REGISTRATE.setModule("SCHEMATICS"); } // Tools for strucuture movement and replication
static { REGISTRATE.startSection(SCHEMATICS); }
public static final RegistryEntry<SchematicannonBlock> SCHEMATICANNON = REGISTRATE.block("schematicannon", SchematicannonBlock::new) public static final RegistryEntry<SchematicannonBlock> SCHEMATICANNON = REGISTRATE.block("schematicannon", SchematicannonBlock::new)
.initialProperties(() -> Blocks.DISPENSER)
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), prov.models().getExistingFile(prov.modLoc("block/" + ctx.getName() + "/base")))) .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), prov.models().getExistingFile(prov.modLoc("block/" + ctx.getName() + "/base"))))
.item() .item()
.model((ctx, prov) -> prov.blockItem(ctx.getEntry()::getBlock, "/base")) .model((ctx, prov) -> prov.blockItem(ctx.getEntry()::getBlock, "/item"))
.build() .build()
.register(); .register();
public static final RegistryEntry<CreativeCrateBlock> CREATIVE_CRATE = REGISTRATE.block("creative_crate", CreativeCrateBlock::new) public static final RegistryEntry<CreativeCrateBlock> CREATIVE_CRATE = REGISTRATE.block("creative_crate", CreativeCrateBlock::new)
.initialProperties(() -> Blocks.CHEST)
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), prov.models().getExistingFile(ctx.getId()))) .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), prov.models().getExistingFile(ctx.getId())))
.simpleItem() .simpleItem()
.register(); .register();
public static final RegistryEntry<SchematicTableBlock> SCHEMATIC_TABLE = REGISTRATE.block("schematic_table", SchematicTableBlock::new) public static final RegistryEntry<SchematicTableBlock> SCHEMATIC_TABLE = REGISTRATE.block("schematic_table", SchematicTableBlock::new)
.initialProperties(() -> Blocks.LECTERN)
.blockstate((ctx, prov) -> prov.horizontalBlock(ctx.getEntry(), prov.models().getExistingFile(ctx.getId()), 0)) .blockstate((ctx, prov) -> prov.horizontalBlock(ctx.getEntry(), prov.models().getExistingFile(ctx.getId()), 0))
.simpleItem() .simpleItem()
.register(); .register();

View file

@ -13,7 +13,7 @@ import com.simibubi.create.foundation.item.IHaveCustomItemModel;
import com.simibubi.create.foundation.item.IItemWithColorHandler; import com.simibubi.create.foundation.item.IItemWithColorHandler;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.data.ITaggable; import com.simibubi.create.foundation.utility.data.ITaggable;
import com.simibubi.create.modules.IModule; import com.simibubi.create.modules.Sections;
import com.simibubi.create.modules.contraptions.GogglesItem; import com.simibubi.create.modules.contraptions.GogglesItem;
import com.simibubi.create.modules.contraptions.WrenchItem; import com.simibubi.create.modules.contraptions.WrenchItem;
import com.simibubi.create.modules.contraptions.components.contraptions.glue.SuperGlueItem; import com.simibubi.create.modules.contraptions.components.contraptions.glue.SuperGlueItem;
@ -23,6 +23,7 @@ import com.simibubi.create.modules.contraptions.relays.gearbox.VerticalGearboxIt
import com.simibubi.create.modules.curiosities.ChromaticCompoundCubeItem; import com.simibubi.create.modules.curiosities.ChromaticCompoundCubeItem;
import com.simibubi.create.modules.curiosities.RefinedRadianceItem; import com.simibubi.create.modules.curiosities.RefinedRadianceItem;
import com.simibubi.create.modules.curiosities.ShadowSteelItem; import com.simibubi.create.modules.curiosities.ShadowSteelItem;
import com.simibubi.create.modules.curiosities.TreeFertilizerItem;
import com.simibubi.create.modules.curiosities.deforester.DeforesterItem; import com.simibubi.create.modules.curiosities.deforester.DeforesterItem;
import com.simibubi.create.modules.curiosities.symmetry.SymmetryWandItem; import com.simibubi.create.modules.curiosities.symmetry.SymmetryWandItem;
import com.simibubi.create.modules.curiosities.tools.AllToolTiers; import com.simibubi.create.modules.curiosities.tools.AllToolTiers;
@ -32,7 +33,6 @@ import com.simibubi.create.modules.curiosities.tools.SandPaperItem;
import com.simibubi.create.modules.curiosities.tools.ShadowSteelToolItem; import com.simibubi.create.modules.curiosities.tools.ShadowSteelToolItem;
import com.simibubi.create.modules.curiosities.zapper.blockzapper.BlockzapperItem; import com.simibubi.create.modules.curiosities.zapper.blockzapper.BlockzapperItem;
import com.simibubi.create.modules.curiosities.zapper.terrainzapper.TerrainzapperItem; import com.simibubi.create.modules.curiosities.zapper.terrainzapper.TerrainzapperItem;
import com.simibubi.create.modules.gardens.TreeFertilizerItem;
import com.simibubi.create.modules.logistics.item.filter.FilterItem; import com.simibubi.create.modules.logistics.item.filter.FilterItem;
import com.simibubi.create.modules.schematics.item.SchematicAndQuillItem; import com.simibubi.create.modules.schematics.item.SchematicAndQuillItem;
import com.simibubi.create.modules.schematics.item.SchematicItem; import com.simibubi.create.modules.schematics.item.SchematicItem;
@ -57,7 +57,8 @@ import net.minecraftforge.registries.IForgeRegistry;
@EventBusSubscriber(value = Dist.CLIENT, bus = Bus.MOD) @EventBusSubscriber(value = Dist.CLIENT, bus = Bus.MOD)
public enum AllItems { public enum AllItems {
__MATERIALS__(module()), _1_(Sections.MATERIALS),
COPPER_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/copper")), COPPER_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/copper")),
ZINC_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/zinc")), ZINC_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/zinc")),
BRASS_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/brass")), BRASS_NUGGET((TaggedItem) new TaggedItem().withForgeTags("nuggets/brass")),
@ -89,7 +90,8 @@ public enum AllItems {
ELECTRON_TUBE, ELECTRON_TUBE,
INTEGRATED_CIRCUIT, INTEGRATED_CIRCUIT,
__CONTRAPTIONS__(module()), _2_(Sections.KINETICS),
BELT_CONNECTOR(BeltConnectorItem::new), BELT_CONNECTOR(BeltConnectorItem::new),
VERTICAL_GEARBOX(VerticalGearboxItem::new), VERTICAL_GEARBOX(VerticalGearboxItem::new),
PROPELLER, PROPELLER,
@ -104,11 +106,13 @@ public enum AllItems {
MINECART_CONTRAPTION(p -> new MinecartContraptionItem(Type.RIDEABLE, p)), MINECART_CONTRAPTION(p -> new MinecartContraptionItem(Type.RIDEABLE, p)),
FURNACE_MINECART_CONTRAPTION(p -> new MinecartContraptionItem(Type.FURNACE, p)), FURNACE_MINECART_CONTRAPTION(p -> new MinecartContraptionItem(Type.FURNACE, p)),
__LOGISTICS__(module()), _3_(Sections.LOGISTICS),
FILTER(FilterItem::new), FILTER(FilterItem::new),
PROPERTY_FILTER(FilterItem::new), PROPERTY_FILTER(FilterItem::new),
__CURIOSITIES__(module()), _4_(Sections.CURIOSITIES),
TREE_FERTILIZER(TreeFertilizerItem::new), TREE_FERTILIZER(TreeFertilizerItem::new),
PLACEMENT_HANDGUN(BlockzapperItem::new), PLACEMENT_HANDGUN(BlockzapperItem::new),
TERRAIN_ZAPPER(TerrainzapperItem::new), TERRAIN_ZAPPER(TerrainzapperItem::new),
@ -130,26 +134,27 @@ public enum AllItems {
SHADOW_STEEL_MATTOCK(p -> new ShadowSteelToolItem(2.5F, -1.5F, p, SHOVEL, AXE, HOE)), SHADOW_STEEL_MATTOCK(p -> new ShadowSteelToolItem(2.5F, -1.5F, p, SHOVEL, AXE, HOE)),
SHADOW_STEEL_SWORD(p -> new SwordItem(AllToolTiers.SHADOW_STEEL, 3, -2.0F, p)), SHADOW_STEEL_SWORD(p -> new SwordItem(AllToolTiers.SHADOW_STEEL, 3, -2.0F, p)),
__SCHEMATICS__(module()), _5_(Sections.SCHEMATICS),
EMPTY_BLUEPRINT(Item::new, stackSize(1)), EMPTY_BLUEPRINT(Item::new, stackSize(1)),
BLUEPRINT_AND_QUILL(SchematicAndQuillItem::new, stackSize(1)), BLUEPRINT_AND_QUILL(SchematicAndQuillItem::new, stackSize(1)),
BLUEPRINT(SchematicItem::new), BLUEPRINT(SchematicItem::new),
; ;
private static class CategoryTracker { private static class SectionTracker {
static IModule currentModule; static Sections currentSection;
} }
// Common // Common
public IModule module; public Sections section;
private Function<Properties, Properties> specialProperties; private Function<Properties, Properties> specialProperties;
private TaggedItem taggedItem; private TaggedItem taggedItem;
private Item item; private Item item;
AllItems(int moduleMarker) { AllItems(Sections section) {
CategoryTracker.currentModule = () -> Lang.asId(name()).replaceAll("__", ""); SectionTracker.currentSection = section;
taggedItem = new TaggedItem(null); taggedItem = new TaggedItem(null);
} }
@ -171,7 +176,7 @@ public enum AllItems {
AllItems(TaggedItem taggedItemIn, Function<Properties, Properties> specialProperties) { AllItems(TaggedItem taggedItemIn, Function<Properties, Properties> specialProperties) {
this.taggedItem = taggedItemIn; this.taggedItem = taggedItemIn;
this.module = CategoryTracker.currentModule; this.section = SectionTracker.currentSection;
this.specialProperties = specialProperties; this.specialProperties = specialProperties;
} }
@ -187,10 +192,6 @@ public enum AllItems {
return includeInItemGroup().setISTER(() -> item::getRenderer); return includeInItemGroup().setISTER(() -> item::getRenderer);
} }
private static int module() {
return 0;
}
public static Properties includeInItemGroup() { public static Properties includeInItemGroup() {
return new Properties().group(Create.creativeTab); return new Properties().group(Create.creativeTab);
} }

View file

@ -8,7 +8,6 @@ import com.simibubi.create.foundation.advancement.AllTriggers;
import com.simibubi.create.foundation.command.CreateCommand; import com.simibubi.create.foundation.command.CreateCommand;
import com.simibubi.create.foundation.command.ServerLagger; import com.simibubi.create.foundation.command.ServerLagger;
import com.simibubi.create.foundation.world.AllWorldFeatures; import com.simibubi.create.foundation.world.AllWorldFeatures;
import com.simibubi.create.modules.ModuleLoadedCondition;
import com.simibubi.create.modules.contraptions.TorquePropagator; import com.simibubi.create.modules.contraptions.TorquePropagator;
import com.simibubi.create.modules.logistics.RedstoneLinkNetworkHandler; import com.simibubi.create.modules.logistics.RedstoneLinkNetworkHandler;
import com.simibubi.create.modules.schematics.ServerSchematicLoader; import com.simibubi.create.modules.schematics.ServerSchematicLoader;
@ -23,7 +22,6 @@ import net.minecraft.particles.ParticleType;
import net.minecraft.tileentity.TileEntityType; import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.SoundEvent; import net.minecraft.util.SoundEvent;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.crafting.CraftingHelper;
import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
@ -75,7 +73,6 @@ public class Create {
torquePropagator = new TorquePropagator(); torquePropagator = new TorquePropagator();
lagger = new ServerLagger(); lagger = new ServerLagger();
CraftingHelper.register(new ModuleLoadedCondition.Serializer());
AllPackets.registerPackets(); AllPackets.registerPackets();
AllTriggers.register(); AllTriggers.register();

View file

@ -40,15 +40,12 @@ public final class CreateItemGroup extends ItemGroup {
Block def = entry.get(); Block def = entry.get();
if (def == null) if (def == null)
continue; continue;
if (!Create.registrate().getModule(entry).isEnabled())
continue;
if (def instanceof IAddedByOther) if (def instanceof IAddedByOther)
continue; continue;
Item item = def.asItem(); Item item = def.asItem();
if (item != Items.AIR) { if (item != Items.AIR)
item.fillItemGroup(this, items); item.fillItemGroup(this, items);
}
} }
} }
@ -59,8 +56,6 @@ public final class CreateItemGroup extends ItemGroup {
for (AllItems item : AllItems.values()) { for (AllItems item : AllItems.values()) {
if (item.get() == null) if (item.get() == null)
continue; continue;
if (!item.module.isEnabled())
continue;
IBakedModel model = itemRenderer.getItemModelWithOverrides(item.asStack(), Minecraft.getInstance().world, null); IBakedModel model = itemRenderer.getItemModelWithOverrides(item.asStack(), Minecraft.getInstance().world, null);
if (model.isGui3d() != specialItems) if (model.isGui3d() != specialItems)
continue; continue;

View file

@ -1,11 +1,10 @@
package com.simibubi.create; package com.simibubi.create;
import java.util.IdentityHashMap; import java.util.IdentityHashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import com.simibubi.create.modules.IModule; import com.simibubi.create.modules.Sections;
import com.tterrag.registrate.AbstractRegistrate; import com.tterrag.registrate.AbstractRegistrate;
import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.builders.BlockBuilder;
import com.tterrag.registrate.builders.Builder; import com.tterrag.registrate.builders.Builder;
@ -41,18 +40,17 @@ public class CreateRegistrate extends AbstractRegistrate<CreateRegistrate> {
super(modid); super(modid);
} }
private Map<RegistryEntry<?>, IModule> moduleLookup = new IdentityHashMap<>(); private Map<RegistryEntry<?>, Sections> sectionLookup = new IdentityHashMap<>();
private IModule module; private Sections section;
public CreateRegistrate setModule(String module) { public CreateRegistrate startSection(Sections section) {
final String moduleName = module.toLowerCase(Locale.ROOT); this.section = section;
this.module = () -> moduleName;
return self(); return self();
} }
public IModule getModule() { public Sections currentSection() {
return module; return section;
} }
@Deprecated @Deprecated
@ -64,19 +62,19 @@ public class CreateRegistrate extends AbstractRegistrate<CreateRegistrate> {
protected <R extends IForgeRegistryEntry<R>, T extends R> RegistryEntry<T> accept(String name, protected <R extends IForgeRegistryEntry<R>, T extends R> RegistryEntry<T> accept(String name,
Class<? super R> type, Builder<R, T, ?, ?> builder, NonNullSupplier<? extends T> creator) { Class<? super R> type, Builder<R, T, ?, ?> builder, NonNullSupplier<? extends T> creator) {
RegistryEntry<T> ret = super.accept(name, type, builder, creator); RegistryEntry<T> ret = super.accept(name, type, builder, creator);
moduleLookup.put(ret, getModule()); sectionLookup.put(ret, currentSection());
return ret; return ret;
} }
public IModule getModule(RegistryEntry<?> entry) { public Sections getSection(RegistryEntry<?> entry) {
return moduleLookup.getOrDefault(entry, IModule.of("unknown")); return sectionLookup.getOrDefault(entry, Sections.UNASSIGNED);
} }
public IModule getModule(IForgeRegistryEntry<?> entry) { public Sections getSection(IForgeRegistryEntry<?> entry) {
return moduleLookup.entrySet().stream() return sectionLookup.entrySet().stream()
.filter(e -> e.getKey().get() == entry) .filter(e -> e.getKey().get() == entry)
.map(Entry::getValue) .map(Entry::getValue)
.findFirst() .findFirst()
.orElse(IModule.of("unknown")); .orElse(Sections.UNASSIGNED);
} }
} }

View file

@ -2,12 +2,6 @@ package com.simibubi.create.config;
public class CServer extends ConfigBase { public class CServer extends ConfigBase {
public ConfigGroup modules = group(0, "modules", Comments.modules);
public ConfigBool enableSchematics = b(true, "enableSchematics");
public ConfigBool enableCuriosities = b(true, "enableCuriosities");
public ConfigBool enablePalettes = b(true, "enablePalettes");
public ConfigBool enableLogistics = b(true, "enableLogistics");
public ConfigGroup infrastructure = group(0, "infrastructure", Comments.infrastructure); public ConfigGroup infrastructure = group(0, "infrastructure", Comments.infrastructure);
public ConfigInt tickrateSyncTimer = public ConfigInt tickrateSyncTimer =
i(20, 5, "tickrateSyncTimer", "[in Ticks]", Comments.tickrateSyncTimer, Comments.tickrateSyncTimer2); i(20, 5, "tickrateSyncTimer", "[in Ticks]", Comments.tickrateSyncTimer, Comments.tickrateSyncTimer2);
@ -24,11 +18,10 @@ public class CServer extends ConfigBase {
} }
private static class Comments { private static class Comments {
static String schematics = "The Schematics Module"; static String schematics = "Everything related to Schematic tools";
static String kinetics = "The Contraptions Module"; static String kinetics = "Parameters and abilities of Create's kinetic mechanisms";
static String logistics = "The Logistics Module"; static String logistics = "Tweaks for logistical components";
static String curiosities = "Everything that spins"; static String curiosities = "Gadgets and other Shenanigans added by Create";
static String modules = "Configure which Modules should be accessible in recipes and creative menus.";
static String control = "You can try inhibiting related game mechanics for troubleshooting repeated crashes."; static String control = "You can try inhibiting related game mechanics for troubleshooting repeated crashes.";
static String infrastructure = "The Backbone of Create"; static String infrastructure = "The Backbone of Create";
static String tickrateSyncTimer = static String tickrateSyncTimer =

View file

@ -56,6 +56,7 @@ public class ItemDescription {
Yellow(GOLD, YELLOW), Yellow(GOLD, YELLOW),
Red(DARK_RED, RED), Red(DARK_RED, RED),
Purple(DARK_PURPLE, LIGHT_PURPLE), Purple(DARK_PURPLE, LIGHT_PURPLE),
Gray(DARK_GRAY, GRAY),
; ;

View file

@ -11,7 +11,7 @@ import com.mojang.bridge.game.Language;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.item.ItemDescription.Palette; import com.simibubi.create.foundation.item.ItemDescription.Palette;
import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.modules.IModule; import com.simibubi.create.modules.Sections;
import com.simibubi.create.modules.contraptions.base.IRotate; import com.simibubi.create.modules.contraptions.base.IRotate;
import com.simibubi.create.modules.contraptions.components.flywheel.engine.EngineBlock; import com.simibubi.create.modules.contraptions.components.flywheel.engine.EngineBlock;
import com.simibubi.create.modules.curiosities.tools.AllToolTiers; import com.simibubi.create.modules.curiosities.tools.AllToolTiers;
@ -130,11 +130,11 @@ public class TooltipHelper {
} }
private static ItemDescription buildToolTip(String translationKey, ItemStack stack) { private static ItemDescription buildToolTip(String translationKey, ItemStack stack) {
IModule module = IModule.of(stack); Sections module = Sections.of(stack);
if (I18n.format(translationKey).equals("WIP")) if (I18n.format(translationKey).equals("WIP"))
return new WipScription(module.getToolTipColor()); return new WipScription(module.getTooltipPalette());
ItemDescription tooltip = new ItemDescription(module.getToolTipColor()); ItemDescription tooltip = new ItemDescription(module.getTooltipPalette());
String summaryKey = translationKey + ".summary"; String summaryKey = translationKey + ".summary";
// Summary // Summary

View file

@ -1,93 +0,0 @@
package com.simibubi.create.modules;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.Create;
import com.simibubi.create.config.AllConfigs;
import com.simibubi.create.config.CServer;
import com.simibubi.create.foundation.item.ItemDescription.Palette;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public interface IModule {
public static boolean isActive(String module) {
if (module.equals("materials"))
return true;
CServer conf = AllConfigs.SERVER;
switch (module) {
case "contraptions":
return true;
case "palettes":
return conf.enablePalettes.get();
case "curiosities":
return conf.enableCuriosities.get();
case "logistics":
return conf.enableLogistics.get();
case "schematics":
return conf.enableSchematics.get();
default:
return false;
}
}
public default Palette getToolTipColor() {
String module = getModuleName();
if (module.equals("materials"))
return Palette.Purple;
switch (module) {
case "contraptions":
return Palette.Red;
case "palettes":
return Palette.Green;
case "curiosities":
return Palette.Purple;
case "logistics":
return Palette.Yellow;
case "schematics":
return Palette.Blue;
default:
return Palette.Purple;
}
}
public static IModule of(String name) {
return () -> name;
}
public static IModule of(ItemStack stack) {
Item item = stack.getItem();
if (item instanceof BlockItem)
return ofBlock(((BlockItem) item).getBlock());
return ofItem(item);
}
static IModule ofItem(Item item) {
for (AllItems allItems : AllItems.values()) {
if (allItems.get() == item)
return allItems.module;
}
return null;
}
static IModule ofBlock(Block block) {
for (AllBlocks allBlocks : AllBlocks.values()) {
if (allBlocks.get() == block)
return allBlocks.module;
}
return Create.registrate().getModule(block);
}
public default boolean isEnabled() {
return isActive(getModuleName());
}
public String getModuleName();
}

View file

@ -1,54 +0,0 @@
package com.simibubi.create.modules;
import com.google.gson.JsonObject;
import com.simibubi.create.Create;
import net.minecraft.util.JSONUtils;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.crafting.conditions.ICondition;
import net.minecraftforge.common.crafting.conditions.IConditionSerializer;
public class ModuleLoadedCondition implements ICondition {
private static final ResourceLocation NAME = new ResourceLocation(Create.ID, "module");
protected String module;
public ModuleLoadedCondition(String module) {
this.module = module;
}
@Override
public ResourceLocation getID() {
return NAME;
}
@Override
public boolean test() {
return IModule.isActive(module);
}
@Override
public String toString() {
return "module_loaded(\"" + module + "\")";
}
public static class Serializer implements IConditionSerializer<ModuleLoadedCondition> {
public static final Serializer INSTANCE = new Serializer();
@Override
public void write(JsonObject json, ModuleLoadedCondition value) {
json.addProperty("module", value.module);
}
@Override
public ModuleLoadedCondition read(JsonObject json) {
return new ModuleLoadedCondition(JSONUtils.getString(json, "module"));
}
@Override
public ResourceLocation getID() {
return NAME;
}
}
}

View file

@ -0,0 +1,69 @@
package com.simibubi.create.modules;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.simibubi.create.Create;
import com.simibubi.create.foundation.item.ItemDescription.Palette;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
public enum Sections {
/** Create's kinetic mechanisms */
KINETICS(Palette.Red),
/** Item transport and other Utility */
LOGISTICS(Palette.Yellow),
/** Helpful gadgets and other shenanigans */
CURIOSITIES(Palette.Purple),
/** Tools for strucuture movement and replication */
SCHEMATICS(Palette.Blue),
/** Decorative blocks */
PALETTES(Palette.Green),
/** Base materials, ingredients and tools */
MATERIALS(Palette.Green),
/** Fallback section */
UNASSIGNED(Palette.Gray)
;
private Palette tooltipPalette;
private Sections(Palette tooltipPalette) {
this.tooltipPalette = tooltipPalette;
}
public Palette getTooltipPalette() {
return tooltipPalette;
}
public static Sections of(ItemStack stack) {
Item item = stack.getItem();
if (item instanceof BlockItem)
return ofBlock(((BlockItem) item).getBlock());
return ofItem(item);
}
static Sections ofItem(Item item) {
for (AllItems allItems : AllItems.values())
if (allItems.get() == item)
return allItems.section;
return UNASSIGNED;
}
static Sections ofBlock(Block block) {
for (AllBlocks allBlocks : AllBlocks.values())
if (allBlocks.get() == block)
return allBlocks.section;
return Create.registrate().getSection(block);
}
}

View file

@ -1,4 +1,4 @@
package com.simibubi.create.modules.gardens; package com.simibubi.create.modules.curiosities;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;

View file

@ -1,4 +1,4 @@
package com.simibubi.create.modules.gardens; package com.simibubi.create.modules.curiosities;
import com.simibubi.create.foundation.utility.PlacementSimulationServerWorld; import com.simibubi.create.foundation.utility.PlacementSimulationServerWorld;

View file

@ -4,7 +4,6 @@ import com.simibubi.create.foundation.utility.AllShapes;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
@ -15,8 +14,8 @@ import net.minecraft.world.IBlockReader;
public class CreativeCrateBlock extends Block { public class CreativeCrateBlock extends Block {
public CreativeCrateBlock() { public CreativeCrateBlock(Properties properties) {
super(Properties.create(Material.WOOD)); super(properties);
} }
@Override @Override

View file

@ -6,7 +6,6 @@ import com.simibubi.create.foundation.utility.AllShapes;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.HorizontalBlock; import net.minecraft.block.HorizontalBlock;
import net.minecraft.block.material.PushReaction; import net.minecraft.block.material.PushReaction;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
@ -26,8 +25,8 @@ import net.minecraftforge.fml.network.NetworkHooks;
public class SchematicTableBlock extends HorizontalBlock implements ITE<SchematicTableTileEntity> { public class SchematicTableBlock extends HorizontalBlock implements ITE<SchematicTableTileEntity> {
public SchematicTableBlock() { public SchematicTableBlock(Properties properties) {
super(Properties.from(Blocks.OAK_PLANKS)); super(properties);
} }
@Override @Override

View file

@ -6,7 +6,6 @@ import com.simibubi.create.foundation.utility.AllShapes;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.material.PushReaction; import net.minecraft.block.material.PushReaction;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity;
@ -24,8 +23,8 @@ import net.minecraftforge.fml.network.NetworkHooks;
public class SchematicannonBlock extends Block implements ITE<SchematicannonTileEntity> { public class SchematicannonBlock extends Block implements ITE<SchematicannonTileEntity> {
public SchematicannonBlock() { public SchematicannonBlock(Properties properties) {
super(Properties.from(Blocks.DISPENSER)); super(properties);
} }
@Override @Override

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:basin", "item": "create:basin",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:belt_funnel", "item": "create:belt_funnel",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -18,11 +18,5 @@
"result": { "result": {
"item": "create:belt_tunnel", "item": "create:belt_tunnel",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:brass_hand", "item": "create:brass_hand",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:contact", "item": "create:contact",
"count": 2 "count": 2
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:adjustable_pulley", "item": "create:adjustable_pulley",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -15,11 +15,5 @@
"result": { "result": {
"item": "create:analog_lever", "item": "create:analog_lever",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:belt_connector", "item": "create:belt_connector",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:cart_assembler", "item": "create:cart_assembler",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:clockwork_bearing", "item": "create:clockwork_bearing",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:clutch", "item": "create:clutch",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:cogwheel", "item": "create:cogwheel",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:cuckoo_clock", "item": "create:cuckoo_clock",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -23,11 +23,5 @@
"result": { "result": {
"item": "create:deployer", "item": "create:deployer",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:drill", "item": "create:drill",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:encased_belt", "item": "create:encased_belt",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -25,11 +25,5 @@
"result": { "result": {
"item": "create:encased_fan", "item": "create:encased_fan",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -14,11 +14,5 @@
"result": { "result": {
"item": "create:encased_shaft", "item": "create:encased_shaft",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:gearbox", "item": "create:gearbox",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:gearshift", "item": "create:gearshift",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:harvester", "item": "create:harvester",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:large_cogwheel", "item": "create:large_cogwheel",
"count": 2 "count": 2
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:mechanical_bearing", "item": "create:mechanical_bearing",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -26,11 +26,5 @@
"result": { "result": {
"item": "create:mechanical_crafter", "item": "create:mechanical_crafter",
"count": 3 "count": 3
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:mechanical_mixer", "item": "create:mechanical_mixer",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:mechanical_piston", "item": "create:mechanical_piston",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -23,11 +23,5 @@
"result": { "result": {
"item": "create:mechanical_press", "item": "create:mechanical_press",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:millstone", "item": "create:millstone",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:mysterious_cuckoo_clock", "item": "create:mysterious_cuckoo_clock",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:piston_pole", "item": "create:piston_pole",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:plough", "item": "create:plough",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -14,11 +14,5 @@
"result": { "result": {
"item": "create:portable_storage_interface", "item": "create:portable_storage_interface",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:rope_pulley", "item": "create:rope_pulley",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:rotation_chassis", "item": "create:rotation_chassis",
"count": 3 "count": 3
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -18,11 +18,5 @@
"result": { "result": {
"item": "create:rotation_speed_controller", "item": "create:rotation_speed_controller",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:saw", "item": "create:saw",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -23,11 +23,5 @@
"result": { "result": {
"item": "create:sequenced_gearshift", "item": "create:sequenced_gearshift",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:shaft", "item": "create:shaft",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -18,11 +18,5 @@
"result": { "result": {
"item": "create:speed_gauge", "item": "create:speed_gauge",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -15,11 +15,5 @@
"result": { "result": {
"item": "create:sticky_mechanical_piston", "item": "create:sticky_mechanical_piston",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:translation_chassis", "item": "create:translation_chassis",
"count": 3 "count": 3
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -15,11 +15,5 @@
"result": { "result": {
"item": "create:turntable", "item": "create:turntable",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:water_wheel", "item": "create:water_wheel",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:deforester", "item": "create:deforester",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -14,11 +14,5 @@
"result": { "result": {
"item": "create:filter", "item": "create:filter",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -18,11 +18,5 @@
"result": { "result": {
"item": "create:goggles", "item": "create:goggles",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:placement_handgun", "item": "create:placement_handgun",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -14,11 +14,5 @@
"result": { "result": {
"item": "create:property_filter", "item": "create:property_filter",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:shadow_steel_mattock", "item": "create:shadow_steel_mattock",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:shadow_steel_pickaxe", "item": "create:shadow_steel_pickaxe",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:shadow_steel_sword", "item": "create:shadow_steel_sword",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:symmetry_wand", "item": "create:symmetry_wand",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:wrench", "item": "create:wrench",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "curiosities"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:electron_tube", "item": "create:electron_tube",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -21,11 +21,5 @@
"result": { "result": {
"item": "create:entity_detector", "item": "create:entity_detector",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -22,11 +22,5 @@
"result": { "result": {
"item": "create:extractor", "item": "create:extractor",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -13,11 +13,5 @@
"result": { "result": {
"item": "create:flexcrate", "item": "create:flexcrate",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -21,11 +21,5 @@
"result": { "result": {
"item": "create:flexpeater", "item": "create:flexpeater",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -14,11 +14,5 @@
"result": { "result": {
"item": "create:flexpulsepeater", "item": "create:flexpulsepeater",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "logistics"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:hand_crank", "item": "create:hand_crank",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:andesite_casing", "item": "create:andesite_casing",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:brass_casing", "item": "create:brass_casing",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -12,11 +12,5 @@
}, },
"result": { "result": {
"item": "create:brass_ingot" "item": "create:brass_ingot"
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -19,11 +19,5 @@
"result": { "result": {
"item": "create:copper_casing", "item": "create:copper_casing",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -12,11 +12,5 @@
}, },
"result": { "result": {
"item": "create:copper_ingot" "item": "create:copper_ingot"
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -12,11 +12,5 @@
}, },
"result": { "result": {
"item": "create:zinc_ingot" "item": "create:zinc_ingot"
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:nozzle", "item": "create:nozzle",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "contraptions"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:acacia_glass", "item": "create:acacia_glass",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:acacia_glass_pane", "item": "create:acacia_glass_pane",
"count": 16 "count": 16
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:birch_glass", "item": "create:birch_glass",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:birch_glass_pane", "item": "create:birch_glass_pane",
"count": 16 "count": 16
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:dark_oak_glass", "item": "create:dark_oak_glass",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:dark_oak_glass_pane", "item": "create:dark_oak_glass_pane",
"count": 16 "count": 16
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -16,11 +16,5 @@
"result": { "result": {
"item": "create:dark_scoria", "item": "create:dark_scoria",
"count": 8 "count": 8
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:dark_scoria_bricks", "item": "create:dark_scoria_bricks",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -11,11 +11,5 @@
"result": { "result": {
"item": "create:dark_scoria_bricks_slab", "item": "create:dark_scoria_bricks_slab",
"count": 6 "count": 6
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -13,11 +13,5 @@
"result": { "result": {
"item": "create:dark_scoria_bricks_stairs", "item": "create:dark_scoria_bricks_stairs",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:dark_scoria_bricks_wall", "item": "create:dark_scoria_bricks_wall",
"count": 6 "count": 6
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -11,11 +11,5 @@
"result": { "result": {
"item": "create:dark_scoria_tiles", "item": "create:dark_scoria_tiles",
"count": 1 "count": 1
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -11,11 +11,5 @@
"result": { "result": {
"item": "create:dark_scoria_tiles_slab", "item": "create:dark_scoria_tiles_slab",
"count": 6 "count": 6
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -13,11 +13,5 @@
"result": { "result": {
"item": "create:dark_scoria_tiles_stairs", "item": "create:dark_scoria_tiles_stairs",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

View file

@ -12,11 +12,5 @@
"result": { "result": {
"item": "create:dolomite_bricks", "item": "create:dolomite_bricks",
"count": 4 "count": 4
}, }
"conditions": [
{
"type": "create:module",
"module": "palettes"
}
]
} }

Some files were not shown because too many files have changed in this diff Show more