Skip to content

Commit

Permalink
Updated to newest versions + interim status for reference
Browse files Browse the repository at this point in the history
  • Loading branch information
HyCraftHD committed May 4, 2019
1 parent d1903c4 commit fcb6aa9
Show file tree
Hide file tree
Showing 12 changed files with 231 additions and 68 deletions.
6 changes: 3 additions & 3 deletions build.properties
@@ -1,8 +1,8 @@
#Forge Settings
forge.mcversion=1.13.2
forge.mapping=43-1.13
forge.mapping=45-1.13.1
forge.mapping_channel=stable
forge.version=1.13.2-25.0.76
forge.version=1.13.2-25.0.191

#Mod Settings
mod.version=1.2.0
Expand All @@ -17,4 +17,4 @@ curse.display=Music-Player

#Dependencies
#UTeamCore
uteamcore.version=2.3.2.102
uteamcore.version=2.3.3.104
Expand Up @@ -29,9 +29,7 @@ public GuiMusicPlayerListEntry(GuiMusicPlayerList gui, Playlist playlist) {
});

openPlaylistButton = addButton(new GuiButtonClickImage(0, 0, 20, 20, MusicPlayerResources.textureOpen));
openPlaylistButton.setClickAction(() -> {
mc.displayGuiScreen(new GuiMusicPlaylist(playlist));
});
openPlaylistButton.setClickAction(() -> mc.displayGuiScreen(new GuiMusicPlaylist(playlist)));

deletePlaylistButton = addButton(new GuiButtonClickImage(0, 0, 20, 20, MusicPlayerResources.textureClear));
deletePlaylistButton.setClickAction(() -> gui.removePlaylist(this));
Expand All @@ -44,7 +42,7 @@ public void drawEntry(int entryWidth, int entryHeight, int mouseX, int mouseY, b
name = "\u00A7oNo name";
}
mc.fontRenderer.drawString(name, getX() + 5, getY() + 5, playlist.isPlaying() ? 0x0083FF : 0xFFF00F);
mc.fontRenderer.drawString(playlist.getTrackSize() + " Songs", getX() + 5, getY() + 30, 0xFFFFFF);
mc.fontRenderer.drawString(playlist.getTrackSize() + " Entries", getX() + 5, getY() + 30, 0xFFFFFF);

playPlaylistButton.x = entryWidth - 80;
playPlaylistButton.y = getY() + 12;
Expand Down
@@ -1,6 +1,9 @@
package info.u_team.music_player.gui.playlist;

import info.u_team.music_player.musicplayer.*;
import info.u_team.music_player.gui.playlist.search.GuiMusicSearch;
import info.u_team.music_player.init.MusicPlayerResources;
import info.u_team.music_player.musicplayer.Playlist;
import info.u_team.to_export_to_u_team_core.gui.GuiButtonClickImage;
import net.minecraft.client.gui.GuiScreen;

public class GuiMusicPlaylist extends GuiScreen {
Expand All @@ -11,13 +14,13 @@ public class GuiMusicPlaylist extends GuiScreen {

public GuiMusicPlaylist(Playlist playlist) {
this.playlist = playlist;
if (!playlist.isLoaded()) {
playlist.load();
}
}

@Override
protected void initGui() {
GuiButtonClickImage addTracksButton = addButton(new GuiButtonClickImage(width - 41, 19, 22, 22, MusicPlayerResources.textureAdd));
addTracksButton.setClickAction(() -> mc.displayGuiScreen(new GuiMusicSearch())); // TODO implement this in the right way

trackList = new GuiMusicPlaylistList(playlist, width - 24, height, 50, height - 30, 12, width - 12);
children.add(trackList);
super.initGui();
Expand Down
Expand Up @@ -5,35 +5,62 @@
import info.u_team.music_player.gui.playlist.GuiMusicPlaylistListEntry.*;
import info.u_team.music_player.gui.playlist.GuiMusicPlaylistListEntry.Error;
import info.u_team.music_player.musicplayer.*;
import info.u_team.music_player.util.WrappedObject;
import info.u_team.to_export_to_u_team_core.gui.GuiScrollableList;

public class GuiMusicPlaylistList extends GuiScrollableList<GuiMusicPlaylistListEntry> {

private final Playlist playlist;

public GuiMusicPlaylistList(Playlist playlist, int width, int height, int top, int bottom, int left, int right) {
super(width, height, top, bottom, left, right, 25, 20, 5);
super(width, height, top, bottom, left, right, 40, 20, 5);
this.playlist = playlist;

if (!playlist.isLoaded()) {
playlist.load();
} else {
playlist.getLoadedTracks().forEach(this::addLoadedTrackToGui);
}
}

/**
* This is used to asynchronically add the loaded tracks to our gui when they
* are loaded
*/
public void tick() {
for (LoadedTracks tracks = playlist.getLoadQueue().poll(); tracks != null;) { // Runs this iteration as long as the queue has elements
List<GuiMusicPlaylistListEntry> list = new ArrayList<>();
if (tracks.hasError() || tracks.size() < 1) {
list.add(new Error(tracks.getUri(), tracks.getName()));
} else if (tracks.size() == 1) {
list.add(new MusicTrack(tracks.getTracks().get(0)));
} else {
PlaylistStart start = new PlaylistStart(tracks.getName());
list.add(start);
tracks.getTracks().forEach(track -> {
PlaylistTrack trackentry = new PlaylistTrack(track);
start.addEntry(trackentry);
list.add(start);
});
}
list.forEach(this::addEntry);
Queue<LoadedTracks> queue = playlist.getLoadQueue();
for (LoadedTracks tracks = queue.poll(); tracks != null; tracks = queue.poll()) { // Remove all elements in the queue and add them to out gui
addLoadedTrackToGui(tracks);
}
}

/**
* Add a {@link LoadedTracks} to the gui list
*
* @param tracks
* Loaded Track
*/
private void addLoadedTrackToGui(LoadedTracks tracks) {
List<GuiMusicPlaylistListEntry> list = new ArrayList<>();
if (tracks.hasError()) {// Add error gui element
list.add(new Error(playlist, tracks.getUri(), tracks.getErrorMessage()));
} else if (tracks.isTrack()) { // Add track gui element
list.add(new MusicTrack(playlist, tracks.getUri(), tracks.getTrack()));
} else { // Add playlist start element and all track sub elements
PlaylistStart start = new PlaylistStart(playlist, tracks.getUri(), tracks.getTitle());
list.add(start);
tracks.getTrackList().getTracks().forEach(track -> {
PlaylistTrack trackentry = new PlaylistTrack(start, track);
start.addEntry(trackentry);
list.add(trackentry);
});
}
list.forEach(this::addEntry);
}

@Override
protected boolean isSelected(int index) {
return index == selectedElement;
}

}
Expand Up @@ -2,40 +2,117 @@

import java.util.*;

import info.u_team.music_player.lavaplayer.api.IAudioTrack;
import info.u_team.to_export_to_u_team_core.gui.GuiScrollableListEntry;
import info.u_team.music_player.init.MusicPlayerResources;
import info.u_team.music_player.lavaplayer.api.*;
import info.u_team.music_player.musicplayer.Playlist;
import info.u_team.music_player.util.*;
import info.u_team.to_export_to_u_team_core.gui.*;

abstract class GuiMusicPlaylistListEntry extends GuiScrollableListEntry<GuiMusicPlaylistListEntry> {

static class MusicTrack extends GuiMusicPlaylistListEntry {
protected String trimToWith(String string, int width) {
String newString = mc.fontRenderer.trimStringToWidth(string, width);
if (!newString.equals(string)) {
newString += "...";
}
return newString;
}

protected void addTrackInfo(IAudioTrack track, int entryWidth, int leftMargin, int titleColor) {

private final IAudioTrack track;
int textSize = entryWidth - 150 - leftMargin;

public MusicTrack(IAudioTrack track) {
this.track = track;
IAudioTrackInfo info = track.getInfo();

String title = trimToWith(info.getTitle(), textSize);
String author = trimToWith(info.getAuthor(), textSize);

String duration;
if (info.isStream()) {
duration = "undefined";
} else {
duration = TimeUtil.timeConversion(track.getDuration() / 1000);
}
mc.fontRenderer.drawString(title, getX() + leftMargin, getY() + 5, titleColor);
mc.fontRenderer.drawString(author, getX() + leftMargin + 4, getY() + 25, 0xD86D1C);
mc.fontRenderer.drawString(duration, getX() + entryWidth - 135, getY() + 5, 0xFFFF00);
}

private abstract static class Functions extends GuiMusicPlaylistListEntry {

protected final GuiButtonClickImage deleteTrackButton;
protected final GuiButtonClickImage upButton, downButton;

private Functions() {
deleteTrackButton = new GuiButtonClickImage(0, 0, 20, 20, MusicPlayerResources.textureClear);
upButton = new GuiButtonClickImage(0, 0, 20, 10, MusicPlayerResources.textureUp);
downButton = new GuiButtonClickImage(0, 0, 20, 10, MusicPlayerResources.textureDown);
}

@Override
public void drawEntry(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks) {

drawEntryExtended(entryWidth, entryHeight, mouseX, mouseY, mouseInList, partialTicks);

deleteTrackButton.x = entryWidth - 20;
deleteTrackButton.y = getY() + 8;
deleteTrackButton.render(mouseX, mouseY, partialTicks);

upButton.x = entryWidth - 50;
upButton.y = getY() + 8;
upButton.render(mouseX, mouseY, partialTicks);

downButton.x = entryWidth - 50;
downButton.y = getY() + 18;
downButton.render(mouseX, mouseY, partialTicks);
}

public abstract void drawEntryExtended(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks);

}

static class Error extends Functions {

private final WrappedObject<String> uri;
private final String error;

public Error(Playlist playlist, WrappedObject<String> uri, String error) {
this.uri = uri;
this.error = error;
}

@Override
public void drawEntryExtended(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks) {
mc.fontRenderer.drawString(error, getX() + 5, getY() + 5, 0xFF0000);
mc.fontRenderer.drawString(uri.get(), getX() + 5, getY() + 25, 0xFF0000);
}
}

static class PlaylistTrack extends MusicTrack {
static class MusicTrack extends Functions {

public PlaylistTrack(IAudioTrack track) {
super(track);
private final IAudioTrack track;

public MusicTrack(Playlist playlist, WrappedObject<String> uri, IAudioTrack track) {
this.track = track;
// upButton.setClickAction(() -> {
// playlist.
// });
}

@Override
public void drawEntryExtended(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks) {
addTrackInfo(track, entryWidth, 5, 0x419BF4);
}
}

static class PlaylistStart extends GuiMusicPlaylistListEntry {
static class PlaylistStart extends Functions {

private final WrappedObject<String> uri;
private final String name;

private final List<PlaylistTrack> trackEntries;

public PlaylistStart(String name) {
public PlaylistStart(Playlist playlist, WrappedObject<String> uri, String name) {
this.uri = uri;
this.name = name;
trackEntries = new ArrayList<>();
}
Expand All @@ -45,25 +122,25 @@ public void addEntry(PlaylistTrack entry) {
}

@Override
public void drawEntry(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks) {

public void drawEntryExtended(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks) {
mc.fontRenderer.drawString(name, getX() + 5, getY() + 15, 0xF4E242);
}
}

static class Error extends GuiMusicPlaylistListEntry {
static class PlaylistTrack extends GuiMusicPlaylistListEntry {

private final String uri;
private final String error;
private final PlaylistStart start;
private final IAudioTrack track;

public Error(String uri, String error) {
super();
this.uri = uri;
this.error = error;
public PlaylistTrack(PlaylistStart start, IAudioTrack track) {
this.start = start;
this.track = track;
}

@Override
public void drawEntry(int entryWidth, int entryHeight, int mouseX, int mouseY, boolean mouseInList, float partialTicks) {

addTrackInfo(track, entryWidth, 15, 0x42F4F1);
}

}
}
Expand Up @@ -10,4 +10,7 @@ public class MusicPlayerResources {
public static final ResourceLocation textureClear = new ResourceLocation(MusicPlayerMod.modid, "textures/gui/clear.png");
public static final ResourceLocation texturePlay = new ResourceLocation(MusicPlayerMod.modid, "textures/gui/play.png");
public static final ResourceLocation textureStop = new ResourceLocation(MusicPlayerMod.modid, "textures/gui/stop.png");
public static final ResourceLocation textureAdd = new ResourceLocation(MusicPlayerMod.modid, "textures/gui/add.png");
public static final ResourceLocation textureUp = new ResourceLocation(MusicPlayerMod.modid, "textures/gui/up.png");
public static final ResourceLocation textureDown = new ResourceLocation(MusicPlayerMod.modid, "textures/gui/down.png");
}

0 comments on commit fcb6aa9

Please sign in to comment.