Skip to content
This repository has been archived by the owner on Feb 1, 2022. It is now read-only.

Commit

Permalink
UI Reworks, Bump version 1.5
Browse files Browse the repository at this point in the history
- Changed the 'never' boolean option to four different bobber display
modes
- Disabled never shows the bobber automatically
- Always ensures it is always displayed by default
- MP Only displays it only when the user is connecting to a server
- When R/S displays it only when the user is recording or streaming (new
default, user has no
manual control of bobber)
- The buttons in the interface pane are now full size
- Added the ability to move the bobber in either fixed screen positions
or an absolute position(relative
to center)
- Removed unnecessary checks from scoreboard display
- Specify java version in gradlew.bat to prevent Java 8 incompatibility
  • Loading branch information
fuj1n committed Dec 30, 2014
1 parent f7c0a02 commit 2ed5a78
Show file tree
Hide file tree
Showing 14 changed files with 337 additions and 120 deletions.
2 changes: 2 additions & 0 deletions cmd_here.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@ECHO OFF
CMD
2 changes: 1 addition & 1 deletion gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
if "%OS%"=="Windows_NT" setlocal

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DEFAULT_JVM_OPTS=-version:1.7

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
Expand Down
Binary file added pub_build/RecStatusMod-v1.5-1.7.10.jar
Binary file not shown.
20 changes: 17 additions & 3 deletions resources/assets/recmod/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,23 @@ recmod.gui.pane.nyitext3=awesome!

recmod.gui.pane.general.kstate=Keep State: $s

recmod.gui.pane.interface.bobber=Bobber: $s
recmod.gui.pane.interface.never=Never: $s
recmod.gui.pane.interface.bobber=Show Bobber: $s
recmod.gui.pane.interface.showMode=AutoShow Mode: $m
recmod.gui.pane.interface.posMode=Position: $m
recmod.gui.pane.interface.savePos=Save Position

recmod.gui.pane.keyboard.enable=Keyboard Enabled: $s
recmod.gui.pane.keyboard.record=Record Key: $s
recmod.gui.pane.keyboard.stream=Stream Key: $s
recmod.gui.pane.keyboard.stream=Stream Key: $s

recmod.bobber.autoshowmode.disabled=Disabled
recmod.bobber.autoshowmode.always=Always
recmod.bobber.autoshowmode.mponly=MP Only
recmod.bobber.autoshowmode.recstat=When R/S

recmod.bobber.posmode.topleft=Top Left
recmod.bobber.posmode.topright=Top Right
recmod.bobber.posmode.center=Center
recmod.bobber.posmode.bottomleft=Bottom Left
recmod.bobber.posmode.bottomright=Bottom Right
recmod.bobber.posmode.absolute=Absolute
2 changes: 1 addition & 1 deletion resources/mcmod.info
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"modid": "fuj1n.recmod",
"name": "Recording Status Mod",
"description": "Record/Stream status in the players list, /rec <r/s> to toggle",
"version": "v1.4.2",
"version": "v1.5",
"mcversion": "1.7.10",
"url": "",
"updateUrl": "",
Expand Down
16 changes: 9 additions & 7 deletions src/fuj1n/recmod/RecMod.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;

@Mod(name = "Recording Status Mod", version = "v1.4.2.1", modid = "fuj1n.recmod", acceptableRemoteVersions = "*", canBeDeactivated = false)
@Mod(name = "Recording Status Mod", version = "v1.5", modid = "fuj1n.recmod", acceptableRemoteVersions = "*", canBeDeactivated = false)
public class RecMod {

@Instance("fuj1n.recmod")
Expand All @@ -39,7 +39,10 @@ public class RecMod {
public int keyRec = 44;
public int keyStr = 45;

public boolean showSelfDef = false;
// Bobber controls
public int showMode = 3;
public int posMode = 1;
public int absX = 0, absY = 0;

public File configFile;
public Configuration config;
Expand Down Expand Up @@ -130,18 +133,17 @@ public boolean isPlayerStreaming(String username) {
return streamers.get(username) != null ? streamers.get(username) : false;
}

public void onUIStateChanged() {
writeToFile();
}

public void instanciateConfig() {
config = new Configuration(configFile, true);
}

public void readFromFile() {
config.load();

showSelfDef = config.getBoolean("Show bobber", "Interface", showSelfDef, "Whether the bobber will be made visible if the mod determines that you are playing multiplayer.");
showMode = config.getInt("Bobber AutoShow Mode", "Interface", showMode, 0, 3, "The automatic behaviour of the ingame bobber visibility.");
posMode = config.getInt("Bobber Position Mode", "Interface", posMode, 0, 5, "The positioning mode of the bobber.");
absX = config.getInt("Bobber Position Absolute X", "Interface", absX, -4096, 4096, "The absolute X position of the bobber. (only for absolute position mode)");
absY = config.getInt("Bobber Position Absolute Y", "Interface", absY, -2160, 2160, "The absolute Y position of the bobber. (only for absolute position mode)");
enableKeys = config.getBoolean("Enable keyboard", "Keyboard", enableKeys, "Whether the keyboard shortcuts are enabled.");
keyRec = config.getInt("Record Key", "Keyboard", keyRec, -1338, 250, "The key that will toggle recording.");
keyStr = config.getInt("Stream Key", "Keyboard", keyStr, -1338, 250, "The key that will toggle streaming.");
Expand Down
14 changes: 13 additions & 1 deletion src/fuj1n/recmod/client/event/EventClientEntityLogin.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,19 @@ public class EventClientEntityLogin {
@SubscribeEvent
public void onEntityLogin(PlayerLoggedInEvent event) {
Minecraft mc = Minecraft.getMinecraft();
RecMod.instance.showSelf = !mc.isSingleplayer() && !RecMod.instance.showSelfDef;
if(RecMod.instance.showMode != 0){
switch(RecMod.instance.showMode){
case 1:
RecMod.instance.showSelf = true;
break;
case 2:
RecMod.instance.showSelf = !mc.isSingleplayer();
break;
case 3:
RecMod.instance.showSelf = RecMod.instance.recState || RecMod.instance.strState;
break;
}
}

RecMod.instance.mapsDirty = true;
}
Expand Down
5 changes: 5 additions & 0 deletions src/fuj1n/recmod/client/event/EventClientTick.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@ public void onTick(ClientTickEvent event) {
RecMod.instance.mapsDirty = false;
}

if(event.type == Type.CLIENT && event.phase == Phase.START && mc.theWorld != null && mc.thePlayer != null && RecMod.instance.showMode == 3){
String player = mc.thePlayer.getCommandSenderName();
RecMod.instance.showSelf = RecMod.instance.isPlayerRecording(player) || RecMod.instance.isPlayerStreaming(player);
}

if (!RecMod.instance.enableKeys) {
return;
}
Expand Down
205 changes: 121 additions & 84 deletions src/fuj1n/recmod/client/event/EventRenderGame.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,89 +14,126 @@
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import org.lwjgl.opengl.GL11;

public class EventRenderGame extends Gui {

private ResourceLocation indicatorsHigh = new ResourceLocation("recmod:textures/sheets/indicatorsx2.png");
private ResourceLocation indicatorsLow = new ResourceLocation("recmod:textures/sheets/indicators.png");

@SubscribeEvent
public void onRenderGameOverlay(RenderGameOverlayEvent event) {
if (event.type != RenderGameOverlayEvent.ElementType.ALL) {
return;
}
Minecraft mc = Minecraft.getMinecraft();
ResourceLocation indicators = mc.isFancyGraphicsEnabled() ? indicatorsHigh : indicatorsLow;

Tessellator tes = Tessellator.instance;
tes.setColorOpaque_F(1F, 1F, 1F);

if (mc.gameSettings.keyBindPlayerList.getIsKeyPressed() && (!mc.isIntegratedServerRunning() || mc.thePlayer.sendQueue.playerInfoList.size() > 1 || mc.theWorld.getScoreboard().func_96539_a(0) != null)) {
mc.mcProfiler.startSection("playerList");
NetHandlerPlayClient nethandlerplayclient = mc.thePlayer.sendQueue;
List list = nethandlerplayclient.playerInfoList;

int k = event.resolution.getScaledWidth();
int i2;
int j2;
int k2;
int l2;
int i3;
int j3;
int k3;
j2 = nethandlerplayclient.currentServerMaxPlayers;
l2 = j2;

for (k2 = 1; l2 > 20; l2 = (j2 + k2 - 1) / k2) {
++k2;
}

int j5 = 300 / k2;

if (j5 > 150) {
j5 = 150;
}

int k5 = (k - k2 * j5) / 2;
byte b0 = 10;

for (i3 = 0; i3 < j2; ++i3) {
k3 = k5 + i3 % k2 * j5;
j3 = b0 + i3 / k2 * 9;

GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_ALPHA_TEST);

if (i3 < list.size()) {
GuiPlayerInfo guiplayerinfo = (GuiPlayerInfo) list.get(i3);
ScorePlayerTeam scoreplayerteam = mc.theWorld.getScoreboard().getPlayersTeam(guiplayerinfo.name);
String s3 = ScorePlayerTeam.formatPlayerName(scoreplayerteam, guiplayerinfo.name);
mc.fontRenderer.drawStringWithShadow(s3, k3, j3, 16777215);

int infooffset = 18;

int l5 = k3 + mc.fontRenderer.getStringWidth(s3) + 5;
int i6 = k3 + j5 - 12 - 5;
if (i6 - l5 > 5) {
mc.getTextureManager().bindTexture(indicators);
int indicatorRecIndex = RecMod.instance.isPlayerRecording(guiplayerinfo.name) ? IndexReference.ICON_RED_INDEX : IndexReference.ICON_GRAY_INDEX;
int indicatorStrIndex = RecMod.instance.isPlayerStreaming(guiplayerinfo.name) ? IndexReference.ICON_GREEN_INDEX : IndexReference.ICON_GRAY_INDEX;

drawTexturedModalRect(i6 - 8 - infooffset, j3, indicatorRecIndex < 32 ? indicatorRecIndex * 8 : indicatorRecIndex * 8 /*Better equation here*/, (int) Math.floor(indicatorRecIndex / 32) * 8, 8, 8);
drawTexturedModalRect(i6 - 8 - (infooffset - 8), j3, indicatorStrIndex * 8, (int) Math.floor(indicatorStrIndex / 32) * 8, 8, 8);
}
}
}
} else if (!mc.gameSettings.keyBindPlayerList.getIsKeyPressed() && RecMod.instance.showSelf && mc.currentScreen == null) {
int x = event.resolution.getScaledWidth() - 32;
int y = 0;

int indicatorRecIndex = RecMod.instance.isPlayerRecording(mc.thePlayer.getCommandSenderName()) ? 1 : 0;
int indicatorStrIndex = RecMod.instance.isPlayerStreaming(mc.thePlayer.getCommandSenderName()) ? 2 : 0;

mc.getTextureManager().bindTexture(indicators);
drawTexturedModalRect(x, y, indicatorRecIndex * 16, (int) Math.floor(indicatorRecIndex / 16) * 16 + IndexReference.RESOLUTION_SPLIT_Y, 16, 16);
drawTexturedModalRect(x + 16, y, indicatorStrIndex * 16, (int) Math.floor(indicatorStrIndex / 16) * 16 + IndexReference.RESOLUTION_SPLIT_Y, 16, 16);
}
}
public class EventRenderGame extends Gui
{

private ResourceLocation indicatorsHigh = new ResourceLocation("recmod:textures/sheets/indicatorsx2.png");
private ResourceLocation indicatorsLow = new ResourceLocation("recmod:textures/sheets/indicators.png");

@SubscribeEvent
public void onRenderGameOverlay (RenderGameOverlayEvent event)
{
if (event.type != RenderGameOverlayEvent.ElementType.ALL)
{
return;
}
Minecraft mc = Minecraft.getMinecraft();
ResourceLocation indicators = mc.isFancyGraphicsEnabled() ? indicatorsHigh : indicatorsLow;

Tessellator tes = Tessellator.instance;
tes.setColorOpaque_F(1F, 1F, 1F);

if (mc.gameSettings.keyBindPlayerList.getIsKeyPressed() && (!mc.isIntegratedServerRunning() || mc.thePlayer.sendQueue.playerInfoList.size() > 1 || mc.theWorld.getScoreboard().func_96539_a(0) != null))
{
mc.mcProfiler.startSection("playerList");
NetHandlerPlayClient nethandlerplayclient = mc.thePlayer.sendQueue;
List list = nethandlerplayclient.playerInfoList;

int k = event.resolution.getScaledWidth();
int i2;
int j2;
int k2;
int l2;
int i3;
int j3;
int k3;
j2 = nethandlerplayclient.currentServerMaxPlayers;
l2 = j2;

for (k2 = 1; l2 > 20; l2 = (j2 + k2 - 1) / k2)
{
++k2;
}

int j5 = 300 / k2;

if (j5 > 150)
{
j5 = 150;
}

int k5 = (k - k2 * j5) / 2;
byte b0 = 10;

for (i3 = 0; i3 < j2; ++i3)
{
k3 = k5 + i3 % k2 * j5;
j3 = b0 + i3 / k2 * 9;

GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_ALPHA_TEST);

if (i3 < list.size())
{
GuiPlayerInfo guiplayerinfo = (GuiPlayerInfo) list.get(i3);
ScorePlayerTeam scoreplayerteam = mc.theWorld.getScoreboard().getPlayersTeam(guiplayerinfo.name);
String s3 = ScorePlayerTeam.formatPlayerName(scoreplayerteam, guiplayerinfo.name);

int infooffset = 20;

int i6 = k3 + j5 - 12 - 5;
mc.getTextureManager().bindTexture(indicators);
int indicatorRecIndex = RecMod.instance.isPlayerRecording(guiplayerinfo.name) ? IndexReference.ICON_RED_INDEX : IndexReference.ICON_GRAY_INDEX;
int indicatorStrIndex = RecMod.instance.isPlayerStreaming(guiplayerinfo.name) ? IndexReference.ICON_GREEN_INDEX : IndexReference.ICON_GRAY_INDEX;

drawTexturedModalRect(i6 - 8 - infooffset, j3, indicatorRecIndex < 32 ? indicatorRecIndex * 8 : indicatorRecIndex * 8 /*Better equation here*/, (int) Math.floor(indicatorRecIndex / 32) * 8, 8, 8);
drawTexturedModalRect(i6 - 8 - (infooffset - 8), j3, indicatorStrIndex * 8, (int) Math.floor(indicatorStrIndex / 32) * 8, 8, 8);
}
}
}
else if (!mc.gameSettings.keyBindPlayerList.getIsKeyPressed() && RecMod.instance.showSelf && mc.currentScreen == null)
{
int x;
int y;

switch (RecMod.instance.posMode)
{
case 0:
x = 0;
y = 0;
break;
case 1:
x = event.resolution.getScaledWidth() - 32;
y = 0;
break;
case 2:
x = event.resolution.getScaledWidth() / 2 - 16;
y = event.resolution.getScaledHeight() / 2 - 8;
break;
case 3:
x = 0;
y = event.resolution.getScaledHeight() - 16;
break;
case 4:
x = event.resolution.getScaledWidth() - 32;
y = event.resolution.getScaledHeight() - 16;
break;
case 5:
x = event.resolution.getScaledWidth() / 2 - 16 + RecMod.instance.absX;
y = event.resolution.getScaledHeight() / 2 - 8 + RecMod.instance.absY;
break;
default:
x = event.resolution.getScaledWidth() - 32;
y = 0;
}

int indicatorRecIndex = RecMod.instance.isPlayerRecording(mc.thePlayer.getCommandSenderName()) ? 1 : 0;
int indicatorStrIndex = RecMod.instance.isPlayerStreaming(mc.thePlayer.getCommandSenderName()) ? 2 : 0;

mc.getTextureManager().bindTexture(indicators);
drawTexturedModalRect(x, y, indicatorRecIndex * 16, (int) Math.floor(indicatorRecIndex / 16) * 16 + IndexReference.RESOLUTION_SPLIT_Y, 16, 16);
drawTexturedModalRect(x + 16, y, indicatorStrIndex * 16, (int) Math.floor(indicatorStrIndex / 16) * 16 + IndexReference.RESOLUTION_SPLIT_Y, 16, 16);
}
}

}
Loading

0 comments on commit 2ed5a78

Please sign in to comment.