1
1
package sunsetsatellite .catalyst ;
2
2
3
3
import net .fabricmc .api .ModInitializer ;
4
- import net .minecraft .client .net .handler .PacketHandlerClient ;
5
4
import net .minecraft .core .Global ;
6
5
import net .minecraft .core .block .Block ;
7
6
import net .minecraft .core .block .BlockLogic ;
10
9
import net .minecraft .core .data .registry .Registry ;
11
10
import net .minecraft .core .entity .player .Player ;
12
11
import net .minecraft .core .item .ItemStack ;
13
- import net .minecraft .core .net .packet .PacketDisconnect ;
12
+ import net .minecraft .core .net .packet .Packet ;
14
13
import net .minecraft .core .player .inventory .container .Container ;
15
14
import net .minecraft .core .util .collection .Pair ;
16
15
import net .minecraft .core .util .helper .MathHelper ;
17
16
import net .minecraft .core .util .helper .Side ;
18
- import net .minecraft .core .util .phys .HitResult ;
19
17
import net .minecraft .core .world .World ;
20
18
import org .jetbrains .annotations .UnmodifiableView ;
21
19
import org .slf4j .Logger ;
25
23
import sunsetsatellite .catalyst .core .util .Signal ;
26
24
import sunsetsatellite .catalyst .core .util .mp .IMpGui ;
27
25
import sunsetsatellite .catalyst .core .util .mp .MpGuiEntry ;
26
+ import sunsetsatellite .catalyst .core .util .mp .PacketOpenGui ;
28
27
import sunsetsatellite .catalyst .core .util .network .NetworkManager ;
29
28
import sunsetsatellite .catalyst .core .util .section .BlockSection ;
30
29
import sunsetsatellite .catalyst .core .util .vector .Vec2f ;
31
- import sunsetsatellite .catalyst .core .util .vector .Vec3f ;
32
- import turniplabs .halplibe .helper .SoundHelper ;
33
30
34
31
import java .util .*;
32
+ import java .util .function .BiFunction ;
35
33
36
34
public class Catalyst implements ModInitializer {
37
35
public static final String MOD_ID = "catalyst-core" ;
@@ -46,9 +44,11 @@ public class Catalyst implements ModInitializer {
46
44
47
45
@ Override
48
46
public void onInitialize () {
47
+ //todo: hardcoding bad
48
+ Packet .addMapping (144 ,true ,true , PacketOpenGui .class );
49
+
49
50
connectSignals ();
50
51
LOGGER .info ("Catalyst: Core initialized." );
51
-
52
52
}
53
53
54
54
public void connectSignals () {
@@ -151,36 +151,32 @@ public static ArrayList<ItemStack> condenseItemList(List<ItemStack> list) {
151
151
return condenseItemList (collectStacks (inv ));
152
152
}
153
153
154
- public static Pair <Direction , BlockSection > getBlockSurfaceClickPosition (World world , Player player , HitResult hit ){
154
+ public static Pair <Direction , BlockSection > getBlockSurfaceClickPosition (World world , Player player , Side side , Vec2f clickPosition ){
155
155
if (!Global .isServer ) {
156
- if (hit .hitType == HitResult .HitType .TILE ){
157
- Direction dir = Direction .getDirectionFromSide (hit .side .getId ());
158
- Vec3f vec3f = new Vec3f (hit .location .x ,hit .location .y ,hit .location .z );
159
- Vec2f clickPosition = vec3f .subtract (vec3f .copy ().floor ()).abs ().set (hit .side .getAxis (),0 ).toVec2f ();
160
- switch (hit .side ) {
161
- case NORTH :
162
- clickPosition .x = 1 -clickPosition .x ;
163
- break ;
164
- case EAST : {
165
- double temp1 = clickPosition .y ;
166
- double temp2 = clickPosition .x ;
167
- clickPosition .x = 1 -temp1 ;
168
- clickPosition .y = temp2 ;
169
- break ;
170
- }
171
- case SOUTH :
172
- //no change needed
173
- break ;
174
- case WEST : {
175
- double temp1 = clickPosition .y ;
176
- double temp2 = clickPosition .x ;
177
- clickPosition .x = temp1 ;
178
- clickPosition .y = temp2 ;
179
- break ;
180
- }
156
+ Direction dir = Direction .getDirectionFromSide (side .getId ());
157
+ switch (side ) {
158
+ case NORTH :
159
+ clickPosition .x = 1 -clickPosition .x ;
160
+ break ;
161
+ case EAST : {
162
+ double temp1 = clickPosition .y ;
163
+ double temp2 = clickPosition .x ;
164
+ clickPosition .x = 1 -temp1 ;
165
+ clickPosition .y = temp2 ;
166
+ break ;
167
+ }
168
+ case SOUTH :
169
+ //no change needed
170
+ break ;
171
+ case WEST : {
172
+ double temp1 = clickPosition .y ;
173
+ double temp2 = clickPosition .x ;
174
+ clickPosition .x = temp1 ;
175
+ clickPosition .y = temp2 ;
176
+ break ;
181
177
}
182
- return Pair .of (dir ,BlockSection .getClosestBlockSection (clickPosition ));
183
178
}
179
+ return Pair .of (dir ,BlockSection .getClosestBlockSection (clickPosition ));
184
180
}
185
181
return null ;
186
182
}
@@ -190,12 +186,12 @@ public static Side calculatePlayerFacing(float rotation) {
190
186
}
191
187
192
188
public static void displayGui (Player player , Container inventory , ItemStack stack ){
193
- ((IMpGui )player ).displayCustomGUI (inventory ,stack );
189
+ ((IMpGui )player ).catalyst$ displayCustomGUI (inventory ,stack );
194
190
}
195
191
196
192
197
193
public static void displayGui (Player player , TileEntity tileEntity , String id ){
198
- ((IMpGui )player ).displayCustomGUI (tileEntity , id );
194
+ ((IMpGui )player ).catalyst$ displayCustomGUI (tileEntity , id );
199
195
}
200
196
201
197
public static <T > T blockLogic (Block <? extends BlockLogic > block , Class <T > clazz ){
@@ -207,4 +203,13 @@ public static <T> T blockLogic(int id, Class<T> clazz){
207
203
if (Block .hasLogicClass (Blocks .blocksList [id ], clazz )) return (T ) Blocks .blocksList [id ].getLogic ();
208
204
else return null ;
209
205
}
206
+
207
+ public static <T > boolean listContains (List <T > list , T o , BiFunction <T ,T ,Boolean > equals ){
208
+ for (T obj : list ) {
209
+ if (equals .apply (o ,obj )){
210
+ return true ;
211
+ }
212
+ }
213
+ return false ;
214
+ }
210
215
}
0 commit comments