Skip to content
Draft
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
4 changes: 3 additions & 1 deletion src/main/java/vectorwing/farmersdelight/FarmersDelight.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ public static Identifier id(String name) {
public FarmersDelight(IEventBus modEventBus, ModContainer modContainer) {
modEventBus.addListener(CommonSetup::init);
if (FMLEnvironment.getDist().isClient()) {
modEventBus.addListener(ClientSetupEvents::init);
// TODO may be unnecessary?
//modEventBus.addListener(ClientSetupEvents::init);
modContainer.registerExtensionPoint(IConfigScreenFactory.class, ConfigurationScreen::new);
}

Expand Down Expand Up @@ -59,6 +60,7 @@ public FarmersDelight(IEventBus modEventBus, ModContainer modContainer) {
ModIngredientTypes.INGREDIENT_TYPES.register(modEventBus);
ModAdvancements.TRIGGERS.register(modEventBus);
ModConsumeEffectTypes.CONSUME_EFFECTS.register(modEventBus);
ModRecipeCategories.RECIPE_BOOK_CATEGORIES.register(modEventBus);

RegistryAliases.addRegistryAliases();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.renderer.entity.ThrownItemRenderer;
import net.minecraft.client.renderer.special.SpecialModelRenderer;
import net.minecraft.resources.Identifier;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.LivingEntity;
Expand All @@ -23,7 +24,7 @@
import vectorwing.farmersdelight.client.particle.SparkleParticle;
import vectorwing.farmersdelight.client.particle.StarParticle;
import vectorwing.farmersdelight.client.particle.SteamParticle;
import vectorwing.farmersdelight.client.recipebook.RecipeCategories;
import vectorwing.farmersdelight.common.registry.ModRecipeCategories;
import vectorwing.farmersdelight.client.renderer.*;
import vectorwing.farmersdelight.common.EnumParameters;
import vectorwing.farmersdelight.common.block.entity.StoveBlockEntity;
Expand All @@ -33,33 +34,36 @@
@EventBusSubscriber(modid = FarmersDelight.MODID, value = Dist.CLIENT)
public class ClientSetupEvents
{
public static void init(final FMLClientSetupEvent event) {
event.enqueueWork(() -> ItemProperties.register(ModItems.SKILLET.get(), Identifier.withDefaultNamespace("cooking"),
(stack, world, entity, s) -> stack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT, ItemStackWrapper.EMPTY).getStack().isEmpty() ? 0 : 1)
);
}
// TODO unnecessary? data component covers this.
// public static void init(final FMLClientSetupEvent event) {
//
// event.enqueueWork(() -> ItemProperties.register(ModItems.SKILLET.get(), Identifier.withDefaultNamespace("cooking"),
// (stack, world, entity, s) -> stack.getOrDefault(ModDataComponents.SKILLET_INGREDIENT, ItemStackWrapper.EMPTY).getStack().isEmpty() ? 0 : 1)
// );
// }

@SubscribeEvent
public static void registerClientExtensions(RegisterClientExtensionsEvent event) {
event.registerItem(new IClientItemExtensions()
{
BlockEntityWithoutLevelRenderer renderer = new SkilletItemRenderer();

@Override
public @NotNull BlockEntityWithoutLevelRenderer getCustomRenderer() {
return renderer;
}

@Override
public HumanoidModel.@Nullable ArmPose getArmPose(LivingEntity living, InteractionHand hand, ItemStack stack) {
return stack.has(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get()) ? EnumParameters.PROXY_SKILLET_FLIP.getValue() : null;
}
}, ModItems.SKILLET.get());
}

@SubscribeEvent
public static void registerSpecialRenderers(RegisterSpecialModelRendererEvent event) {
event.register(
Identifier.fromNamespaceAndPath(FarmersDelight.MODID, "skillet_special"),
SkilletItemRenderer.Unbaked.MAP_CODEC
);
}

@SubscribeEvent
public static void registerRecipeBookCategories(RegisterRecipeBookSearchCategoriesEvent event) {
RecipeCategories.init(event);
ModRecipeCategories.init(event);
}

@SubscribeEvent
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package vectorwing.farmersdelight.client.event;

import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.network.PacketDistributor;
import vectorwing.farmersdelight.FarmersDelight;
import vectorwing.farmersdelight.common.item.SkilletItem;
import vectorwing.farmersdelight.common.network.payload.FlipSkilletPayload;
import vectorwing.farmersdelight.common.registry.ModDataComponents;

import java.util.Objects;

@EventBusSubscriber(modid = FarmersDelight.MODID, value = Dist.CLIENT)
public class KeybindEvents
{
Expand All @@ -24,7 +26,8 @@ public static void preClientTick(ClientTickEvent.Pre event) { // Run this on pre
ItemStack useItem = player.getUseItem();
if (useItem.getItem() instanceof SkilletItem && !useItem.has(ModDataComponents.SKILLET_FLIP_TIMESTAMP.get())) {
while (mc.options.keyAttack.consumeClick()) {
PacketDistributor.sendToServer(FlipSkilletPayload.INSTANCE);
ClientPacketListener listener = Objects.requireNonNull(Minecraft.getInstance().getConnection());
listener.send(FlipSkilletPayload.INSTANCE);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,27 @@
import com.mojang.math.Axis;
import net.minecraft.client.gui.GuiGraphicsExtractor;
import net.minecraft.client.gui.screens.inventory.SignEditScreen;
import net.minecraft.client.model.Model;
import net.minecraft.client.renderer.blockentity.StandingSignRenderer;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.resources.model.sprite.Material;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.PlainSignBlock;
import net.minecraft.world.level.block.StandingSignBlock;
import net.minecraft.world.level.block.entity.SignBlockEntity;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.properties.WoodType;
import vectorwing.farmersdelight.common.block.state.CanvasSign;
import vectorwing.farmersdelight.common.registry.ModAtlases;

import javax.annotation.Nullable;

// TODO i'm pretty sure this doesn't display the right graphic. For now, it compiles
public class CanvasSignEditScreen extends SignEditScreen
{
@Nullable
protected SignRenderer.SignModel signModel;
protected Model.Simple signModel;
@Nullable
protected DyeColor dye;
protected final boolean isFrontText;
Expand All @@ -36,22 +41,16 @@ public CanvasSignEditScreen(SignBlockEntity signBlockEntity, boolean isFront, bo
@Override
protected void init() {
super.init();
this.signModel = SignRenderer.createSignModel(this.minecraft.getEntityModels(), this.woodType);
PlainSignBlock.Attachment attachment = PlainSignBlock.getAttachmentPoint(this.sign.getBlockState());
this.signModel = StandingSignRenderer.createSignModel(this.minecraft.getEntityModels(), WoodType.SPRUCE, attachment);
}

@Override
protected void renderSignBackground(GuiGraphicsExtractor guiGraphics, BlockState state) {
protected void extractSignBackground(GuiGraphicsExtractor graphics) {
if (this.signModel != null) {
boolean flag = state.getBlock() instanceof StandingSignBlock;
guiGraphics.pose().translate(0.0F, 31.0F, 0.0F);
if (!isFrontText) {
guiGraphics.pose().mulPose(Axis.YP.rotationDegrees(180));
}
guiGraphics.pose().scale(MAGIC_SCALE_NUMBER, MAGIC_SCALE_NUMBER, -MAGIC_SCALE_NUMBER);
Material material = ModAtlases.getCanvasSignMaterial(dye);
VertexConsumer vertexconsumer = material.buffer(guiGraphics.bufferSource(), this.signModel::renderType);
this.signModel.stick.visible = flag;
this.signModel.root.render(guiGraphics.pose(), vertexconsumer, 15728880, OverlayTexture.NO_OVERLAY);
int centerX = this.width / 2;
int x0 = centerX - 48;
int x1 = centerX + 48;
graphics.sign(this.signModel, MAGIC_SCALE_NUMBER, this.woodType, x0, 66, x1, 168);
}
}
}
Loading