Skip to content

Commit 9015e8d

Browse files
committedSep 12, 2021
Fix block place lag
1 parent 1b9d6c2 commit 9015e8d

File tree

4 files changed

+25
-12
lines changed

4 files changed

+25
-12
lines changed
 

‎.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,6 @@ hs_err_pid*
186186
# End of https://www.gitignore.io/api/java,eclipse,forgegradle,intellij+all
187187
/build/
188188
/.gradle/
189+
190+
# vs
191+
.vscode/

‎src/main/java/me/vaxry/harakiri/Harakiri.java

+11
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import me.vaxry.harakiri.impl.manager.*;
1515
import me.vaxry.harakiri.impl.module.config.ReloadConfigsModule;
1616
import me.vaxry.harakiri.impl.module.render.CustomFontModule;
17+
import me.vaxry.harakiri.impl.module.render.XrayModule;
1718
import net.minecraft.client.Minecraft;
1819
import net.minecraft.util.ResourceLocation;
1920
import net.minecraft.util.text.ITextComponent;
@@ -43,6 +44,9 @@ public final class Harakiri {
4344

4445
private Logger logger;
4546

47+
// For fast access to XRay (block lag)
48+
private XrayModule xrayModule = null;
49+
4650
//private String prevTitle;
4751

4852
private EventManager eventManager;
@@ -142,6 +146,9 @@ public void init() {
142146
// Create the font renderer
143147
fontRendererExtd = new FontRendererExtd(Minecraft.getMinecraft().gameSettings, new ResourceLocation("harakirimod", "textures/ascii.png"), Minecraft.getMinecraft().renderEngine, true);
144148

149+
// Get the XRay Module
150+
this.xrayModule = (XrayModule)this.moduleManager.find(XrayModule.class);
151+
145152
// Add runtime hook to listen for shutdown to save configs
146153
Runtime.getRuntime().addShutdownHook(new Thread("Harakiri SH") {
147154
@Override
@@ -420,6 +427,10 @@ public void initPlexusEffect(PlexusComponent plx) {
420427
this.plexusEffect = new PlexusEffect(plx);
421428
}
422429

430+
public XrayModule getXRayModule() {
431+
return this.xrayModule;
432+
}
433+
423434
public static Harakiri get(){
424435
return INSTANCE;
425436
}

‎src/main/java/me/vaxry/harakiri/framework/mixin/block/MixinBlock.java

+11-9
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
import me.vaxry.harakiri.Harakiri;
44
import me.vaxry.harakiri.framework.event.render.EventRenderBlockSide;
55
import me.vaxry.harakiri.framework.event.world.EventAddCollisionBox;
6-
import me.vaxry.harakiri.framework.event.world.EventGetBlockLayer;
6+
import me.vaxry.harakiri.impl.module.render.XrayModule;
77
import net.minecraft.block.Block;
88
import net.minecraft.block.state.IBlockState;
99
import net.minecraft.entity.Entity;
10-
import net.minecraft.util.BlockRenderLayer;
1110
import net.minecraft.util.EnumFacing;
1211
import net.minecraft.util.math.AxisAlignedBB;
1312
import net.minecraft.util.math.BlockPos;
@@ -25,22 +24,25 @@
2524
public class MixinBlock {
2625
@Inject(at = @At("HEAD"), method = "shouldSideBeRendered", cancellable = true)
2726
private void onShouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side, CallbackInfoReturnable<Boolean> cir) {
28-
final EventRenderBlockSide event = new EventRenderBlockSide((Block) (Object) this);
29-
Harakiri.get().getEventManager().dispatchEvent(event);
30-
if (event.isCanceled()) {
31-
cir.cancel();
32-
cir.setReturnValue(event.isRenderable());
27+
// prevent horrible block place lag
28+
if(Harakiri.get().getXRayModule().isEnabled()) {
29+
final EventRenderBlockSide event = new EventRenderBlockSide((Block) (Object) this);
30+
Harakiri.get().getEventManager().dispatchEvent(event);
31+
if (event.isCanceled()) {
32+
cir.cancel();
33+
cir.setReturnValue(event.isRenderable());
34+
}
3335
}
3436
}
3537

36-
@Inject(at = @At("HEAD"), method = "getRenderLayer", cancellable = true)
38+
/*@Inject(at = @At("HEAD"), method = "getRenderLayer", cancellable = true)
3739
private void onGetRenderLayer(CallbackInfoReturnable<BlockRenderLayer> cir) {
3840
final EventGetBlockLayer event = new EventGetBlockLayer((Block) (Object) this);
3941
Harakiri.get().getEventManager().dispatchEvent(event);
4042
if (event.isCanceled()) {
4143
cir.cancel();
4244
}
43-
}
45+
}*/
4446

4547

4648
@Inject(at = @At("HEAD"), method = "addCollisionBoxToList(Lnet/minecraft/block/state/IBlockState;Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/math/AxisAlignedBB;Ljava/util/List;Lnet/minecraft/entity/Entity;Z)V", cancellable = true)

‎src/main/java/me/vaxry/harakiri/framework/mixin/gui/MixinGuiScreen.java

-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
package me.vaxry.harakiri.framework.mixin.gui;
22

3-
import jdk.nashorn.internal.codegen.CompilerConstants;
43
import me.vaxry.harakiri.Harakiri;
54
import me.vaxry.harakiri.framework.event.gui.EventRenderTooltip;
65
import me.vaxry.harakiri.impl.module.render.GuiPlusModule;
76
import net.minecraft.client.gui.Gui;
87
import net.minecraft.client.gui.GuiScreen;
9-
import net.minecraft.client.renderer.BufferBuilder;
108
import net.minecraft.client.renderer.GlStateManager;
11-
import net.minecraft.client.renderer.Tessellator;
129
import net.minecraft.item.ItemStack;
1310
import org.spongepowered.asm.mixin.Mixin;
1411
import org.spongepowered.asm.mixin.injection.At;

0 commit comments

Comments
 (0)