Skip to content

Commit

Permalink
Adding More Blocks to Specialty Tool Break Tags (#5971)
Browse files Browse the repository at this point in the history
* Update block tags for grinding disc cutting

 - Added metal multiblocks to the list of cuttables
 - Added most* `MetalDevice`s to the list of cuttables
 - Added windows and new decor to the list of cuttables
 - Added transformers to the list of cuttables

* Remove razor wire from hammer break list

 - Brings parity with expectations
 - Now, only wirecutters can remove it

* Update rockcutting blade breakable tags

 - Add other Overworld stones (calcite, dripstone)
 - Add nether stones (blackstone, basalt)
 - Add other stones (endstone, obsidian)
 - Added silktouchable stone blocks:
     - Added Gilded Blackstone
     - Added coral blocks

* Add Vanilla metallic blocks to grinding disc

 - Added chipped, damaged, and normal anvils
 - Add cauldrons with all fluids
 - Added chains and iron bars
 - Added iron doors and trapdoors
 - Added light and heavy weighted pressure plates
 - Added hopper and lightning rod

* Remove non-metal storage blocks from grinding disc

 - Does not remove other mod's storage blocks
     - Technical limitations prevent this
 - Removes lapis, redstone, quartz, diamond, emerald, amethyst, and coal
  • Loading branch information
voidsong-dragonfly authored Jun 22, 2024
1 parent 7f5b1ed commit 76830ae
Show file tree
Hide file tree
Showing 5 changed files with 154 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import blusunrize.immersiveengineering.common.blocks.metal.ConveyorBlock;
import blusunrize.immersiveengineering.common.blocks.metal.MetalLadderBlock;
import blusunrize.immersiveengineering.common.blocks.metal.MetalScaffoldingType;
import blusunrize.immersiveengineering.common.blocks.multiblocks.IEMultiblocks;
import blusunrize.immersiveengineering.common.blocks.wooden.TreatedWoodStyles;
import blusunrize.immersiveengineering.common.fluids.IEFluidBlock;
import blusunrize.immersiveengineering.common.register.IEBlocks;
Expand Down Expand Up @@ -311,20 +312,42 @@ private void registerHammerMineable()
if(block instanceof ConnectorBlock<?>||block instanceof ConveyorBlock)
tag.add(block);
}
//Razor wire should only be broken by wirecutters, and its addition is accidental
tag.remove(MetalDevices.RAZOR_WIRE.get());
}

private void registerRockcutterMineable()
{
/*
* Current design philosophy for the rockcutter is as follows:
* The rockcutter is not here to break synthetic stone blocks, it's here to break worldgen blocks + silktouchables
* Thus, no stairs or slabs or similar, and the exclusion of prismarine
* Just the stone blocks common in every dimension along with ores and other similar blocks
*/
IntrinsicTagAppender<Block> tag = tag(IETags.rockcutterHarvestable);
// stones & ores
// overworld stones & ores
tag.addTag(Tags.Blocks.COBBLESTONE);
tag.addTag(Tags.Blocks.STONE);
tag.addTag(Tags.Blocks.SANDSTONE);
tag.addTag(Tags.Blocks.ORES);
// glass, ice, glowing blocks
tag.add(Blocks.CALCITE, Blocks.DRIPSTONE_BLOCK, Blocks.POINTED_DRIPSTONE);
// specialty stones and stone-alikes
tag.addTag(Tags.Blocks.NETHERRACK);
tag.add(Blocks.BASALT, Blocks.SMOOTH_BASALT);
tag.add(Blocks.BLACKSTONE);
tag.add(Blocks.END_STONE);
tag.add(Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN);
tag.add(Blocks.BONE_BLOCK);
// glass, ice, amethyst, glowing blocks, gilded blackstone
tag.addTag(Tags.Blocks.GLASS);
tag.addTag(BlockTags.ICE);
tag.add(Blocks.AMETHYST_BLOCK, Blocks.BUDDING_AMETHYST, Blocks.AMETHYST_CLUSTER, Blocks.LARGE_AMETHYST_BUD, Blocks.MEDIUM_AMETHYST_BUD, Blocks.SMALL_AMETHYST_BUD);
tag.add(Blocks.GLOWSTONE);
tag.add(Blocks.SEA_LANTERN);
tag.add(Blocks.GILDED_BLACKSTONE);
// coral, first alive by tag and then dead by block - silktouchable and pickaxe-needed + the dead ones for consistency
tag.addTag(BlockTags.CORAL_BLOCKS);
tag.add(Blocks.DEAD_BRAIN_CORAL_BLOCK, Blocks.DEAD_BUBBLE_CORAL_BLOCK, Blocks.DEAD_FIRE_CORAL_BLOCK, Blocks.DEAD_HORN_CORAL_BLOCK, Blocks.DEAD_TUBE_CORAL_BLOCK);
// enderchest
tag.addTag(Tags.Blocks.CHESTS_ENDER);
// skulk, but intentionally only some of them
Expand All @@ -334,8 +357,9 @@ private void registerRockcutterMineable()
private void registerGrindingDiskMineable()
{
IntrinsicTagAppender<Block> tag = tag(IETags.grindingDiskHarvestable);
// storage and sheetmetal
// storage and remove rocklike storage, sheetmetal
tag.addTag(Tags.Blocks.STORAGE_BLOCKS);
tag.remove(Blocks.AMETHYST_BLOCK, Blocks.QUARTZ_BLOCK, Blocks.LAPIS_BLOCK, Blocks.REDSTONE_BLOCK, Blocks.DIAMOND_BLOCK, Blocks.EMERALD_BLOCK, Blocks.COAL_BLOCK);
tag.addTag(IETags.sheetmetals);
// storage and sheetmetal slabs
for(EnumMetals metal : EnumMetals.values())
Expand All @@ -347,19 +371,39 @@ private void registerGrindingDiskMineable()
tag.addTag(IETags.cutCopperBlocks);
tag.addTag(IETags.cutCopperSlabs);
tag.addTag(IETags.cutCopperStairs);
// vanilla blocks
tag.add(Blocks.ANVIL, Blocks.CHIPPED_ANVIL, Blocks.DAMAGED_ANVIL);
tag.add(Blocks.CHAIN, Blocks.IRON_BARS, Blocks.IRON_DOOR, Blocks.IRON_TRAPDOOR, Blocks.HEAVY_WEIGHTED_PRESSURE_PLATE, Blocks.LIGHT_WEIGHTED_PRESSURE_PLATE,
Blocks.HOPPER, Blocks.CAULDRON, Blocks.LAVA_CAULDRON, Blocks.WATER_CAULDRON, Blocks.POWDER_SNOW_CAULDRON, Blocks.LIGHTNING_ROD);
// scaffolding
tag.addTag(IETags.scaffoldingSteel);
tag.addTag(IETags.scaffoldingAlu);
tag.add(MetalDecoration.ALU_FENCE.get(), MetalDecoration.ALU_POST.get(), MetalDecoration.ALU_WALLMOUNT.get(), MetalDecoration.ALU_SLOPE.get());
tag.add(MetalDecoration.STEEL_FENCE.get(), MetalDecoration.STEEL_POST.get(), MetalDecoration.STEEL_WALLMOUNT.get(), MetalDecoration.STEEL_SLOPE.get());
// decorations including catwalks
tag.add(MetalDecoration.LANTERN.get(), MetalDecoration.STEEL_DOOR.get(), MetalDecoration.STEEL_TRAPDOOR.get(), MetalDecoration.REINFORCED_WINDOW.get());
tag.add(MetalDecoration.ALU_FENCE.get(), MetalDecoration.ALU_POST.get(), MetalDecoration.ALU_WALLMOUNT.get(), MetalDecoration.ALU_SLOPE.get(),
MetalDecoration.ALU_CATWALK.get(), MetalDecoration.ALU_CATWALK_STAIRS.get(), MetalDecoration.ALU_WINDOW.get());
tag.add(MetalDecoration.STEEL_FENCE.get(), MetalDecoration.STEEL_POST.get(), MetalDecoration.STEEL_WALLMOUNT.get(), MetalDecoration.STEEL_SLOPE.get(),
MetalDecoration.STEEL_CATWALK.get(), MetalDecoration.STEEL_CATWALK_STAIRS.get(), MetalDecoration.STEEL_WINDOW.get());
MetalDecoration.METAL_LADDER.values().forEach(entry -> tag.add(entry.get()));
// chutes
MetalDevices.CHUTES.values().forEach(entry -> tag.add(entry.get()));
// fluid machines
tag.add(MetalDevices.BARREL.get(), MetalDevices.FLUID_PUMP.get(), MetalDevices.FLUID_PIPE.get(), MetalDevices.FLUID_PLACER.get());
tag.add(MetalDevices.BARREL.get(), MetalDevices.FLUID_PUMP.get(), MetalDevices.FLUID_PIPE.get(), MetalDevices.FLUID_PLACER.get(), MetalDevices.PIPE_VALVE.get());
// other machines
tag.add(MetalDevices.BLAST_FURNACE_PREHEATER.get(), MetalDevices.FURNACE_HEATER.get(), MetalDevices.DYNAMO.get(), MetalDevices.THERMOELECTRIC_GEN.get(),
MetalDevices.ELECTRIC_LANTERN.get(), MetalDevices.SAMPLE_DRILL.get(), MetalDevices.FLOODLIGHT.get(), MetalDevices.ELECTROMAGNET.get());
// wire connected machines
tag.add(Connectors.CONNECTOR_STRUCTURAL.get(), Connectors.TRANSFORMER.get(), Connectors.TRANSFORMER_HV.get(), Connectors.BREAKER_SWITCH.get(),
Connectors.REDSTONE_BREAKER.get(), Connectors.CURRENT_TRANSFORMER.get(), Connectors.POST_TRANSFORMER.get());
// multiblock components
tag.add(MetalDecoration.LV_COIL.get(), MetalDecoration.MV_COIL.get(), MetalDecoration.MV_COIL.get());
tag.add(MetalDecoration.ENGINEERING_RS.get(), MetalDecoration.ENGINEERING_LIGHT.get(), MetalDecoration.ENGINEERING_HEAVY.get(), MetalDecoration.RADIATOR.get(), MetalDecoration.GENERATOR.get());
// multiblock blocks?
tag.add(IEMultiblocks.CRUSHER.getBlock(), IEMultiblocks.SAWMILL.getBlock(), IEMultiblocks.ARC_FURNACE.getBlock(), IEMultiblocks.ASSEMBLER.getBlock(),
IEMultiblocks.AUTO_WORKBENCH.getBlock(), IEMultiblocks.BOTTLING_MACHINE.getBlock(), IEMultiblocks.BUCKET_WHEEL.getBlock(),
IEMultiblocks.DIESEL_GENERATOR.getBlock(), IEMultiblocks.EXCAVATOR.getBlock(), IEMultiblocks.FERMENTER.getBlock(), IEMultiblocks.LIGHTNING_ROD.getBlock(),
IEMultiblocks.METAL_PRESS.getBlock(), IEMultiblocks.MIXER.getBlock(), IEMultiblocks.REFINERY.getBlock(), IEMultiblocks.SHEETMETAL_TANK.getBlock(),
IEMultiblocks.SILO.getBlock(), IEMultiblocks.SQUEEZER.getBlock());
}

private void registerAxeMineable()
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 76830ae

Please sign in to comment.