37
37
import com .klikli_dev .occultism .client .render .entity .*;
38
38
import com .klikli_dev .occultism .common .capability .FamiliarSettingsData ;
39
39
import com .klikli_dev .occultism .common .container .spirit .SpiritContainer ;
40
+ import com .klikli_dev .occultism .common .effect .DoubleJumpEffect ;
41
+ import com .klikli_dev .occultism .common .effect .ThirdEyeEffect ;
40
42
import com .klikli_dev .occultism .common .entity .spirit .demonicpartner .husband .DemonicHusbandRenderer ;
41
43
import com .klikli_dev .occultism .common .entity .spirit .demonicpartner .wife .DemonicWifeRenderer ;
42
44
import com .klikli_dev .occultism .integration .modonomicon .PageRenderers ;
43
45
import com .klikli_dev .occultism .registry .*;
44
46
import com .mojang .blaze3d .platform .InputConstants ;
45
47
import com .mojang .blaze3d .systems .RenderSystem ;
46
48
import net .minecraft .client .KeyMapping ;
49
+ import net .minecraft .client .gui .Gui ;
50
+ import net .minecraft .client .gui .GuiGraphics ;
51
+ import net .minecraft .client .gui .screens .inventory .EffectRenderingInventoryScreen ;
47
52
import net .minecraft .client .renderer .GameRenderer ;
48
53
import net .minecraft .client .renderer .blockentity .BlockEntityRenderers ;
49
54
import net .minecraft .client .renderer .entity .*;
50
55
import net .minecraft .client .renderer .item .ItemProperties ;
51
56
import net .minecraft .core .registries .BuiltInRegistries ;
52
57
import net .minecraft .resources .ResourceLocation ;
58
+ import net .minecraft .world .effect .MobEffectInstance ;
53
59
import net .minecraft .world .entity .EntityType ;
54
60
import net .neoforged .api .distmarker .Dist ;
55
61
import net .neoforged .bus .api .SubscribeEvent ;
56
62
import net .neoforged .fml .ModContainer ;
57
63
import net .neoforged .fml .common .EventBusSubscriber ;
58
64
import net .neoforged .fml .event .lifecycle .FMLClientSetupEvent ;
59
65
import net .neoforged .neoforge .client .event .*;
66
+ import net .neoforged .neoforge .client .extensions .common .IClientMobEffectExtensions ;
67
+ import net .neoforged .neoforge .client .extensions .common .RegisterClientExtensionsEvent ;
60
68
import net .neoforged .neoforge .client .gui .ConfigurationScreen ;
61
69
import net .neoforged .neoforge .client .gui .IConfigScreenFactory ;
62
70
import net .neoforged .neoforge .client .gui .VanillaGuiLayers ;
63
71
import net .neoforged .neoforge .client .settings .KeyConflictContext ;
64
72
import net .neoforged .neoforge .common .NeoForge ;
73
+ import org .jetbrains .annotations .NotNull ;
65
74
import org .lwjgl .glfw .GLFW ;
66
75
67
76
import java .util .HashMap ;
@@ -80,7 +89,7 @@ public class ClientSetupEventHandler {
80
89
81
90
public static Map <EntityType <?>, KeyMapping > keysFamiliars ;
82
91
83
- public static void registerConfigScreen (ModContainer modContainer ){
92
+ public static void registerConfigScreen (ModContainer modContainer ) {
84
93
modContainer .registerExtensionPoint (IConfigScreenFactory .class , ConfigurationScreen ::new );
85
94
}
86
95
@@ -200,6 +209,31 @@ public static void onRegisterMenuScreens(RegisterMenuScreensEvent event) {
200
209
event .register (OccultismContainers .SATCHEL .get (), SatchelScreen ::new );
201
210
}
202
211
212
+ public static void onRegisterClientExtensions (RegisterClientExtensionsEvent event ) {
213
+ event .registerMobEffect (new IClientMobEffectExtensions () {
214
+ @ Override
215
+ public boolean renderGuiIcon (@ NotNull MobEffectInstance instance , @ NotNull Gui gui , @ NotNull GuiGraphics guiGraphics , int x , int y , float z , float alpha ) {
216
+ guiGraphics .blit (ThirdEyeEffect .ICON , x + 3 , y + 3 , 18 , 18 , 0 , 0 , 255 , 255 , 256 , 256 );
217
+ return true ;
218
+ }
219
+
220
+ }, OccultismEffects .THIRD_EYE .get ());
221
+
222
+ event .registerMobEffect ( new IClientMobEffectExtensions () {
223
+ @ Override
224
+ public boolean renderInventoryIcon (@ NotNull MobEffectInstance instance , @ NotNull EffectRenderingInventoryScreen <?> screen , @ NotNull GuiGraphics guiGraphics , int x , int y , int blitOffset ) {
225
+ guiGraphics .blit (DoubleJumpEffect .ICON , x + 6 , y + 7 , 18 , 18 , 0 , 0 , 255 , 255 , 256 , 256 );
226
+ return false ;
227
+ }
228
+
229
+ @ Override
230
+ public boolean renderGuiIcon (@ NotNull MobEffectInstance instance , @ NotNull Gui gui , @ NotNull GuiGraphics guiGraphics , int x , int y , float z , float alpha ) {
231
+ guiGraphics .blit (DoubleJumpEffect .ICON , x + 3 , y + 3 , 18 , 18 , 0 , 0 , 255 , 255 , 256 , 256 );
232
+ return false ;
233
+ }
234
+ }, OccultismEffects .DOUBLE_JUMP .get ());
235
+ }
236
+
203
237
public static void registerItemModelProperties (FMLClientSetupEvent event ) {
204
238
205
239
//Not safe to call during parallel load, so register to run threadsafe
0 commit comments