/Ore-Stages

Allows blocks (primarily ores) to be placed into custom stages.

Primary LanguageJavaGNU Lesser General Public License v2.1LGPL-2.1

Ore Stages

This mod is an addon for the GameStage API. It allows for blocks in the world, like ores, to be put into game stages. You should check out the GameStage API mod's description for more info. To give a brief run down, stages are parts of the progression system set up by the modpack or server. Stages are given to players through a command, which is typically ran by a questing mod, advancement, or even a Command Block.

Nodecraft
This project is sponsored by Nodecraft. Use code Darkhax for 30% off your first month of service!

Setup

This mod uses CraftTweaker for configuration.

What happens when staged?

If a player does not have the right stage for the block

  • The block will look like the block it is hidden as.
  • The player will not be able to right click the block.
  • The block will drop the items it's replacement would drop.
  • The block will take as long to mine as it's replacement.

In situations where no player is present, it will be assumed that there is no stage. This is referred to as defaulting behavior.

CraftTweaker methods

This method can be used to replace a block with vanilla stone. mods.orestages.OreStages.addReplacement(String stage, IIngredient original);

This method can be used to replace a block with another block. mods.orestages.OreStages.addReplacement(String stage, IIngredient original, IItemStack replacement);

This method can be used to replace a block with another block by specifying exact block ids. The above two methods only work for blocks with items. mods.orestages.OreStages.addReplacementById(String stage, String original, String replacement);

The following methods are used to add a replacement which do not use the defaulting behavior. Meaning if no player broke the block (water, explosion, machine) the block will break as if it was not hidden.

mods.orestages.OreStages.addNonDefaultingReplacement(String stage, IIngredient original);

mods.orestages.OreStages.addNonDefaultingReplacement(String stage, IIngredient original, IItemStack replacement);

mods.orestages.OreStages.addNonDefaultingReplacementById(String stage, String original, String replacement);

Example Script

mods.orestages.OreStages.addReplacementById("one", "minecraft:potatoes:*", "minecraft:tallgrass:2");
mods.orestages.OreStages.addReplacementById("two", "minecraft:wheat:*", "minecraft:carrots:3");
mods.orestages.OreStages.addReplacementById("three", "minecraft:nether_wart:*", "minecraft:beetroots");
mods.orestages.OreStages.addReplacement("four", <minecraft:dirt>, <minecraft:stone>);
mods.orestages.OreStages.addReplacement("one", <minecraft:obsidian>, <minecraft:cobblestone>);
mods.orestages.OreStages.addNonDefaultingReplacement("one", <minecraft:torch:*>, <minecraft:redstone_torch>);
mods.orestages.OreStages.addReplacement("five", <minecraft:furnace:*>, <minecraft:stone>);