Description
This is a tweak mod. It tweaks things, and is tweaked by people. Without any configuration this mod does nothing.
There are currently n things it offers:
Arbitrary Milking
This allows any item to turn into another item on contact with any entity. Normally this would be used to add exotic milktypes for entities in modpacks but can be used for other purposes.
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityDefinition entity, IItemStack output, boolean needsSneaking);
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityFunction entity, IItemStack output, boolean needsSneaking);
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityDefinition entity, IMilkFunction output, boolean needsSneaking);
mods.alfinivia.Milking.add(@NotNull IIngredient input, @NotNull IEntityFunction entity, IMilkFunction output, boolean needsSneaking);
ex. for IEntityFunction:
function(entity){return true;}
ex. for IMilkFunction:
function(entity, itemstack, player){return itemstack;}
ex.
mods.alfinivia.Milking.add(<minecraft:fish>,<entity:minecraft:sheep>,<minecraft:sandstone>,false);
Liquid Interactions
This allows any two fluids to interact in world to form a block, assuming they wouldn't already interact.
mods.alfinivia.LiquidInteraction.add(@NotNull IIngredient fluidA, @NotNull IIngredient fluidB, IItemStack output);
Breakspeed
This allows breakspeed of certain blocks to vary based on several different factors. This can be done static, by tool, by attribute or by function. Note that multipliers are cumulative, so if there's an attribute and a function defined, both multipliers apply consecutively.
var builder = mods.alfinivia.BreakSpeedBuilder.get(@NotNull className);
builder.setTool(IIngredient tools);
builder.addTool(IIngredient tools);
builder.addBlock(IItemStack block);
builder.addBlock(IBlockDefinition block, int meta);
builder.addBlocks(IItemStack[] blocks);
builder.setMultiplier(float multiplier); //Flat multiplier
builder.setAttribute(float defaultValue,float minValue,float maxValue); //This will request an attribute to be created with name "break.[className]" that affects the breakspeed
builder.setFunction(IBlockSpeedFunction function); //Fine control based on values at runtime (ex. scales with distance from spawn or similar)
builder.build(); //Call this last
ex. for IBlockSpeedFunction:
function(player,world,pos){return 1.0;}
ex.
var builder = mods.alfinivia.BreakSpeedBuilder.get("stone");
builder.addBlock(<minecraft:stone>);
builder.setMultiplier(2.0);
builder.addTool(<minecraft:stone_pickaxe>);
builder.build();
Damage Handlers
This allows specific entities to have the damage they take from specific sources modified in some way.
var builder = mods.alfinivia.DamageBuilder.get(@NotNull className);
builder.matchEntity(IEntityFunction entityMatch);
builder.matchSource(IEntityFunction sourceMatch);
builder.matchDamageSource(String damageSource);
builder.setFunction(IDamageFunction function);
builder.multiplyAttribute(float defaultValue, float minValue, float maxValue); //This will request an attribute to be created with name "damage.[className]" that functions as the multiplier for the damage
builder.addAttribute(float defaultValue, float minValue, float maxValue); //Same as above but the value of the attribute is added instead.
builder.build(); //Call this last
ex. for IDamageFunction:
function(IEntityLivingBase entity, float amount){return 1.0 * amount;}
ex.
var builder = mods.alfinivia.DamageBuilder.get("stone");
builder.matchEntity(IEntityFunction.getEntities([<entity:minecraft:sheep>,<entity:minecraft:wolf>]));
builder.matchDamageType("fire");
builder.setFunction(IDamageFunction.multiply(2.5));
builder.build();
Misty World
There's currently only the ability to add compostable items and set the harvest type for crops.
mods.alfinivia.MistyWorld.addCompostable(IItemStack stack)
mods.alfinivia.MistyWorld.addHarvestType(IBlockDefinition block, int min, int max) //min and max must be between 1 and 3, this affects how much water permeability (porosity) of the soil is needed to grow specific plants.
//1 - clay soil (flowering, marsh plants, cereals)
//2 - forest and tropical soils (vegetables)
//3 - sandy and stony soils (tubers)
mods.alfinivia.MistyWorld.addHarvestType(String block, int min, int max)
Immersive Engineering
There is support for removing and adding fertilizers to the garden cloche, adding fluids to the chemsprayer, adding rods to the railgun and last but not least, a builder system for revolver/turret bullets.
mods.alfinivia.ImmersiveEngineering.addChemthrowerEffect(ILiquidStack liquid, boolean isGas, boolean isFlammable, String source, float damage)
mods.alfinivia.ImmersiveEngineering.addChemthrowerEffect(ILiquidStack liquid, boolean isGas, boolean isFlammable, String source, float damage, IPotionEffect[] effects)
mods.alfinivia.ImmersiveEngineering.addChemthrowerEffect(ILiquidStack liquid, boolean isGas, boolean isFlammable, IChemEntityEffect entityEffect, IChemBlockEffect blockEffect)
mods.alfinivia.ImmersiveEngineering.addRailgunBullet(IIngredient item, float damage, float gravity, int[][] colorMap)
mods.alfinivia.ImmersiveEngineering.addRailgunBullet(IIngredient item, float damage, float gravity, IRailgunImpact effect, int[][] colorMap)
mods.alfinivia.ImmersiveEngineering.addLiquidFertilizer(ILiquidStack liquid, float multiplier)
mods.alfinivia.ImmersiveEngineering.addLiquidFertilizer(ILiquidStack liquid, IFluidFertilizerMultiplier multiplier)
mods.alfinivia.ImmersiveEngineering.removeLiquidFertilizer(ILiquidStack liquid)
mods.alfinivia.ImmersiveEngineering.addItemFertilizer(IIngredient item, float multiplier)
mods.alfinivia.ImmersiveEngineering.addItemFertilizer(IIngredient item, IItemFertilizerMultiplier multiplier)
mods.alfinivia.ImmersiveEngineering.removeItemFertilizer(IItemStack item)
ex. for IChemBlockEffect
function(world,pos,side,shooter,throwerstack,fluid){}
ex. for IChemEntityEffect
function(target,shooter,throwerstack,fluid){}
ex. for IRailgunImpact
function(target,shoot){return false;} //returning true here foregoes the regular damage it would do
ex. for IFluidFertilizerMultiplier
function(fertilizer,seed,soil){return 1.0;} //fertilizer is an ILiquidStack
ex. for IItemFertilizerMultiplier
function(fertilizer,seed,soil){return 1.0;} //fertilizer is an IItemStack
todo: docs for the bullet builder
AD
Become Premium to remove Ads!
What means Verified?
-
Compatibility: The mod should be compatible with the latest version of Minecraft and be clearly labeled with its supported versions.
-
Functionality: The mod should work as advertised and not cause any game-breaking bugs or crashes.
-
Security: The mod should not contain any malicious code or attempts to steal personal information.
-
Performance: The mod should not cause a significant decrease in the game's performance, such as by causing lag or reducing frame rates.
-
Originality: The mod should be original and not a copy of someone else's work.
-
Up-to-date: The mod should be regularly updated to fix bugs, improve performance, and maintain compatibility with the latest version of Minecraft.
-
Support: The mod should have an active developer who provides support and troubleshooting assistance to users.
-
License: The mod should be released under a clear and open source license that allows others to use, modify, and redistribute the code.
-
Documentation: The mod should come with clear and detailed documentation on how to install and use it.
AD
Become Premium to remove Ads!
How to Install
Download Forge & Java
Download Forge from the offical Site or here. If you dont have Java installed then install it now from here. After Downloading Forge you can run the file with Java.
Prepare
Lounch Minecraft and select your Forge istallation as Version this will create a Folder called Mods.
Add Mods
Type Win+R and type %appdata% and open the .minecraft Folder. There will you find your Folder called Mods. Place all Mods you want to play in this Folder
Enjoy
You are now Ready. Re-start your Game and start Playing.