JEI fixes

- Fluids in JEI now display the exact amount required
- Fixed short background of custom compacting JEI
- Fixed localization of sawing recipe category
- Fixed blocks waterlogged by a pump not scheduling a fluid update
This commit is contained in:
simibubi 2020-10-13 20:39:44 +02:00
parent afa94c3e77
commit d973e9bcdd
16 changed files with 94 additions and 43 deletions

View file

@ -368,16 +368,16 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
82524600ca83a766522129634a44b47a277a4b71 assets/create/lang/en_ud.json
c39a5082dd2b24a98e1f6c66884a855a72cd52f1 assets/create/lang/en_us.json
38515a29696ded8afad721e1d7e5825179ae358c assets/create/lang/unfinished/de_de.json
8376325bea8c0234b7634b6852b7016df9c8814f assets/create/lang/unfinished/fr_fr.json
ea8e85c8d7d5354429f420667537a7b62ab12a1c assets/create/lang/unfinished/it_it.json
12a7c0d56e705004deb23b2cc16eb84a419ce38b assets/create/lang/unfinished/ja_jp.json
6672691add00fdace20218ecbb6d6a46273aa765 assets/create/lang/unfinished/ko_kr.json
3e33fd417af5812b028834666de6983c78cbe05f assets/create/lang/unfinished/nl_nl.json
6f0a8d1ef696e514f40b3d5204d21e1391ed5686 assets/create/lang/unfinished/pt_br.json
f65718ac2d3d40a44f266fd7143e9a3b1067ffae assets/create/lang/unfinished/ru_ru.json
67e3f92bb97e5c441f8efe375a35662af0d805f4 assets/create/lang/unfinished/zh_cn.json
281575a7e3a9366ec0387cac521b0cfa2f8e4f3c assets/create/lang/en_us.json
f9a41ae797e8c22f754dd41afbda3aecdf93e46d assets/create/lang/unfinished/de_de.json
d8e3bbe36dee5c4a32e7ef380d24b503cba9e2ee assets/create/lang/unfinished/fr_fr.json
21682e4b2ce3c0979782bf5a039e6b9415c92d8b assets/create/lang/unfinished/it_it.json
04a9ea4a31ec349b250c0def154372786b912bac assets/create/lang/unfinished/ja_jp.json
dd78403b3c6d34bd7d2e3a6fc00df147f0d2481a assets/create/lang/unfinished/ko_kr.json
105ff3f47b16a93f491cf0af6a3ac6cb2690d90e assets/create/lang/unfinished/nl_nl.json
103c349cebf7911ec0a69289bd10dee60af1ae9f assets/create/lang/unfinished/pt_br.json
a64570d2ad77515f24128a426ddba51c7201910f assets/create/lang/unfinished/ru_ru.json
9740448b9801fb79c8004de155aafd0afe77a183 assets/create/lang/unfinished/zh_cn.json
846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json
1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json
1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json

View file

@ -548,7 +548,7 @@
"create.recipe.pressing": "Pressing",
"create.recipe.mixing": "Mixing",
"create.recipe.packing": "Compacting",
"create.recipe.mechanical_sawing": "Sawing",
"create.recipe.sawing": "Sawing",
"create.recipe.mechanical_crafting": "Mechanical Crafting",
"create.recipe.block_cutting": "Block Cutting",
"create.recipe.blockzapper_upgrade": "Handheld Blockzapper",
@ -571,6 +571,8 @@
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.generic.unit.bucket": "1 Bucket",
"create.generic.unit.millibuckets": "%1$smB",
"create.action.scroll": "Scroll",
"create.action.confirm": "Confirm",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 859",
"_": "Missing Localizations: 861",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "Mechanische Presse",
"create.recipe.mixing": "UNLOCALIZED: Mixing",
"create.recipe.packing": "UNLOCALIZED: Compacting",
"create.recipe.mechanical_sawing": "UNLOCALIZED: Sawing",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "UNLOCALIZED: Mechanical Crafting",
"create.recipe.block_cutting": "UNLOCALIZED: Block Cutting",
"create.recipe.blockzapper_upgrade": "Blockpistole",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "UNLOCALIZED: RPM",
"create.generic.unit.stress": "UNLOCALIZED: su",
"create.generic.unit.degrees": "UNLOCALIZED: °",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "Wechseln",
"create.action.confirm": "Bestätigen",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 483",
"_": "Missing Localizations: 486",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "Pressage",
"create.recipe.mixing": "Mixage",
"create.recipe.packing": "Compactage",
"create.recipe.mechanical_sawing": "Sciage",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "Fabrication mécanique",
"create.recipe.block_cutting": "Coupe de bloc",
"create.recipe.blockzapper_upgrade": "Blockzappeur portable",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "tr/min",
"create.generic.unit.stress": "us",
"create.generic.unit.degrees": "°",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "Faire défiler",
"create.action.confirm": "Confirmer",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 467",
"_": "Missing Localizations: 470",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "Pressatura",
"create.recipe.mixing": "Mescolamento",
"create.recipe.packing": "Compattazione",
"create.recipe.mechanical_sawing": "Segagione",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "Creazione Meccanico",
"create.recipe.block_cutting": "Taglio Blocco",
"create.recipe.blockzapper_upgrade": "UNLOCALIZED: Handheld Blockzapper",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "Scorri",
"create.action.confirm": "Conferma",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 462",
"_": "Missing Localizations: 465",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "押しつぶし",
"create.recipe.mixing": "混合",
"create.recipe.packing": "圧縮",
"create.recipe.mechanical_sawing": "製材",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "メカニカルクラフト",
"create.recipe.block_cutting": "ブロックカット",
"create.recipe.blockzapper_upgrade": "携帯型ブロックザッパー",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "スクロール",
"create.action.confirm": "確認",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 467",
"_": "Missing Localizations: 470",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "압착",
"create.recipe.mixing": "혼합",
"create.recipe.packing": "압축",
"create.recipe.mechanical_sawing": "제재",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "기계 조합",
"create.recipe.block_cutting": "블럭 절단",
"create.recipe.blockzapper_upgrade": "UNLOCALIZED: Handheld Blockzapper",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "스크롤하세요",
"create.action.confirm": "확인",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 797",
"_": "Missing Localizations: 800",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "Persen",
"create.recipe.mixing": "Mengen",
"create.recipe.packing": "Compressen",
"create.recipe.mechanical_sawing": "Zagen",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "UNLOCALIZED: Mechanical Crafting",
"create.recipe.block_cutting": "Blok Zagen",
"create.recipe.blockzapper_upgrade": "Blokzapper",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "UNLOCALIZED: RPM",
"create.generic.unit.stress": "UNLOCALIZED: su",
"create.generic.unit.degrees": "UNLOCALIZED: °",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "Scroll",
"create.action.confirm": "Bevestigen",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 866",
"_": "Missing Localizations: 868",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "Prensa Mecânica",
"create.recipe.mixing": "UNLOCALIZED: Mixing",
"create.recipe.packing": "UNLOCALIZED: Compacting",
"create.recipe.mechanical_sawing": "UNLOCALIZED: Sawing",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "UNLOCALIZED: Mechanical Crafting",
"create.recipe.block_cutting": "UNLOCALIZED: Block Cutting",
"create.recipe.blockzapper_upgrade": "Blockzapper Portátil",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "UNLOCALIZED: RPM",
"create.generic.unit.stress": "UNLOCALIZED: su",
"create.generic.unit.degrees": "UNLOCALIZED: °",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "Rolar",
"create.action.confirm": "Confirmar",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 860",
"_": "Missing Localizations: 862",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "Механический пресс",
"create.recipe.mixing": "UNLOCALIZED: Mixing",
"create.recipe.packing": "UNLOCALIZED: Compacting",
"create.recipe.mechanical_sawing": "UNLOCALIZED: Sawing",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "UNLOCALIZED: Mechanical Crafting",
"create.recipe.block_cutting": "UNLOCALIZED: Block Cutting",
"create.recipe.blockzapper_upgrade": "Портативный размещатель блоков",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "UNLOCALIZED: RPM",
"create.generic.unit.stress": "UNLOCALIZED: su",
"create.generic.unit.degrees": "UNLOCALIZED: °",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "КолМыши",
"create.action.confirm": "Подтвердить",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 147",
"_": "Missing Localizations: 150",
"_": "->------------------------] Game Elements [------------------------<-",
@ -549,7 +549,7 @@
"create.recipe.pressing": "金属压片",
"create.recipe.mixing": "混合搅拌",
"create.recipe.packing": "压块塑形",
"create.recipe.mechanical_sawing": "木材切割",
"create.recipe.sawing": "UNLOCALIZED: Sawing",
"create.recipe.mechanical_crafting": "自动合成",
"create.recipe.block_cutting": "方块切割",
"create.recipe.blockzapper_upgrade": "UNLOCALIZED: Handheld Blockzapper",
@ -572,6 +572,8 @@
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "°",
"create.generic.unit.bucket": "UNLOCALIZED: 1 Bucket",
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
"create.action.scroll": "滚轮",
"create.action.confirm": "确认",

View file

@ -6,6 +6,7 @@ import java.util.stream.Collectors;
import org.apache.commons.lang3.mutable.MutableInt;
import com.google.common.collect.ImmutableList;
import com.simibubi.create.content.contraptions.processing.BasinRecipe;
import com.simibubi.create.content.contraptions.processing.HeatCondition;
import com.simibubi.create.foundation.fluid.FluidIngredient;
@ -108,6 +109,8 @@ public class BasinCategory extends CreateRecipeCategory<BasinRecipe> {
fluidStacks.init(j, false, 142, 51 + yOffset);
fluidStacks.set(j, fluidOutput);
}
addFluidTooltip(fluidStacks, fluidIngredients, ImmutableList.of(fluidOutput));
}
@Override
@ -118,6 +121,7 @@ public class BasinCategory extends CreateRecipeCategory<BasinRecipe> {
int xOffset = size < 3 ? (3 - size) * 19 / 2 : 0;
HeatCondition requiredHeat = recipe.getRequiredHeat();
int yOffset = requiredHeat != HeatCondition.NONE ? 30 : 10;
for (int i = 0; i < size; i++)
AllGuiTextures.JEI_SLOT.draw(16 + xOffset + (i % 3) * 19, 50 - (i / 3) * 19 + yOffset);
@ -125,5 +129,5 @@ public class BasinCategory extends CreateRecipeCategory<BasinRecipe> {
AllGuiTextures.JEI_DOWN_ARROW.draw(136, 32 + yOffset);
AllGuiTextures.JEI_SHADOW.draw(81, 57 + yOffset);
}
}

View file

@ -1,5 +1,6 @@
package com.simibubi.create.compat.jei.category;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -8,10 +9,12 @@ import com.simibubi.create.compat.jei.DoubleItemIcon;
import com.simibubi.create.compat.jei.EmptyBackground;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.utility.Lang;
import mezz.jei.api.gui.drawable.IDrawable;
import mezz.jei.api.gui.ingredient.IGuiFluidStackGroup;
import mezz.jei.api.gui.ingredient.IGuiItemStackGroup;
import mezz.jei.api.recipe.category.IRecipeCategory;
import net.minecraft.item.ItemStack;
@ -19,6 +22,7 @@ import net.minecraft.item.crafting.IRecipe;
import net.minecraft.util.IItemProvider;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fluids.FluidStack;
public abstract class CreateRecipeCategory<T extends IRecipe<?>> implements IRecipeCategory<T> {
@ -62,7 +66,9 @@ public abstract class CreateRecipeCategory<T extends IRecipe<?>> implements IRec
List<ProcessingOutput> rollableResults = processingRecipe.getRollableResults();
if (rollableResults.size() <= index)
return jeiSlot;
if (processingRecipe.getRollableResults().get(index).getChance() == 1)
if (processingRecipe.getRollableResults()
.get(index)
.getChance() == 1)
return jeiSlot;
return AllGuiTextures.JEI_CHANCE_SLOT;
}
@ -85,8 +91,25 @@ public abstract class CreateRecipeCategory<T extends IRecipe<?>> implements IRec
return;
ProcessingOutput output = results.get(slotIndex - 1);
if (output.getChance() != 1)
tooltip.add(1, TextFormatting.GOLD
+ Lang.translate("recipe.processing.chance", (int) (output.getChance() * 100)));
tooltip.add(1,
TextFormatting.GOLD + Lang.translate("recipe.processing.chance", (int) (output.getChance() * 100)));
});
}
protected static void addFluidTooltip(IGuiFluidStackGroup fluidStacks, List<FluidIngredient> inputs,
List<FluidStack> outputs) {
List<Integer> amounts = new ArrayList<>();
inputs.forEach(f -> amounts.add(f.getRequiredAmount()));
outputs.forEach(f -> amounts.add(f.getAmount()));
fluidStacks.addTooltipCallback((slotIndex, input, ingredient, tooltip) -> {
int amount = amounts.get(slotIndex);
String text = TextFormatting.GOLD + (amount == 1000 ? Lang.translate("generic.unit.bucket")
: Lang.translate("generic.unit.millibuckets", amount));
if (tooltip.isEmpty())
tooltip.add(0, text);
else
tooltip.set(0, tooltip.get(0) + " " + text);
});
}
@ -99,7 +122,7 @@ public abstract class CreateRecipeCategory<T extends IRecipe<?>> implements IRec
Float chance = catalystIndices.get(slotIndex);
tooltip.add(1, TextFormatting.YELLOW + Lang.translate("recipe.processing.catalyst"));
tooltip.add(2, TextFormatting.GOLD
+ Lang.translate("recipe.processing.chanceToReturn", (int) (chance.floatValue() * 100)));
+ Lang.translate("recipe.processing.chanceToReturn", (int) (chance.floatValue() * 100)));
});
}

View file

@ -19,7 +19,7 @@ public class PackingCategory extends BasinCategory {
public PackingCategory() {
super("packing", doubleItemIcon(AllBlocks.MECHANICAL_PRESS.get(), AllBlocks.BASIN.get()),
emptyBackground(177, 70));
emptyBackground(177, 110));
}
@Override
@ -37,12 +37,12 @@ public class PackingCategory extends BasinCategory {
int rows = size == 4 ? 2 : 3;
while (i < size) {
Ingredient ingredient = ingredients2.get(i);
itemStacks.init(i, true, (rows == 2 ? 26 : 17) + (i % rows) * 19, 50 - (i / rows) * 19);
itemStacks.init(i, true, (rows == 2 ? 26 : 17) + (i % rows) * 19, 60 - (i / rows) * 19);
itemStacks.set(i, Arrays.asList(ingredient.getMatchingStacks()));
i++;
}
itemStacks.init(i, false, 141, 50);
itemStacks.init(i, false, 141, 60);
itemStacks.set(i, recipe.getRecipeOutput());
}
@ -56,13 +56,13 @@ public class PackingCategory extends BasinCategory {
int size = ingredients2.size();
int rows = size == 4 ? 2 : 3;
for (int i = 0; i < size; i++)
AllGuiTextures.JEI_SLOT.draw((rows == 2 ? 26 : 17) + (i % rows) * 19, 50 - (i / rows) * 19);
AllGuiTextures.JEI_SLOT.draw(141, 50);
AllGuiTextures.JEI_DOWN_ARROW.draw(136, 32);
AllGuiTextures.JEI_SHADOW.draw(81, 57);
AllGuiTextures.JEI_SLOT.draw((rows == 2 ? 26 : 17) + (i % rows) * 19, 60 - (i / rows) * 19);
AllGuiTextures.JEI_SLOT.draw(141, 60);
AllGuiTextures.JEI_DOWN_ARROW.draw(136, 42);
AllGuiTextures.JEI_SHADOW.draw(81, 67);
}
press.draw(getBackground().getWidth() / 2 + 6, 30);
press.draw(getBackground().getWidth() / 2 + 6, 40);
}
}

View file

@ -59,6 +59,7 @@ public class OpenEndedPipe {
return;
if (waterlog) {
world.setBlockState(outputPos, state.with(BlockStateProperties.WATERLOGGED, false), 3);
world.getPendingFluidTicks().scheduleTick(outputPos, Fluids.WATER, 1);
return;
}
world.setBlockState(outputPos, fluidState.getBlockState()
@ -79,6 +80,7 @@ public class OpenEndedPipe {
if (providedFluid.getFluid() != Fluids.WATER)
return;
world.setBlockState(outputPos, state.with(BlockStateProperties.WATERLOGGED, true), 3);
world.getPendingFluidTicks().scheduleTick(outputPos, Fluids.WATER, 1);
return;
}
world.setBlockState(outputPos, providedFluid.getDefaultState()

View file

@ -23,7 +23,7 @@
"create.recipe.pressing": "Pressing",
"create.recipe.mixing": "Mixing",
"create.recipe.packing": "Compacting",
"create.recipe.mechanical_sawing": "Sawing",
"create.recipe.sawing": "Sawing",
"create.recipe.mechanical_crafting": "Mechanical Crafting",
"create.recipe.block_cutting": "Block Cutting",
"create.recipe.blockzapper_upgrade": "Handheld Blockzapper",
@ -46,6 +46,8 @@
"create.generic.unit.rpm": "RPM",
"create.generic.unit.stress": "su",
"create.generic.unit.degrees": "\u00B0",
"create.generic.unit.bucket": "1 Bucket",
"create.generic.unit.millibuckets": "%1$smB",
"create.action.scroll": "Scroll",
"create.action.confirm": "Confirm",