@@ -87,60 +87,91 @@ package ${package}.init;
8787</#list >
8888
8989<#assign orderedItems = orderedCustomItems + orderedVanillaItems + orderedNullItems >
90+ <#assign chunks = orderedItems?chunk(2500) >
91+ <#assign has_chunks = chunks?size gt 1 >
92+
9093<#if hasItemsWithProperties >
9194@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
9295</#if >
9396public class ${JavaModName} Items {
9497
9598 public static final DeferredRegister<Item > REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, ${JavaModName} .MODID);
9699
100+ <@javacompress >
97101 <#list orderedItems as item >
98102 <#if item.getModElement().getTypeString() == "armor" >
99- <#if item.enableHelmet >
100- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _HELMET =
101- REGISTRY.register("${item.getModElement().getRegistryName()} _helmet", ${item.getModElement().getName()} Item.Helmet::new);
102- </#if >
103- <#if item.enableBody >
104- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _CHESTPLATE =
105- REGISTRY.register("${item.getModElement().getRegistryName()} _chestplate", ${item.getModElement().getName()} Item.Chestplate::new);
106- </#if >
107- <#if item.enableLeggings >
108- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _LEGGINGS =
109- REGISTRY.register("${item.getModElement().getRegistryName()} _leggings", ${item.getModElement().getName()} Item.Leggings::new);
110- </#if >
111- <#if item.enableBoots >
112- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _BOOTS =
113- REGISTRY.register("${item.getModElement().getRegistryName()} _boots", ${item.getModElement().getName()} Item.Boots::new);
114- </#if >
103+ <#if item.enableHelmet >public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _HELMET;</#if >
104+ <#if item.enableBody >public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _CHESTPLATE;</#if >
105+ <#if item.enableLeggings >public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _LEGGINGS;</#if >
106+ <#if item.enableBoots >public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _BOOTS;</#if >
115107 <#elseif item.getModElement().getTypeString() == "livingentity" >
116- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _SPAWN_EGG =
117- REGISTRY.register("${item.getModElement().getRegistryName()} _spawn_egg", () -> new ForgeSpawnEggItem(${JavaModName} Entities.${item.getModElement().getRegistryNameUpper()} ,
118- ${item.spawnEggBaseColor.getRGB()} , ${item.spawnEggDotColor.getRGB()} , new Item.Properties().tab(<@CreativeTabs item.creativeTabs/ >)));
119- <#elseif item.getModElement().getTypeString() == "dimension" && item.hasIgniter() >
120- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} =
121- REGISTRY.register("${item.getModElement().getRegistryName()} ", ${item.getModElement().getName()} Item::new);
108+ public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _SPAWN_EGG;
122109 <#elseif item.getModElement().getTypeString() == "fluid" && item.generateBucket >
123- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _BUCKET =
124- REGISTRY.register("${item.getModElement().getRegistryName()} _bucket", ${item.getModElement().getName()} Item::new);
125- <#elseif item.getModElement().getTypeString() == "block" || item.getModElement().getTypeString() == "plant" >
126- <#assign customProp = item.hasCustomItemProperties() >
127- <#if item.isDoubleBlock() >
128- <#assign hasDoubleBlocks = true >
129- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} =
110+ public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} _BUCKET;
111+ <#else >
112+ public static <#if !has_chunks >final</#if > RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} ;
113+ </#if >
114+ </#list >
115+ </@javacompress >
116+
117+ <#list chunks as sub_items >
118+ <#if has_chunks >public static void register${sub_items?index } ()<#else >static</#if > {
119+ <#list sub_items as item >
120+ <#if item.getModElement().getTypeString() == "armor" >
121+ <#if item.enableHelmet >
122+ ${item.getModElement().getRegistryNameUpper()} _HELMET =
123+ REGISTRY.register("${item.getModElement().getRegistryName()} _helmet", ${item.getModElement().getName()} Item.Helmet::new);
124+ </#if >
125+ <#if item.enableBody >
126+ ${item.getModElement().getRegistryNameUpper()} _CHESTPLATE =
127+ REGISTRY.register("${item.getModElement().getRegistryName()} _chestplate", ${item.getModElement().getName()} Item.Chestplate::new);
128+ </#if >
129+ <#if item.enableLeggings >
130+ ${item.getModElement().getRegistryNameUpper()} _LEGGINGS =
131+ REGISTRY.register("${item.getModElement().getRegistryName()} _leggings", ${item.getModElement().getName()} Item.Leggings::new);
132+ </#if >
133+ <#if item.enableBoots >
134+ ${item.getModElement().getRegistryNameUpper()} _BOOTS =
135+ REGISTRY.register("${item.getModElement().getRegistryName()} _boots", ${item.getModElement().getName()} Item.Boots::new);
136+ </#if >
137+ <#elseif item.getModElement().getTypeString() == "livingentity" >
138+ ${item.getModElement().getRegistryNameUpper()} _SPAWN_EGG =
139+ REGISTRY.register("${item.getModElement().getRegistryName()} _spawn_egg",
140+ () -> new ForgeSpawnEggItem(${JavaModName} Entities.${item.getModElement().getRegistryNameUpper()} ,
141+ ${item.spawnEggBaseColor.getRGB()} , ${item.spawnEggDotColor.getRGB()} , new Item.Properties().tab(<@CreativeTabs item.creativeTabs/ >)));
142+ <#elseif item.getModElement().getTypeString() == "dimension" && item.hasIgniter() >
143+ ${item.getModElement().getRegistryNameUpper()} =
144+ REGISTRY.register("${item.getModElement().getRegistryName()} ", ${item.getModElement().getName()} Item::new);
145+ <#elseif item.getModElement().getTypeString() == "fluid" && item.generateBucket >
146+ ${item.getModElement().getRegistryNameUpper()} _BUCKET =
147+ REGISTRY.register("${item.getModElement().getRegistryName()} _bucket", ${item.getModElement().getName()} Item::new);
148+ <#elseif item.getModElement().getTypeString() == "block" || item.getModElement().getTypeString() == "plant" >
149+ <#assign customProp = item.hasCustomItemProperties() >
150+ <#if item.isDoubleBlock() >
151+ <#assign hasDoubleBlocks = true >
152+ ${item.getModElement().getRegistryNameUpper()} =
130153 doubleBlock<#if !customProp >CMT</#if >(${JavaModName} Blocks.${item.getModElement().getRegistryNameUpper()} ,
131154 <#if customProp ><@blockItemProperties item/ ><#else ><@CreativeTabs item.creativeTabs/ ></#if >);
132- <#else >
133- <#assign hasBlocks = true >
134- public static final RegistryObject< Item > ${item.getModElement().getRegistryNameUpper()} =
155+ <#else >
156+ <#assign hasBlocks = true >
157+ ${item.getModElement().getRegistryNameUpper()} =
135158 block<#if !customProp >CMT</#if >(${JavaModName} Blocks.${item.getModElement().getRegistryNameUpper()} ,
136159 <#if customProp ><@blockItemProperties item/ ><#else ><@CreativeTabs item.creativeTabs/ ></#if >);
160+ </#if >
161+ <#else >
162+ ${item.getModElement().getRegistryNameUpper()} =
163+ REGISTRY.register("${item.getModElement().getRegistryName()} ", ${item.getModElement().getName()} Item::new);
137164 </#if >
138- <#else >
139- public static final RegistryObject<Item > ${item.getModElement().getRegistryNameUpper()} =
140- REGISTRY.register("${item.getModElement().getRegistryName()} ", ${item.getModElement().getName()} Item::new);
141- </#if >
165+ </#list >
166+ }
142167 </#list >
143168
169+ <#if has_chunks >
170+ static {
171+ <#list 0..chunks?size-1 as i >register${i}();</#list >
172+ }
173+ </#if >
174+
144175 // Start of user code block custom items
145176 // End of user code block custom items
146177
@@ -165,10 +196,9 @@ public class ${JavaModName}Items {
165196 </#if >
166197
167198 <#if hasItemsWithProperties >
168- <#compress >
169- @SubscribeEvent @OnlyIn(Dist.CLIENT) public static void clientLoad(FMLClientSetupEvent event) {
199+ @SubscribeEvent @OnlyIn(Dist.CLIENT) public static void clientLoad(FMLClientSetupEvent event) {
170200 event.enqueueWork(() -> {
171- <# compress >
201+ <@ javacompress >
172202 <#list items as item >
173203 <#if item.getModElement().getTypeString() == "item" >
174204 <#list item.customProperties.entrySet() as property >
@@ -192,10 +222,9 @@ public class ${JavaModName}Items {
192222 ItemProperties.getProperty(Items.SHIELD, new ResourceLocation("minecraft:blocking")));
193223 </#if >
194224 </#list >
195- </# compress >
225+ </@ javacompress >
196226 });
197227 }
198- </#compress >
199228 </#if >
200229}
201230<#macro blockItemProperties block >
0 commit comments