diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualData.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualData.java deleted file mode 100644 index af63251..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualData.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import net.minecraft.resource.ResourceManager; -import net.minecraft.util.Identifier; -import net.minecraft.resource.Resource; -import java.io.InputStreamReader; -import java.io.Reader; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; - -public class ManualData { - private final Map manualEntries = new HashMap<>(); - private final Map categories = new HashMap<>(); - - public void loadManualEntries(ResourceManager resourceManager) { - String namespace = "ukrainian_delight"; - String path = "manual/en_us/"; - - for (String noteFile : getNoteFileNames()) { - Identifier resourceId = new Identifier(namespace, path + noteFile); - try { - Optional resourceOptional = resourceManager.getResource(resourceId); - if (resourceOptional.isPresent()) { - try (Reader reader = new InputStreamReader(resourceOptional.get().getInputStream())) { - JsonObject jsonObject = JsonParser.parseReader(reader).getAsJsonObject(); - String category = jsonObject.get("category").getAsString(); - String noteName = jsonObject.get("header").getAsString(); // Assuming note name is present - manualEntries.put(noteName, jsonObject); - categories.put(category, noteName); - } - } else { - System.err.println("Resource not found: " + resourceId); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - private List getNoteFileNames() { - // This should return a list of note file names; adjust this method based on your file structure - return List.of("example_note.json"); // Example, replace with actual file names or dynamic retrieval - } - - public Map getCategories() { - return categories; - } - - public String getNoteContent(String noteName) { - JsonObject entry = manualEntries.get(noteName); - if (entry != null) { - return entry.get("text").getAsString(); - } - return null; - } -} diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualDataInitializer.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualDataInitializer.java deleted file mode 100644 index 235ac5c..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualDataInitializer.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual; - -import net.minecraft.client.MinecraftClient; - -public class ManualDataInitializer { - - private final ManualData manualData = new ManualData(); - - public void initialize() { - manualData.loadManualEntries(MinecraftClient.getInstance().getResourceManager()); - } - - public ManualData getManualData() { - return manualData; - } -} diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualDefine.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualDefine.java deleted file mode 100644 index 30a958b..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualDefine.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual; - -import net.minecraft.text.Text; - -public class ManualDefine { - - public static Text getCategoryName(String categoryKey) { - return Text.translatable("manual.category." + categoryKey); - } -} diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualItem.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualItem.java deleted file mode 100644 index 7824435..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualItem.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual; - -import com.megatrex4.ukrainian_dlight.manual.screen.ManualScreen; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemUsageContext; -import net.minecraft.text.Text; -import net.minecraft.util.ActionResult; - -public class ManualItem extends Item { - - public ManualItem() { - super(new Item.Settings()); - } - - @Override - public ActionResult useOnBlock(ItemUsageContext context) { - MinecraftClient.getInstance().execute(() -> { - ClientPlayerEntity player = MinecraftClient.getInstance().player; - if (player != null) { - ManualDataInitializer dataInitializer = new ManualDataInitializer(); - dataInitializer.initialize(); - MinecraftClient.getInstance().setScreen(new ManualScreen(Text.of("Manual Title"), dataInitializer.getManualData())); - } - }); - return ActionResult.success(context.getWorld().isClient); - } -} diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualReloadListener.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualReloadListener.java deleted file mode 100644 index 9af1d6f..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/ManualReloadListener.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual; - -import com.megatrex4.ukrainian_dlight.UkrainianDelight; -import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; -import net.minecraft.resource.ResourceManager; -import net.minecraft.resource.ResourceType; -import net.minecraft.util.Identifier; -import net.minecraft.util.profiler.Profiler; - -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Executor; - -import static com.megatrex4.ukrainian_dlight.UkrainianDelight.LOGGER; -import static com.megatrex4.ukrainian_dlight.UkrainianDelight.MOD_ID; - -public class ManualReloadListener implements IdentifiableResourceReloadListener { - - @Override - public Identifier getFabricId() { - return new Identifier(MOD_ID, "manual_reload_listener"); - } - - @Override - public CompletableFuture reload(Synchronizer synchronizer, ResourceManager resourceManager, - Profiler serverProfiler, Profiler clientProfiler, - Executor serverExecutor, Executor clientExecutor) { - return CompletableFuture.runAsync(() -> { - ManualData manualData = new ManualData(); - manualData.loadManualEntries(resourceManager); - LOGGER.info(MOD_ID + "Manual entries loaded successfully!"); - }, serverExecutor).thenCompose(synchronizer::whenPrepared); - } -} diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/screen/ManualScreen.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/screen/ManualScreen.java deleted file mode 100644 index b372c12..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/screen/ManualScreen.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual.screen; - -import com.megatrex4.ukrainian_dlight.UkrainianDelight; -import com.megatrex4.ukrainian_dlight.manual.ManualData; -import com.megatrex4.ukrainian_dlight.manual.ManualDefine; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; - -import java.util.HashMap; -import java.util.Map; - -public class ManualScreen extends Screen { - private static final Identifier TEXTURE = new Identifier(UkrainianDelight.MOD_ID, "textures/gui/manual_gui.png"); - private final ManualData manualData; - private ScreenState currentState = ScreenState.CATEGORY_SELECTION; - private String selectedCategory; - private String selectedNote; - private Map categories; - private Map categoryPositions; // To store category positions - - public ManualScreen(Text title, ManualData manualData) { - super(title); - this.manualData = manualData; - } - - @Override - protected void init() { - super.init(); - categories = manualData.getCategories(); // Load categories from ManualData - categoryPositions = new HashMap<>(); - } - - @Override - public void renderBackground(DrawContext context) { - context.drawTexture(TEXTURE, 0, 0, 0, 0, width, height); - } - - @Override - public void render(DrawContext context, int mouseX, int mouseY, float delta) { - renderBackground(context); - super.render(context, mouseX, mouseY, delta); - switch (currentState) { - case CATEGORY_SELECTION: - drawCategorySelection(context, mouseX, mouseY); - break; - case NOTE_SELECTION: - drawNoteSelection(context); - break; - case NOTE_CONTENT: - drawNoteContent(context); - break; - } - } - - private void drawCategorySelection(DrawContext context, int mouseX, int mouseY) { - MatrixStack matrices = context.getMatrices(); - var textRenderer = MinecraftClient.getInstance().textRenderer; - int y = 20; - - for (Map.Entry entry : categories.entrySet()) { - String category = entry.getKey(); - Text categoryText = ManualDefine.getCategoryName(category); - int textWidth = textRenderer.getWidth(categoryText); - int x = (width - textWidth) / 2; - - // Draw category text - textRenderer.draw(categoryText, x, y, 0xFFFFFF, true, matrices.peek().getPositionMatrix(), - MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers(), - TextRenderer.TextLayerType.NORMAL, 0x000000, 15728880); - - // Store position for clickable area - categoryPositions.put(category, new Integer[]{x, y, textWidth, 10}); // 10 is the height of the text - - y += 20; // Adjust as needed - } - } - - @Override - public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (currentState == ScreenState.CATEGORY_SELECTION) { - for (Map.Entry entry : categoryPositions.entrySet()) { - Integer[] pos = entry.getValue(); - String category = entry.getKey(); - if (mouseX >= pos[0] && mouseX <= pos[0] + pos[2] && - mouseY >= pos[1] && mouseY <= pos[1] + pos[3]) { - selectCategory(category); - return true; - } - } - } - return super.mouseClicked(mouseX, mouseY, button); - } - - private void drawNoteSelection(DrawContext context) { - // Implement similar to drawCategorySelection but for notes - } - - private void drawNoteContent(DrawContext context) { - MatrixStack matrices = context.getMatrices(); - var textRenderer = MinecraftClient.getInstance().textRenderer; - if (selectedNote != null) { - String noteContent = manualData.getNoteContent(selectedNote); - Text noteText = Text.of(noteContent); - int textWidth = textRenderer.getWidth(noteText); - int x = (width - textWidth) / 2; - int y = (height - 8) / 2; - textRenderer.draw(noteText, x, y, 0xFFFFFF, true, matrices.peek().getPositionMatrix(), - MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers(), - TextRenderer.TextLayerType.NORMAL, 0x000000, 15728880); - } - } - - public void selectCategory(String category) { - this.selectedCategory = category; - this.currentState = ScreenState.NOTE_SELECTION; - } - - public void selectNote(String note) { - this.selectedNote = note; - this.currentState = ScreenState.NOTE_CONTENT; - } - - private enum ScreenState { - CATEGORY_SELECTION, - NOTE_SELECTION, - NOTE_CONTENT - } -} diff --git a/src/main/java/com/megatrex4/ukrainian_dlight/manual/screen/ManualScreenHandler.java b/src/main/java/com/megatrex4/ukrainian_dlight/manual/screen/ManualScreenHandler.java deleted file mode 100644 index d970d9d..0000000 --- a/src/main/java/com/megatrex4/ukrainian_dlight/manual/screen/ManualScreenHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.megatrex4.ukrainian_dlight.manual.screen; - -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.screen.ArrayPropertyDelegate; -import net.minecraft.screen.ScreenHandler; -import net.minecraft.screen.ScreenHandlerContext; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.screen.PropertyDelegate; - -public class ManualScreenHandler extends ScreenHandler { - - public ManualScreenHandler(int syncId, PlayerInventory playerInventory, PacketByteBuf buf) { - this(syncId, playerInventory, ScreenHandlerContext.EMPTY, new ArrayPropertyDelegate(0)); - } - - public ManualScreenHandler(int syncId, PlayerInventory playerInventory, ScreenHandlerContext context, PropertyDelegate propertyDelegate) { - super(null, syncId); // `null` as the screen handler type since there's no inventory - } - - @Override - public boolean canUse(PlayerEntity player) { - return true; // Always return true since there's no inventory to check - } - - @Override - public ItemStack quickMove(PlayerEntity player, int slotIndex) { - return ItemStack.EMPTY; - } -} diff --git a/src/main/resources/assets/ukrainian_delight/lang/en_us.json b/src/main/resources/assets/ukrainian_delight/lang/en_us.json index 3343376..09a9413 100644 --- a/src/main/resources/assets/ukrainian_delight/lang/en_us.json +++ b/src/main/resources/assets/ukrainian_delight/lang/en_us.json @@ -92,8 +92,5 @@ "ukrainian_delight.category.general": "General Settings", "ukrainian_delight.option.brewing_keg_capacity": "Brewing Keg Capacity", "tooltip.ukrainian_delight.brewing_keg_capacity": "%s", - "tooltip.ukrainian_delight.brewing_keg_amount": "%s", - - "_comment10":"manual", - "manual.category.main_meals": "Main Meals" + "tooltip.ukrainian_delight.brewing_keg_amount": "%s" } \ No newline at end of file diff --git a/src/main/resources/assets/ukrainian_delight/manual/en_us/example_note.json b/src/main/resources/assets/ukrainian_delight/manual/en_us/example_note.json deleted file mode 100644 index 86ba75a..0000000 --- a/src/main/resources/assets/ukrainian_delight/manual/en_us/example_note.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "category": "example_category", - "header": "Example Note", - "text": "This is an example note." -} diff --git a/src/main/resources/assets/ukrainian_delight/textures/gui/manual_gui.png b/src/main/resources/assets/ukrainian_delight/textures/gui/manual_gui.png index c9007bd..42ba79e 100644 Binary files a/src/main/resources/assets/ukrainian_delight/textures/gui/manual_gui.png and b/src/main/resources/assets/ukrainian_delight/textures/gui/manual_gui.png differ