1
1
package com .Da_Technomancer .essentials ;
2
2
3
- import com .Da_Technomancer .essentials .blocks .BlockUtil ;
3
+ import com .Da_Technomancer .essentials .api .BlockUtil ;
4
+ import com .Da_Technomancer .essentials .api .ConfigUtil ;
5
+ import com .Da_Technomancer .essentials .api .packets .ConfigureWrenchOnServer ;
6
+ import com .Da_Technomancer .essentials .api .packets .EssentialsPackets ;
7
+ import com .Da_Technomancer .essentials .api .redstone .IWireConnect ;
4
8
import com .Da_Technomancer .essentials .blocks .WitherCannon ;
5
- import com .Da_Technomancer .essentials .blocks .redstone .AbstractTile ;
9
+ import com .Da_Technomancer .essentials .blocks .redstone .CircuitTileEntity ;
6
10
import com .Da_Technomancer .essentials .gui .*;
7
11
import com .Da_Technomancer .essentials .gui .container .*;
8
12
import com .Da_Technomancer .essentials .items .CircuitWrench ;
9
13
import com .Da_Technomancer .essentials .items .ESItems ;
10
- import com .Da_Technomancer .essentials .packets .ConfigureWrenchOnServer ;
11
- import com .Da_Technomancer .essentials .packets .EssentialsPackets ;
12
14
import com .Da_Technomancer .essentials .render .CannonSkullRenderer ;
13
- import com .Da_Technomancer .essentials .tileentities .redstone .CircuitTileEntity ;
14
15
import com .mojang .blaze3d .vertex .PoseStack ;
15
16
import com .mojang .math .Matrix4f ;
16
17
import net .minecraft .client .Minecraft ;
21
22
import net .minecraft .client .renderer .MultiBufferSource ;
22
23
import net .minecraft .client .renderer .entity .EntityRenderers ;
23
24
import net .minecraft .core .BlockPos ;
24
- import net .minecraft .network .chat .TranslatableComponent ;
25
+ import net .minecraft .network .chat .Component ;
25
26
import net .minecraft .world .inventory .AbstractContainerMenu ;
26
27
import net .minecraft .world .inventory .MenuType ;
27
28
import net .minecraft .world .level .block .Block ;
34
35
import net .minecraftforge .client .event .ModelRegistryEvent ;
35
36
import net .minecraftforge .client .event .RenderLevelLastEvent ;
36
37
import net .minecraftforge .client .event .TextureStitchEvent ;
37
- import net .minecraftforge .event .RegistryEvent ;
38
38
import net .minecraftforge .eventbus .api .SubscribeEvent ;
39
39
import net .minecraftforge .fml .common .Mod ;
40
40
import net .minecraftforge .network .IContainerFactory ;
41
+ import net .minecraftforge .registries .ForgeRegistries ;
42
+ import net .minecraftforge .registries .RegisterEvent ;
41
43
42
44
import java .util .ArrayList ;
43
45
@@ -48,28 +50,30 @@ public static class ESModEventsClient{
48
50
49
51
@ SubscribeEvent
50
52
@ SuppressWarnings ("unused" )
51
- public static void registerContainers (RegistryEvent .Register <MenuType <?>> e ){
52
- registerCon (ItemShifterContainer ::new , ItemShifterScreen ::new , "item_shifter" , e );
53
- registerCon (FluidShifterContainer ::new , FluidShifterScreen ::new , "fluid_shifter" , e );
54
- registerCon (SlottedChestContainer ::new , SlottedChestScreen ::new , "slotted_chest" , e );
55
- registerCon (CircuitWrenchContainer ::new , CircuitWrenchScreen ::new , "circuit_wrench" , e );
56
- registerCon (ConstantCircuitContainer ::new , ConstantCircuitScreen ::new , "cons_circuit" , e );
57
- registerCon (TimerCircuitContainer ::new , TimerCircuitScreen ::new , "timer_circuit" , e );
58
- registerCon (AutoCrafterContainer ::new , AutoCrafterScreen ::new , "auto_crafter" , e );
59
- registerCon (DelayCircuitContainer ::new , DelayCircuitScreen ::new , "delay_circuit" , e );
60
- registerCon (PulseCircuitContainer ::new , PulseCircuitScreen ::new , "pulse_circuit" , e );
53
+ public static void registerContainers (RegisterEvent e ){
54
+ e .register (ForgeRegistries .Keys .CONTAINER_TYPES , helper -> {
55
+ registerCon (ItemShifterContainer ::new , ItemShifterScreen ::new , "item_shifter" , helper );
56
+ registerCon (FluidShifterContainer ::new , FluidShifterScreen ::new , "fluid_shifter" , helper );
57
+ registerCon (SlottedChestContainer ::new , SlottedChestScreen ::new , "slotted_chest" , helper );
58
+ registerCon (CircuitWrenchContainer ::new , CircuitWrenchScreen ::new , "circuit_wrench" , helper );
59
+ registerCon (ConstantCircuitContainer ::new , ConstantCircuitScreen ::new , "cons_circuit" , helper );
60
+ registerCon (TimerCircuitContainer ::new , TimerCircuitScreen ::new , "timer_circuit" , helper );
61
+ registerCon (AutoCrafterContainer ::new , AutoCrafterScreen ::new , "auto_crafter" , helper );
62
+ registerCon (DelayCircuitContainer ::new , DelayCircuitScreen ::new , "delay_circuit" , helper );
63
+ registerCon (PulseCircuitContainer ::new , PulseCircuitScreen ::new , "pulse_circuit" , helper );
64
+ });
61
65
}
62
66
63
67
/**
64
68
* Creates and registers both a container type and a screen factory. Not usable on the physical server due to screen factory.
65
69
* @param cons Container factory
66
70
* @param screenFactory The screen factory to be linked to the type
67
71
* @param id The ID to use
68
- * @param reg Registery event
72
+ * @param helper Registry helper
69
73
* @param <T> Container subclass
70
74
*/
71
- private static <T extends AbstractContainerMenu > void registerCon (IContainerFactory <T > cons , MenuScreens .ScreenConstructor <T , AbstractContainerScreen <T >> screenFactory , String id , RegistryEvent . Register <MenuType <?>> reg ){
72
- MenuType <T > contType = ESEventHandlerCommon .ESModEventsCommon .registerConType (cons , id , reg );
75
+ private static <T extends AbstractContainerMenu > void registerCon (IContainerFactory <T > cons , MenuScreens .ScreenConstructor <T , AbstractContainerScreen <T >> screenFactory , String id , RegisterEvent . RegisterHelper <MenuType <?>> helper ){
76
+ MenuType <T > contType = ESEventHandlerCommon .ESModEventsCommon .registerConType (cons , id , helper );
73
77
MenuScreens .register (contType , screenFactory );
74
78
}
75
79
@@ -104,7 +108,7 @@ public static void renderRedsOutput(RenderLevelLastEvent e){
104
108
float output = ((CircuitTileEntity ) te ).getOutput ();
105
109
float [] relPos = {te .getBlockPos ().getX () + 0.5F , te .getBlockPos ().getY () + 0.5F , te .getBlockPos ().getZ () + 0.5F };
106
110
if (RANGE * RANGE > Minecraft .getInstance ().getEntityRenderDispatcher ().distanceToSqr (relPos [0 ], relPos [1 ], relPos [2 ])){
107
- renderNameplate (e .getPoseStack (), buffer , relPos , ESConfig .formatFloat (output , null ));
111
+ renderNameplate (e .getPoseStack (), buffer , relPos , ConfigUtil .formatFloat (output , null ));
108
112
}
109
113
}
110
114
}
@@ -134,13 +138,13 @@ public static void pickBlockCircuitWrench(InputEvent.ClickInputEvent e){
134
138
if (hit .getType () == HitResult .Type .BLOCK ){
135
139
BlockPos pos = ((BlockHitResult ) hit ).getBlockPos ();
136
140
Block block = Minecraft .getInstance ().level .getBlockState (pos ).getBlock ();
137
- if (block instanceof AbstractTile ){
141
+ if (block instanceof IWireConnect ){
138
142
//Because we're on the client side, we need to send a packet to the server updating the wrench
139
143
140
144
int index = -1 ;
141
- ArrayList <AbstractTile > modes = CircuitWrench .MODES ;
145
+ ArrayList <IWireConnect > modes = CircuitWrench .MODES ;
142
146
for (int i = 0 ; i < modes .size (); i ++){
143
- AbstractTile tile = modes .get (i );
147
+ IWireConnect tile = modes .get (i );
144
148
if (tile == block ){
145
149
index = i ;
146
150
break ;
@@ -149,12 +153,12 @@ public static void pickBlockCircuitWrench(InputEvent.ClickInputEvent e){
149
153
if (index < 0 ){
150
154
//Didn't find this circuit
151
155
//Log an error and abort
152
- Essentials .logger .warn ("Attempted to select unregistered circuit: " + block . getRegistryName ( ));
156
+ Essentials .logger .warn ("Attempted to select unregistered circuit: " + ForgeRegistries . BLOCKS . getKey ( block ));
153
157
return ;
154
158
}
155
159
e .setCanceled (true );
156
160
EssentialsPackets .channel .sendToServer (new ConfigureWrenchOnServer (index ));
157
- Minecraft .getInstance ().player .sendMessage ( new TranslatableComponent ("tt.essentials.circuit_wrench_setting" ).setStyle (CircuitWrenchScreen .CIRCUIT_WRENCH_STYLE ).append (new TranslatableComponent (CircuitWrench .MODES .get (index ).getDescriptionId ())), Minecraft . getInstance (). player . getUUID () );
161
+ Minecraft .getInstance ().player .displayClientMessage ( Component . translatable ("tt.essentials.circuit_wrench_setting" ).setStyle (CircuitWrenchScreen .CIRCUIT_WRENCH_STYLE ).append (Component . translatable (CircuitWrench .MODES .get (index ).wireAsBlock (). getDescriptionId ())), true );
158
162
}
159
163
}
160
164
}
0 commit comments