diff --git a/build.gradle b/build.gradle index 57e98633..fd4a9309 100755 --- a/build.gradle +++ b/build.gradle @@ -19,7 +19,7 @@ buildscript { } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.0-SNAPSHOT' + classpath 'net.minecraftforge.gradle:ForgeGradle:2.1-SNAPSHOT' classpath 'org.spongepowered:mixingradle:0.3-SNAPSHOT' } } @@ -36,9 +36,9 @@ archivesBaseName = "replaymod" minecraft { coreMod = 'com.replaymod.core.LoadingPlugin' - version = '1.8-11.14.4.1563' + version = '1.8.9-11.15.1.1722' runDir = "eclipse" - mappings = "snapshot_nodoc_20141130" + mappings = "stable_22" replace '@MOD_VERSION@', project.version replace '@MC_VERSION@', project.minecraft.version } diff --git a/jGui b/jGui index 94e4b4c3..2ed5da06 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 94e4b4c3889528aaf62804148e3d771ecbee5611 +Subproject commit 2ed5da06b7ad3246ab23483808d29ac73c0944b8 diff --git a/src/main/java/com/replaymod/core/LoadingPlugin.java b/src/main/java/com/replaymod/core/LoadingPlugin.java index 6ed89aa4..5e7042f9 100755 --- a/src/main/java/com/replaymod/core/LoadingPlugin.java +++ b/src/main/java/com/replaymod/core/LoadingPlugin.java @@ -4,7 +4,7 @@ import net.minecraftforge.fml.relauncher.CoreModManager; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; import org.apache.logging.log4j.LogManager; import org.spongepowered.asm.launch.MixinBootstrap; -import org.spongepowered.asm.mixin.MixinEnvironment; +import org.spongepowered.asm.mixin.Mixins; import java.io.File; import java.net.URISyntaxException; @@ -16,10 +16,10 @@ public class LoadingPlugin implements IFMLLoadingPlugin { public LoadingPlugin() { MixinBootstrap.init(); - MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.recording.replaymod.json"); - MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.render.replaymod.json"); - MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.replay.replaymod.json"); - MixinEnvironment.getDefaultEnvironment().addConfiguration("mixins.compat.shaders.replaymod.json"); + Mixins.addConfiguration("mixins.recording.replaymod.json"); + Mixins.addConfiguration("mixins.render.replaymod.json"); + Mixins.addConfiguration("mixins.replay.replaymod.json"); + Mixins.addConfiguration("mixins.compat.shaders.replaymod.json"); CodeSource codeSource = getClass().getProtectionDomain().getCodeSource(); if (codeSource != null) { @@ -29,7 +29,7 @@ public class LoadingPlugin implements IFMLLoadingPlugin { if (file.isFile()) { // This forces forge to reexamine the jar file for FML mods // Should eventually be handled by Mixin itself, maybe? - CoreModManager.getLoadedCoremods().remove(file.getName()); + CoreModManager.getIgnoredMods().remove(file.getName()); } } catch (URISyntaxException e) { e.printStackTrace(); diff --git a/src/main/java/com/replaymod/core/ReplayMod.java b/src/main/java/com/replaymod/core/ReplayMod.java index 6a8d97bc..b427893f 100755 --- a/src/main/java/com/replaymod/core/ReplayMod.java +++ b/src/main/java/com/replaymod/core/ReplayMod.java @@ -14,7 +14,12 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.settings.GameSettings; import net.minecraft.crash.CrashReport; import net.minecraft.crash.CrashReportCategory; -import net.minecraft.util.*; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.client.FMLClientHandler; import net.minecraftforge.fml.common.FMLCommonHandler; @@ -31,7 +36,6 @@ import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.util.List; -import java.util.Queue; @Mod(modid = ReplayMod.MOD_ID, useMetadata = true, @@ -126,150 +130,7 @@ public class ReplayMod { if(!FMLClientHandler.instance().hasOptifine()) GameSettings.Options.RENDER_DISTANCE.setValueMax(64f); - if (System.getProperty("replaymod.render.file") != null) { - final File file = new File(System.getProperty("replaymod.render.file")); - if (!file.exists()) { - throw new IOException("File \"" + file.getPath() + "\" not found."); - } - - final String path = System.getProperty("replaymod.render.path"); - String type = System.getProperty("replaymod.render.type"); - String bitrate = System.getProperty("replaymod.render.bitrate"); - String fps = System.getProperty("replaymod.render.fps"); - String waitForChunks = System.getProperty("replaymod.render.waitforchunks"); - String linearMovement = System.getProperty("replaymod.render.linearmovement"); - String skyColor = System.getProperty("replaymod.render.skycolor"); - String width = System.getProperty("replaymod.render.width"); - String height = System.getProperty("replaymod.render.height"); - String exportCommand = System.getProperty("replaymod.render.exportcommand"); - String exportCommandArgs = System.getProperty("replaymod.render.exportcommandargs"); - /* - final RenderOptions options = new RenderOptions(); - if (bitrate != null) { - options.setBitrate(bitrate); - } - if (fps != null) { - options.setFps(Integer.parseInt(fps)); - } - if (waitForChunks != null) { - options.setWaitForChunks(Boolean.parseBoolean(waitForChunks)); - } - if (linearMovement != null) { - options.setLinearMovement(Boolean.parseBoolean(linearMovement)); - } - if (skyColor != null) { - if (skyColor.startsWith("0x")) { - options.setSkyColor(Integer.parseInt(skyColor.substring(2), 16)); - } else { - options.setSkyColor(Integer.parseInt(skyColor)); - } - } - if (width != null) { - options.setWidth(Integer.parseInt(width)); - } - if (height != null) { - options.setHeight(Integer.parseInt(height)); - } - - if (exportCommand != null) { - options.setExportCommand(exportCommand); - } - if (exportCommandArgs != null) { - options.setExportCommandArgs(exportCommandArgs); - } else { - options.setExportCommandArgs(EncodingPreset.MP4DEFAULT.getCommandLineArgs()); - } - - options.setOutputFile(new File(String.valueOf(System.currentTimeMillis()))); - - Pipelines.Preset pipelinePreset = Pipelines.Preset.DEFAULT; - if (type != null) { - String[] parts = type.split(":"); - type = parts[0].toUpperCase(); - if ("NORMAL".equals(type) || "DEFAULT".equals(type)) { - pipelinePreset = Pipelines.Preset.DEFAULT; - } else if ("STEREO".equals(type) || "STEREOSCOPIC".equals(type)) { - pipelinePreset = Pipelines.Preset.STEREOSCOPIC; - } else if ("CUBIC".equals(type)) { - if (parts.length < 2) { - throw new IllegalArgumentException("Cubic renderer requires boolean for whether it's stable."); - } - pipelinePreset = Pipelines.Preset.CUBIC; - } else if ("EQUIRECTANGULAR".equals(type)) { - if (parts.length < 2) { - throw new IllegalArgumentException("Equirectangular renderer requires boolean for whether it's stable."); - } - pipelinePreset = Pipelines.Preset.EQUIRECTANGULAR; - } else if ("ODS".equals(type)) { - if (parts.length < 2) { - throw new IllegalArgumentException("ODS renderer requires boolean for whether it's stable."); - } - pipelinePreset = Pipelines.Preset.ODS; - } else { - throw new IllegalArgumentException("Unknown type: " + parts[0]); - } - } - options.setMode(pipelinePreset); - */ - - @SuppressWarnings("unchecked") - Queue tasks = mc.scheduledTasks; - synchronized (mc.scheduledTasks) { - tasks.add(ListenableFutureTask.create(new Runnable() { - @Override - public void run() { - String renderDistance = System.getProperty("replaymod.render.mc.renderdistance"); - String clouds = System.getProperty("replaymod.render.mc.clouds"); - if (renderDistance != null) { - mc.gameSettings.renderDistanceChunks = Integer.parseInt(renderDistance); - } - if (clouds != null) { - mc.gameSettings.clouds = Boolean.parseBoolean(clouds); - } - - System.out.println("Loading replay..."); - // TODO -// try { -// ReplayHandler.startReplay(file, false); -// } catch (Throwable t) { -// t.printStackTrace(); -// FMLCommonHandler.instance().exitJava(1, false); -// } -// -// int index = 0; -// if (path != null) { -// for (KeyframeSet set : ReplayHandler.getKeyframeRepository()) { -// if (set.getName().equals(path)) { -// break; -// } -// index++; -// } -// if (index >= ReplayHandler.getKeyframeRepository().length) { -// throw new IllegalArgumentException("No path named \"" + path + "\"."); -// } -// } else if (ReplayHandler.getKeyframeRepository().length == 0) { -// throw new IllegalArgumentException("Replay file has no paths defined."); -// } -// ReplayHandler.useKeyframePresetFromRepository(index); -// -// System.out.println("Rendering started..."); -// try { -// ReplayProcess.startReplayProcess(options, true); -// } catch (Throwable t) { -// t.printStackTrace(); -// FMLCommonHandler.instance().exitJava(1, false); -// } -// if (mc.hasCrashed) { -// System.out.println(mc.crashReporter.getCompleteReport()); -// } -// System.out.println("Rendering done. Shutting down..."); -// mc.shutdown(); - } - }, null)); - } - - testIfMoeshAndExitMinecraft(); - } + testIfMoeshAndExitMinecraft(); runLater(() -> { // Cleanup deleted corrupted replays @@ -306,10 +167,8 @@ public class ReplayMod { } public void runLater(Runnable runnable) { - @SuppressWarnings("unchecked") - Queue tasks = mc.scheduledTasks; synchronized (mc.scheduledTasks) { - tasks.add(ListenableFutureTask.create(runnable, null)); + mc.scheduledTasks.add(ListenableFutureTask.create(runnable, null)); } } diff --git a/src/main/java/com/replaymod/core/utils/OpenGLUtils.java b/src/main/java/com/replaymod/core/utils/OpenGLUtils.java index 6ee4886b..8f3653de 100644 --- a/src/main/java/com/replaymod/core/utils/OpenGLUtils.java +++ b/src/main/java/com/replaymod/core/utils/OpenGLUtils.java @@ -3,6 +3,7 @@ package com.replaymod.core.utils; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; @@ -34,14 +35,14 @@ public class OpenGLUtils { float f5 = 1.0F / textureHeight; Tessellator tessellator = Tessellator.getInstance(); - WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + WorldRenderer vertexBuffer = tessellator.getWorldRenderer(); GlStateManager.translate(x+(width/2), y+(width/2), 0); GlStateManager.rotate(rotation, 0, 0, 1); - worldrenderer.startDrawingQuads(); - worldrenderer.addVertexWithUV(-width / 2, height / 2, 0.0D, (double) (u * f4), (double) ((v + (float) height) * f5)); - worldrenderer.addVertexWithUV(width/2, height/2, 0.0D, (double)((u + (float)width) * f4), (double)((v + (float)height) * f5)); - worldrenderer.addVertexWithUV(width/2, -height/2, 0.0D, (double)((u + (float)width) * f4), (double)(v * f5)); - worldrenderer.addVertexWithUV(-width/2, -height/2, 0.0D, (double)(u * f4), (double)(v * f5)); + vertexBuffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); + vertexBuffer.pos(-width / 2, height / 2, 0.0D).tex((double) (u * f4), (double) ((v + (float) height) * f5)).endVertex(); + vertexBuffer.pos(width/2, height/2, 0.0D).tex((double)((u + (float)width) * f4), (double)((v + (float)height) * f5)).endVertex(); + vertexBuffer.pos(width/2, -height/2, 0.0D).tex((double)((u + (float)width) * f4), (double)(v * f5)).endVertex(); + vertexBuffer.pos(-width/2, -height/2, 0.0D).tex((double)(u * f4), (double)(v * f5)).endVertex(); tessellator.draw(); GlStateManager.popMatrix(); diff --git a/src/main/java/com/replaymod/core/utils/WrappedTimer.java b/src/main/java/com/replaymod/core/utils/WrappedTimer.java index f058eb8c..93d2bebf 100644 --- a/src/main/java/com/replaymod/core/utils/WrappedTimer.java +++ b/src/main/java/com/replaymod/core/utils/WrappedTimer.java @@ -27,7 +27,7 @@ public class WrappedTimer extends Timer { to.elapsedPartialTicks = from.elapsedPartialTicks; to.lastSyncSysClock = from.lastSyncSysClock; to.lastSyncHRClock = from.lastSyncHRClock; - to.field_74285_i = from.field_74285_i; + to.counter = from.counter; to.timeSyncAdjustment = from.timeSyncAdjustment; } } diff --git a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java index a979e841..3ff55a3f 100644 --- a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java +++ b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverviewGui.java @@ -90,7 +90,7 @@ public class PlayerOverviewGui extends GuiScreen implements Closeable { public void draw(GuiRenderer renderer, ReadableDimension size, RenderInfo renderInfo) { renderer.bindTexture(texture); renderer.drawTexturedRect(0, 0, 8, 8, 16, 16, 8, 8, 64, 64); - if (p.func_175148_a(EnumPlayerModelParts.HAT)) { + if (p.isWearing(EnumPlayerModelParts.HAT)) { renderer.drawTexturedRect(0, 0, 40, 8, size.getWidth(), size.getHeight(), 8, 8, 64, 64); } } diff --git a/src/main/java/com/replaymod/extras/playeroverview/PlayerRenderHook.java b/src/main/java/com/replaymod/extras/playeroverview/PlayerRenderHook.java index 66c7eb42..1548960c 100644 --- a/src/main/java/com/replaymod/extras/playeroverview/PlayerRenderHook.java +++ b/src/main/java/com/replaymod/extras/playeroverview/PlayerRenderHook.java @@ -1,9 +1,9 @@ package com.replaymod.extras.playeroverview; +import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.renderer.culling.ICamera; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderPlayer; -import net.minecraft.entity.Entity; public class PlayerRenderHook extends RenderPlayer { private final PlayerOverview extra; @@ -14,7 +14,7 @@ public class PlayerRenderHook extends RenderPlayer { } @Override - public boolean shouldRender(Entity entity, ICamera camera, double camX, double camY, double camZ) { + public boolean shouldRender(AbstractClientPlayer entity, ICamera camera, double camX, double camY, double camZ) { return !extra.isHidden(entity.getUniqueID()) && super.shouldRender(entity, camera, camX, camY, camZ); } } diff --git a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java index bd5d4a99..3f86c108 100644 --- a/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java +++ b/src/main/java/com/replaymod/recording/mixin/MixinNetHandlerPlayClient.java @@ -12,7 +12,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import java.util.List; import java.util.Map; import java.util.UUID; @@ -41,14 +40,12 @@ public abstract class MixinNetHandlerPlayClient { if (gameController.thePlayer == null) return; RecordingEventHandler handler = getRecordingEventHandler(); - if (handler != null && packet.func_179768_b() == S38PacketPlayerListItem.Action.ADD_PLAYER) { - @SuppressWarnings("unchecked") - List dataList = packet.func_179767_a(); - for (S38PacketPlayerListItem.AddPlayerData data : dataList) { - if (data.func_179962_a() == null || data.func_179962_a().getId() == null) continue; + if (handler != null && packet.getAction() == S38PacketPlayerListItem.Action.ADD_PLAYER) { + for (S38PacketPlayerListItem.AddPlayerData data : packet.getEntries()) { + if (data.getProfile() == null || data.getProfile().getId() == null) continue; // Only add spawn packet for our own player and only if he isn't known yet - if (data.func_179962_a().getId().equals(Minecraft.getMinecraft().thePlayer.getGameProfile().getId()) - && !playerInfoMap.containsKey(data.func_179962_a().getId())) { + if (data.getProfile().getId().equals(Minecraft.getMinecraft().thePlayer.getGameProfile().getId()) + && !playerInfoMap.containsKey(data.getProfile().getId())) { handler.onPlayerJoin(); } } diff --git a/src/main/java/com/replaymod/recording/packet/PacketListener.java b/src/main/java/com/replaymod/recording/packet/PacketListener.java index cd07c6e0..480cb494 100755 --- a/src/main/java/com/replaymod/recording/packet/PacketListener.java +++ b/src/main/java/com/replaymod/recording/packet/PacketListener.java @@ -85,7 +85,7 @@ public class PacketListener extends ChannelInboundHandlerAdapter { public void save(Packet packet) { try { if(packet instanceof S0CPacketSpawnPlayer) { - UUID uuid = ((S0CPacketSpawnPlayer) packet).func_179819_c(); + UUID uuid = ((S0CPacketSpawnPlayer) packet).getPlayer(); Set uuids = new HashSet<>(Arrays.asList(metaData.getPlayers())); uuids.add(uuid.toString()); metaData.setPlayers(uuids.toArray(new String[uuids.size()])); @@ -153,7 +153,7 @@ public class PacketListener extends ChannelInboundHandlerAdapter { if(packet instanceof S0DPacketCollectItem) { if(mc.thePlayer != null || - ((S0DPacketCollectItem) packet).func_149353_d() == mc.thePlayer.getEntityId()) { + ((S0DPacketCollectItem) packet).getEntityID() == mc.thePlayer.getEntityId()) { super.channelRead(ctx, msg); return; } @@ -205,11 +205,11 @@ public class PacketListener extends ChannelInboundHandlerAdapter { if(packet instanceof S0CPacketSpawnPlayer) { S0CPacketSpawnPlayer p = (S0CPacketSpawnPlayer) packet; - if (p.field_148960_i == null) { - p.field_148960_i = new DataWatcher(null); + if (p.watcher == null) { + p.watcher = new DataWatcher(null); if(p.func_148944_c() != null) { - for(DataWatcher.WatchableObject wo : (List) p.func_148944_c()) { - p.field_148960_i.addObject(wo.getDataValueId(), wo.getObject()); + for(DataWatcher.WatchableObject wo : p.func_148944_c()) { + p.watcher.addObject(wo.getDataValueId(), wo.getObject()); } } } diff --git a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java index a00ff274..0c9825dd 100644 --- a/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java +++ b/src/main/java/com/replaymod/recording/packet/ResourcePackRecorder.java @@ -74,8 +74,8 @@ public class ResourcePackRecorder { final int requestId = nextRequestId++; final NetHandlerPlayClient netHandler = mc.getNetHandler(); final NetworkManager netManager = netHandler.getNetworkManager(); - final String url = packet.func_179783_a(); - final String hash = packet.func_179784_b(); + final String url = packet.getURL(); + final String hash = packet.getHash(); if (url.startsWith("level://")) { String levelName = url.substring("level://".length()); @@ -84,7 +84,7 @@ public class ResourcePackRecorder { if (levelDir.isFile()) { netManager.sendPacket(new C19PacketResourcePackStatus(hash, C19PacketResourcePackStatus.Action.ACCEPTED)); - Futures.addCallback(mc.getResourcePackRepository().func_177319_a(levelDir), new FutureCallback() { + Futures.addCallback(mc.getResourcePackRepository().setResourcePackInstance(levelDir), new FutureCallback() { @Override public void onSuccess(Object result) { recordResourcePack(levelDir, requestId); @@ -161,16 +161,16 @@ public class ResourcePackRecorder { } final File file = new File(repo.dirServerResourcepacks, fileName); - repo.field_177321_h.lock(); + repo.lock.lock(); try { - repo.func_148529_f(); + repo.clearResourcePack(); if (file.exists() && hash.length() == 40) { try { String fileHash = Hashing.sha1().hashBytes(Files.toByteArray(file)).toString(); if (fileHash.equals(hash)) { recordResourcePack(file, requestId); - return repo.func_177319_a(file); + return repo.setResourcePackInstance(file); } logger.warn("File " + file + " had wrong hash (expected " + hash + ", found " + fileHash + "). Deleting it."); @@ -186,13 +186,13 @@ public class ResourcePackRecorder { Futures.getUnchecked(mc.addScheduledTask(() -> mc.displayGuiScreen(guiScreen))); - Map sessionInfo = Minecraft.getSessionInfo(); - repo.field_177322_i = HttpUtil.func_180192_a(file, url, sessionInfo, 50 * 1024 * 1024, guiScreen, mc.getProxy()); - Futures.addCallback(repo.field_177322_i, new FutureCallback() { + Map sessionInfo = Minecraft.getSessionInfo(); + repo.downloadingPacks = HttpUtil.downloadResourcePack(file, url, sessionInfo, 50 * 1024 * 1024, guiScreen, mc.getProxy()); + Futures.addCallback(repo.downloadingPacks, new FutureCallback() { @Override public void onSuccess(Object value) { recordResourcePack(file, requestId); - repo.func_177319_a(file); + repo.setResourcePackInstance(file); } @Override @@ -200,9 +200,9 @@ public class ResourcePackRecorder { throwable.printStackTrace(); } }); - return repo.field_177322_i; + return repo.downloadingPacks; } finally { - repo.field_177321_h.unlock(); + repo.lock.unlock(); } } diff --git a/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java b/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java index 01a480f0..8c1d96a0 100644 --- a/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java +++ b/src/main/java/com/replaymod/render/capturer/ODSFrameCapturer.java @@ -75,9 +75,9 @@ public class ODSFrameCapturer implements FrameCapturer { linkState(1, "lightMapEnabled"); linkState(2, "hurtTextureEnabled"); final Program.Uniform uniform = shaderProgram.getUniformVariable("fogEnabled"); - previousFogState = GlStateManager.fogState.field_179049_a; + previousFogState = GlStateManager.fogState.fog; uniform.set(previousFogState.currentState); - GlStateManager.fogState.field_179049_a = new BooleanState(previousFogState.capability) { + GlStateManager.fogState.fog = new BooleanState(previousFogState.capability) { @Override public void setState(boolean state) { super.setState(state); @@ -135,7 +135,7 @@ public class ODSFrameCapturer implements FrameCapturer { for (int i = 0; i < 3; i++) { GlStateManager.textureState[i].texture2DState = previousStates[i]; } - GlStateManager.fogState.field_179049_a = previousFogState; + GlStateManager.fogState.fog = previousFogState; } private class CubicStereoFrameCapturer extends CubicPboOpenGlFrameCapturer { diff --git a/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java b/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java index 35599bf7..405a9508 100644 --- a/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java +++ b/src/main/java/com/replaymod/render/hooks/ChunkLoadingRenderGlobal.java @@ -16,7 +16,7 @@ public class ChunkLoadingRenderGlobal { private final RenderGlobal hooked; private final ChunkRenderDispatcher renderDispatcher; - private final JailingQueue workerJailingQueue; + private final JailingQueue workerJailingQueue; private final CustomChunkRenderWorker renderWorker; private int frame; @@ -27,7 +27,7 @@ public class ChunkLoadingRenderGlobal { this.renderWorker = new CustomChunkRenderWorker(renderDispatcher, new RegionRenderCacheBuilder()); int workerThreads = renderDispatcher.listThreadedWorkers.size(); - BlockingQueue queueChunkUpdates = renderDispatcher.queueChunkUpdates; + BlockingQueue queueChunkUpdates = renderDispatcher.queueChunkUpdates; workerJailingQueue = new JailingQueue<>(queueChunkUpdates); renderDispatcher.queueChunkUpdates = workerJailingQueue; ChunkCompileTaskGenerator element = new ChunkCompileTaskGenerator(null, null); @@ -51,7 +51,6 @@ public class ChunkLoadingRenderGlobal { } } - @SuppressWarnings("unchecked") public void updateChunks() { while (renderDispatcher.runChunkUploads(0)) { hooked.displayListEntitiesDirty = true; @@ -59,7 +58,7 @@ public class ChunkLoadingRenderGlobal { while (!renderDispatcher.queueChunkUpdates.isEmpty()) { try { - renderWorker.processTask((ChunkCompileTaskGenerator) renderDispatcher.queueChunkUpdates.poll()); + renderWorker.processTask(renderDispatcher.queueChunkUpdates.poll()); } catch (InterruptedException ignored) { } } diff --git a/src/main/java/com/replaymod/render/mixin/MixinEffectRenderer.java b/src/main/java/com/replaymod/render/mixin/MixinEffectRenderer.java index eb9deb08..e374e562 100644 --- a/src/main/java/com/replaymod/render/mixin/MixinEffectRenderer.java +++ b/src/main/java/com/replaymod/render/mixin/MixinEffectRenderer.java @@ -12,13 +12,13 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(EffectRenderer.class) public abstract class MixinEffectRenderer { - @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/EntityFX;func_180434_a(Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V")) + @Redirect(method = "renderParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/EntityFX;renderParticle(Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V")) private void renderNormalParticle(EntityFX fx, WorldRenderer worldRenderer, Entity view, float partialTicks, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { renderParticle(fx, worldRenderer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); } - @Redirect(method = "renderLitParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/EntityFX;func_180434_a(Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V")) + @Redirect(method = "renderLitParticles", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/EntityFX;renderParticle(Lnet/minecraft/client/renderer/WorldRenderer;Lnet/minecraft/entity/Entity;FFFFFF)V")) private void renderLitParticle(EntityFX fx, WorldRenderer worldRenderer, Entity view, float partialTicks, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { renderParticle(fx, worldRenderer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); @@ -42,6 +42,6 @@ public abstract class MixinEffectRenderer { rotYZ = (float) (-rotZ * Math.sin(pitch)); rotXY = (float) (rotX * Math.sin(pitch)); } - fx.func_180434_a(worldRenderer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); + fx.renderParticle(worldRenderer, view, partialTicks, rotX, rotXZ, rotZ, rotYZ, rotXY); } } diff --git a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java index cf8ab6b2..61a507ad 100644 --- a/src/main/java/com/replaymod/render/rendering/VideoRenderer.java +++ b/src/main/java/com/replaymod/render/rendering/VideoRenderer.java @@ -219,7 +219,7 @@ public class VideoRenderer implements RenderInfo { updateDisplaySize(); - ScaledResolution scaled = new ScaledResolution(mc, displayWidth, displayHeight); + ScaledResolution scaled = new ScaledResolution(mc); gui.toMinecraft().setWorldAndResolution(mc, scaled.getScaledWidth(), scaled.getScaledHeight()); chunkLoadingRenderGlobal = new ChunkLoadingRenderGlobal(mc.renderGlobal); @@ -286,7 +286,7 @@ public class VideoRenderer implements RenderInfo { mc.entityRenderer.setupOverlayRendering(); - ScaledResolution scaled = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + ScaledResolution scaled = new ScaledResolution(mc); gui.toMinecraft().setWorldAndResolution(mc, scaled.getScaledWidth(), scaled.getScaledHeight()); try { diff --git a/src/main/java/com/replaymod/replay/NoGuiScreenshot.java b/src/main/java/com/replaymod/replay/NoGuiScreenshot.java index f3626baa..1fdfff51 100644 --- a/src/main/java/com/replaymod/replay/NoGuiScreenshot.java +++ b/src/main/java/com/replaymod/replay/NoGuiScreenshot.java @@ -16,8 +16,6 @@ import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; -import java.util.Queue; -import java.util.concurrent.FutureTask; @RequiredArgsConstructor(access = AccessLevel.PRIVATE) @Getter @@ -45,7 +43,7 @@ public class NoGuiScreenshot { mc.getFramebuffer().bindFramebuffer(true); GlStateManager.enableTexture2D(); - mc.entityRenderer.updateCameraAndRender(mc.timer.renderPartialTicks); + mc.entityRenderer.updateCameraAndRender(mc.timer.renderPartialTicks, System.nanoTime()); mc.getFramebuffer().unbindFramebuffer(); GlStateManager.popMatrix(); @@ -101,9 +99,7 @@ public class NoGuiScreenshot { // of the game loop. We cannot use the addScheduledTask method as it'll run the task if called // from the minecraft thread which is exactly what we want to avoid. synchronized (mc.scheduledTasks) { - @SuppressWarnings("unchecked") - Queue queue = mc.scheduledTasks; - queue.add(ListenableFutureTask.create(runnable, null)); + mc.scheduledTasks.add(ListenableFutureTask.create(runnable, null)); } return future; } diff --git a/src/main/java/com/replaymod/replay/ReplayHandler.java b/src/main/java/com/replaymod/replay/ReplayHandler.java index 6d867cf4..4d5a3375 100755 --- a/src/main/java/com/replaymod/replay/ReplayHandler.java +++ b/src/main/java/com/replaymod/replay/ReplayHandler.java @@ -311,7 +311,7 @@ public class ReplayHandler { mc.getFramebuffer().bindFramebuffer(true); mc.entityRenderer.setupOverlayRendering(); - ScaledResolution resolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight); + ScaledResolution resolution = new ScaledResolution(mc); guiScreen.setWorldAndResolution(mc, resolution.getScaledWidth(), resolution.getScaledHeight()); guiScreen.drawScreen(0, 0, 0); @@ -329,9 +329,7 @@ public class ReplayHandler { replaySender.setReplaySpeed(0); mc.getNetHandler().getNetworkManager().processReceivedPackets(); - @SuppressWarnings("unchecked") - List entities = (List) mc.theWorld.loadedEntityList; - for (Entity entity : entities) { + for (Entity entity : mc.theWorld.loadedEntityList) { if (entity instanceof EntityOtherPlayerMP) { EntityOtherPlayerMP e = (EntityOtherPlayerMP) entity; e.setPosition(e.otherPlayerMPX, e.otherPlayerMPY, e.otherPlayerMPZ); diff --git a/src/main/java/com/replaymod/replay/ReplaySender.java b/src/main/java/com/replaymod/replay/ReplaySender.java index 6be29efc..3d9c50a7 100755 --- a/src/main/java/com/replaymod/replay/ReplaySender.java +++ b/src/main/java/com/replaymod/replay/ReplaySender.java @@ -354,7 +354,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { } } if (p instanceof S40PacketDisconnect) { - IChatComponent reason = ((S40PacketDisconnect) p).func_149165_c(); + IChatComponent reason = ((S40PacketDisconnect) p).getReason(); if ("Please update to view this replay.".equals(reason.getUnformattedText())) { // This version of the mod supports replay restrictions so we are allowed // to remove this packet. @@ -368,7 +368,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { if(p instanceof S48PacketResourcePackSend) { S48PacketResourcePackSend packet = (S48PacketResourcePackSend) p; - String url = packet.func_179783_a(); + String url = packet.getURL(); if (url.startsWith("replay://")) { int id = Integer.parseInt(url.substring("replay://".length())); Map index = replayFile.getResourcePackIndex(); @@ -379,7 +379,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { if (!file.exists()) { IOUtils.copy(replayFile.getResourcePack(hash).get(), new FileOutputStream(file)); } - mc.getResourcePackRepository().func_177319_a(file); + mc.getResourcePackRepository().setResourcePackInstance(file); } } return null; @@ -403,8 +403,8 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { if(p instanceof S07PacketRespawn) { S07PacketRespawn respawn = (S07PacketRespawn) p; - p = new S07PacketRespawn(respawn.func_149082_c(), - respawn.func_149081_d(), respawn.func_149080_f(), GameType.SPECTATOR); + p = new S07PacketRespawn(respawn.getDimensionID(), + respawn.getDifficulty(), respawn.getWorldType(), GameType.SPECTATOR); allowMovement = true; } @@ -431,8 +431,8 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { } if(cent != null) { - if(!allowMovement && !((Math.abs(cent.posX - ppl.func_148932_c()) > TP_DISTANCE_LIMIT) || - (Math.abs(cent.posZ - ppl.func_148933_e()) > TP_DISTANCE_LIMIT))) { + if(!allowMovement && !((Math.abs(cent.posX - ppl.getX()) > TP_DISTANCE_LIMIT) || + (Math.abs(cent.posZ - ppl.getZ()) > TP_DISTANCE_LIMIT))) { return null; } else { allowMovement = false; @@ -451,7 +451,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { } CameraEntity cent = replayHandler.getCameraEntity(); - cent.setCameraPosition(ppl.func_148932_c(), ppl.func_148928_d(), ppl.func_148933_e()); + cent.setCameraPosition(ppl.getX(), ppl.getY(), ppl.getZ()); return null; } }.call(); @@ -459,7 +459,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { if(p instanceof S2BPacketChangeGameState) { S2BPacketChangeGameState pg = (S2BPacketChangeGameState)p; - int reason = pg.func_149138_c(); + int reason = pg.getGameState(); // only allow the following packets: // 1 - End raining @@ -695,7 +695,7 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { if(p instanceof S0EPacketSpawnObject) { S0EPacketSpawnObject pso = (S0EPacketSpawnObject)p; - int type = pso.func_148993_l(); + int type = pso.getType(); if(type == 76) { // Firework rocket return null; } @@ -789,28 +789,28 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { private void convertLegacyEntityIds(Packet packet) { if (packet instanceof S0CPacketSpawnPlayer) { S0CPacketSpawnPlayer p = (S0CPacketSpawnPlayer) packet; - if (p.field_148957_a == LEGACY_ENTITY_ID) { - p.field_148957_a = actualID; + if (p.entityId == LEGACY_ENTITY_ID) { + p.entityId = actualID; } } else if (packet instanceof S18PacketEntityTeleport) { S18PacketEntityTeleport p = (S18PacketEntityTeleport) packet; - if (p.field_149458_a == LEGACY_ENTITY_ID) { - p.field_149458_a = actualID; + if (p.entityId == LEGACY_ENTITY_ID) { + p.entityId = actualID; } } else if (packet instanceof S14PacketEntity.S17PacketEntityLookMove) { S14PacketEntity.S17PacketEntityLookMove p = (S14PacketEntity.S17PacketEntityLookMove) packet; - if (p.field_149074_a == LEGACY_ENTITY_ID) { - p.field_149074_a = actualID; + if (p.entityId == LEGACY_ENTITY_ID) { + p.entityId = actualID; } } else if (packet instanceof S19PacketEntityHeadLook) { S19PacketEntityHeadLook p = (S19PacketEntityHeadLook) packet; - if (p.field_149384_a == LEGACY_ENTITY_ID) { - p.field_149384_a = actualID; + if (p.entityId == LEGACY_ENTITY_ID) { + p.entityId = actualID; } } else if (packet instanceof S12PacketEntityVelocity) { S12PacketEntityVelocity p = (S12PacketEntityVelocity) packet; - if (p.field_149417_a == LEGACY_ENTITY_ID) { - p.field_149417_a = actualID; + if (p.entityID == LEGACY_ENTITY_ID) { + p.entityID = actualID; } } else if (packet instanceof S0BPacketAnimation) { S0BPacketAnimation p = (S0BPacketAnimation) packet; @@ -819,26 +819,26 @@ public class ReplaySender extends ChannelInboundHandlerAdapter { } } else if (packet instanceof S04PacketEntityEquipment) { S04PacketEntityEquipment p = (S04PacketEntityEquipment) packet; - if (p.field_149394_a == LEGACY_ENTITY_ID) { - p.field_149394_a = actualID; + if (p.entityID == LEGACY_ENTITY_ID) { + p.entityID = actualID; } } else if (packet instanceof S1BPacketEntityAttach) { S1BPacketEntityAttach p = (S1BPacketEntityAttach) packet; - if (p.field_149408_a == LEGACY_ENTITY_ID) { - p.field_149408_a = actualID; + if (p.entityId == LEGACY_ENTITY_ID) { + p.entityId = actualID; } - if (p.field_149406_b == LEGACY_ENTITY_ID) { - p.field_149406_b = actualID; + if (p.vehicleEntityId == LEGACY_ENTITY_ID) { + p.vehicleEntityId = actualID; } } else if (packet instanceof S0DPacketCollectItem) { S0DPacketCollectItem p = (S0DPacketCollectItem) packet; - if (p.field_149356_b == LEGACY_ENTITY_ID) { - p.field_149356_b = actualID; + if (p.entityId == LEGACY_ENTITY_ID) { + p.entityId = actualID; } } else if (packet instanceof S13PacketDestroyEntities) { S13PacketDestroyEntities p = (S13PacketDestroyEntities) packet; - if (p.field_149100_a.length == 1 && p.field_149100_a[0] == LEGACY_ENTITY_ID) { - p.field_149100_a[0] = actualID; + if (p.entityIDs.length == 1 && p.entityIDs[0] == LEGACY_ENTITY_ID) { + p.entityIDs[0] = actualID; } } } diff --git a/src/main/java/com/replaymod/replay/mixin/MixinArmorStandRenderer.java b/src/main/java/com/replaymod/replay/mixin/MixinArmorStandRenderer.java index 71c8f6d5..98f358eb 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinArmorStandRenderer.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinArmorStandRenderer.java @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(ArmorStandRenderer.class) public abstract class MixinArmorStandRenderer { - @Inject(method = "func_177099_b", at = @At("HEAD"), cancellable = true) + @Inject(method = "canRenderName", at = @At("HEAD"), cancellable = true) private void replayModReplay_canRenderInvisibleName(EntityArmorStand entity, CallbackInfoReturnable ci) { EntityPlayer thePlayer = Minecraft.getMinecraft().thePlayer; if (thePlayer instanceof CameraEntity && entity.isInvisible()) { diff --git a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java index f6cca14a..aa824ec9 100644 --- a/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java +++ b/src/main/java/com/replaymod/replay/mixin/MixinTileEntityEndPortalRenderer.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(TileEntityEndPortalRenderer.class) public class MixinTileEntityEndPortalRenderer { - @Redirect(method = "func_180544_a", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) + @Redirect(method = "renderTileEntityAt", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;getSystemTime()J")) private long replayModReplay_getEnchantmentTime() { ReplayHandler replayHandler = ReplayModReplay.instance.getReplayHandler(); if (replayHandler != null) { diff --git a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java index 8c12a07b..cff646ad 100644 --- a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java +++ b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java @@ -18,6 +18,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderWorldLastEvent; @@ -203,26 +204,35 @@ public class PathPreviewRenderer { if (distanceSquared(view, pos2) > renderDistanceSquared) return; Tessellator tessellator = Tessellator.getInstance(); - WorldRenderer renderer = tessellator.getWorldRenderer(); - renderer.setTranslation(-view.getLeft(), -view.getMiddle(), -view.getRight()); + WorldRenderer vertexBuffer = tessellator.getWorldRenderer(); + vertexBuffer.setTranslation(-view.getLeft(), -view.getMiddle(), -view.getRight()); - renderer.startDrawing(GL11.GL_LINES); - renderer.setColorRGBA_I(color, 255); + vertexBuffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR); - renderer.addVertex(pos1.getLeft(), pos1.getMiddle(), pos1.getRight()); - renderer.addVertex(pos2.getLeft(), pos2.getMiddle(), pos2.getRight()); + vertexBuffer.pos(pos1.getLeft(), pos1.getMiddle(), pos1.getRight()).color( + color >> 16 & 0xff, + color >> 8 & 0xff, + color & 0xff, + 255 + ).endVertex(); + vertexBuffer.pos(pos2.getLeft(), pos2.getMiddle(), pos2.getRight()).color( + color >> 16 & 0xff, + color >> 8 & 0xff, + color & 0xff, + 255 + ).endVertex(); GL11.glLineWidth(3); tessellator.draw(); - renderer.setTranslation(0, 0, 0); + vertexBuffer.setTranslation(0, 0, 0); } private void drawPoint(Triple view, Triple pos, Keyframe keyframe) { Tessellator tessellator = Tessellator.getInstance(); - WorldRenderer renderer = tessellator.getWorldRenderer(); - renderer.setTranslation(0, 0, 0); + WorldRenderer vertexBuffer = tessellator.getWorldRenderer(); + vertexBuffer.setTranslation(0, 0, 0); mc.renderEngine.bindTexture(TEXTURE); @@ -243,12 +253,12 @@ public class PathPreviewRenderer { float maxX = 0.5f; float maxY = 0.5f; - renderer.startDrawingQuads(); + vertexBuffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); - renderer.addVertexWithUV(minX, minY, 0, posX + size, posY + size); - renderer.addVertexWithUV(minX, maxY, 0, posX + size, posY); - renderer.addVertexWithUV(maxX, maxY, 0, posX, posY); - renderer.addVertexWithUV(maxX, minY, 0, posX, posY + size); + vertexBuffer.pos(minX, minY, 0).tex(posX + size, posY + size).endVertex(); + vertexBuffer.pos(minX, maxY, 0).tex(posX + size, posY).endVertex(); + vertexBuffer.pos(maxX, maxY, 0).tex(posX, posY).endVertex(); + vertexBuffer.pos(maxX, minY, 0).tex(posX, posY + size).endVertex(); GL11.glPushMatrix(); @@ -270,8 +280,8 @@ public class PathPreviewRenderer { Triple pos, Triple rot) { Tessellator tessellator = Tessellator.getInstance(); - WorldRenderer renderer = tessellator.getWorldRenderer(); - renderer.setTranslation(0, 0, 0); + WorldRenderer vertexBuffer = tessellator.getWorldRenderer(); + vertexBuffer.setTranslation(0, 0, 0); mc.renderEngine.bindTexture(CAMERA_HEAD); @@ -289,12 +299,10 @@ public class PathPreviewRenderer { //draw the position line GL11.glDisable(GL11.GL_TEXTURE_2D); - renderer.startDrawing(GL11.GL_LINES); + vertexBuffer.begin(GL11.GL_LINES, DefaultVertexFormats.POSITION_COLOR); - renderer.setColorRGBA_I(0x00ff00, 170); - - renderer.addVertex(0, 0, 0); - renderer.addVertex(0, 0, 2); + vertexBuffer.pos(0, 0, 0).color(0, 255, 0, 170).endVertex(); + vertexBuffer.pos(0, 0, 2).color(0, 255, 0, 170).endVertex(); tessellator.draw(); @@ -305,45 +313,43 @@ public class PathPreviewRenderer { double r = -cubeSize/2; - renderer.startDrawingQuads(); - - renderer.setColorRGBA_I(0xffffff, 200); + vertexBuffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR); //back - renderer.addVertexWithUV(r, r + cubeSize, r, 3 * 8 / 64f, 8 / 64f); - renderer.addVertexWithUV(r + cubeSize, r + cubeSize, r, 4*8/64f, 8/64f); - renderer.addVertexWithUV(r + cubeSize, r, r, 4*8/64f, 2*8/64f); - renderer.addVertexWithUV(r, r, r, 3*8/64f, 2*8/64f); + vertexBuffer.pos(r, r + cubeSize, r).tex(3 * 8 / 64f, 8 / 64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r + cubeSize, r).tex(4*8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r, r).tex(4*8/64f, 2*8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r, r).tex(3*8/64f, 2*8/64f).color(255, 255, 255, 200).endVertex(); //front - renderer.addVertexWithUV(r + cubeSize, r, r + cubeSize, 2 * 8 / 64f, 2*8/64f); - renderer.addVertexWithUV(r + cubeSize, r + cubeSize, r + cubeSize, 2 * 8 / 64f, 8/64f); - renderer.addVertexWithUV(r, r + cubeSize, r + cubeSize, 8 / 64f, 8 / 64f); - renderer.addVertexWithUV(r, r, r + cubeSize, 8 / 64f, 2*8/64f); + vertexBuffer.pos(r + cubeSize, r, r + cubeSize).tex(2 * 8 / 64f, 2*8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r + cubeSize, r + cubeSize).tex(2 * 8 / 64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r + cubeSize, r + cubeSize).tex(8 / 64f, 8 / 64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r, r + cubeSize).tex(8 / 64f, 2*8/64f).color(255, 255, 255, 200).endVertex(); //left - renderer.addVertexWithUV(r + cubeSize, r + cubeSize, r, 0, 8/64f); - renderer.addVertexWithUV(r + cubeSize, r + cubeSize, r + cubeSize, 8/64f, 8/64f); - renderer.addVertexWithUV(r + cubeSize, r, r + cubeSize, 8/64f, 2*8/64f); - renderer.addVertexWithUV(r+cubeSize, r, r, 0, 2*8/64f); + vertexBuffer.pos(r + cubeSize, r + cubeSize, r).tex(0, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r + cubeSize, r + cubeSize).tex(8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r, r + cubeSize).tex(8/64f, 2*8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r+cubeSize, r, r).tex(0, 2*8/64f).color(255, 255, 255, 200).endVertex(); //right - renderer.addVertexWithUV(r, r + cubeSize, r + cubeSize, 2*8/64f, 8/64f); - renderer.addVertexWithUV(r, r + cubeSize, r, 3*8/64f, 8/64f); - renderer.addVertexWithUV(r, r, r, 3*8/64f, 2*8/64f); - renderer.addVertexWithUV(r, r, r + cubeSize, 2 * 8 / 64f, 2 * 8 / 64f); + vertexBuffer.pos(r, r + cubeSize, r + cubeSize).tex(2*8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r + cubeSize, r).tex(3*8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r, r).tex(3*8/64f, 2*8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r, r + cubeSize).tex(2 * 8 / 64f, 2 * 8 / 64f).color(255, 255, 255, 200).endVertex(); //bottom - renderer.addVertexWithUV(r + cubeSize, r, r, 3*8/64f, 0); - renderer.addVertexWithUV(r + cubeSize, r, r + cubeSize, 3*8/64f, 8/64f); - renderer.addVertexWithUV(r, r, r + cubeSize, 2*8/64f, 8/64f); - renderer.addVertexWithUV(r, r, r, 2 * 8 / 64f, 0); + vertexBuffer.pos(r + cubeSize, r, r).tex(3*8/64f, 0).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r, r + cubeSize).tex(3*8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r, r + cubeSize).tex(2*8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r, r).tex(2 * 8 / 64f, 0).color(255, 255, 255, 200).endVertex(); //top - renderer.addVertexWithUV(r, r + cubeSize, r, 8/64f, 0); - renderer.addVertexWithUV(r, r + cubeSize, r + cubeSize, 8/64f, 8/64f); - renderer.addVertexWithUV(r + cubeSize, r + cubeSize, r + cubeSize, 2*8/64f, 8/64f); - renderer.addVertexWithUV(r + cubeSize, r + cubeSize, r, 2 * 8 / 64f, 0); + vertexBuffer.pos(r, r + cubeSize, r).tex(8/64f, 0).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r, r + cubeSize, r + cubeSize).tex(8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r + cubeSize, r + cubeSize).tex(2*8/64f, 8/64f).color(255, 255, 255, 200).endVertex(); + vertexBuffer.pos(r + cubeSize, r + cubeSize, r).tex(2 * 8 / 64f, 0).color(255, 255, 255, 200).endVertex(); tessellator.draw();