11package nl .pascalroeleven .minecraft .mineshotrevived .util .reflection ;
22
3+ import java .lang .reflect .Field ;
34import java .lang .reflect .Method ;
45
56import org .apache .logging .log4j .LogManager ;
67import org .apache .logging .log4j .Logger ;
78
89import net .minecraft .client .MainWindow ;
910import net .minecraft .client .Minecraft ;
11+ import net .minecraft .client .renderer .ActiveRenderInfo ;
1012import net .minecraftforge .fml .common .ObfuscationReflectionHelper ;
1113
1214public interface PrivateAccessor {
1315 static final Logger L = LogManager .getLogger ();
1416
1517 final Method framebufferSizeUpdate = ObfuscationReflectionHelper .findMethod (MainWindow .class , "func_198102_b" ,
1618 long .class , int .class , int .class );
19+ final Method setDirection = ObfuscationReflectionHelper .findMethod (ActiveRenderInfo .class , "func_216776_a" ,
20+ float .class , float .class );
21+ final Method movePosition = ObfuscationReflectionHelper .findMethod (ActiveRenderInfo .class , "func_216782_a" ,
22+ double .class , double .class , double .class );
23+ final Method calcCameraDistance = ObfuscationReflectionHelper .findMethod (ActiveRenderInfo .class , "func_216779_a" ,
24+ double .class );
25+ static final Field thirdPerson = ObfuscationReflectionHelper .findField (ActiveRenderInfo .class , "field_216799_k" );
1726
1827 default void framebufferSizeUpdate (Minecraft mc , int framebufferWidth , int framebufferHeight ) {
1928 try {
@@ -23,4 +32,38 @@ default void framebufferSizeUpdate(Minecraft mc, int framebufferWidth, int frame
2332 L .error ("onFramebufferSizeUpdate() failed" , ex );
2433 }
2534 }
35+
36+ default void setDirection (Minecraft mc , float pitchIn , float yawIn ) {
37+ try {
38+ setDirection .invoke (mc .gameRenderer .getActiveRenderInfo (), pitchIn , yawIn );
39+ } catch (Exception ex ) {
40+ L .error ("setDirection() failed" , ex );
41+ }
42+ }
43+
44+ default void movePosition (Minecraft mc , double distanceOffset , double verticalOffset , double horizontalOffset ) {
45+ try {
46+ movePosition .invoke (mc .gameRenderer .getActiveRenderInfo (), distanceOffset , verticalOffset ,
47+ horizontalOffset );
48+ } catch (Exception ex ) {
49+ L .error ("movePosition() failed" , ex );
50+ }
51+ }
52+
53+ default double calcCameraDistance (Minecraft mc , double startingDistance ) {
54+ try {
55+ return (double ) calcCameraDistance .invoke (mc .gameRenderer .getActiveRenderInfo (), startingDistance );
56+ } catch (Exception ex ) {
57+ L .error ("calcCameraDistance() failed" , ex );
58+ }
59+ return -1 ;
60+ }
61+
62+ default void setThirdPerson (Minecraft mc , boolean thirdPersonIn ) {
63+ try {
64+ thirdPerson .set (mc .gameRenderer .getActiveRenderInfo (), thirdPersonIn );
65+ } catch (Exception ex ) {
66+ L .error ("setLook() failed" , ex );
67+ }
68+ }
2669}
0 commit comments