Update to REI 3.0-pre (#1793)

* Update to REI 3.0-pre

* Update fabric.mod.json
This commit is contained in:
Daniel She 2019-08-19 21:26:47 +08:00 committed by Modmuss50
parent c03d99f11f
commit f0b8d99853
7 changed files with 56 additions and 72 deletions

View file

@ -93,7 +93,7 @@ dependencies {
modCompile "io.github.prospector:modmenu:1.7.7+build.116" modCompile "io.github.prospector:modmenu:1.7.7+build.116"
modCompile "io.github.prospector.silk:SilkAPI:1.2.4-43" modCompile "io.github.prospector.silk:SilkAPI:1.2.4-43"
modCompile ("me.shedaniel:RoughlyEnoughItems:2.9.7+build.145") { modCompile ("me.shedaniel:RoughlyEnoughItems:3.0-pre+build.1") {
//Thanks for moving the project breaking gradle... //Thanks for moving the project breaking gradle...
exclude group: 'io.github.prospector.modmenu', module: 'ModMenu' exclude group: 'io.github.prospector.modmenu', module: 'ModMenu'
} }

View file

@ -25,12 +25,13 @@
package techreborn.compat.rei; package techreborn.compat.rei;
import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.platform.GlStateManager;
import me.shedaniel.rei.api.*; import me.shedaniel.math.api.Point;
import me.shedaniel.rei.gui.renderables.RecipeRenderer; import me.shedaniel.math.api.Rectangle;
import me.shedaniel.rei.gui.widget.LabelWidget; import me.shedaniel.rei.api.RecipeCategory;
import me.shedaniel.rei.gui.widget.RecipeBaseWidget; import me.shedaniel.rei.api.Renderer;
import me.shedaniel.rei.gui.widget.SlotWidget; import me.shedaniel.rei.gui.renderers.RecipeRenderer;
import me.shedaniel.rei.gui.widget.Widget; import me.shedaniel.rei.gui.widget.*;
import me.shedaniel.rei.impl.ScreenHelper;
import me.shedaniel.rei.plugin.DefaultPlugin; import me.shedaniel.rei.plugin.DefaultPlugin;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.GuiLighting; import net.minecraft.client.render.GuiLighting;
@ -43,7 +44,7 @@ import net.minecraft.util.math.MathHelper;
import reborncore.common.crafting.RebornRecipe; import reborncore.common.crafting.RebornRecipe;
import reborncore.common.crafting.RebornRecipeType; import reborncore.common.crafting.RebornRecipeType;
import reborncore.common.util.StringUtils; import reborncore.common.util.StringUtils;
import java.awt.*;
import java.util.Collections; import java.util.Collections;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -75,12 +76,12 @@ public class MachineRecipeCategory<R extends RebornRecipe> implements RecipeCate
@Override @Override
public Renderer getIcon() { public Renderer getIcon() {
return Renderable.fromItemStack(new ItemStack(ReiPlugin.iconMap.getOrDefault(rebornRecipeType, () -> Items.DIAMOND_SHOVEL).asItem())); return Renderer.fromItemStack(new ItemStack(ReiPlugin.iconMap.getOrDefault(rebornRecipeType, () -> Items.DIAMOND_SHOVEL).asItem()));
} }
@Override @Override
public RecipeRenderer getSimpleRenderer(MachineRecipeDisplay<R> recipe) { public RecipeRenderer getSimpleRenderer(MachineRecipeDisplay<R> recipe) {
return Renderable.fromRecipe(() -> Collections.singletonList(recipe.getInput().get(0)), recipe::getOutput); return Renderer.fromRecipe(() -> Collections.singletonList(recipe.getInput().get(0)), recipe::getOutput);
} }
@Override @Override
@ -88,46 +89,33 @@ public class MachineRecipeCategory<R extends RebornRecipe> implements RecipeCate
MachineRecipeDisplay<R> machineRecipe = recipeDisplaySupplier.get(); MachineRecipeDisplay<R> machineRecipe = recipeDisplaySupplier.get();
Point startPoint = new Point((int) bounds.getCenterX() - 41, (int) bounds.getCenterY() - recipeLines*12 -1); Point startPoint = new Point( bounds.getCenterX() - 41, bounds.getCenterY() - recipeLines*12 -1);
class RecipeBackgroundWidget extends RecipeBaseWidget {
RecipeBackgroundWidget(Rectangle bounds) {
super(bounds);
}
public void render(int mouseX, int mouseY, float delta) {
super.render(mouseX, mouseY, delta);
GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
GuiLighting.disable();
MinecraftClient.getInstance().getTextureManager().bindTexture(DefaultPlugin.getDisplayTexture());
int width = MathHelper.ceil((double)(System.currentTimeMillis() / 50L) % 24.0D / 1.0D);
this.blit(startPoint.x + 24, startPoint.y + 1, 82, 91, width, 17);
}
}
List<Widget> widgets = new LinkedList<>(); List<Widget> widgets = new LinkedList<>();
widgets.add(new RecipeBackgroundWidget(bounds)); widgets.add(new RecipeArrowWidget(startPoint.x + 24, startPoint.y + 1, true));
int i = 0; int i = 0;
for (List<ItemStack> inputs : machineRecipe.getInput()){ for (List<ItemStack> inputs : machineRecipe.getInput()){
widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1 + (i++ * 20), inputs, true, true, true)); widgets.add(new SlotWidget(startPoint.x + 1, startPoint.y + 1 + (i++ * 20), Renderer.fromItemStacks(inputs), true, true, true));
} }
Text energyPerTick = new TranslatableText("techreborn.jei.recipe.running.cost", "E", machineRecipe.getEnergy()); Text energyPerTick = new TranslatableText("techreborn.jei.recipe.running.cost", "E", machineRecipe.getEnergy());
widgets.add(new LabelWidget(startPoint.x + 1, startPoint.y + 1 + (i++ * 20), energyPerTick.asFormattedString())); widgets.add(new LabelWidget(startPoint.x + 1, startPoint.y + 1 + (i++ * 20), energyPerTick.asFormattedString()){
@Override
public void render(int mouseX, int mouseY, float delta) {
font.draw(text, x - font.getStringWidth(text) / 2, y, ScreenHelper.isDarkModeEnabled() ? 0xFFBBBBBB : 0xFF404040);
}
});
i = 0; i = 0;
for (ItemStack outputs : machineRecipe.getOutput()){ for (ItemStack outputs : machineRecipe.getOutput()){
widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 1 + (i++ * 20), Collections.singletonList(outputs), true, true, true)); widgets.add(new SlotWidget(startPoint.x + 61, startPoint.y + 1 + (i++ * 20), Renderer.fromItemStack(outputs), true, true, true));
} }
return widgets; return widgets;
} }
@Override @Override
public DisplaySettings<MachineRecipeDisplay<R>> getDisplaySettings() { public int getDisplayHeight() {
return new DisplaySettings<MachineRecipeDisplay<R>>() {
public int getDisplayHeight(RecipeCategory category) {
if (recipeLines == 1) { if (recipeLines == 1) {
return 36; return 36;
} }
@ -140,14 +128,4 @@ public class MachineRecipeCategory<R extends RebornRecipe> implements RecipeCate
return 66; return 66;
} }
public int getDisplayWidth(RecipeCategory category, MachineRecipeDisplay<R> display) {
return 150;
}
public int getMaximumRecipePerPage(RecipeCategory category) {
return 99;
}
};
}
} }

View file

@ -34,7 +34,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class MachineRecipeDisplay<R extends RebornRecipe> implements RecipeDisplay<R> { public class MachineRecipeDisplay<R extends RebornRecipe> implements RecipeDisplay {
private final R recipe; private final R recipe;
private List<List<ItemStack>> inputs; private List<List<ItemStack>> inputs;
@ -53,8 +53,8 @@ public class MachineRecipeDisplay<R extends RebornRecipe> implements RecipeDispl
} }
@Override @Override
public Optional<R> getRecipe() { public Optional<Identifier> getRecipeLocation() {
return Optional.ofNullable(recipe); return Optional.ofNullable(recipe).map(RebornRecipe::getId);
} }
@Override @Override

View file

@ -24,9 +24,11 @@
package techreborn.compat.rei; package techreborn.compat.rei;
import me.shedaniel.rei.api.REIPluginEntry;
import me.shedaniel.rei.api.RecipeDisplay; import me.shedaniel.rei.api.RecipeDisplay;
import me.shedaniel.rei.api.RecipeHelper; import me.shedaniel.rei.api.RecipeHelper;
import me.shedaniel.rei.api.plugins.REIPluginV0;
import net.fabricmc.loader.api.SemanticVersion;
import net.fabricmc.loader.util.version.VersionParsingException;
import net.minecraft.item.ItemConvertible; import net.minecraft.item.ItemConvertible;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.recipe.Recipe; import net.minecraft.recipe.Recipe;
@ -35,19 +37,19 @@ import reborncore.common.crafting.RebornRecipe;
import reborncore.common.crafting.RebornRecipeType; import reborncore.common.crafting.RebornRecipeType;
import reborncore.common.crafting.RecipeManager; import reborncore.common.crafting.RecipeManager;
import techreborn.TechReborn; import techreborn.TechReborn;
import techreborn.api.recipe.recipes.*; import techreborn.api.recipe.recipes.RollingMachineRecipe;
import techreborn.compat.rei.rollingmachine.RollingMachineCategory;
import techreborn.compat.rei.rollingmachine.RollingMachineDisplay;
import techreborn.init.ModRecipes; import techreborn.init.ModRecipes;
import techreborn.init.TRContent; import techreborn.init.TRContent;
import techreborn.init.TRContent.Machine; import techreborn.init.TRContent.Machine;
import techreborn.compat.rei.rollingmachine.RollingMachineCategory;
import techreborn.compat.rei.rollingmachine.RollingMachineDisplay;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
public class ReiPlugin implements REIPluginEntry { public class ReiPlugin implements REIPluginV0 {
public static final Identifier PLUGIN = new Identifier(TechReborn.MOD_ID, "techreborn_plugin"); public static final Identifier PLUGIN = new Identifier(TechReborn.MOD_ID, "techreborn_plugin");
@ -80,6 +82,11 @@ public class ReiPlugin implements REIPluginEntry {
return PLUGIN; return PLUGIN;
} }
@Override
public SemanticVersion getMinimumVersion() throws VersionParsingException {
return SemanticVersion.parse("3.0-pre");
}
@Override @Override
public void registerPluginCategories(RecipeHelper recipeHelper) { public void registerPluginCategories(RecipeHelper recipeHelper) {
recipeHelper.registerCategory(new MachineRecipeCategory<>(ModRecipes.ALLOY_SMELTER)); recipeHelper.registerCategory(new MachineRecipeCategory<>(ModRecipes.ALLOY_SMELTER));

View file

@ -24,9 +24,8 @@
package techreborn.compat.rei.rollingmachine; package techreborn.compat.rei.rollingmachine;
import me.shedaniel.rei.api.Renderable;
import me.shedaniel.rei.api.Renderer; import me.shedaniel.rei.api.Renderer;
import me.shedaniel.rei.plugin.DefaultCraftingCategory; import me.shedaniel.rei.plugin.crafting.DefaultCraftingCategory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
@ -55,7 +54,7 @@ public class RollingMachineCategory extends DefaultCraftingCategory {
@Override @Override
public Renderer getIcon() { public Renderer getIcon() {
return Renderable.fromItemStack(new ItemStack(ReiPlugin.iconMap.getOrDefault(rebornRecipeType, () -> Items.DIAMOND_SHOVEL).asItem())); return Renderer.fromItemStack(new ItemStack(ReiPlugin.iconMap.getOrDefault(rebornRecipeType, () -> Items.DIAMOND_SHOVEL).asItem()));
} }
} }

View file

@ -1,6 +1,6 @@
package techreborn.compat.rei.rollingmachine; package techreborn.compat.rei.rollingmachine;
import me.shedaniel.rei.plugin.DefaultShapedDisplay; import me.shedaniel.rei.plugin.crafting.DefaultShapedDisplay;
import net.minecraft.recipe.ShapedRecipe; import net.minecraft.recipe.ShapedRecipe;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import techreborn.init.ModRecipes; import techreborn.init.ModRecipes;

View file

@ -19,7 +19,7 @@
"client": [ "client": [
"techreborn.TechRebornClient" "techreborn.TechRebornClient"
], ],
"rei_plugins": [ "rei_plugins_v0": [
"techreborn.compat.rei.ReiPlugin" "techreborn.compat.rei.ReiPlugin"
], ],
"towelette": [ "towelette": [