comment out anything that isn't instantly obvious how to fix (e.g. anything involving rendering)
This commit is contained in:
+3
-3
@@ -16,7 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
group 'baritone'
|
group 'baritone'
|
||||||
version '1.4.4'
|
version '1.5.0'
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
@@ -82,7 +82,7 @@ task sourceJar(type: Jar, dependsOn: classes) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
mappings channel: 'snapshot', version: '20190814-1.14.3'
|
mappings channel: 'snapshot', version: '20190719-1.14.3'
|
||||||
reobfMappings 'notch'
|
reobfMappings 'notch'
|
||||||
|
|
||||||
runs {
|
runs {
|
||||||
@@ -138,7 +138,7 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
minecraft 'com.github.ImpactDevelopment:Vanilla:1.14.4'
|
minecraft 'com.github.ImpactDevelopment:Vanilla:1.15.1'
|
||||||
|
|
||||||
runtime launchCompile('net.minecraft:launchwrapper:1.12') {
|
runtime launchCompile('net.minecraft:launchwrapper:1.12') {
|
||||||
exclude module: 'lwjgl'
|
exclude module: 'lwjgl'
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ package baritone.api.utils;
|
|||||||
import baritone.api.utils.accessor.IItemStack;
|
import baritone.api.utils.accessor.IItemStack;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import io.netty.util.concurrent.ThreadPerTaskExecutor;
|
import io.netty.util.concurrent.ThreadPerTaskExecutor;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.resources.*;
|
import net.minecraft.resources.*;
|
||||||
@@ -143,7 +144,7 @@ public final class BlockOptionalMeta {
|
|||||||
rpl.reloadPacksFromFinders();
|
rpl.reloadPacksFromFinders();
|
||||||
IResourcePack thePack = ((ResourcePackInfo) rpl.getAllPacks().iterator().next()).getResourcePack();
|
IResourcePack thePack = ((ResourcePackInfo) rpl.getAllPacks().iterator().next()).getResourcePack();
|
||||||
IReloadableResourceManager resourceManager = new SimpleReloadableResourceManager(ResourcePackType.SERVER_DATA, null);
|
IReloadableResourceManager resourceManager = new SimpleReloadableResourceManager(ResourcePackType.SERVER_DATA, null);
|
||||||
manager = new LootTableManager();
|
manager = new LootTableManager(new LootPredicateManager());
|
||||||
resourceManager.addReloadListener(manager);
|
resourceManager.addReloadListener(manager);
|
||||||
try {
|
try {
|
||||||
resourceManager.reloadResourcesAndThen(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), Collections.singletonList(thePack), CompletableFuture.completedFuture(Unit.INSTANCE)).get();
|
resourceManager.reloadResourcesAndThen(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), Collections.singletonList(thePack), CompletableFuture.completedFuture(Unit.INSTANCE)).get();
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public interface IPlayerContext {
|
|||||||
|
|
||||||
default BetterBlockPos playerFeet() {
|
default BetterBlockPos playerFeet() {
|
||||||
// TODO find a better way to deal with soul sand!!!!!
|
// TODO find a better way to deal with soul sand!!!!!
|
||||||
BetterBlockPos feet = new BetterBlockPos(player().posX, player().posY + 0.1251, player().posZ);
|
BetterBlockPos feet = new BetterBlockPos(player().getPositionVec().x, player().getPositionVec().y + 0.1251, player().getPositionVec().z);
|
||||||
|
|
||||||
// sometimes when calling this from another thread or while world is null, it'll throw a NullPointerException
|
// sometimes when calling this from another thread or while world is null, it'll throw a NullPointerException
|
||||||
// that causes the game to immediately crash
|
// that causes the game to immediately crash
|
||||||
@@ -76,11 +76,11 @@ public interface IPlayerContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
default Vec3d playerFeetAsVec() {
|
default Vec3d playerFeetAsVec() {
|
||||||
return new Vec3d(player().posX, player().posY, player().posZ);
|
return new Vec3d(player().getPositionVec().x, player().getPositionVec().y, player().getPositionVec().z);
|
||||||
}
|
}
|
||||||
|
|
||||||
default Vec3d playerHead() {
|
default Vec3d playerHead() {
|
||||||
return new Vec3d(player().posX, player().posY + player().getEyeHeight(), player().posZ);
|
return new Vec3d(player().getPositionVec().x, player().getPositionVec().y + player().getEyeHeight(), player().getPositionVec().z);
|
||||||
}
|
}
|
||||||
|
|
||||||
default Rotation playerRotations() {
|
default Rotation playerRotations() {
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ public final class VecUtils {
|
|||||||
* @see #getBlockPosCenter(BlockPos)
|
* @see #getBlockPosCenter(BlockPos)
|
||||||
*/
|
*/
|
||||||
public static double entityDistanceToCenter(Entity entity, BlockPos pos) {
|
public static double entityDistanceToCenter(Entity entity, BlockPos pos) {
|
||||||
return distanceToCenter(pos, entity.posX, entity.posY, entity.posZ);
|
return distanceToCenter(pos, entity.getPositionVec().x, entity.getPositionVec().y, entity.getPositionVec().z);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -118,6 +118,6 @@ public final class VecUtils {
|
|||||||
* @see #getBlockPosCenter(BlockPos)
|
* @see #getBlockPosCenter(BlockPos)
|
||||||
*/
|
*/
|
||||||
public static double entityFlatDistanceToCenter(Entity entity, BlockPos pos) {
|
public static double entityFlatDistanceToCenter(Entity entity, BlockPos pos) {
|
||||||
return distanceToCenter(pos, entity.posX, pos.getY() + 0.5, entity.posZ);
|
return distanceToCenter(pos, entity.getPositionVec().x, pos.getY() + 0.5, entity.getPositionVec().z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class MixinChatScreen {
|
|||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
protected TextFieldWidget inputField;
|
protected TextFieldWidget inputField;
|
||||||
|
/*
|
||||||
@Shadow
|
@Shadow
|
||||||
@Final
|
@Final
|
||||||
protected List<String> commandUsage;
|
protected List<String> commandUsage;
|
||||||
@@ -95,5 +95,5 @@ public class MixinChatScreen {
|
|||||||
this.pendingSuggestions.complete(suggestions);
|
this.pendingSuggestions.complete(suggestions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,29 +20,23 @@ package baritone.launch.mixins;
|
|||||||
import baritone.utils.accessor.IEntityRenderManager;
|
import baritone.utils.accessor.IEntityRenderManager;
|
||||||
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
import net.minecraft.client.renderer.entity.EntityRendererManager;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
|
||||||
|
|
||||||
@Mixin(EntityRendererManager.class)
|
@Mixin(EntityRendererManager.class)
|
||||||
public class MixinEntityRenderManager implements IEntityRenderManager {
|
public class MixinEntityRenderManager implements IEntityRenderManager {
|
||||||
@Shadow
|
|
||||||
private double renderPosX;
|
|
||||||
@Shadow
|
|
||||||
private double renderPosY;
|
|
||||||
@Shadow
|
|
||||||
private double renderPosZ;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double renderPosX() {
|
public double renderPosX() {
|
||||||
return renderPosX;
|
return ((EntityRendererManager) (Object) this).info.getProjectedView().x;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double renderPosY() {
|
public double renderPosY() {
|
||||||
return renderPosY;
|
return ((EntityRendererManager) (Object) this).info.getProjectedView().y;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double renderPosZ() {
|
public double renderPosZ() {
|
||||||
return renderPosZ;
|
return ((EntityRendererManager) (Object) this).info.getProjectedView().z;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,14 +30,14 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|||||||
public class MixinGameRenderer {
|
public class MixinGameRenderer {
|
||||||
|
|
||||||
@Inject(
|
@Inject(
|
||||||
method = "updateCameraAndRender(FJ)V",
|
method = "updateCameraAndRender",
|
||||||
at = @At(
|
at = @At(
|
||||||
value = "INVOKE_STRING",
|
value = "INVOKE_STRING",
|
||||||
target = "Lnet/minecraft/profiler/IProfiler;endStartSection(Ljava/lang/String;)V",
|
target = "Lnet/minecraft/profiler/IProfiler;endStartSection(Ljava/lang/String;)V",
|
||||||
args = {"ldc=hand"}
|
args = {"ldc=hand"}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
private void renderWorldPass(float partialTicks, long finishTimeNano, CallbackInfo ci) {
|
private void renderWorldPass(float partialTicks, long finishTimeNano, boolean idfk, CallbackInfo ci) {
|
||||||
for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) {
|
for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) {
|
||||||
ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(partialTicks));
|
ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(partialTicks));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package baritone.launch.mixins;
|
|||||||
|
|
||||||
import baritone.api.BaritoneAPI;
|
import baritone.api.BaritoneAPI;
|
||||||
import baritone.api.IBaritone;
|
import baritone.api.IBaritone;
|
||||||
import baritone.api.event.events.BlockInteractEvent;
|
|
||||||
import baritone.api.event.events.TickEvent;
|
import baritone.api.event.events.TickEvent;
|
||||||
import baritone.api.event.events.WorldEvent;
|
import baritone.api.event.events.WorldEvent;
|
||||||
import baritone.api.event.events.type.EventState;
|
import baritone.api.event.events.type.EventState;
|
||||||
@@ -28,10 +27,6 @@ import net.minecraft.client.Minecraft;
|
|||||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.world.ClientWorld;
|
import net.minecraft.client.world.ClientWorld;
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.util.ActionResultType;
|
|
||||||
import net.minecraft.util.Hand;
|
|
||||||
import net.minecraft.util.math.BlockRayTraceResult;
|
|
||||||
import org.spongepowered.asm.lib.Opcodes;
|
import org.spongepowered.asm.lib.Opcodes;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
@@ -39,7 +34,6 @@ import org.spongepowered.asm.mixin.injection.At;
|
|||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
|
|
||||||
|
|
||||||
import java.util.function.BiFunction;
|
import java.util.function.BiFunction;
|
||||||
|
|
||||||
@@ -56,7 +50,7 @@ public class MixinMinecraft {
|
|||||||
public ClientWorld world;
|
public ClientWorld world;
|
||||||
|
|
||||||
@Inject(
|
@Inject(
|
||||||
method = "init",
|
method = "<init>",
|
||||||
at = @At("RETURN")
|
at = @At("RETURN")
|
||||||
)
|
)
|
||||||
private void postInit(CallbackInfo ci) {
|
private void postInit(CallbackInfo ci) {
|
||||||
@@ -64,11 +58,8 @@ public class MixinMinecraft {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Inject(
|
@Inject(
|
||||||
method = "init",
|
method = "startTimerHackThread",
|
||||||
at = @At(
|
at = @At("HEAD")
|
||||||
value = "INVOKE",
|
|
||||||
target = "net/minecraft/client/Minecraft.startTimerHackThread()V"
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
private void preInit(CallbackInfo ci) {
|
private void preInit(CallbackInfo ci) {
|
||||||
BaritoneAutoTest.INSTANCE.onPreInit();
|
BaritoneAutoTest.INSTANCE.onPreInit();
|
||||||
@@ -147,7 +138,7 @@ public class MixinMinecraft {
|
|||||||
// allow user input is only the primary baritone
|
// allow user input is only the primary baritone
|
||||||
return (BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().getCurrent() != null && player != null) || screen.passEvents;
|
return (BaritoneAPI.getProvider().getPrimaryBaritone().getPathingBehavior().getCurrent() != null && player != null) || screen.passEvents;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
@Inject(
|
@Inject(
|
||||||
method = "rightClickMouse",
|
method = "rightClickMouse",
|
||||||
at = @At(
|
at = @At(
|
||||||
@@ -159,5 +150,5 @@ public class MixinMinecraft {
|
|||||||
private void onBlockUse(CallbackInfo ci, Hand var1[], int var2, int var3, Hand enumhand, ItemStack itemstack, BlockRayTraceResult raytrace, int i, ActionResultType enumactionresult) {
|
private void onBlockUse(CallbackInfo ci, Hand var1[], int var2, int var3, Hand enumhand, ItemStack itemstack, BlockRayTraceResult raytrace, int i, ActionResultType enumactionresult) {
|
||||||
// rightClickMouse is only for the main player
|
// rightClickMouse is only for the main player
|
||||||
BaritoneAPI.getProvider().getPrimaryBaritone().getGameEventHandler().onBlockInteract(new BlockInteractEvent(raytrace.getPos(), BlockInteractEvent.Type.USE));
|
BaritoneAPI.getProvider().getPrimaryBaritone().getGameEventHandler().onBlockInteract(new BlockInteractEvent(raytrace.getPos(), BlockInteractEvent.Type.USE));
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -18,22 +18,22 @@
|
|||||||
package baritone.launch.mixins;
|
package baritone.launch.mixins;
|
||||||
|
|
||||||
import baritone.utils.accessor.IBitArray;
|
import baritone.utils.accessor.IBitArray;
|
||||||
import baritone.utils.accessor.IBlockStateContainer;
|
import baritone.utils.accessor.IPalettedContainer;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.util.BitArray;
|
import net.minecraft.util.BitArray;
|
||||||
import net.minecraft.world.chunk.BlockStateContainer;
|
import net.minecraft.util.palette.IPalette;
|
||||||
import net.minecraft.world.chunk.IBlockStatePalette;
|
import net.minecraft.util.palette.PalettedContainer;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
|
||||||
@Mixin(BlockStateContainer.class)
|
@Mixin(PalettedContainer.class)
|
||||||
public abstract class MixinBlockStateContainer implements IBlockStateContainer {
|
public abstract class MixinPalettedContainer implements IPalettedContainer {
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
protected BitArray storage;
|
protected BitArray storage;
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
protected IBlockStatePalette<BlockState> palette;
|
protected IPalette<BlockState> palette;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getAtPalette(int index) {
|
public BlockState getAtPalette(int index) {
|
||||||
@@ -9,7 +9,6 @@
|
|||||||
},
|
},
|
||||||
"client": [
|
"client": [
|
||||||
"MixinBitArray",
|
"MixinBitArray",
|
||||||
"MixinBlockStateContainer",
|
|
||||||
"MixinChatScreen",
|
"MixinChatScreen",
|
||||||
"MixinChunkArray",
|
"MixinChunkArray",
|
||||||
"MixinClientChunkProvider",
|
"MixinClientChunkProvider",
|
||||||
@@ -23,6 +22,7 @@
|
|||||||
"MixinLootContext",
|
"MixinLootContext",
|
||||||
"MixinMinecraft",
|
"MixinMinecraft",
|
||||||
"MixinNetworkManager",
|
"MixinNetworkManager",
|
||||||
|
"MixinPalettedContainer",
|
||||||
"MixinPlayerController",
|
"MixinPlayerController",
|
||||||
"MixinScreen"
|
"MixinScreen"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ public final class InventoryBehavior extends Behavior {
|
|||||||
|
|
||||||
public boolean selectThrowawayForLocation(boolean select, int x, int y, int z) {
|
public boolean selectThrowawayForLocation(boolean select, int x, int y, int z) {
|
||||||
BlockState maybe = baritone.getBuilderProcess().placeAt(x, y, z, baritone.bsi.get0(x, y, z));
|
BlockState maybe = baritone.getBuilderProcess().placeAt(x, y, z, baritone.bsi.get0(x, y, z));
|
||||||
if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && maybe.equals(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockItemUseContext(new ItemUseContext(ctx.world(), ctx.player(), Hand.MAIN_HAND, stack, new BlockRayTraceResult(new Vec3d(ctx.player().posX, ctx.player().posY, ctx.player().posZ), Direction.UP, ctx.playerFeet(), false)) {}))))) {
|
if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && maybe.equals(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockItemUseContext(new ItemUseContext(ctx.world(), ctx.player(), Hand.MAIN_HAND, stack, new BlockRayTraceResult(new Vec3d(ctx.player().getPositionVec().x, ctx.player().getPositionVec().y, ctx.player().getPositionVec().z), Direction.UP, ctx.playerFeet(), false)) {}))))) {
|
||||||
return true; // gotem
|
return true; // gotem
|
||||||
}
|
}
|
||||||
if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && ((BlockItem) stack.getItem()).getBlock().equals(maybe.getBlock()))) {
|
if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && ((BlockItem) stack.getItem()).getBlock().equals(maybe.getBlock()))) {
|
||||||
|
|||||||
@@ -381,8 +381,8 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior,
|
|||||||
BetterBlockPos feet = ctx.playerFeet();
|
BetterBlockPos feet = ctx.playerFeet();
|
||||||
if (!MovementHelper.canWalkOn(ctx, feet.down())) {
|
if (!MovementHelper.canWalkOn(ctx, feet.down())) {
|
||||||
if (ctx.player().onGround) {
|
if (ctx.player().onGround) {
|
||||||
double playerX = ctx.player().posX;
|
double playerX = ctx.player().getPositionVec().x;
|
||||||
double playerZ = ctx.player().posZ;
|
double playerZ = ctx.player().getPositionVec().z;
|
||||||
ArrayList<BetterBlockPos> closest = new ArrayList<>();
|
ArrayList<BetterBlockPos> closest = new ArrayList<>();
|
||||||
for (int dx = -1; dx <= 1; dx++) {
|
for (int dx = -1; dx <= 1; dx++) {
|
||||||
for (int dz = -1; dz <= 1; dz++) {
|
for (int dz = -1; dz <= 1; dz++) {
|
||||||
|
|||||||
+2
-2
@@ -23,7 +23,7 @@ import baritone.utils.pathing.PathingBlockType;
|
|||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraft.world.chunk.BlockStateContainer;
|
import net.minecraft.util.palette.PalettedContainer;
|
||||||
import net.minecraft.world.chunk.Chunk;
|
import net.minecraft.world.chunk.Chunk;
|
||||||
import net.minecraft.world.chunk.ChunkSection;
|
import net.minecraft.world.chunk.ChunkSection;
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ public final class ChunkPacker {
|
|||||||
// since a bitset is initialized to all zero, and air is saved as zeros
|
// since a bitset is initialized to all zero, and air is saved as zeros
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
BlockStateContainer<BlockState> bsc = extendedblockstorage.getData();
|
PalettedContainer<BlockState> bsc = extendedblockstorage.getData();
|
||||||
int yReal = y0 << 4;
|
int yReal = y0 << 4;
|
||||||
// the mapping of BlockStateContainer.getIndex from xyz to index is y << 8 | z << 4 | x;
|
// the mapping of BlockStateContainer.getIndex from xyz to index is y << 8 | z << 4 | x;
|
||||||
// for better cache locality, iterate in that order
|
// for better cache locality, iterate in that order
|
||||||
|
|||||||
+2
-3
@@ -22,7 +22,7 @@ import baritone.api.cache.IWorldScanner;
|
|||||||
import baritone.api.utils.BetterBlockPos;
|
import baritone.api.utils.BetterBlockPos;
|
||||||
import baritone.api.utils.BlockOptionalMetaLookup;
|
import baritone.api.utils.BlockOptionalMetaLookup;
|
||||||
import baritone.api.utils.IPlayerContext;
|
import baritone.api.utils.IPlayerContext;
|
||||||
import baritone.utils.accessor.IBlockStateContainer;
|
import baritone.utils.accessor.IPalettedContainer;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.client.multiplayer.ClientChunkProvider;
|
import net.minecraft.client.multiplayer.ClientChunkProvider;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
@@ -30,7 +30,6 @@ import net.minecraft.util.math.ChunkPos;
|
|||||||
import net.minecraft.world.chunk.AbstractChunkProvider;
|
import net.minecraft.world.chunk.AbstractChunkProvider;
|
||||||
import net.minecraft.world.chunk.Chunk;
|
import net.minecraft.world.chunk.Chunk;
|
||||||
import net.minecraft.world.chunk.ChunkSection;
|
import net.minecraft.world.chunk.ChunkSection;
|
||||||
import net.minecraft.world.chunk.IChunk;
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
@@ -156,7 +155,7 @@ public enum WorldScanner implements IWorldScanner {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int yReal = y0 << 4;
|
int yReal = y0 << 4;
|
||||||
IBlockStateContainer bsc = (IBlockStateContainer) section.getData();
|
IPalettedContainer bsc = (IPalettedContainer) section.getData();
|
||||||
// storageArray uses an optimized algorithm that's faster than getAt
|
// storageArray uses an optimized algorithm that's faster than getAt
|
||||||
// creating this array and then using getAtPalette is faster than even getFast(int index)
|
// creating this array and then using getAtPalette is faster than even getFast(int index)
|
||||||
int[] storage = bsc.storageArray();
|
int[] storage = bsc.storageArray();
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ public class MovementAscend extends Movement {
|
|||||||
ticksWithoutPlacement++;
|
ticksWithoutPlacement++;
|
||||||
if (MovementHelper.attemptToPlaceABlock(state, baritone, dest.down(), false) == PlaceResult.READY_TO_PLACE) {
|
if (MovementHelper.attemptToPlaceABlock(state, baritone, dest.down(), false) == PlaceResult.READY_TO_PLACE) {
|
||||||
state.setInput(Input.SNEAK, true);
|
state.setInput(Input.SNEAK, true);
|
||||||
if (ctx.player().isSneaking()) {
|
if (ctx.player().movementInput.field_228350_h_) {
|
||||||
state.setInput(Input.CLICK_RIGHT, true);
|
state.setInput(Input.CLICK_RIGHT, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,8 +199,8 @@ public class MovementAscend extends Movement {
|
|||||||
|
|
||||||
int xAxis = Math.abs(src.getX() - dest.getX()); // either 0 or 1
|
int xAxis = Math.abs(src.getX() - dest.getX()); // either 0 or 1
|
||||||
int zAxis = Math.abs(src.getZ() - dest.getZ()); // either 0 or 1
|
int zAxis = Math.abs(src.getZ() - dest.getZ()); // either 0 or 1
|
||||||
double flatDistToNext = xAxis * Math.abs((dest.getX() + 0.5D) - ctx.player().posX) + zAxis * Math.abs((dest.getZ() + 0.5D) - ctx.player().posZ);
|
double flatDistToNext = xAxis * Math.abs((dest.getX() + 0.5D) - ctx.player().getPositionVec().x) + zAxis * Math.abs((dest.getZ() + 0.5D) - ctx.player().getPositionVec().z);
|
||||||
double sideDist = zAxis * Math.abs((dest.getX() + 0.5D) - ctx.player().posX) + xAxis * Math.abs((dest.getZ() + 0.5D) - ctx.player().posZ);
|
double sideDist = zAxis * Math.abs((dest.getX() + 0.5D) - ctx.player().getPositionVec().x) + xAxis * Math.abs((dest.getZ() + 0.5D) - ctx.player().getPositionVec().z);
|
||||||
|
|
||||||
double lateralMotion = xAxis * ctx.player().getMotion().z + zAxis * ctx.player().getMotion().x;
|
double lateralMotion = xAxis * ctx.player().getMotion().z + zAxis * ctx.player().getMotion().x;
|
||||||
if (Math.abs(lateralMotion) > 0.1) {
|
if (Math.abs(lateralMotion) > 0.1) {
|
||||||
|
|||||||
@@ -212,11 +212,11 @@ public class MovementDescend extends Movement {
|
|||||||
|
|
||||||
BlockPos playerFeet = ctx.playerFeet();
|
BlockPos playerFeet = ctx.playerFeet();
|
||||||
BlockPos fakeDest = new BlockPos(dest.getX() * 2 - src.getX(), dest.getY(), dest.getZ() * 2 - src.getZ());
|
BlockPos fakeDest = new BlockPos(dest.getX() * 2 - src.getX(), dest.getY(), dest.getZ() * 2 - src.getZ());
|
||||||
if ((playerFeet.equals(dest) || playerFeet.equals(fakeDest)) && (MovementHelper.isLiquid(ctx, dest) || ctx.player().posY - dest.getY() < 0.5)) { // lilypads
|
if ((playerFeet.equals(dest) || playerFeet.equals(fakeDest)) && (MovementHelper.isLiquid(ctx, dest) || ctx.player().getPositionVec().y - dest.getY() < 0.5)) { // lilypads
|
||||||
// Wait until we're actually on the ground before saying we're done because sometimes we continue to fall if the next action starts immediately
|
// Wait until we're actually on the ground before saying we're done because sometimes we continue to fall if the next action starts immediately
|
||||||
return state.setStatus(MovementStatus.SUCCESS);
|
return state.setStatus(MovementStatus.SUCCESS);
|
||||||
/* else {
|
/* else {
|
||||||
// System.out.println(player().posY + " " + playerFeet.getY() + " " + (player().posY - playerFeet.getY()));
|
// System.out.println(player().getPositionVec().y + " " + playerFeet.getY() + " " + (player().getPositionVec().y - playerFeet.getY()));
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
if (safeMode()) {
|
if (safeMode()) {
|
||||||
@@ -231,11 +231,11 @@ public class MovementDescend extends Movement {
|
|||||||
)).setInput(Input.MOVE_FORWARD, true);
|
)).setInput(Input.MOVE_FORWARD, true);
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
double diffX = ctx.player().posX - (dest.getX() + 0.5);
|
double diffX = ctx.player().getPositionVec().x - (dest.getX() + 0.5);
|
||||||
double diffZ = ctx.player().posZ - (dest.getZ() + 0.5);
|
double diffZ = ctx.player().getPositionVec().z - (dest.getZ() + 0.5);
|
||||||
double ab = Math.sqrt(diffX * diffX + diffZ * diffZ);
|
double ab = Math.sqrt(diffX * diffX + diffZ * diffZ);
|
||||||
double x = ctx.player().posX - (src.getX() + 0.5);
|
double x = ctx.player().getPositionVec().x - (src.getX() + 0.5);
|
||||||
double z = ctx.player().posZ - (src.getZ() + 0.5);
|
double z = ctx.player().getPositionVec().z - (src.getZ() + 0.5);
|
||||||
double fromStart = Math.sqrt(x * x + z * z);
|
double fromStart = Math.sqrt(x * x + z * z);
|
||||||
if (!playerFeet.equals(dest) || ab > 0.25) {
|
if (!playerFeet.equals(dest) || ab > 0.25) {
|
||||||
if (numTicks++ < 20 && fromStart < 1.25) {
|
if (numTicks++ < 20 && fromStart < 1.25) {
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ public class MovementDiagonal extends Movement {
|
|||||||
} else if (!playerInValidPosition() && !(MovementHelper.isLiquid(ctx, src) && getValidPositions().contains(ctx.playerFeet().up()))) {
|
} else if (!playerInValidPosition() && !(MovementHelper.isLiquid(ctx, src) && getValidPositions().contains(ctx.playerFeet().up()))) {
|
||||||
return state.setStatus(MovementStatus.UNREACHABLE);
|
return state.setStatus(MovementStatus.UNREACHABLE);
|
||||||
}
|
}
|
||||||
if (dest.y > src.y && ctx.player().posY < src.y + 0.1 && ctx.player().collidedHorizontally) {
|
if (dest.y > src.y && ctx.player().getPositionVec().y < src.y + 0.1 && ctx.player().collidedHorizontally) {
|
||||||
state.setInput(Input.JUMP, true);
|
state.setInput(Input.JUMP, true);
|
||||||
}
|
}
|
||||||
if (sprint()) {
|
if (sprint()) {
|
||||||
|
|||||||
@@ -84,8 +84,8 @@ public class MovementDownward extends Movement {
|
|||||||
} else if (!playerInValidPosition()) {
|
} else if (!playerInValidPosition()) {
|
||||||
return state.setStatus(MovementStatus.UNREACHABLE);
|
return state.setStatus(MovementStatus.UNREACHABLE);
|
||||||
}
|
}
|
||||||
double diffX = ctx.player().posX - (dest.getX() + 0.5);
|
double diffX = ctx.player().getPositionVec().x - (dest.getX() + 0.5);
|
||||||
double diffZ = ctx.player().posZ - (dest.getZ() + 0.5);
|
double diffZ = ctx.player().getPositionVec().z - (dest.getZ() + 0.5);
|
||||||
double ab = Math.sqrt(diffX * diffX + diffZ * diffZ);
|
double ab = Math.sqrt(diffX * diffX + diffZ * diffZ);
|
||||||
|
|
||||||
if (numTicks++ < 10 && ab < 0.2) {
|
if (numTicks++ < 10 && ab < 0.2) {
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ public class MovementFall extends Movement {
|
|||||||
return state.setStatus(MovementStatus.UNREACHABLE);
|
return state.setStatus(MovementStatus.UNREACHABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.player().posY - dest.getY() < ctx.playerController().getBlockReachDistance() && !ctx.player().onGround) {
|
if (ctx.player().getPositionVec().y - dest.getY() < ctx.playerController().getBlockReachDistance() && !ctx.player().onGround) {
|
||||||
ctx.player().inventory.currentItem = ctx.player().inventory.getSlotFor(STACK_BUCKET_WATER);
|
ctx.player().inventory.currentItem = ctx.player().inventory.getSlotFor(STACK_BUCKET_WATER);
|
||||||
|
|
||||||
targetRotation = new Rotation(toDest.getYaw(), 90.0F);
|
targetRotation = new Rotation(toDest.getYaw(), 90.0F);
|
||||||
@@ -115,7 +115,7 @@ public class MovementFall extends Movement {
|
|||||||
} else {
|
} else {
|
||||||
state.setTarget(new MovementTarget(toDest, false));
|
state.setTarget(new MovementTarget(toDest, false));
|
||||||
}
|
}
|
||||||
if (playerFeet.equals(dest) && (ctx.player().posY - playerFeet.getY() < 0.094 || isWater)) { // 0.094 because lilypads
|
if (playerFeet.equals(dest) && (ctx.player().getPositionVec().y - playerFeet.getY() < 0.094 || isWater)) { // 0.094 because lilypads
|
||||||
if (isWater) { // only match water, not flowing water (which we cannot pick up with a bucket)
|
if (isWater) { // only match water, not flowing water (which we cannot pick up with a bucket)
|
||||||
if (PlayerInventory.isHotbar(ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY))) {
|
if (PlayerInventory.isHotbar(ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY))) {
|
||||||
ctx.player().inventory.currentItem = ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY);
|
ctx.player().inventory.currentItem = ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY);
|
||||||
@@ -134,7 +134,7 @@ public class MovementFall extends Movement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Vec3d destCenter = VecUtils.getBlockPosCenter(dest); // we are moving to the 0.5 center not the edge (like if we were falling on a ladder)
|
Vec3d destCenter = VecUtils.getBlockPosCenter(dest); // we are moving to the 0.5 center not the edge (like if we were falling on a ladder)
|
||||||
if (Math.abs(ctx.player().posX + ctx.player().getMotion().x - destCenter.x) > 0.1 || Math.abs(ctx.player().posZ + ctx.player().getMotion().z - destCenter.z) > 0.1) {
|
if (Math.abs(ctx.player().getPositionVec().x + ctx.player().getMotion().x - destCenter.x) > 0.1 || Math.abs(ctx.player().getPositionVec().z + ctx.player().getMotion().z - destCenter.z) > 0.1) {
|
||||||
if (!ctx.player().onGround && Math.abs(ctx.player().getMotion().y) > 0.4) {
|
if (!ctx.player().onGround && Math.abs(ctx.player().getMotion().y) > 0.4) {
|
||||||
state.setInput(Input.SNEAK, true);
|
state.setInput(Input.SNEAK, true);
|
||||||
}
|
}
|
||||||
@@ -144,7 +144,7 @@ public class MovementFall extends Movement {
|
|||||||
if (avoid == null) {
|
if (avoid == null) {
|
||||||
avoid = src.subtract(dest);
|
avoid = src.subtract(dest);
|
||||||
} else {
|
} else {
|
||||||
double dist = Math.abs(avoid.getX() * (destCenter.x - avoid.getX() / 2.0 - ctx.player().posX)) + Math.abs(avoid.getZ() * (destCenter.z - avoid.getZ() / 2.0 - ctx.player().posZ));
|
double dist = Math.abs(avoid.getX() * (destCenter.x - avoid.getX() / 2.0 - ctx.player().getPositionVec().x)) + Math.abs(avoid.getZ() * (destCenter.z - avoid.getZ() / 2.0 - ctx.player().getPositionVec().z));
|
||||||
if (dist < 0.6) {
|
if (dist < 0.6) {
|
||||||
state.setInput(Input.MOVE_FORWARD, true);
|
state.setInput(Input.MOVE_FORWARD, true);
|
||||||
} else if (!ctx.player().onGround) {
|
} else if (!ctx.player().onGround) {
|
||||||
|
|||||||
@@ -246,19 +246,19 @@ public class MovementParkour extends Movement {
|
|||||||
// but i did it anyway
|
// but i did it anyway
|
||||||
return state.setStatus(MovementStatus.SUCCESS);
|
return state.setStatus(MovementStatus.SUCCESS);
|
||||||
}
|
}
|
||||||
if (ctx.player().posY - ctx.playerFeet().getY() < 0.094) { // lilypads
|
if (ctx.player().getPositionVec().y - ctx.playerFeet().getY() < 0.094) { // lilypads
|
||||||
state.setStatus(MovementStatus.SUCCESS);
|
state.setStatus(MovementStatus.SUCCESS);
|
||||||
}
|
}
|
||||||
} else if (!ctx.playerFeet().equals(src)) {
|
} else if (!ctx.playerFeet().equals(src)) {
|
||||||
if (ctx.playerFeet().equals(src.offset(direction)) || ctx.player().posY - src.y > 0.0001) {
|
if (ctx.playerFeet().equals(src.offset(direction)) || ctx.player().getPositionVec().y - src.y > 0.0001) {
|
||||||
if (!MovementHelper.canWalkOn(ctx, dest.down()) && !ctx.player().onGround && MovementHelper.attemptToPlaceABlock(state, baritone, dest.down(), true) == PlaceResult.READY_TO_PLACE) {
|
if (!MovementHelper.canWalkOn(ctx, dest.down()) && !ctx.player().onGround && MovementHelper.attemptToPlaceABlock(state, baritone, dest.down(), true) == PlaceResult.READY_TO_PLACE) {
|
||||||
// go in the opposite order to check DOWN before all horizontals -- down is preferable because you don't have to look to the side while in midair, which could mess up the trajectory
|
// go in the opposite order to check DOWN before all horizontals -- down is preferable because you don't have to look to the side while in midair, which could mess up the trajectory
|
||||||
state.setInput(Input.CLICK_RIGHT, true);
|
state.setInput(Input.CLICK_RIGHT, true);
|
||||||
}
|
}
|
||||||
// prevent jumping too late by checking for ascend
|
// prevent jumping too late by checking for ascend
|
||||||
if (dist == 3 && !ascend) { // this is a 2 block gap, dest = src + direction * 3
|
if (dist == 3 && !ascend) { // this is a 2 block gap, dest = src + direction * 3
|
||||||
double xDiff = (src.x + 0.5) - ctx.player().posX;
|
double xDiff = (src.x + 0.5) - ctx.player().getPositionVec().x;
|
||||||
double zDiff = (src.z + 0.5) - ctx.player().posZ;
|
double zDiff = (src.z + 0.5) - ctx.player().getPositionVec().z;
|
||||||
double distFromStart = Math.max(Math.abs(xDiff), Math.abs(zDiff));
|
double distFromStart = Math.max(Math.abs(xDiff), Math.abs(zDiff));
|
||||||
if (distFromStart < 0.7) {
|
if (distFromStart < 0.7) {
|
||||||
return state;
|
return state;
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ public class MovementPillar extends Movement {
|
|||||||
// stay centered while swimming up a water column
|
// stay centered while swimming up a water column
|
||||||
state.setTarget(new MovementState.MovementTarget(RotationUtils.calcRotationFromVec3d(ctx.playerHead(), VecUtils.getBlockPosCenter(dest), ctx.playerRotations()), false));
|
state.setTarget(new MovementState.MovementTarget(RotationUtils.calcRotationFromVec3d(ctx.playerHead(), VecUtils.getBlockPosCenter(dest), ctx.playerRotations()), false));
|
||||||
Vec3d destCenter = VecUtils.getBlockPosCenter(dest);
|
Vec3d destCenter = VecUtils.getBlockPosCenter(dest);
|
||||||
if (Math.abs(ctx.player().posX - destCenter.x) > 0.2 || Math.abs(ctx.player().posZ - destCenter.z) > 0.2) {
|
if (Math.abs(ctx.player().getPositionVec().x - destCenter.x) > 0.2 || Math.abs(ctx.player().getPositionVec().z - destCenter.z) > 0.2) {
|
||||||
state.setInput(Input.MOVE_FORWARD, true);
|
state.setInput(Input.MOVE_FORWARD, true);
|
||||||
}
|
}
|
||||||
if (ctx.playerFeet().equals(dest)) {
|
if (ctx.playerFeet().equals(dest)) {
|
||||||
@@ -218,11 +218,11 @@ public class MovementPillar extends Movement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
state.setInput(Input.SNEAK, ctx.player().posY > dest.getY() || ctx.player().posY < src.getY() + 0.2D); // delay placement by 1 tick for ncp compatibility
|
state.setInput(Input.SNEAK, ctx.player().getPositionVec().y > dest.getY() || ctx.player().getPositionVec().y < src.getY() + 0.2D); // delay placement by 1 tick for ncp compatibility
|
||||||
// since (lower down) we only right click once player.isSneaking, and that happens the tick after we request to sneak
|
// since (lower down) we only right click once player.isSneaking, and that happens the tick after we request to sneak
|
||||||
|
|
||||||
double diffX = ctx.player().posX - (dest.getX() + 0.5);
|
double diffX = ctx.player().getPositionVec().x - (dest.getX() + 0.5);
|
||||||
double diffZ = ctx.player().posZ - (dest.getZ() + 0.5);
|
double diffZ = ctx.player().getPositionVec().z - (dest.getZ() + 0.5);
|
||||||
double dist = Math.sqrt(diffX * diffX + diffZ * diffZ);
|
double dist = Math.sqrt(diffX * diffX + diffZ * diffZ);
|
||||||
double flatMotion = Math.sqrt(ctx.player().getMotion().x * ctx.player().getMotion().x + ctx.player().getMotion().z * ctx.player().getMotion().z);
|
double flatMotion = Math.sqrt(ctx.player().getMotion().x * ctx.player().getMotion().x + ctx.player().getMotion().z * ctx.player().getMotion().z);
|
||||||
if (dist > 0.17) {//why 0.17? because it seemed like a good number, that's why
|
if (dist > 0.17) {//why 0.17? because it seemed like a good number, that's why
|
||||||
@@ -236,7 +236,7 @@ public class MovementPillar extends Movement {
|
|||||||
state.setTarget(new MovementState.MovementTarget(rotation, true));
|
state.setTarget(new MovementState.MovementTarget(rotation, true));
|
||||||
} else if (flatMotion < 0.05) {
|
} else if (flatMotion < 0.05) {
|
||||||
// If our Y coordinate is above our goal, stop jumping
|
// If our Y coordinate is above our goal, stop jumping
|
||||||
state.setInput(Input.JUMP, ctx.player().posY < dest.getY());
|
state.setInput(Input.JUMP, ctx.player().getPositionVec().y < dest.getY());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -251,7 +251,7 @@ public class MovementPillar extends Movement {
|
|||||||
state.setInput(Input.JUMP, false); // breaking is like 5x slower when you're jumping
|
state.setInput(Input.JUMP, false); // breaking is like 5x slower when you're jumping
|
||||||
state.setInput(Input.CLICK_LEFT, true);
|
state.setInput(Input.CLICK_LEFT, true);
|
||||||
blockIsThere = false;
|
blockIsThere = false;
|
||||||
} else if (ctx.player().isSneaking() && (ctx.isLookingAt(src.down()) || ctx.isLookingAt(src)) && ctx.player().posY > dest.getY() + 0.1) {
|
} else if (ctx.player().movementInput.field_228350_h_ && (ctx.isLookingAt(src.down()) || ctx.isLookingAt(src)) && ctx.player().getPositionVec().y > dest.getY() + 0.1) {
|
||||||
state.setInput(Input.CLICK_RIGHT, true);
|
state.setInput(Input.CLICK_RIGHT, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ public class MovementTraverse extends Movement {
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
// and we aren't already pressed up against the block
|
// and we aren't already pressed up against the block
|
||||||
double dist = Math.max(Math.abs(ctx.player().posX - (dest.getX() + 0.5D)), Math.abs(ctx.player().posZ - (dest.getZ() + 0.5D)));
|
double dist = Math.max(Math.abs(ctx.player().getPositionVec().x - (dest.getX() + 0.5D)), Math.abs(ctx.player().getPositionVec().z - (dest.getZ() + 0.5D)));
|
||||||
if (dist < 0.83) {
|
if (dist < 0.83) {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
@@ -245,7 +245,7 @@ public class MovementTraverse extends Movement {
|
|||||||
}
|
}
|
||||||
Block low = BlockStateInterface.get(ctx, src).getBlock();
|
Block low = BlockStateInterface.get(ctx, src).getBlock();
|
||||||
Block high = BlockStateInterface.get(ctx, src.up()).getBlock();
|
Block high = BlockStateInterface.get(ctx, src.up()).getBlock();
|
||||||
if (ctx.player().posY > src.y + 0.1D && !ctx.player().onGround && (low == Blocks.VINE || low == Blocks.LADDER || high == Blocks.VINE || high == Blocks.LADDER)) {
|
if (ctx.player().getPositionVec().y > src.y + 0.1D && !ctx.player().onGround && (low == Blocks.VINE || low == Blocks.LADDER || high == Blocks.VINE || high == Blocks.LADDER)) {
|
||||||
// hitting W could cause us to climb the ladder instead of going forward
|
// hitting W could cause us to climb the ladder instead of going forward
|
||||||
// wait until we're on the ground
|
// wait until we're on the ground
|
||||||
return state;
|
return state;
|
||||||
@@ -272,21 +272,22 @@ public class MovementTraverse extends Movement {
|
|||||||
wasTheBridgeBlockAlwaysThere = false;
|
wasTheBridgeBlockAlwaysThere = false;
|
||||||
Block standingOn = BlockStateInterface.get(ctx, feet.down()).getBlock();
|
Block standingOn = BlockStateInterface.get(ctx, feet.down()).getBlock();
|
||||||
if (standingOn.equals(Blocks.SOUL_SAND) || standingOn instanceof SlabBlock) { // see issue #118
|
if (standingOn.equals(Blocks.SOUL_SAND) || standingOn instanceof SlabBlock) { // see issue #118
|
||||||
double dist = Math.max(Math.abs(dest.getX() + 0.5 - ctx.player().posX), Math.abs(dest.getZ() + 0.5 - ctx.player().posZ));
|
double dist = Math.max(Math.abs(dest.getX() + 0.5 - ctx.player().getPositionVec().x), Math.abs(dest.getZ() + 0.5 - ctx.player().getPositionVec().z));
|
||||||
if (dist < 0.85) { // 0.5 + 0.3 + epsilon
|
if (dist < 0.85) { // 0.5 + 0.3 + epsilon
|
||||||
MovementHelper.moveTowards(ctx, state, dest);
|
MovementHelper.moveTowards(ctx, state, dest);
|
||||||
return state.setInput(Input.MOVE_FORWARD, false)
|
return state.setInput(Input.MOVE_FORWARD, false)
|
||||||
.setInput(Input.MOVE_BACK, true);
|
.setInput(Input.MOVE_BACK, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
double dist1 = Math.max(Math.abs(ctx.player().posX - (dest.getX() + 0.5D)), Math.abs(ctx.player().posZ - (dest.getZ() + 0.5D)));
|
double dist1 = Math.max(Math.abs(ctx.player().getPositionVec().x - (dest.getX() + 0.5D)), Math.abs(ctx.player().getPositionVec().z - (dest.getZ() + 0.5D)));
|
||||||
PlaceResult p = MovementHelper.attemptToPlaceABlock(state, baritone, dest.down(), false);
|
PlaceResult p = MovementHelper.attemptToPlaceABlock(state, baritone, dest.down(), false);
|
||||||
if ((p == PlaceResult.READY_TO_PLACE || dist1 < 0.6) && !Baritone.settings().assumeSafeWalk.value) {
|
if ((p == PlaceResult.READY_TO_PLACE || dist1 < 0.6) && !Baritone.settings().assumeSafeWalk.value) {
|
||||||
state.setInput(Input.SNEAK, true);
|
state.setInput(Input.SNEAK, true);
|
||||||
}
|
}
|
||||||
switch (p) {
|
switch (p) {
|
||||||
case READY_TO_PLACE: {
|
case READY_TO_PLACE: {
|
||||||
if (ctx.player().isSneaking() || Baritone.settings().assumeSafeWalk.value) {
|
|
||||||
|
if (ctx.player().movementInput.field_228350_h_ || Baritone.settings().assumeSafeWalk.value) {
|
||||||
state.setInput(Input.CLICK_RIGHT, true);
|
state.setInput(Input.CLICK_RIGHT, true);
|
||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
@@ -319,7 +320,7 @@ public class MovementTraverse extends Movement {
|
|||||||
|
|
||||||
Rotation backToFace = RotationUtils.calcRotationFromVec3d(ctx.playerHead(), new Vec3d(faceX, faceY, faceZ), ctx.playerRotations());
|
Rotation backToFace = RotationUtils.calcRotationFromVec3d(ctx.playerHead(), new Vec3d(faceX, faceY, faceZ), ctx.playerRotations());
|
||||||
float pitch = backToFace.getPitch();
|
float pitch = backToFace.getPitch();
|
||||||
double dist2 = Math.max(Math.abs(ctx.player().posX - faceX), Math.abs(ctx.player().posZ - faceZ));
|
double dist2 = Math.max(Math.abs(ctx.player().getPositionVec().x - faceX), Math.abs(ctx.player().getPositionVec().z - faceZ));
|
||||||
if (dist2 < 0.29) { // see issue #208
|
if (dist2 < 0.29) { // see issue #208
|
||||||
float yaw = RotationUtils.calcRotationFromVec3d(VecUtils.getBlockPosCenter(dest), ctx.playerHead(), ctx.playerRotations()).getYaw();
|
float yaw = RotationUtils.calcRotationFromVec3d(VecUtils.getBlockPosCenter(dest), ctx.playerHead(), ctx.playerRotations()).getYaw();
|
||||||
state.setTarget(new MovementState.MovementTarget(new Rotation(yaw, pitch), true));
|
state.setTarget(new MovementState.MovementTarget(new Rotation(yaw, pitch), true));
|
||||||
|
|||||||
@@ -414,7 +414,7 @@ public class PathExecutor implements IPathExecutor, Helper {
|
|||||||
// playerFeet adds 0.1251 to account for soul sand
|
// playerFeet adds 0.1251 to account for soul sand
|
||||||
// farmland is 0.9375
|
// farmland is 0.9375
|
||||||
// 0.07 is to account for farmland
|
// 0.07 is to account for farmland
|
||||||
if (ctx.player().posY >= center.getY() - 0.07) {
|
if (ctx.player().getPositionVec().y >= center.getY() - 0.07) {
|
||||||
behavior.baritone.getInputOverrideHandler().setInputForceState(Input.JUMP, false);
|
behavior.baritone.getInputOverrideHandler().setInputForceState(Input.JUMP, false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -485,7 +485,7 @@ public class PathExecutor implements IPathExecutor, Helper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean skipNow(IPlayerContext ctx, IMovement current) {
|
private static boolean skipNow(IPlayerContext ctx, IMovement current) {
|
||||||
double offTarget = Math.abs(current.getDirection().getX() * (current.getSrc().z + 0.5D - ctx.player().posZ)) + Math.abs(current.getDirection().getZ() * (current.getSrc().x + 0.5D - ctx.player().posX));
|
double offTarget = Math.abs(current.getDirection().getX() * (current.getSrc().z + 0.5D - ctx.player().getPositionVec().z)) + Math.abs(current.getDirection().getZ() * (current.getSrc().x + 0.5D - ctx.player().getPositionVec().x));
|
||||||
if (offTarget > 0.1) {
|
if (offTarget > 0.1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -495,7 +495,7 @@ public class PathExecutor implements IPathExecutor, Helper {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// wait 0.3
|
// wait 0.3
|
||||||
double flatDist = Math.abs(current.getDirection().getX() * (headBonk.getX() + 0.5D - ctx.player().posX)) + Math.abs(current.getDirection().getZ() * (headBonk.getZ() + 0.5 - ctx.player().posZ));
|
double flatDist = Math.abs(current.getDirection().getX() * (headBonk.getX() + 0.5D - ctx.player().getPositionVec().x)) + Math.abs(current.getDirection().getZ() * (headBonk.getZ() + 0.5 - ctx.player().getPositionVec().z));
|
||||||
return flatDist > 0.8;
|
return flatDist > 0.8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -445,7 +445,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil
|
|||||||
BetterBlockPos pos = toBreak.get().getA();
|
BetterBlockPos pos = toBreak.get().getA();
|
||||||
baritone.getLookBehavior().updateTarget(rot, true);
|
baritone.getLookBehavior().updateTarget(rot, true);
|
||||||
MovementHelper.switchToBestToolFor(ctx, bcc.get(pos));
|
MovementHelper.switchToBestToolFor(ctx, bcc.get(pos));
|
||||||
if (ctx.player().isSneaking()) {
|
if (ctx.player().movementInput.field_228350_h_) {
|
||||||
// really horrible bug where a block is visible for breaking while sneaking but not otherwise
|
// really horrible bug where a block is visible for breaking while sneaking but not otherwise
|
||||||
// so you can't see it, it goes to place something else, sneaks, then the next tick it tries to break
|
// so you can't see it, it goes to place something else, sneaks, then the next tick it tries to break
|
||||||
// and is unable since it's unsneaked in the intermediary tick
|
// and is unable since it's unsneaked in the intermediary tick
|
||||||
@@ -781,7 +781,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// <toxic cloud>
|
// <toxic cloud>
|
||||||
result.add(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockItemUseContext(new ItemUseContext(ctx.world(), ctx.player(), Hand.MAIN_HAND, stack, new BlockRayTraceResult(new Vec3d(ctx.player().posX, ctx.player().posY, ctx.player().posZ), Direction.UP, ctx.playerFeet(), false)) {})));
|
result.add(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockItemUseContext(new ItemUseContext(ctx.world(), ctx.player(), Hand.MAIN_HAND, stack, new BlockRayTraceResult(new Vec3d(ctx.player().getPositionVec().x, ctx.player().getPositionVec().y, ctx.player().getPositionVec().z), Direction.UP, ctx.playerFeet(), false)) {})));
|
||||||
// </toxic cloud>
|
// </toxic cloud>
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -282,7 +282,7 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro
|
|||||||
ItemEntity ei = (ItemEntity) entity;
|
ItemEntity ei = (ItemEntity) entity;
|
||||||
if (PICKUP_DROPPED.contains(ei.getItem().getItem())) {
|
if (PICKUP_DROPPED.contains(ei.getItem().getItem())) {
|
||||||
// +0.1 because of farmland's 0.9375 dummy height lol
|
// +0.1 because of farmland's 0.9375 dummy height lol
|
||||||
goalz.add(new GoalBlock(new BlockPos(entity.posX, entity.posY + 0.1, entity.posZ)));
|
goalz.add(new GoalBlock(new BlockPos(entity.getPositionVec().x, entity.getPositionVec().y + 0.1, entity.getPositionVec().z)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public final class FollowProcess extends BaritoneProcessHelper implements IFollo
|
|||||||
pos = new BlockPos(following);
|
pos = new BlockPos(following);
|
||||||
} else {
|
} else {
|
||||||
GoalXZ g = GoalXZ.fromDirection(following.getPositionVector(), Baritone.settings().followOffsetDirection.value, Baritone.settings().followOffsetDistance.value);
|
GoalXZ g = GoalXZ.fromDirection(following.getPositionVector(), Baritone.settings().followOffsetDirection.value, Baritone.settings().followOffsetDistance.value);
|
||||||
pos = new BlockPos(g.getX(), following.posY, g.getZ());
|
pos = new BlockPos(g.getX(), following.getPositionVec().y, g.getZ());
|
||||||
}
|
}
|
||||||
return new GoalNear(pos, Baritone.settings().followRadius.value);
|
return new GoalNear(pos, Baritone.settings().followRadius.value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class BlockStateInterface {
|
|||||||
private final ClientChunkProvider provider;
|
private final ClientChunkProvider provider;
|
||||||
private final WorldData worldData;
|
private final WorldData worldData;
|
||||||
protected final IBlockReader world;
|
protected final IBlockReader world;
|
||||||
public final BlockPos.MutableBlockPos isPassableBlockPos;
|
public final BlockPos.Mutable isPassableBlockPos;
|
||||||
public final IBlockReader access;
|
public final IBlockReader access;
|
||||||
|
|
||||||
private Chunk prev = null;
|
private Chunk prev = null;
|
||||||
@@ -74,7 +74,7 @@ public class BlockStateInterface {
|
|||||||
if (!Minecraft.getInstance().isOnExecutionThread()) {
|
if (!Minecraft.getInstance().isOnExecutionThread()) {
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
}
|
}
|
||||||
this.isPassableBlockPos = new BlockPos.MutableBlockPos();
|
this.isPassableBlockPos = new BlockPos.Mutable();
|
||||||
this.access = new BlockStateInterfaceAccessWrapper(this);
|
this.access = new BlockStateInterfaceAccessWrapper(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,25 +23,19 @@ import baritone.api.pathing.goals.GoalBlock;
|
|||||||
import baritone.api.pathing.goals.GoalTwoBlocks;
|
import baritone.api.pathing.goals.GoalTwoBlocks;
|
||||||
import baritone.api.utils.BetterBlockPos;
|
import baritone.api.utils.BetterBlockPos;
|
||||||
import baritone.api.utils.Helper;
|
import baritone.api.utils.Helper;
|
||||||
import com.mojang.blaze3d.platform.GlStateManager;
|
|
||||||
import net.minecraft.client.entity.player.ClientPlayerEntity;
|
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.*;
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraft.util.text.StringTextComponent;
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.util.text.event.ClickEvent;
|
import net.minecraft.util.text.event.ClickEvent;
|
||||||
import org.lwjgl.BufferUtils;
|
import org.lwjgl.BufferUtils;
|
||||||
import org.lwjgl.opengl.GL11;
|
|
||||||
|
|
||||||
import java.awt.*;
|
|
||||||
import java.nio.FloatBuffer;
|
import java.nio.FloatBuffer;
|
||||||
import java.nio.IntBuffer;
|
import java.nio.IntBuffer;
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX;
|
import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX;
|
||||||
import static org.lwjgl.opengl.GL11.*;
|
|
||||||
|
|
||||||
public class GuiClick extends Screen implements Helper {
|
public class GuiClick extends Screen implements Helper {
|
||||||
|
|
||||||
@@ -67,20 +61,21 @@ public class GuiClick extends Screen implements Helper {
|
|||||||
public void render(int mouseX, int mouseY, float partialTicks) {
|
public void render(int mouseX, int mouseY, float partialTicks) {
|
||||||
double mx = mc.mouseHelper.getMouseX();
|
double mx = mc.mouseHelper.getMouseX();
|
||||||
double my = mc.mouseHelper.getMouseY();
|
double my = mc.mouseHelper.getMouseY();
|
||||||
my = mc.mainWindow.getHeight() - my;
|
|
||||||
|
/*my = mc.mainWindow.getHeight() - my;
|
||||||
my *= mc.mainWindow.getFramebufferHeight() / (double) mc.mainWindow.getHeight();
|
my *= mc.mainWindow.getFramebufferHeight() / (double) mc.mainWindow.getHeight();
|
||||||
mx *= mc.mainWindow.getFramebufferWidth() / (double) mc.mainWindow.getWidth();
|
mx *= mc.mainWindow.getFramebufferWidth() / (double) mc.mainWindow.getWidth();
|
||||||
Vec3d near = toWorld(mx, my, 0);
|
Vec3d near = toWorld(mx, my, 0);
|
||||||
Vec3d far = toWorld(mx, my, 1); // "Use 0.945 that's what stack overflow says" - leijurv
|
Vec3d far = toWorld(mx, my, 1); // "Use 0.945 that's what stack overflow says" - leijurv
|
||||||
if (near != null && far != null) {
|
if (near != null && far != null) {
|
||||||
///
|
///
|
||||||
Vec3d viewerPos = new Vec3d(PathRenderer.posX(), PathRenderer.posY(), PathRenderer.posZ());
|
Vec3d viewerPos = new Vec3d(PathRenderer.getPositionVec().x(), PathRenderer.getPositionVec().y(), PathRenderer.getPositionVec().z());
|
||||||
ClientPlayerEntity player = BaritoneAPI.getProvider().getPrimaryBaritone().getPlayerContext().player();
|
ClientPlayerEntity player = BaritoneAPI.getProvider().getPrimaryBaritone().getPlayerContext().player();
|
||||||
RayTraceResult result = player.world.rayTraceBlocks(new RayTraceContext(near.add(viewerPos), far.add(viewerPos), RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, player));
|
RayTraceResult result = player.world.rayTraceBlocks(new RayTraceContext(near.add(viewerPos), far.add(viewerPos), RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, player));
|
||||||
if (result != null && result.getType() == RayTraceResult.Type.BLOCK) {
|
if (result != null && result.getType() == RayTraceResult.Type.BLOCK) {
|
||||||
currentMouseOver = ((BlockRayTraceResult) result).getPos();
|
currentMouseOver = ((BlockRayTraceResult) result).getPos();
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -115,7 +110,7 @@ public class GuiClick extends Screen implements Helper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onRender() {
|
public void onRender() {
|
||||||
GlStateManager.getMatrix(GL_MODELVIEW_MATRIX, (FloatBuffer) MODELVIEW.clear());
|
/*GlStateManager.getMatrix(GL_MODELVIEW_MATRIX, (FloatBuffer) MODELVIEW.clear());
|
||||||
GlStateManager.getMatrix(GL_PROJECTION_MATRIX, (FloatBuffer) PROJECTION.clear());
|
GlStateManager.getMatrix(GL_PROJECTION_MATRIX, (FloatBuffer) PROJECTION.clear());
|
||||||
GL11.glGetIntegerv(GL_VIEWPORT, (IntBuffer) VIEWPORT.clear());
|
GL11.glGetIntegerv(GL_VIEWPORT, (IntBuffer) VIEWPORT.clear());
|
||||||
|
|
||||||
@@ -140,7 +135,7 @@ public class GuiClick extends Screen implements Helper {
|
|||||||
GlStateManager.enableTexture();
|
GlStateManager.enableTexture();
|
||||||
GlStateManager.disableBlend();
|
GlStateManager.disableBlend();
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private Vec3d toWorld(double x, double y, double z) {
|
private Vec3d toWorld(double x, double y, double z) {
|
||||||
|
|||||||
@@ -40,11 +40,11 @@ public interface IRenderer {
|
|||||||
|
|
||||||
static void glColor(Color color, float alpha) {
|
static void glColor(Color color, float alpha) {
|
||||||
float[] colorComponents = color.getColorComponents(null);
|
float[] colorComponents = color.getColorComponents(null);
|
||||||
GlStateManager.color4f(colorComponents[0], colorComponents[1], colorComponents[2], alpha);
|
//GlStateManager.color4f(colorComponents[0], colorComponents[1], colorComponents[2], alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void startLines(Color color, float alpha, float lineWidth, boolean ignoreDepth) {
|
static void startLines(Color color, float alpha, float lineWidth, boolean ignoreDepth) {
|
||||||
GlStateManager.enableBlend();
|
/*GlStateManager.enableBlend();
|
||||||
GlStateManager.disableLighting();
|
GlStateManager.disableLighting();
|
||||||
GlStateManager.blendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
|
GlStateManager.blendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ZERO);
|
||||||
glColor(color, alpha);
|
glColor(color, alpha);
|
||||||
@@ -54,7 +54,7 @@ public interface IRenderer {
|
|||||||
|
|
||||||
if (ignoreDepth) {
|
if (ignoreDepth) {
|
||||||
GlStateManager.disableDepthTest();
|
GlStateManager.disableDepthTest();
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void startLines(Color color, float lineWidth, boolean ignoreDepth) {
|
static void startLines(Color color, float lineWidth, boolean ignoreDepth) {
|
||||||
@@ -62,14 +62,14 @@ public interface IRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void endLines(boolean ignoredDepth) {
|
static void endLines(boolean ignoredDepth) {
|
||||||
if (ignoredDepth) {
|
/*if (ignoredDepth) {
|
||||||
GlStateManager.enableDepthTest();
|
GlStateManager.enableDepthTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
GlStateManager.depthMask(true);
|
GlStateManager.depthMask(true);
|
||||||
GlStateManager.enableTexture();
|
GlStateManager.enableTexture();
|
||||||
GlStateManager.enableLighting();
|
GlStateManager.enableLighting();
|
||||||
GlStateManager.disableBlend();
|
GlStateManager.disableBlend();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void drawAABB(AxisAlignedBB aabb) {
|
static void drawAABB(AxisAlignedBB aabb) {
|
||||||
@@ -77,32 +77,32 @@ public interface IRenderer {
|
|||||||
|
|
||||||
buffer.begin(GL_LINES, DefaultVertexFormats.POSITION);
|
buffer.begin(GL_LINES, DefaultVertexFormats.POSITION);
|
||||||
// bottom
|
// bottom
|
||||||
buffer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex();
|
||||||
// top
|
// top
|
||||||
buffer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex();
|
||||||
// corners
|
// corners
|
||||||
buffer.pos(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.minZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.minY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.maxX, toDraw.maxY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.minY, toDraw.maxZ).endVertex();
|
||||||
buffer.pos(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex();
|
buffer.func_225582_a_(toDraw.minX, toDraw.maxY, toDraw.maxZ).endVertex();
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -185,13 +185,13 @@ public final class PathRenderer implements IRenderer, Helper {
|
|||||||
boolean renderPathAsFrickinThingy = !settings.renderPathAsLine.value;
|
boolean renderPathAsFrickinThingy = !settings.renderPathAsLine.value;
|
||||||
|
|
||||||
buffer.begin(renderPathAsFrickinThingy ? GL_LINE_STRIP : GL_LINES, DefaultVertexFormats.POSITION);
|
buffer.begin(renderPathAsFrickinThingy ? GL_LINE_STRIP : GL_LINES, DefaultVertexFormats.POSITION);
|
||||||
buffer.pos(x1 + 0.5D - vpX, y1 + 0.5D - vpY, z1 + 0.5D - vpZ).endVertex();
|
buffer.func_225582_a_(x1 + 0.5D - vpX, y1 + 0.5D - vpY, z1 + 0.5D - vpZ).endVertex();
|
||||||
buffer.pos(x2 + 0.5D - vpX, y2 + 0.5D - vpY, z2 + 0.5D - vpZ).endVertex();
|
buffer.func_225582_a_(x2 + 0.5D - vpX, y2 + 0.5D - vpY, z2 + 0.5D - vpZ).endVertex();
|
||||||
|
|
||||||
if (renderPathAsFrickinThingy) {
|
if (renderPathAsFrickinThingy) {
|
||||||
buffer.pos(x2 + 0.5D - vpX, y2 + 0.53D - vpY, z2 + 0.5D - vpZ).endVertex();
|
buffer.func_225582_a_(x2 + 0.5D - vpX, y2 + 0.53D - vpY, z2 + 0.5D - vpZ).endVertex();
|
||||||
buffer.pos(x1 + 0.5D - vpX, y1 + 0.53D - vpY, z1 + 0.5D - vpZ).endVertex();
|
buffer.func_225582_a_(x1 + 0.5D - vpX, y1 + 0.53D - vpY, z1 + 0.5D - vpZ).endVertex();
|
||||||
buffer.pos(x1 + 0.5D - vpX, y1 + 0.5D - vpY, z1 + 0.5D - vpZ).endVertex();
|
buffer.func_225582_a_(x1 + 0.5D - vpX, y1 + 0.5D - vpY, z1 + 0.5D - vpZ).endVertex();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -247,10 +247,10 @@ public final class PathRenderer implements IRenderer, Helper {
|
|||||||
|
|
||||||
Helper.mc.getTextureManager().bindTexture(TEXTURE_BEACON_BEAM);
|
Helper.mc.getTextureManager().bindTexture(TEXTURE_BEACON_BEAM);
|
||||||
if (settings.renderGoalIgnoreDepth.value) {
|
if (settings.renderGoalIgnoreDepth.value) {
|
||||||
GlStateManager.disableDepthTest();
|
//GlStateManager.disableDepthTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
BeaconTileEntityRenderer.renderBeamSegment(
|
/* BeaconTileEntityRenderer.renderBeamSegment(
|
||||||
goalPos.getX() - renderPosX,
|
goalPos.getX() - renderPosX,
|
||||||
-renderPosY,
|
-renderPosY,
|
||||||
goalPos.getZ() - renderPosZ,
|
goalPos.getZ() - renderPosZ,
|
||||||
@@ -264,10 +264,10 @@ public final class PathRenderer implements IRenderer, Helper {
|
|||||||
// Arguments filled by the private method lol
|
// Arguments filled by the private method lol
|
||||||
0.2D,
|
0.2D,
|
||||||
0.25D
|
0.25D
|
||||||
);
|
);*/
|
||||||
|
|
||||||
if (settings.renderGoalIgnoreDepth.value) {
|
if (settings.renderGoalIgnoreDepth.value) {
|
||||||
GlStateManager.enableDepthTest();
|
//GlStateManager.enableDepthTest();
|
||||||
}
|
}
|
||||||
|
|
||||||
glPopAttrib();
|
glPopAttrib();
|
||||||
@@ -293,10 +293,10 @@ public final class PathRenderer implements IRenderer, Helper {
|
|||||||
return;
|
return;
|
||||||
} else if (goal instanceof GoalYLevel) {
|
} else if (goal instanceof GoalYLevel) {
|
||||||
GoalYLevel goalpos = (GoalYLevel) goal;
|
GoalYLevel goalpos = (GoalYLevel) goal;
|
||||||
minX = player.posX - settings.yLevelBoxSize.value - renderPosX;
|
minX = player.getPositionVec().x - settings.yLevelBoxSize.value - renderPosX;
|
||||||
minZ = player.posZ - settings.yLevelBoxSize.value - renderPosZ;
|
minZ = player.getPositionVec().z - settings.yLevelBoxSize.value - renderPosZ;
|
||||||
maxX = player.posX + settings.yLevelBoxSize.value - renderPosX;
|
maxX = player.getPositionVec().x + settings.yLevelBoxSize.value - renderPosX;
|
||||||
maxZ = player.posZ + settings.yLevelBoxSize.value - renderPosZ;
|
maxZ = player.getPositionVec().z + settings.yLevelBoxSize.value - renderPosZ;
|
||||||
minY = ((GoalYLevel) goal).level - renderPosY;
|
minY = ((GoalYLevel) goal).level - renderPosY;
|
||||||
maxY = minY + 2;
|
maxY = minY + 2;
|
||||||
y1 = 1 + y + goalpos.level - renderPosY;
|
y1 = 1 + y + goalpos.level - renderPosY;
|
||||||
@@ -312,14 +312,14 @@ public final class PathRenderer implements IRenderer, Helper {
|
|||||||
|
|
||||||
|
|
||||||
buffer.begin(GL_LINES, DefaultVertexFormats.POSITION);
|
buffer.begin(GL_LINES, DefaultVertexFormats.POSITION);
|
||||||
buffer.pos(minX, minY, minZ).endVertex();
|
buffer.func_225582_a_(minX, minY, minZ).endVertex();
|
||||||
buffer.pos(minX, maxY, minZ).endVertex();
|
buffer.func_225582_a_(minX, maxY, minZ).endVertex();
|
||||||
buffer.pos(maxX, minY, minZ).endVertex();
|
buffer.func_225582_a_(maxX, minY, minZ).endVertex();
|
||||||
buffer.pos(maxX, maxY, minZ).endVertex();
|
buffer.func_225582_a_(maxX, maxY, minZ).endVertex();
|
||||||
buffer.pos(maxX, minY, maxZ).endVertex();
|
buffer.func_225582_a_(maxX, minY, maxZ).endVertex();
|
||||||
buffer.pos(maxX, maxY, maxZ).endVertex();
|
buffer.func_225582_a_(maxX, maxY, maxZ).endVertex();
|
||||||
buffer.pos(minX, minY, maxZ).endVertex();
|
buffer.func_225582_a_(minX, minY, maxZ).endVertex();
|
||||||
buffer.pos(minX, maxY, maxZ).endVertex();
|
buffer.func_225582_a_(minX, maxY, maxZ).endVertex();
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
|
|
||||||
IRenderer.endLines(settings.renderGoalIgnoreDepth.value);
|
IRenderer.endLines(settings.renderGoalIgnoreDepth.value);
|
||||||
@@ -328,10 +328,10 @@ public final class PathRenderer implements IRenderer, Helper {
|
|||||||
private static void renderHorizontalQuad(double minX, double maxX, double minZ, double maxZ, double y) {
|
private static void renderHorizontalQuad(double minX, double maxX, double minZ, double maxZ, double y) {
|
||||||
if (y != 0) {
|
if (y != 0) {
|
||||||
buffer.begin(GL_LINE_LOOP, DefaultVertexFormats.POSITION);
|
buffer.begin(GL_LINE_LOOP, DefaultVertexFormats.POSITION);
|
||||||
buffer.pos(minX, y, minZ).endVertex();
|
buffer.func_225582_a_(minX, y, minZ).endVertex();
|
||||||
buffer.pos(maxX, y, minZ).endVertex();
|
buffer.func_225582_a_(maxX, y, minZ).endVertex();
|
||||||
buffer.pos(maxX, y, maxZ).endVertex();
|
buffer.func_225582_a_(maxX, y, maxZ).endVertex();
|
||||||
buffer.pos(minX, y, maxZ).endVertex();
|
buffer.func_225582_a_(minX, y, maxZ).endVertex();
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class PlayerMovementInput extends MovementInput {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(boolean p_217607_1_, boolean p_217607_2_) {
|
public void func_225607_a_(boolean p_225607_1_) {
|
||||||
this.moveStrafe = 0.0F;
|
this.moveStrafe = 0.0F;
|
||||||
this.moveForward = 0.0F;
|
this.moveForward = 0.0F;
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ public class PlayerMovementInput extends MovementInput {
|
|||||||
this.moveStrafe--;
|
this.moveStrafe--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.sneak = handler.isInputForcedDown(Input.SNEAK)) {
|
if (this.field_228350_h_ = handler.isInputForcedDown(Input.SNEAK)) {
|
||||||
this.moveStrafe *= 0.3D;
|
this.moveStrafe *= 0.3D;
|
||||||
this.moveForward *= 0.3D;
|
this.moveForward *= 0.3D;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ package baritone.utils.accessor;
|
|||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
|
||||||
public interface IBlockStateContainer {
|
public interface IPalettedContainer {
|
||||||
|
|
||||||
BlockState getAtPalette(int index);
|
BlockState getAtPalette(int index);
|
||||||
|
|
||||||
@@ -70,4 +70,4 @@ public final class MCEditSchematic extends StaticSchematic {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user