This commit is contained in:
parent
b91e4aae21
commit
aa5adbd59e
8 changed files with 57 additions and 49 deletions
|
@ -1,38 +1,17 @@
|
||||||
package fr.sushi.charmsnfabrics;
|
package fr.sushi.charmsnfabrics;
|
||||||
|
|
||||||
import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries;
|
import fr.sushi.charmsnfabrics.common.CnFRegistries;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
|
||||||
import net.minecraft.core.registries.Registries;
|
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.world.food.FoodProperties;
|
|
||||||
import net.minecraft.world.item.BlockItem;
|
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
|
||||||
import net.minecraft.world.item.CreativeModeTabs;
|
|
||||||
import net.minecraft.world.item.Item;
|
|
||||||
import net.minecraft.world.level.block.Block;
|
|
||||||
import net.minecraft.world.level.block.Blocks;
|
|
||||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
|
||||||
import net.minecraft.world.level.material.MapColor;
|
|
||||||
import net.neoforged.bus.api.IEventBus;
|
import net.neoforged.bus.api.IEventBus;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
|
||||||
import net.neoforged.fml.common.Mod;
|
import net.neoforged.fml.common.Mod;
|
||||||
import net.neoforged.fml.config.ModConfig;
|
import net.neoforged.fml.config.ModConfig;
|
||||||
import net.neoforged.fml.ModContainer;
|
import net.neoforged.fml.ModContainer;
|
||||||
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
|
|
||||||
import net.neoforged.neoforge.common.NeoForge;
|
|
||||||
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
|
|
||||||
import net.neoforged.neoforge.event.server.ServerStartingEvent;
|
|
||||||
import net.neoforged.neoforge.registries.DeferredBlock;
|
|
||||||
import net.neoforged.neoforge.registries.DeferredHolder;
|
|
||||||
import net.neoforged.neoforge.registries.DeferredItem;
|
|
||||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
|
||||||
|
|
||||||
@Mod(CharmsAndFabrics.MODID)
|
@Mod(CharmsAndFabrics.MODID)
|
||||||
public class CharmsAndFabrics {
|
public class CharmsAndFabrics {
|
||||||
public static final String MODID = "charmsnfabrics";
|
public static final String MODID = "charmsnfabrics";
|
||||||
|
|
||||||
public CharmsAndFabrics(IEventBus modEventBus, ModContainer modContainer) {
|
public CharmsAndFabrics(IEventBus modEventBus, ModContainer modContainer) {
|
||||||
CharmsAndFabricRegistries.register(modEventBus);
|
CnFRegistries.register(modEventBus);
|
||||||
|
|
||||||
modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
modContainer.registerConfig(ModConfig.Type.COMMON, Config.SPEC);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import fr.sushi.charmsnfabrics.client.datagen.CnFModelProvider;
|
||||||
import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel;
|
import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel;
|
||||||
import fr.sushi.charmsnfabrics.client.renderer.FloralWorkstationRenderer;
|
import fr.sushi.charmsnfabrics.client.renderer.FloralWorkstationRenderer;
|
||||||
import fr.sushi.charmsnfabrics.client.renderer.FlowerCrownRenderer;
|
import fr.sushi.charmsnfabrics.client.renderer.FlowerCrownRenderer;
|
||||||
import fr.sushi.charmsnfabrics.common.CharmsAndFabricRegistries;
|
import fr.sushi.charmsnfabrics.common.CnFRegistries;
|
||||||
import net.neoforged.api.distmarker.Dist;
|
import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.ModContainer;
|
import net.neoforged.fml.ModContainer;
|
||||||
|
@ -20,9 +20,9 @@ import top.theillusivec4.curios.api.client.ICurioRenderer;
|
||||||
|
|
||||||
@Mod(value = CharmsAndFabrics.MODID, dist = Dist.CLIENT)
|
@Mod(value = CharmsAndFabrics.MODID, dist = Dist.CLIENT)
|
||||||
@EventBusSubscriber(modid = CharmsAndFabrics.MODID, value = Dist.CLIENT)
|
@EventBusSubscriber(modid = CharmsAndFabrics.MODID, value = Dist.CLIENT)
|
||||||
public class CharmsFabricsClient
|
public class CnFClient
|
||||||
{
|
{
|
||||||
public CharmsFabricsClient(ModContainer container)
|
public CnFClient(ModContainer container)
|
||||||
{
|
{
|
||||||
container.registerExtensionPoint(IConfigScreenFactory.class,
|
container.registerExtensionPoint(IConfigScreenFactory.class,
|
||||||
ConfigurationScreen::new);
|
ConfigurationScreen::new);
|
||||||
|
@ -32,7 +32,7 @@ public class CharmsFabricsClient
|
||||||
private static void onClientSetup(final FMLClientSetupEvent event)
|
private static void onClientSetup(final FMLClientSetupEvent event)
|
||||||
{
|
{
|
||||||
ICurioRenderer.register(
|
ICurioRenderer.register(
|
||||||
CharmsAndFabricRegistries.Items.FLOWER_CROWN.get(),
|
CnFRegistries.Items.FLOWER_CROWN.get(),
|
||||||
FlowerCrownRenderer::new);
|
FlowerCrownRenderer::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public class CharmsFabricsClient
|
||||||
private static void onRegisterLayerDefinitions(
|
private static void onRegisterLayerDefinitions(
|
||||||
final EntityRenderersEvent.RegisterLayerDefinitions event)
|
final EntityRenderersEvent.RegisterLayerDefinitions event)
|
||||||
{
|
{
|
||||||
event.registerLayerDefinition(CharmsAndFabricsLayers.CROWN_LAYER,
|
event.registerLayerDefinition(CnFLayers.CROWN_LAYER,
|
||||||
FlowerCrownModel::createLayer);
|
FlowerCrownModel::createLayer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public class CharmsFabricsClient
|
||||||
final EntityRenderersEvent.RegisterRenderers event)
|
final EntityRenderersEvent.RegisterRenderers event)
|
||||||
{
|
{
|
||||||
event.registerBlockEntityRenderer(
|
event.registerBlockEntityRenderer(
|
||||||
CharmsAndFabricRegistries.Entities.FLORAL_BLOCK_ENTITY.get(),
|
CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(),
|
||||||
FloralWorkstationRenderer::new);
|
FloralWorkstationRenderer::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import fr.sushi.charmsnfabrics.CharmsAndFabrics;
|
||||||
import net.minecraft.client.model.geom.ModelLayerLocation;
|
import net.minecraft.client.model.geom.ModelLayerLocation;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
public class CharmsAndFabricsLayers
|
public class CnFLayers
|
||||||
{
|
{
|
||||||
public static final ModelLayerLocation CROWN_LAYER = new ModelLayerLocation(
|
public static final ModelLayerLocation CROWN_LAYER = new ModelLayerLocation(
|
||||||
ResourceLocation.fromNamespaceAndPath(CharmsAndFabrics.MODID,
|
ResourceLocation.fromNamespaceAndPath(CharmsAndFabrics.MODID,
|
||||||
|
|
|
@ -3,9 +3,9 @@ package fr.sushi.charmsnfabrics.client.renderer;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import fr.sushi.charmsnfabrics.CharmsAndFabrics;
|
import fr.sushi.charmsnfabrics.CharmsAndFabrics;
|
||||||
import fr.sushi.charmsnfabrics.client.CharmsAndFabricsLayers;
|
import fr.sushi.charmsnfabrics.client.CnFLayers;
|
||||||
import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel;
|
import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel;
|
||||||
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity;
|
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
||||||
|
@ -13,18 +13,18 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
public class FloralWorkstationRenderer implements BlockEntityRenderer<FloralWorkshopBlockEntity>
|
public class FloralWorkstationRenderer implements BlockEntityRenderer<FloralWorkstationBlockEntity>
|
||||||
{
|
{
|
||||||
private final FlowerCrownModel model;
|
private final FlowerCrownModel model;
|
||||||
|
|
||||||
public FloralWorkstationRenderer(BlockEntityRendererProvider.Context ctx)
|
public FloralWorkstationRenderer(BlockEntityRendererProvider.Context ctx)
|
||||||
{
|
{
|
||||||
this.model = new FlowerCrownModel(
|
this.model = new FlowerCrownModel(
|
||||||
ctx.bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER));
|
ctx.bakeLayer(CnFLayers.CROWN_LAYER));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(FloralWorkshopBlockEntity blockEntity, float partialTick,
|
public void render(FloralWorkstationBlockEntity blockEntity, float partialTick,
|
||||||
PoseStack poseStack, MultiBufferSource bufferSource,
|
PoseStack poseStack, MultiBufferSource bufferSource,
|
||||||
int packedLight, int packedOverlay, Vec3 cameraPos)
|
int packedLight, int packedOverlay, Vec3 cameraPos)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,7 +2,7 @@ package fr.sushi.charmsnfabrics.client.renderer;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import fr.sushi.charmsnfabrics.client.CharmsAndFabricsLayers;
|
import fr.sushi.charmsnfabrics.client.CnFLayers;
|
||||||
import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel;
|
import fr.sushi.charmsnfabrics.client.model.FlowerCrownModel;
|
||||||
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
@ -28,7 +28,7 @@ public class FlowerCrownRenderer implements ICurioRenderer
|
||||||
{
|
{
|
||||||
this.model = new FlowerCrownModel(
|
this.model = new FlowerCrownModel(
|
||||||
Minecraft.getInstance().getEntityModels()
|
Minecraft.getInstance().getEntityModels()
|
||||||
.bakeLayer(CharmsAndFabricsLayers.CROWN_LAYER));
|
.bakeLayer(CnFLayers.CROWN_LAYER));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2,7 +2,7 @@ package fr.sushi.charmsnfabrics.common;
|
||||||
|
|
||||||
import fr.sushi.charmsnfabrics.CharmsAndFabrics;
|
import fr.sushi.charmsnfabrics.CharmsAndFabrics;
|
||||||
import fr.sushi.charmsnfabrics.common.block.FloralWorkstation;
|
import fr.sushi.charmsnfabrics.common.block.FloralWorkstation;
|
||||||
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity;
|
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity;
|
||||||
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
@ -23,7 +23,7 @@ import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class CharmsAndFabricRegistries
|
public class CnFRegistries
|
||||||
{
|
{
|
||||||
public static class Items
|
public static class Items
|
||||||
{
|
{
|
||||||
|
@ -85,11 +85,11 @@ public class CharmsAndFabricRegistries
|
||||||
BLOCK_ENTITY_TYPES =
|
BLOCK_ENTITY_TYPES =
|
||||||
DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE,
|
DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE,
|
||||||
CharmsAndFabrics.MODID);
|
CharmsAndFabrics.MODID);
|
||||||
public static final Supplier<BlockEntityType<FloralWorkshopBlockEntity>>
|
public static final Supplier<BlockEntityType<FloralWorkstationBlockEntity>>
|
||||||
FLORAL_BLOCK_ENTITY =
|
FLORAL_BLOCK_ENTITY =
|
||||||
BLOCK_ENTITY_TYPES.register("floral_block_entity",
|
BLOCK_ENTITY_TYPES.register("floral_blockstation_entity",
|
||||||
() -> new BlockEntityType<>(
|
() -> new BlockEntityType<>(
|
||||||
FloralWorkshopBlockEntity::new,
|
FloralWorkstationBlockEntity::new,
|
||||||
Set.of(Blocks.FLORAL_WORKSTATION.get())));
|
Set.of(Blocks.FLORAL_WORKSTATION.get())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,54 @@
|
||||||
package fr.sushi.charmsnfabrics.common.block;
|
package fr.sushi.charmsnfabrics.common.block;
|
||||||
|
|
||||||
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkshopBlockEntity;
|
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkstationBlockEntity;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.EntityBlock;
|
import net.minecraft.world.level.block.EntityBlock;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class FloralWorkstation extends Block implements EntityBlock
|
public class FloralWorkstation extends Block implements EntityBlock
|
||||||
{
|
{
|
||||||
public FloralWorkstation(Properties properties)
|
public static final EnumProperty<Direction> FACING =
|
||||||
|
HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public FloralWorkstation(BlockBehaviour.Properties properties)
|
||||||
{
|
{
|
||||||
super(properties);
|
super(properties);
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(
|
||||||
|
StateDefinition.Builder<Block, BlockState> builder)
|
||||||
|
{
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public @Nullable BlockState getStateForPlacement(BlockPlaceContext ctx)
|
||||||
|
{
|
||||||
|
return this.defaultBlockState().setValue(FACING,
|
||||||
|
ctx.getHorizontalDirection().getClockWise());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected BlockState rotate(BlockState state, Rotation rot)
|
||||||
|
{
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state)
|
public @Nullable BlockEntity newBlockEntity(BlockPos pos, BlockState state)
|
||||||
{
|
{
|
||||||
return new FloralWorkshopBlockEntity(pos, state);
|
return new FloralWorkstationBlockEntity(pos, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,9 +5,9 @@ import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
public class FloralWorkshopBlockEntity extends BlockEntity
|
public class FloralWorkstationBlockEntity extends BlockEntity
|
||||||
{
|
{
|
||||||
public FloralWorkshopBlockEntity(BlockPos pos, BlockState blockState)
|
public FloralWorkstationBlockEntity(BlockPos pos, BlockState blockState)
|
||||||
{
|
{
|
||||||
super(CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos,
|
super(CnFRegistries.Entities.FLORAL_BLOCK_ENTITY.get(), pos,
|
||||||
blockState);
|
blockState);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue