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.CharmsAndFabrics;
|
||||||
import fr.sushi.charmsnfabrics.common.block.FloralWorkbench;
|
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.entities.block.FloralWorkbenchBlockEntity;
|
||||||
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
import fr.sushi.charmsnfabrics.common.item.FlowerCrown;
|
||||||
|
import net.minecraft.core.component.DataComponentType;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.resources.ResourceKey;
|
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.DeferredItem;
|
||||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
@ -33,8 +36,11 @@ public class CnFRegistries
|
||||||
DeferredRegister.createItems(CharmsAndFabrics.MODID);
|
DeferredRegister.createItems(CharmsAndFabrics.MODID);
|
||||||
public static final DeferredItem<Item> FLOWER_CROWN =
|
public static final DeferredItem<Item> FLOWER_CROWN =
|
||||||
ITEMS.registerItem("flower_crown",
|
ITEMS.registerItem("flower_crown",
|
||||||
(properties) -> new FlowerCrown(
|
(properties) -> new FlowerCrown(properties.stacksTo(1)
|
||||||
properties.stacksTo(1)));
|
.component(
|
||||||
|
DataComponents.SAVED_FLOWERS,
|
||||||
|
new SavedColors(
|
||||||
|
List.of()))));
|
||||||
/* BlockItems */
|
/* BlockItems */
|
||||||
public static final DeferredItem<BlockItem> FLORAL_WORKBENCH =
|
public static final DeferredItem<BlockItem> FLORAL_WORKBENCH =
|
||||||
ITEMS.registerItem("floral_workbench",
|
ITEMS.registerItem("floral_workbench",
|
||||||
|
@ -100,11 +106,26 @@ public class CnFRegistries
|
||||||
Set.of(Blocks.FLORAL_WORKBENCH.get())));
|
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)
|
public static void register(IEventBus bus)
|
||||||
{
|
{
|
||||||
Items.ITEMS.register(bus);
|
Items.ITEMS.register(bus);
|
||||||
Blocks.BLOCKS.register(bus);
|
Blocks.BLOCKS.register(bus);
|
||||||
Tabs.CREATIVE_MODE_TABS.register(bus);
|
Tabs.CREATIVE_MODE_TABS.register(bus);
|
||||||
Entities.BLOCK_ENTITY_TYPES.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