Download RandomLib — Minecraft Mods — ModStock
RandomLib

RandomLib

Active

Downloads

1

Last update

3 years ago
Client
Libraries
Technological

Originally a part of the One Block Plus mod, RandomLib is now a standalone library allowing your mod to create config files for weighted random generation.

 

Developer documentation. (WIP)

(This will likely be replaced later by a github repository)


RandomLibUtils.setup during FMLCommonSetupEvent to setup your config files.

<T extends ExtraData> RandomLibUtils.setup(ResourceLocation registryKey, Supplier<T> extra, Consumer<Map<String, RandomPool<T>>> afterDeserialization)

As an example, your config files will be generated in configs/oneblock/phases/ folder if registryKey = oneblock:phases.
extra is a supplier for an instance of an ExtraData implementation. This allows you to save more information about a random pool, in addition to the weighted items.

Once your config files are deserialized, they are saved in a map with their file name as a key but you likely would like to store them in a more convenient structure for your mod using the afterDeserialization consumer.

 

RandomLibUtils.registerCommand during FMLServerStartingEvent to setup a command to manage config files generated by RandomLib.

RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey)
RandomLibUtils.registerCommand(FMLServerStartingEvent event, String commandname, ResourceLocation registryKey, ExtraDataCommand<? extends ExtraData> extraDataCommand)
registryKey is the same as for RandomLibUtils.setup
extraDataCommand completes brigadier for your ExtraData implementation.

RandomPool#getExtra() to get your deserialized ExtraData.

RandomPool#getRandom()#generateAndReplace(ServerWorld, BlockPos)  to destroy block and generate an item from the random pool in the given world at the given position.

RandomPool#getRandom()#generate(ServerWorld, BlockPos)  to generate an item from the random pool in the given world at the given position.

RandomPool#getRandom()#vgenerate(RandomContainer, ServerWorld, BlockPos, ItemStack)  to generate an item from the random pool for an object implementing RandomContainer (likely a tile entity) in the given world at the given position and for the given held item (if any).

 

 

User documentation. (WIP)

Help command : /<RandomLib command name for this mod> help
example: 

 

 

 

Project members
NaturaSpell

NaturaSpell