Skip to content

Commit

Permalink
Fixed hardcore commands not marking file as dirty and saving it
Browse files Browse the repository at this point in the history
Changed GUIs to dim the background by default
Added icon and visibility options to quest lines
Added indicators to quest line screen
Added exception handling if selected entities break upon saving
Changed entity search to no longer use class names
  • Loading branch information
Funwayguy committed Apr 21, 2019
1 parent ee8c4cd commit 28cc871
Show file tree
Hide file tree
Showing 13 changed files with 213 additions and 120 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -221,5 +221,6 @@ pip-log.txt
.gradle/
.idea/
jars/
run/
classes/
out/
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public class GuiScreenCanvas extends GuiScreen implements IGuiCanvas
private boolean enabled = true;

public final GuiScreen parent;
private boolean useDefaultBG = true;

public GuiScreenCanvas(GuiScreen parent)
{
Expand All @@ -45,6 +46,12 @@ public IGuiRect getTransform()
return transform;
}

public GuiScreenCanvas useDefaultBG(boolean enable)
{
this.useDefaultBG = enable;
return this;
}

/**
* Use initPanel() for embed support
*/
Expand Down Expand Up @@ -110,6 +117,8 @@ public final void drawScreen(int mx, int my, float partialTick)
{
super.drawScreen(mx, my, partialTick);

if(useDefaultBG) this.drawDefaultBackground();

GlStateManager.pushMatrix();
GlStateManager.color(1F, 1F, 1F, 1F);
GlStateManager.disableDepth();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,11 @@ protected Iterator<EntityEntry> getIterator()
@Override
protected void queryMatches(EntityEntry ee, String query, final ArrayDeque<EntityEntry> results)
{
if(ee == null || ee.getRegistryName() == null)
{
return;
}
if(ee == null || ee.getRegistryName() == null) return;

String qlc = query.toLowerCase();

if(ee.getRegistryName().toString().toLowerCase().contains(query) || ee.getName().toLowerCase().contains(query) || ee.getEntityClass().toString().toLowerCase().contains(query))
if(ee.getRegistryName().toString().toLowerCase().contains(qlc) || ee.getName().toLowerCase().contains(qlc))
{
results.add(ee);
}
Expand Down
17 changes: 17 additions & 0 deletions src/main/java/betterquesting/client/gui2/GuiDebugTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package betterquesting.client.gui2;

import betterquesting.api2.client.gui.GuiScreenCanvas;
import net.minecraft.client.gui.GuiScreen;

public class GuiDebugTest extends GuiScreenCanvas
{
public GuiDebugTest(GuiScreen parent)
{
super(parent);
}

public void initPanel()
{
super.initPanel();
}
}
19 changes: 12 additions & 7 deletions src/main/java/betterquesting/client/gui2/GuiHome.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import betterquesting.storage.QuestSettings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.launchwrapper.Launch;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.util.ResourceLocation;
Expand All @@ -46,7 +47,7 @@
import org.lwjgl.util.vector.Vector4f;

import java.io.File;
import java.util.Arrays;
import java.util.Collections;

@SideOnly(Side.CLIENT)
public class GuiHome extends GuiScreenCanvas implements IPEventListener
Expand Down Expand Up @@ -107,12 +108,15 @@ public void initPanel()
{
PanelButton tstBtn = new PanelButton(new GuiTransform(GuiAlign.TOP_RIGHT, -16, 0, 16, 16, 0), 5, "");
tstBtn.setIcon(PresetIcon.ICON_NOTICE.getTexture(), PresetColor.UPDATE_NOTICE.getColor(), 0);
tstBtn.setTooltip(Arrays.asList(QuestTranslation.translateTrimmed("betterquesting.tooltip.update_quests", true)));
tstBtn.setTooltip(Collections.singletonList(QuestTranslation.translateTrimmed("betterquesting.tooltip.update_quests", true)));
inCan.addPanel(tstBtn);
}

/*PanelButton tstBtn = new PanelButton(new GuiTransform(GuiAlign.TOP_RIGHT, -32, 0, 16, 16, 0), 5, "?"); // Test screen
inCan.addPanel(tstBtn);*/
if((Boolean)Launch.blackboard.get("fml.deobfuscatedEnvironment"))
{
PanelButton tstBtn = new PanelButton(new GuiTransform(GuiAlign.TOP_LEFT, 0, 16, 16, 16, 0), 6, "?"); // Test screen
inCan.addPanel(tstBtn);
}
}

@Override
Expand Down Expand Up @@ -181,14 +185,15 @@ private void onButtonPress(PEventButton event)
PacketSender.INSTANCE.sendToAll(QuestLineDatabase.INSTANCE.getSyncPacket());

SaveLoadHandler.INSTANCE.resetUpdate();
SaveLoadHandler.INSTANCE.markDirty();
});

//this.initGui(); // Reset the whole thing
mc.displayGuiScreen(null);
}
}/* else if(btn.getButtonID() == 6) // Test screen
} else if(btn.getButtonID() == 6) // Test screen
{
mc.displayGuiScreen(new GuiPartyInvite(this));
}*/
mc.displayGuiScreen(new GuiDebugTest(this));
}
}
}
45 changes: 0 additions & 45 deletions src/main/java/betterquesting/client/gui2/GuiMultiTest.java

This file was deleted.

141 changes: 97 additions & 44 deletions src/main/java/betterquesting/client/gui2/GuiQuestLines.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,33 @@
import betterquesting.api.api.ApiReference;
import betterquesting.api.api.QuestingAPI;
import betterquesting.api.client.gui.misc.INeedsRefresh;
import betterquesting.api.enums.EnumQuestVisibility;
import betterquesting.api.network.QuestingPacket;
import betterquesting.api.properties.NativeProps;
import betterquesting.api.questing.IQuest;
import betterquesting.api.questing.IQuestLine;
import betterquesting.api.questing.IQuestLineEntry;
import betterquesting.api2.cache.QuestCache;
import betterquesting.api2.client.gui.GuiScreenCanvas;
import betterquesting.api2.client.gui.controls.*;
import betterquesting.api2.client.gui.controls.IPanelButton;
import betterquesting.api2.client.gui.controls.PanelButton;
import betterquesting.api2.client.gui.controls.PanelButtonQuest;
import betterquesting.api2.client.gui.controls.PanelButtonStorage;
import betterquesting.api2.client.gui.events.IPEventListener;
import betterquesting.api2.client.gui.events.PEventBroadcaster;
import betterquesting.api2.client.gui.events.PanelEvent;
import betterquesting.api2.client.gui.events.types.PEventButton;
import betterquesting.api2.client.gui.misc.*;
import betterquesting.api2.client.gui.panels.CanvasTextured;
import betterquesting.api2.client.gui.panels.bars.PanelVScrollBar;
import betterquesting.api2.client.gui.panels.content.PanelGeneric;
import betterquesting.api2.client.gui.panels.content.PanelLine;
import betterquesting.api2.client.gui.panels.content.PanelTextBox;
import betterquesting.api2.client.gui.panels.lists.CanvasQuestLine;
import betterquesting.api2.client.gui.panels.lists.CanvasScrolling;
import betterquesting.api2.client.gui.resources.colors.GuiColorStatic;
import betterquesting.api2.client.gui.resources.textures.GuiTextureColored;
import betterquesting.api2.client.gui.resources.textures.ItemTexture;
import betterquesting.api2.client.gui.themes.presets.PresetColor;
import betterquesting.api2.client.gui.themes.presets.PresetIcon;
import betterquesting.api2.client.gui.themes.presets.PresetLine;
Expand All @@ -45,10 +54,12 @@ public class GuiQuestLines extends GuiScreenCanvas implements IPEventListener, I
private IQuestLine selectedLine = null;
private int selectedLineId = -1;

private PanelButtonStorage[] qlBtns;
private final List<PanelButtonStorage> qlBtns = new ArrayList<>();
private CanvasQuestLine cvQuest;
private CanvasScrolling cvDesc;
private PanelVScrollBar scDesc;
private CanvasScrolling cvLines;
private PanelVScrollBar scLines;
private PanelTextBox paDesc;
private PanelButton claimAll;

Expand All @@ -60,6 +71,7 @@ public GuiQuestLines(GuiScreen parent)
@Override
public void refreshGui()
{
refreshList();
refreshContent();
}

Expand Down Expand Up @@ -93,49 +105,14 @@ public void initPanel()
cvBackground.addPanel(new PanelButton(new GuiTransform(GuiAlign.BOTTOM_CENTER, -100, -16, 200, 16, 0), 0, QuestTranslation.translate("gui.back")));
}

CanvasScrolling cvList = new CanvasScrolling(new GuiTransform(GuiAlign.LEFT_EDGE, new GuiPadding(16, 16, -158, 16), 0));
cvBackground.addPanel(cvList);
PanelVScrollBar pnQScroll = new PanelVScrollBar(new GuiTransform(GuiAlign.RIGHT_EDGE, new GuiPadding(0, 0, -8, 0), 0));
cvList.setScrollDriverY(pnQScroll);
cvBackground.addPanel(pnQScroll);
pnQScroll.getTransform().setParent(cvList.getTransform());

DBEntry<IQuestLine>[] lineList = QuestLineDatabase.INSTANCE.getSortedEntries();
this.qlBtns = new PanelButtonStorage[lineList.length];
UUID playerID = QuestingAPI.getQuestingUUID(mc.player);

for(int i = 0; i < lineList.length; i++)
{
IQuestLine ql = lineList[i].getValue();

PanelButtonStorage<IQuestLine> btnLine = new PanelButtonStorage<>(new GuiRectangle(0, i * 16, 142, 16, 0), 1, QuestTranslation.translate(ql.getUnlocalisedName()), ql);

boolean show = canEdit;

if(!show)
{
for(DBEntry<IQuestLineEntry> qID : ql.getEntries())
{
IQuest q = QuestDatabase.INSTANCE.getValue(qID.getID());

if(q != null && QuestCache.isQuestShown(q, playerID, mc.player))
{
show = true;
break;
}
}
}

if(!show || ql == selectedLine)
{
btnLine.setActive(false);
}

cvList.addPanel(btnLine);
qlBtns[i] = btnLine;
}
cvLines = new CanvasScrolling(new GuiTransform(GuiAlign.LEFT_EDGE, new GuiPadding(16, 16, -158, 16), 0));
cvBackground.addPanel(cvLines);
scLines = new PanelVScrollBar(new GuiTransform(GuiAlign.RIGHT_EDGE, new GuiPadding(0, 0, -8, 0), 0));
cvLines.setScrollDriverY(scLines);
cvBackground.addPanel(scLines);
scLines.getTransform().setParent(cvLines.getTransform());

pnQScroll.setEnabled(cvList.getScrollBounds().getHeight() > 0);
refreshList();

CanvasTextured cvFrame = new CanvasTextured(new GuiTransform(GuiAlign.FULL_BOX, new GuiPadding(174, 16, 16, 66), 0), PresetTexture.AUX_FRAME_0.getTexture());
cvBackground.addPanel(cvFrame);
Expand Down Expand Up @@ -286,6 +263,82 @@ private void onButtonPress(PEventButton event)
}
}

private void refreshList()
{
for(PanelButtonStorage btn : qlBtns)
{
cvLines.removePanel(btn);
}

boolean canEdit = QuestingAPI.getAPI(ApiReference.SETTINGS).canUserEdit(mc.player);
DBEntry<IQuestLine>[] lineList = QuestLineDatabase.INSTANCE.getSortedEntries();
this.qlBtns.clear();
UUID playerID = QuestingAPI.getQuestingUUID(mc.player);

int n = 0;
for(DBEntry<IQuestLine> iQuestLineDBEntry : lineList)
{
IQuestLine ql = iQuestLineDBEntry.getValue();
EnumQuestVisibility vis = ql.getProperty(NativeProps.VISIBILITY);
if(!canEdit && vis == EnumQuestVisibility.HIDDEN) continue;

boolean show = false;
boolean unlocked = false;
boolean complete = false;
boolean allComplete = true;
boolean pendingClaim = false;

if(canEdit)
{
show = true;
unlocked = true;
complete = true;
}

for(DBEntry<IQuestLineEntry> qID : ql.getEntries())
{
IQuest q = QuestDatabase.INSTANCE.getValue(qID.getID());
if(q == null) continue;

if(allComplete && !q.isComplete(playerID)) allComplete = false;
if(!pendingClaim && q.isComplete(playerID) && !q.hasClaimed(playerID)) pendingClaim = true;
if(!unlocked && q.isUnlocked(playerID)) unlocked = true;
if(!complete && q.isComplete(playerID)) complete = true;
if(!show && QuestCache.isQuestShown(q, playerID, mc.player)) show = true;
if(unlocked && complete && show && pendingClaim && !allComplete) break;
}

if(vis == EnumQuestVisibility.COMPLETED && !complete)
{
continue;
} else if(vis == EnumQuestVisibility.UNLOCKED && !unlocked)
{
continue;
}

cvLines.addPanel(new PanelGeneric(new GuiRectangle(126, n * 16, 16, 16, 0), new ItemTexture(ql.getProperty(NativeProps.ICON))));

if(pendingClaim)
{
cvLines.addPanel(new PanelGeneric(new GuiRectangle(134, n * 16 + 8, 8, 8, -1), new GuiTextureColored(PresetIcon.ICON_NOTICE.getTexture(), new GuiColorStatic(0xFFFFFF00))));
} else if(allComplete)
{
cvLines.addPanel(new PanelGeneric(new GuiRectangle(134, n * 16 + 8, 8, 8, -1), new GuiTextureColored(PresetIcon.ICON_TICK.getTexture(), new GuiColorStatic(0xFF00FF00))));
}
PanelButtonStorage<IQuestLine> btnLine = new PanelButtonStorage<>(new GuiRectangle(0, n++ * 16, 126, 16, 0), 1, QuestTranslation.translate(ql.getUnlocalisedName()), ql);

if(!show || ql == selectedLine)
{
btnLine.setActive(false);
}

cvLines.addPanel(btnLine);
qlBtns.add(btnLine);
}

scLines.setEnabled(cvLines.getScrollBounds().getHeight() > 0);
}

private void refreshContent()
{
if(selectedLineId >= 0)
Expand Down
8 changes: 0 additions & 8 deletions src/main/java/betterquesting/client/gui2/GuiThemes.java
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,6 @@ public void onPanelEvent(PanelEvent event)
}
}

@Override
public void drawPanel(int mx, int my, float partialTick)
{
this.drawDefaultBackground();

super.drawPanel(mx, my, partialTick);
}

@SuppressWarnings("unchecked")
private void onButtonPress(PEventButton event)
{
Expand Down
Loading

0 comments on commit 28cc871

Please sign in to comment.