Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -121,24 +121,30 @@ public static LangBuilder formatLevel(int level, boolean round) {
if (level >= BigItemStack.INF)
return CreateLang.text("\u221e");

if (!round || level < 1000 || level % 1000 != 0) {
if (level % 1000 == 0)
return CreateLang.number((float) level / 1000).add(CreateLang.translate("generic.unit.buckets"));
if (level >= 1_000_000){ // If more than 1k buckets, show as thousands
return CreateLang.number((float) level / 1_000_000)
.add(CreateLang.text("k"))
.add(CreateLang.translate("generic.unit.buckets"));
}

if (level % 1000 == 0){ //If perfect bucket, show as buckets
return CreateLang.number((float) level / 1000).add(CreateLang.translate("generic.unit.buckets"));
}

if (level < 2_000){ // Less than 2B, always show mb
return CreateLang.number(level).add(CreateLang.translate("generic.unit.millibuckets"));
}

// 1000 buckets
if (level < 1_000_000) {
if (round){ // If more than 2B and rounding, show as buckets
float d = (float) level / 1000;
if (d >= 100)
d = Math.round(d);
d = Math.round(d); //stop showing decimals if more than 100B
return CreateLang.number(d).add(CreateLang.translate("generic.unit.buckets"));
}

return CreateLang.number((float) level / 1_000_000)
.add(CreateLang.text("k"))
.add(CreateLang.translate("generic.unit.buckets"));
// More than 2B and no rounding, show mb
return CreateLang.number(level).add(CreateLang.translate("generic.unit.millibuckets"));

}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.Blocks;
import net.minecraftforge.fluids.FluidStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
Expand All @@ -27,6 +28,7 @@
import ru.zznty.create_factory_abstractions.generic.impl.GenericContentExtender;
import ru.zznty.create_factory_abstractions.generic.support.BigGenericStack;
import ru.zznty.create_factory_logistics.FactoryBlocks;
import ru.zznty.create_factory_logistics.logistics.generic.FluidKey;
import ru.zznty.create_factory_logistics.logistics.jar.JarPackageItem;
import ru.zznty.create_factory_logistics.logistics.panel.FactoryFluidPanelBehaviour;

Expand Down Expand Up @@ -330,12 +332,21 @@ private void setOutputIngredientCount(BigItemStack instance, int value) {
)
)
private int scrollInputClampRemoval(int value, int min, int max, Operation<Integer> original,
@Local BigItemStack itemStack) {
@Local BigItemStack itemStack, @Local(ordinal = 2, argsOnly = true) double pDelta) {
BigGenericStack stack = BigGenericStack.of(itemStack);

int maxStackSize = GenericContentExtender.registrationOf(stack.get().key()).clientProvider().guiHandler()
.maxStackSize(stack.get().key());

if (stack.get().key() instanceof FluidKey){
var multiplier = 1000; //If no keys pressed
if (hasShiftDown() && hasControlDown()) {multiplier = 1;}
else if (hasControlDown()) {multiplier = 10;}
else if (hasShiftDown()) {multiplier = 100;}

value = (int) (stack.asStack().count + Math.signum(pDelta) * multiplier);
}

if (maxStackSize < 0)
return Math.max(1, value);

Expand All @@ -350,12 +361,21 @@ private int scrollInputClampRemoval(int value, int min, int max, Operation<Integ
ordinal = 1
)
)
private int scrollOutputClampRemoval(int value, int min, int max, Operation<Integer> original) {
private int scrollOutputClampRemoval(int value, int min, int max, Operation<Integer> original, @Local(ordinal = 2, argsOnly = true) double pDelta) {
BigGenericStack stack = BigGenericStack.of(outputConfig);

int maxStackSize = GenericContentExtender.registrationOf(stack.get().key()).clientProvider().guiHandler()
.maxStackSize(stack.get().key());

if (stack.get().key() instanceof FluidKey){
var multiplier = 1000; //If no keys pressed
if (hasShiftDown() && hasControlDown()) {multiplier = 1;}
else if (hasControlDown()) {multiplier = 10;}
else if (hasShiftDown()) {multiplier = 100;}

value = (int) (stack.asStack().count + Math.signum(pDelta) * multiplier);
}

if (maxStackSize < 0)
return Math.max(1, value);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@
import net.minecraftforge.items.ItemStackHandler;
import net.minecraftforge.items.SlotItemHandler;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Debug;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Constant;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.ModifyConstant;
import org.spongepowered.asm.mixin.injection.Redirect;
import ru.zznty.create_factory_abstractions.api.generic.stack.GenericStack;
Expand All @@ -44,6 +46,7 @@
import ru.zznty.create_factory_abstractions.generic.support.GenericRedstoneRequester;
import ru.zznty.create_factory_abstractions.generic.support.GenericRedstoneRequesterConfigurationPacket;
import ru.zznty.create_factory_logistics.logistics.generic.FluidGenericStack;
import ru.zznty.create_factory_logistics.logistics.generic.FluidKey;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -163,6 +166,26 @@ private boolean isIngredientEmptyMouseHandler(boolean original,
return genericStackLocalRef.get().isEmpty();
}

@ModifyArg(
method = "mouseScrolled",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/util/Mth;clamp(III)I"
),
index = 0
)
private int transferNum(int transfer, @Local(ordinal = 2) int i, @Local(ordinal = 2, argsOnly = true) double pDelta , @Share("genericStackLocalRef") LocalRef<GenericStack> genericStackLocalRef){
if (genericStackLocalRef.get().key() instanceof FluidKey){
var multiplier = 1000; //If no keys are pressed
if (hasShiftDown() && hasControlDown()) {multiplier = 1;}
else if (hasControlDown()) {multiplier = 10;}
else if (hasShiftDown()) {multiplier = 100;}

transfer = (int) (amounts.get(i) + Math.signum(pDelta) * multiplier);
}
return transfer;
}

@ModifyConstant(
method = "mouseScrolled",
constant = @Constant(intValue = 256)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.renderer.Rect2i;
import net.minecraft.network.chat.Component;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Inventory;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
Expand All @@ -25,6 +26,7 @@
import net.minecraft.world.level.block.Blocks;
import org.spongepowered.asm.mixin.*;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.Redirect;
import ru.zznty.create_factory_abstractions.api.generic.crafting.OrderProvider;
import ru.zznty.create_factory_abstractions.api.generic.crafting.RecipeRequestHelper;
Expand All @@ -36,6 +38,7 @@
import ru.zznty.create_factory_abstractions.generic.support.BigGenericStack;
import ru.zznty.create_factory_abstractions.generic.support.CraftableGenericStack;
import ru.zznty.create_factory_abstractions.generic.support.GenericInventorySummary;
import ru.zznty.create_factory_logistics.logistics.generic.FluidKey;
import ru.zznty.create_factory_logistics.logistics.ingredient.ClickableIngredientProvider;
import ru.zznty.create_factory_logistics.mixin.accessor.CategoryEntryAccessor;
import ru.zznty.create_factory_logistics.mixin.accessor.StockTickerBlockEntityAccessor;
Expand Down Expand Up @@ -167,6 +170,20 @@ private BigItemStack createOrderForIngredientInClicked(ItemStack $, int count,
return genericStack.asStack();
}

@ModifyArg(
method = "mouseScrolled",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/util/Mth;ceil(D)I"
)
)
private double transferNum(double transfer, @Local BigItemStack entry, @Local(ordinal = 2, argsOnly = true) double delta){
if (BigGenericStack.of(entry).get().key() instanceof FluidKey){
transfer = Mth.ceil(Math.abs(delta)) * (hasControlDown()? 10 : 1000);
}
return transfer;
}

@Redirect(
method = "mouseScrolled",
at = @At(
Expand Down