im using the 1.8.8 version, pressing r doesnt do anything no matter how much i press it, no idea why, and the sprint button just zooms in, changed it to mouse button 5 and it still zooms, so its definatly this mod
The product, blocks in radius from player window to cavefinder for five seconds;
Suggesting personally inject preffered into GuiControls: initGui() read config from keybind exampel "Ctrl+H" meaning hax -> final int KEYBIND_HAX; keyTyped() listener inject if(keyCode==KEYBIND_HAX) this.mc.displayGuiScreen(new GuiHaxControls());
I've been using this mod for a couple days now, since the server I play on has me as a mod and OP'd, and this is more convenient than switching back and forth from creative just to fly somewhere. However, I've found a few issues:
1) Fall damage when landing. Seems to be the same as whatever I'd have taken when falling normally.
2) When I shoot a bow, it's near impossible to aim, because the arrows shoot from a point as if I was one the ground.
3) When damaged (seemingly from any source), I immediately land, and take fall damage in addition to the original damage.
4) The sprinting feature seems to make me move slower, rather than faster.
For what it's worth, I'm running 1.9.0, with the latest Forge, and my only other mods are InvTweaks, Optifine, and Xaero's Minimap. For me, these issues are not too big of a hassle, but I thought you'd like to know.
Heres how opacity xray, difficult yes but two classes only replace.
Seeing to your simplyhaxVisionRenderer by replacement not very
difficult even by aversion baseclassedits/bytecode.
Very basic render pipeline 1.9+.
Two steps. pseudo:
1) compile chunks (uses caching) for lrge lists
of opengl instructions. Lists are called block layers. Types in
- 1.A) for each layer make empty list for opengl instructions
- 1.B.A) For each block, make instructions ("render")
- 1.B.B) add said instructions to the block's appropriate layer
2) read back the gl instructions for each block layer
Concerning opacity 1.B.A and 1.B.B matter only. Recipe making
XRay opacity simply add glcolor4f instructions in 1.B.A.
Then some where make sure glblending is
enabled when those instructions are read otherwise alpha
lost useful properties.
We could add glenable(glblend) instructions for every xray block
but that would hurt performance. Instead it is best to use the
existing BlockRenderLayer.TRANSLUCENT, which glblend
enabled for the whole layer.
HOW TO REALLY OPACITY XRAY
Now we need A) where to add the glcolor instructions and where
to intercept the block's renderlayer.
All (normal) blocks are rendered (=make instructions opengl) with:
net.minecraft.client.renderer.BlockModelRenderer.renderModel(IBlockAccess, IBakedModel, IBlockState, BlockPos, VertexBuffer, boolean, lon rand)
This method simply delegates to another method depending on the video setting
smooth lighting. Secret to the opacity xray, we will need to edit
both underlying methods, then xray opacity working no matter smooth lighting:
net.minecraft.client.renderer.BlockModelRenderer.renderQuadsSmooth(IBlockAccess, IBlockState, BlockPos, VertexBuffer, List, float, BitSet, AmbientOcclusionFace)
net.minecraft.client.renderer.BlockModelRenderer.renderQuadsFlat(IBlockAccess, IBlockState, BlockPos, int, boolean, VertexBuffer, List, BitSet)
The actual opengl instructions are actually stored in actual stack
represented by VertexBuffer buffer. Because stack LIFO necessarily we
put the colors before the vertex lists ("quads").
Our openglcolor instruction is from buffer.putColor4(int argb). Best
place putting these instruction, is between buffer.putbrightness4 to
buffer.putposition. example this command will cut the opacity in
this one for normal xray:
But only putcolor4 with xray blocks! Use stateIn.getBlock() for checking.
Required before transparency to do anything glBlend must be enabled.
Rather than enable for each individual block best to assign
the xrayed blocks to translucent layer.
here two options, either override Block.getRenderLayer() or
edit RenderChunk.rebuildChunk where it calls Block.getRenderLayer(). I prefer
rebuildChunk because every block must go through that whereas some blocks may
Do this in RenderChunk.rebuildChunk() where it calls block.getBlockLayer().
Simply if block in simplyhax.listXrayBlocks, set temporary variable of type BlockRenderLayer to
BlockRenderLayer.TRANSLUCENT else set variable block.getBlockLayer().