Alfinivia

Quick rating

Alfinivia

No reviews yet

Syke, it's actually just a bunch of tweaks

Mod Loaders
Forge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

About

Project Details

Type
Mod
Latest Version
Alfinivia-0.4hotfix.jar
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

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

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~210,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works