11package dev .latvian .mods .kubejs .component ;
22
33import dev .latvian .mods .kubejs .color .KubeColor ;
4- import dev .latvian .mods .rhino .util .HideFromJS ;
54import dev .latvian .mods .rhino .util .RemapPrefixForJS ;
65import dev .latvian .mods .rhino .util .ReturnsSelf ;
76import net .minecraft .core .Holder ;
8- import net .minecraft .core .component .DataComponentType ;
97import net .minecraft .core .component .DataComponents ;
108import net .minecraft .nbt .CompoundTag ;
119import net .minecraft .network .chat .Component ;
2220import net .minecraft .world .item .component .MapItemColor ;
2321import net .minecraft .world .item .component .Tool ;
2422import net .minecraft .world .item .component .Unbreakable ;
25- import org .jetbrains .annotations .Nullable ;
2623
2724import java .util .List ;
2825
2926@ RemapPrefixForJS ("kjs$" )
3027@ ReturnsSelf
3128public interface ItemComponentFunctions extends ComponentFunctions , AttributeModifierFunctions {
32- @ HideFromJS
33- default <T > ItemComponentFunctions kjs$overrideItem (DataComponentType <T > type , @ Nullable T value ) {
34- kjs$override (type , value );
35- return this ;
29+ default void kjs$setMaxStackSize (int size ) {
30+ kjs$override (DataComponents .MAX_STACK_SIZE , size );
3631 }
3732
38- default ItemComponentFunctions kjs$setMaxStackSize (int size ) {
39- return kjs$overrideItem (DataComponents .MAX_STACK_SIZE , size );
33+ default void kjs$setMaxDamage (int maxDamage ) {
34+ kjs$override (DataComponents .MAX_DAMAGE , maxDamage );
4035 }
4136
42- default ItemComponentFunctions kjs$setMaxDamage (int maxDamage ) {
43- return kjs$overrideItem (DataComponents .MAX_DAMAGE , maxDamage );
37+ default void kjs$setDamage (int damage ) {
38+ kjs$override (DataComponents .DAMAGE , damage );
4439 }
4540
46- default ItemComponentFunctions kjs$setDamage ( int damage ) {
47- return kjs$overrideItem (DataComponents .DAMAGE , damage );
41+ default void kjs$setUnbreakable ( ) {
42+ kjs$override (DataComponents .UNBREAKABLE , new Unbreakable ( false ) );
4843 }
4944
50- default ItemComponentFunctions kjs$setUnbreakable () {
51- return kjs$overrideItem (DataComponents .UNBREAKABLE , new Unbreakable (false ));
45+ default void kjs$setUnbreakableWithTooltip () {
46+ kjs$override (DataComponents .UNBREAKABLE , new Unbreakable (true ));
5247 }
5348
54- default ItemComponentFunctions kjs$setUnbreakableWithTooltip ( ) {
55- return kjs$overrideItem (DataComponents .UNBREAKABLE , new Unbreakable ( true ) );
49+ default void kjs$setItemName ( Component component ) {
50+ kjs$override (DataComponents .ITEM_NAME , component );
5651 }
5752
58- default ItemComponentFunctions kjs$setItemName ( Component component ) {
59- return kjs$overrideItem (DataComponents .ITEM_NAME , component );
53+ default void kjs$setRepairCost ( int repairCost ) {
54+ kjs$override (DataComponents .REPAIR_COST , repairCost );
6055 }
6156
62- default ItemComponentFunctions kjs$setRepairCost ( int repairCost ) {
63- return kjs$overrideItem (DataComponents .REPAIR_COST , repairCost );
57+ default void kjs$setFood ( FoodProperties foodProperties ) {
58+ kjs$override (DataComponents .FOOD , foodProperties );
6459 }
6560
66- default ItemComponentFunctions kjs$setFood (FoodProperties foodProperties ) {
67- return kjs$overrideItem ( DataComponents . FOOD , foodProperties );
61+ default void kjs$setFood (int nutrition , float saturation ) {
62+ kjs$setFood ( new FoodProperties . Builder (). nutrition ( nutrition ). saturationModifier ( saturation ). build () );
6863 }
6964
70- default ItemComponentFunctions kjs$setFood (int nutrition , float saturation ) {
71- return kjs$setFood (new FoodProperties .Builder ().nutrition (nutrition ).saturationModifier (saturation ).build ());
72- }
73-
74- default ItemComponentFunctions kjs$setFireResistant () {
65+ default void kjs$setFireResistant () {
7566 kjs$setUnit (DataComponents .FIRE_RESISTANT );
76- return this ;
7767 }
7868
79- default ItemComponentFunctions kjs$setTool (Tool tool ) {
80- return kjs$overrideItem (DataComponents .TOOL , tool );
69+ default void kjs$setTool (Tool tool ) {
70+ kjs$override (DataComponents .TOOL , tool );
8171 }
8272
83- default ItemComponentFunctions kjs$setMapItemColor (KubeColor color ) {
84- return kjs$overrideItem (DataComponents .MAP_COLOR , new MapItemColor (color .kjs$getRGB ()));
73+ default void kjs$setMapItemColor (KubeColor color ) {
74+ kjs$override (DataComponents .MAP_COLOR , new MapItemColor (color .kjs$getRGB ()));
8575 }
8676
87- default ItemComponentFunctions kjs$setChargedProjectiles (List <ItemStack > items ) {
88- return kjs$overrideItem (DataComponents .CHARGED_PROJECTILES , ChargedProjectiles .of (items ));
77+ default void kjs$setChargedProjectiles (List <ItemStack > items ) {
78+ kjs$override (DataComponents .CHARGED_PROJECTILES , ChargedProjectiles .of (items ));
8979 }
9080
91- default ItemComponentFunctions kjs$setBundleContents (List <ItemStack > items ) {
92- return kjs$overrideItem (DataComponents .BUNDLE_CONTENTS , new BundleContents (items ));
81+ default void kjs$setBundleContents (List <ItemStack > items ) {
82+ kjs$override (DataComponents .BUNDLE_CONTENTS , new BundleContents (items ));
9383 }
9484
95- default ItemComponentFunctions kjs$setBucketEntityData (CompoundTag tag ) {
96- return kjs$overrideItem (DataComponents .BUCKET_ENTITY_DATA , CustomData .of (tag ));
85+ default void kjs$setBucketEntityData (CompoundTag tag ) {
86+ kjs$override (DataComponents .BUCKET_ENTITY_DATA , CustomData .of (tag ));
9787 }
9888
99- default ItemComponentFunctions kjs$setBlockEntityData (CompoundTag tag ) {
100- return kjs$overrideItem (DataComponents .BLOCK_ENTITY_DATA , CustomData .of (tag ));
89+ default void kjs$setBlockEntityData (CompoundTag tag ) {
90+ kjs$override (DataComponents .BLOCK_ENTITY_DATA , CustomData .of (tag ));
10191 }
10292
103- default ItemComponentFunctions kjs$setInstrument (Holder <Instrument > instrument ) {
104- return kjs$overrideItem (DataComponents .INSTRUMENT , instrument );
93+ default void kjs$setInstrument (Holder <Instrument > instrument ) {
94+ kjs$override (DataComponents .INSTRUMENT , instrument );
10595 }
10696
107- default ItemComponentFunctions kjs$setFireworkExplosion (FireworkExplosion explosion ) {
108- return kjs$overrideItem (DataComponents .FIREWORK_EXPLOSION , explosion );
97+ default void kjs$setFireworkExplosion (FireworkExplosion explosion ) {
98+ kjs$override (DataComponents .FIREWORK_EXPLOSION , explosion );
10999 }
110100
111- default ItemComponentFunctions kjs$setFireworks (Fireworks fireworks ) {
112- return kjs$overrideItem (DataComponents .FIREWORKS , fireworks );
101+ default void kjs$setFireworks (Fireworks fireworks ) {
102+ kjs$override (DataComponents .FIREWORKS , fireworks );
113103 }
114104
115- default ItemComponentFunctions kjs$setNoteBlockSound (ResourceLocation id ) {
116- return kjs$overrideItem (DataComponents .NOTE_BLOCK_SOUND , id );
105+ default void kjs$setNoteBlockSound (ResourceLocation id ) {
106+ kjs$override (DataComponents .NOTE_BLOCK_SOUND , id );
117107 }
118108
119109 @ Override
@@ -123,7 +113,7 @@ public interface ItemComponentFunctions extends ComponentFunctions, AttributeMod
123113 }
124114
125115 @ Override
126- default ItemComponentFunctions kjs$setAttributeModifiers (ItemAttributeModifiers modifiers ) {
127- return kjs$overrideItem (DataComponents .ATTRIBUTE_MODIFIERS , modifiers );
116+ default void kjs$setAttributeModifiers (ItemAttributeModifiers modifiers ) {
117+ kjs$override (DataComponents .ATTRIBUTE_MODIFIERS , modifiers );
128118 }
129119}
0 commit comments