Skip to content

Commit

Permalink
Merge pull request #697 from FTBTeam/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
desht authored Sep 29, 2023
2 parents 076155f + 6ed61cc commit cbe0131
Show file tree
Hide file tree
Showing 11 changed files with 79 additions and 12 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,15 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2001.1.5]

### Added
* The quest view panel is now opened automatically when a new quest is created via the GUI
* Makes it easy to quickly edit title/subtitle/etc. via the "Edit" dropdown button in the view panel

### Fixed
* Server crash while building creative mode tabs (with specific mod combinations)

## [2001.1.4]

### Added
Expand Down
20 changes: 20 additions & 0 deletions common/src/main/java/dev/ftb/mods/ftbquests/FTBQServerProxy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package dev.ftb.mods.ftbquests;

import dev.ftb.mods.ftbquests.quest.ServerQuestFile;
import dev.ftb.mods.ftbquests.quest.loot.LootCrate;
import dev.ftb.mods.ftbquests.quest.loot.RewardTable;

import java.util.Collection;
import java.util.List;
import java.util.Objects;

public class FTBQServerProxy implements IQuestProxy {
@Override
public Collection<LootCrate> getKnownLootCrates() {
return ServerQuestFile.INSTANCE != null ? ServerQuestFile.INSTANCE.getRewardTables().stream()
.map(RewardTable::getLootCrate)
.filter(Objects::nonNull)
.toList() :
List.of();
}
}
5 changes: 5 additions & 0 deletions common/src/main/java/dev/ftb/mods/ftbquests/FTBQuests.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import dev.architectury.utils.Env;
import dev.architectury.utils.EnvExecutor;
import dev.ftb.mods.ftbquests.api.FTBQuestsAPI;
import dev.ftb.mods.ftbquests.client.FTBQClientProxy;
import dev.ftb.mods.ftbquests.client.FTBQuestsClient;
import dev.ftb.mods.ftbquests.integration.RecipeModHelper;
import dev.ftb.mods.ftbquests.net.FTBQuestsNetHandler;
Expand All @@ -18,6 +19,8 @@ public class FTBQuests {

public static FTBQuests instance;

public static IQuestProxy PROXY;

private static RecipeModHelper recipeModHelper;
private static final RecipeModHelper NO_OP_HELPER = new RecipeModHelper.NoOp();

Expand All @@ -29,6 +32,8 @@ public FTBQuests() {
FTBQuestsNetHandler.init();
FTBQuestsEventHandler.INSTANCE.init();

PROXY = EnvExecutor.getEnvSpecific(() -> FTBQClientProxy::new, () -> FTBQServerProxy::new);

EnvExecutor.runInEnv(Env.CLIENT, () -> FTBQuestsClient::init);
}

Expand Down
9 changes: 9 additions & 0 deletions common/src/main/java/dev/ftb/mods/ftbquests/IQuestProxy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.ftb.mods.ftbquests;

import dev.ftb.mods.ftbquests.quest.loot.LootCrate;

import java.util.Collection;

public interface IQuestProxy {
Collection<LootCrate> getKnownLootCrates();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package dev.ftb.mods.ftbquests.client;

import dev.ftb.mods.ftbquests.IQuestProxy;
import dev.ftb.mods.ftbquests.quest.loot.LootCrate;
import dev.ftb.mods.ftbquests.quest.loot.RewardTable;

import java.util.Collection;
import java.util.List;
import java.util.Objects;

public class FTBQClientProxy implements IQuestProxy {
@Override
public Collection<LootCrate> getKnownLootCrates() {
return ClientQuestFile.exists() ? ClientQuestFile.INSTANCE.getRewardTables().stream()
.map(RewardTable::getLootCrate)
.filter(Objects::nonNull)
.toList() :
List.of();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ public static void createObject(long id, long parent, QuestObjectType type, Comp
object.editedFromGUI();
FTBQuests.getRecipeModHelper().refreshRecipes(object);

if (object instanceof Chapter chapter) {
if (object instanceof QuestObject qo) {
ClientQuestFile.INSTANCE.getQuestScreen()
.ifPresent(questScreen -> questScreen.selectChapter(chapter));
.ifPresent(questScreen -> questScreen.open(qo, true));
}

QuestObjectUpdateListener listener = ClientUtils.getCurrentGuiAs(QuestObjectUpdateListener.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -571,10 +571,11 @@ public void open(@Nullable QuestObject object, boolean focus) {
}
} else if (object instanceof QuestLink link) {
link.getQuest().ifPresent(quest -> {
selectChapter(link.getChapter());
viewQuestPanel.hidePanel = false;
viewQuest(quest);
if (focus) {
questPanel.scrollTo(quest.getX() + 0.5D, quest.getY() + 0.5D);
questPanel.scrollTo(link.getX() + 0.5D, link.getY() + 0.5D);
}
});
} else if (object instanceof Task task) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -566,6 +566,8 @@ public void keyReleased(Key key) {
editDescLine0(-1, null);
} else if (key.is(GLFW.GLFW_KEY_I)) {
editDescLine0(-1, new ImageComponent());
} else if (key.is(GLFW.GLFW_KEY_Q)) {
quest.onEditButtonClicked(questScreen);
}
}

Expand Down Expand Up @@ -653,6 +655,12 @@ private void openEditButtonContextMenu() {
Icons.ART,
() -> editDescLine0(-1, new ImageComponent())));

contextMenu.add(ContextMenuItem.SEPARATOR);

contextMenu.add(new ContextMenuItem(Component.translatable("ftbquests.gui.edit_quest_props").append(hotkey("Q")),
Icons.SETTINGS,
() -> quest.onEditButtonClicked(questScreen)));

getGui().openContextMenu(contextMenu);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import dev.architectury.registry.registries.DeferredRegister;
import dev.architectury.registry.registries.RegistrarManager;
import dev.architectury.registry.registries.RegistrySupplier;
import dev.ftb.mods.ftbquests.FTBQuests;
import dev.ftb.mods.ftbquests.api.FTBQuestsAPI;
import dev.ftb.mods.ftbquests.block.FTBQuestsBlocks;
import dev.ftb.mods.ftbquests.client.ClientQuestFile;
import dev.ftb.mods.ftbquests.item.ScreenBlockItem.ScreenSize;
import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
Expand Down Expand Up @@ -82,13 +82,7 @@ private static CreativeModeTab buildDefaultTab() {
// base items, always present
output.acceptAll(BASE_ITEMS.stream().map(item -> new ItemStack(item.get())).toList());
// dynamically add loot crates based on current reward tables
if (ClientQuestFile.exists()) {
ClientQuestFile.INSTANCE.getRewardTables().forEach(table -> {
if (table.getLootCrate() != null) {
output.accept(table.getLootCrate().createStack());
}
});
}
FTBQuests.PROXY.getKnownLootCrates().forEach(crate -> output.accept(crate.createStack()));
})
);
}
Expand Down
1 change: 1 addition & 0 deletions common/src/main/resources/assets/ftbquests/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@
"ftbquests.gui.line": "Add Text Line",
"ftbquests.gui.image": "Add Image",
"ftbquests.gui.edit": "Edit",
"ftbquests.gui.edit_quest_props": "Quest Properties",
"ftbquests.gui.undo": "Undo",
"ftbquests.gui.edit_linked_quest": "Edit Linked Quest",
"ftbquests.gui.edit_file": "Edit File",
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ mod_id=ftbquests
archives_base_name=ftb-quests
minecraft_version=1.20.1
# Build time
mod_version=2001.1.4
mod_version=2001.1.5
maven_group=dev.ftb.mods
mod_author=FTB Team
# Curse release
Expand Down

0 comments on commit cbe0131

Please sign in to comment.