This commit is contained in:
parent
3afde78414
commit
1f633e88be
2 changed files with 47 additions and 2 deletions
|
@ -2,8 +2,10 @@ package fr.sushi.charmsnfabrics.common;
|
|||
|
||||
import fr.sushi.charmsnfabrics.CharmsAndFabrics;
|
||||
import fr.sushi.charmsnfabrics.common.block.FloralWorkbench;
|
||||
import fr.sushi.charmsnfabrics.common.data.SavedColors;
|
||||
import fr.sushi.charmsnfabrics.common.entities.block.FloralWorkbenchBlockEntity;
|
||||
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
||||
import net.minecraft.core.component.DataComponentType;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceKey;
|
||||
|
@ -22,6 +24,7 @@ import net.neoforged.neoforge.registries.DeferredHolder;
|
|||
import net.neoforged.neoforge.registries.DeferredItem;
|
||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
@ -33,8 +36,11 @@ public class CnFRegistries
|
|||
DeferredRegister.createItems(CharmsAndFabrics.MODID);
|
||||
public static final DeferredItem<Item> FLOWER_CROWN =
|
||||
ITEMS.registerItem("flower_crown",
|
||||
(properties) -> new FlowerCrown(
|
||||
properties.stacksTo(1)));
|
||||
(properties) -> new FlowerCrown(properties.stacksTo(1)
|
||||
.component(
|
||||
DataComponents.SAVED_FLOWERS,
|
||||
new SavedColors(
|
||||
List.of()))));
|
||||
/* BlockItems */
|
||||
public static final DeferredItem<BlockItem> FLORAL_WORKBENCH =
|
||||
ITEMS.registerItem("floral_workbench",
|
||||
|
@ -100,11 +106,26 @@ public class CnFRegistries
|
|||
Set.of(Blocks.FLORAL_WORKBENCH.get())));
|
||||
}
|
||||
|
||||
public static class DataComponents
|
||||
{
|
||||
public static final DeferredRegister.DataComponents COMPONENT_TYPES =
|
||||
DeferredRegister.createDataComponents(
|
||||
Registries.DATA_COMPONENT_TYPE, CharmsAndFabrics.MODID);
|
||||
|
||||
public static final Supplier<DataComponentType<SavedColors>>
|
||||
SAVED_FLOWERS =
|
||||
COMPONENT_TYPES.registerComponentType("saved_flowers",
|
||||
builder -> builder.persistent(SavedColors.CODEC)
|
||||
.networkSynchronized(
|
||||
SavedColors.STREAM_CODEC));
|
||||
}
|
||||
|
||||
public static void register(IEventBus bus)
|
||||
{
|
||||
Items.ITEMS.register(bus);
|
||||
Blocks.BLOCKS.register(bus);
|
||||
Tabs.CREATIVE_MODE_TABS.register(bus);
|
||||
Entities.BLOCK_ENTITY_TYPES.register(bus);
|
||||
DataComponents.COMPONENT_TYPES.register(bus);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package fr.sushi.charmsnfabrics.common.data;
|
||||
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.network.codec.ByteBufCodecs;
|
||||
import net.minecraft.network.codec.StreamCodec;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record SavedColors(List<DyeColor> flowers)
|
||||
{
|
||||
public static final Codec<SavedColors> CODEC = RecordCodecBuilder.create(
|
||||
instance -> instance
|
||||
.group(DyeColor.CODEC.listOf().fieldOf("flowers")
|
||||
.forGetter(SavedColors::flowers))
|
||||
.apply(instance, SavedColors::new));
|
||||
|
||||
public static final StreamCodec<ByteBuf, SavedColors> STREAM_CODEC =
|
||||
StreamCodec.composite(
|
||||
DyeColor.STREAM_CODEC.apply(ByteBufCodecs.list(256)),
|
||||
SavedColors::flowers, SavedColors::new);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue