no impl dep, woo
This commit is contained in:
parent
1f113fbbdd
commit
c4bb2730cb
4 changed files with 24 additions and 32 deletions
|
@ -1,7 +1,7 @@
|
|||
package at.petrak.hexcasting.fabric.interop.emi;
|
||||
|
||||
import dev.emi.emi.EmiRenderHelper;
|
||||
import dev.emi.emi.api.recipe.EmiRecipe;
|
||||
import dev.emi.emi.api.render.EmiTexture;
|
||||
import dev.emi.emi.api.stack.EmiIngredient;
|
||||
import dev.emi.emi.api.stack.EmiStack;
|
||||
import dev.emi.emi.api.widget.WidgetHolder;
|
||||
|
@ -62,8 +62,8 @@ public abstract class EmiVillagerRecipe implements EmiRecipe {
|
|||
}
|
||||
|
||||
public void addWidgets(WidgetHolder widgets) {
|
||||
widgets.addTexture(EmiRenderHelper.WIDGETS, 27, 3, 13, 13, 82, 0);
|
||||
widgets.addTexture(EmiRenderHelper.WIDGETS, 75, 1, 24, 17, 44, 0);
|
||||
widgets.addTexture(EmiTexture.PLUS, 27, 3);
|
||||
widgets.addTexture(EmiTexture.EMPTY_ARROW, 75, 1);
|
||||
widgets.addSlot(this.input, 0, 0);
|
||||
widgets.addSlot(this.catalyst, 49, 0).catalyst(this.isCatalyst);
|
||||
widgets.addSlot(this.result, 107, 0).recipeContext(this);
|
||||
|
|
|
@ -5,13 +5,12 @@ import at.petrak.hexcasting.common.recipe.BrainsweepRecipe;
|
|||
import at.petrak.hexcasting.common.recipe.HexRecipeSerializers;
|
||||
import at.petrak.hexcasting.common.recipe.ingredient.VillagerIngredient;
|
||||
import at.petrak.hexcasting.mixin.accessor.AccessorPoiType;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import dev.emi.emi.api.EmiPlugin;
|
||||
import dev.emi.emi.api.EmiRegistry;
|
||||
import dev.emi.emi.api.recipe.EmiRecipeCategory;
|
||||
import dev.emi.emi.api.render.EmiTexture;
|
||||
import dev.emi.emi.api.stack.EmiIngredient;
|
||||
import dev.emi.emi.api.stack.EmiStack;
|
||||
import net.minecraft.client.gui.GuiComponent;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.ai.village.poi.PoiType;
|
||||
|
@ -37,22 +36,16 @@ public class HexEMIPlugin implements EmiPlugin {
|
|||
private static final ResourceLocation SIMPLIFIED_ICON_PROFESSION = modLoc("textures/gui/villager_profession.png");
|
||||
|
||||
public static final EmiRecipeCategory BRAINSWEEP = new EmiRecipeCategory(BRAINSWEEP_ID,
|
||||
new PatternRendererEMI(BRAINSWEEP_ID, 16, 16), (matrices, x, y, delta) -> {
|
||||
RenderSystem.setShaderTexture(0, SIMPLIFIED_ICON_BRAINSWEEP);
|
||||
GuiComponent.blit(matrices, x, y, 0, 0, 16, 16, 16, 16);
|
||||
});
|
||||
new PatternRendererEMI(BRAINSWEEP_ID, 16, 16),
|
||||
new EmiTexture(SIMPLIFIED_ICON_BRAINSWEEP, 0, 0, 16, 16, 16, 16, 16, 16));
|
||||
|
||||
public static final EmiRecipeCategory VILLAGER_LEVELING = new EmiRecipeCategory(VILLAGER_LEVELING_ID,
|
||||
EmiStack.of(Items.EMERALD), (matrices, x, y, delta) -> {
|
||||
RenderSystem.setShaderTexture(0, SIMPLIFIED_ICON_LEVELING);
|
||||
GuiComponent.blit(matrices, x, y, 0, 0, 16, 16, 16, 16);
|
||||
});
|
||||
EmiStack.of(Items.EMERALD),
|
||||
new EmiTexture(SIMPLIFIED_ICON_LEVELING, 0, 0, 16, 16, 16, 16, 16, 16));
|
||||
|
||||
public static final EmiRecipeCategory VILLAGER_PROFESSION = new EmiRecipeCategory(VILLAGER_PROFESSION_ID,
|
||||
EmiStack.of(Blocks.GRINDSTONE), (matrices, x, y, delta) -> {
|
||||
RenderSystem.setShaderTexture(0, SIMPLIFIED_ICON_PROFESSION);
|
||||
GuiComponent.blit(matrices, x, y, 0, 0, 16, 16, 16, 16);
|
||||
});
|
||||
EmiStack.of(Blocks.LECTERN),
|
||||
new EmiTexture(SIMPLIFIED_ICON_PROFESSION, 0, 0, 16, 16, 16, 16, 16, 16));
|
||||
|
||||
@Override
|
||||
public void register(EmiRegistry registry) {
|
||||
|
@ -63,7 +56,7 @@ public class HexEMIPlugin implements EmiPlugin {
|
|||
|
||||
for (BrainsweepRecipe recipe : registry.getRecipeManager().getAllRecipesFor(HexRecipeSerializers.BRAINSWEEP_TYPE)) {
|
||||
var inputs = EmiIngredient.of(recipe.blockIn().getDisplayedStacks().stream()
|
||||
.map(EmiStack::of).toList());
|
||||
.map(EmiStack::of).toList());
|
||||
var villagerInput = VillagerEmiStack.atLevelOrHigher(recipe.villagerIn(), true);
|
||||
var output = EmiStack.of(recipe.result().getBlock());
|
||||
registry.addRecipe(new EmiBrainsweepRecipe(inputs, villagerInput, output, recipe.getId()));
|
||||
|
@ -80,18 +73,18 @@ public class HexEMIPlugin implements EmiPlugin {
|
|||
Set<BlockState> states = ((AccessorPoiType) poi).hex$matchingStates();
|
||||
if (!states.isEmpty()) {
|
||||
List<Item> workstations = states.stream()
|
||||
.map(BlockState::getBlock)
|
||||
.map(Block::asItem)
|
||||
.distinct()
|
||||
.filter((it) -> it != Items.AIR)
|
||||
.toList();
|
||||
.map(BlockState::getBlock)
|
||||
.map(Block::asItem)
|
||||
.distinct()
|
||||
.filter((it) -> it != Items.AIR)
|
||||
.toList();
|
||||
|
||||
if (!workstations.isEmpty()) {
|
||||
registry.addWorkstation(VILLAGER_LEVELING, EmiIngredient.of(workstations.stream().map(EmiStack::of).toList()));
|
||||
registry.addWorkstation(VILLAGER_PROFESSION, EmiIngredient.of(workstations.stream().map(EmiStack::of).toList()));
|
||||
registry.addRecipe(new EmiProfessionRecipe(new VillagerEmiStack(basicVillager),
|
||||
EmiIngredient.of(workstations.stream().map(EmiStack::of).toList()),
|
||||
new VillagerEmiStack(manWithJob), poiRecipeId));
|
||||
EmiIngredient.of(workstations.stream().map(EmiStack::of).toList()),
|
||||
new VillagerEmiStack(manWithJob), poiRecipeId));
|
||||
|
||||
for (int lvl = 1; lvl < 5; lvl++) {
|
||||
ResourceLocation levelRecipeId = modLoc("villager/levelup/" + lvl + "/" + id.getNamespace() + "/" + id.getPath());
|
||||
|
|
|
@ -6,13 +6,13 @@ import at.petrak.hexcasting.interop.utils.PatternDrawingUtil;
|
|||
import at.petrak.hexcasting.interop.utils.PatternEntry;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
import dev.emi.emi.api.recipe.EmiRecipeCategory;
|
||||
import dev.emi.emi.api.render.EmiRenderable;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.phys.Vec2;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PatternRendererEMI implements EmiRecipeCategory.Renderer {
|
||||
public class PatternRendererEMI implements EmiRenderable {
|
||||
|
||||
private final long startTime = System.currentTimeMillis();
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@ package at.petrak.hexcasting.fabric.interop.emi;
|
|||
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import dev.emi.emi.EmiRenderHelper;
|
||||
import dev.emi.emi.api.EmiRender;
|
||||
import dev.emi.emi.api.render.EmiRender;
|
||||
import dev.emi.emi.api.render.EmiTexture;
|
||||
import dev.emi.emi.api.stack.EmiIngredient;
|
||||
import dev.emi.emi.api.widget.Bounds;
|
||||
import dev.emi.emi.api.widget.SlotWidget;
|
||||
|
@ -46,11 +46,10 @@ public class TheCoolerSlotWidget extends SlotWidget {
|
|||
RenderSystem.setShaderTexture(0, this.textureId);
|
||||
GuiComponent.blit(poseStack, bounds.x(), bounds.y(), width, height, (float)this.u, (float)this.v, width, height, 256, 256);
|
||||
} else {
|
||||
RenderSystem.setShaderTexture(0, EmiRenderHelper.WIDGETS);
|
||||
if (this.output) {
|
||||
GuiComponent.blit(poseStack, bounds.x(), bounds.y(), 26, 26, 18.0F, 0.0F, 26, 26, 256, 256);
|
||||
EmiTexture.LARGE_SLOT.render(poseStack, bounds.x(), bounds.y(), delta);
|
||||
} else {
|
||||
GuiComponent.blit(poseStack, bounds.x(), bounds.y(), 18, 18, 0.0F, 0.0F, 18, 18, 256, 256);
|
||||
EmiTexture.SLOT.render(poseStack, bounds.x(), bounds.y(), delta);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue