Skip to content

Commit 24216db

Browse files
fix: loot crate cap (sorta a thing)
1 parent e91e347 commit 24216db

File tree

3 files changed

+58
-31
lines changed

3 files changed

+58
-31
lines changed

common/src/main/java/dev/ftb/mods/ftbquests/client/gui/quests/QuestButton.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package dev.ftb.mods.ftbquests.client.gui.quests;
22

33
import com.mojang.blaze3d.platform.InputConstants;
4-
import com.mojang.blaze3d.vertex.PoseStack;
54
import dev.architectury.networking.NetworkManager;
65
import dev.ftb.mods.ftblibrary.client.icon.IconHelper;
76
import dev.ftb.mods.ftblibrary.config.DoubleConfig;
@@ -10,7 +9,11 @@
109
import dev.ftb.mods.ftblibrary.icon.Icon;
1110
import dev.ftb.mods.ftblibrary.icon.Icons;
1211
import dev.ftb.mods.ftblibrary.math.PixelBuffer;
13-
import dev.ftb.mods.ftblibrary.ui.*;
12+
import dev.ftb.mods.ftblibrary.ui.Button;
13+
import dev.ftb.mods.ftblibrary.ui.ContextMenuItem;
14+
import dev.ftb.mods.ftblibrary.ui.Panel;
15+
import dev.ftb.mods.ftblibrary.ui.Theme;
16+
import dev.ftb.mods.ftblibrary.ui.Widget;
1417
import dev.ftb.mods.ftblibrary.ui.input.MouseButton;
1518
import dev.ftb.mods.ftblibrary.util.TooltipList;
1619
import dev.ftb.mods.ftblibrary.util.client.PositionedIngredient;
@@ -20,7 +23,13 @@
2023
import dev.ftb.mods.ftbquests.net.CreateObjectMessage;
2124
import dev.ftb.mods.ftbquests.net.DeleteObjectMessage;
2225
import dev.ftb.mods.ftbquests.net.EditObjectMessage;
23-
import dev.ftb.mods.ftbquests.quest.*;
26+
import dev.ftb.mods.ftbquests.quest.Movable;
27+
import dev.ftb.mods.ftbquests.quest.ProgressionMode;
28+
import dev.ftb.mods.ftbquests.quest.Quest;
29+
import dev.ftb.mods.ftbquests.quest.QuestObject;
30+
import dev.ftb.mods.ftbquests.quest.QuestObjectBase;
31+
import dev.ftb.mods.ftbquests.quest.QuestShape;
32+
import dev.ftb.mods.ftbquests.quest.TeamData;
2433
import dev.ftb.mods.ftbquests.quest.reward.Reward;
2534
import dev.ftb.mods.ftbquests.quest.reward.RewardType;
2635
import dev.ftb.mods.ftbquests.quest.reward.RewardTypes;

common/src/main/java/dev/ftb/mods/ftbquests/client/gui/quests/QuestPanel.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22

33
import com.mojang.blaze3d.buffers.GpuBufferSlice;
44
import com.mojang.blaze3d.systems.RenderSystem;
5-
import com.mojang.blaze3d.vertex.*;
6-
import com.mojang.math.Axis;
5+
import com.mojang.blaze3d.vertex.BufferBuilder;
6+
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
7+
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
8+
import com.mojang.blaze3d.vertex.MeshData;
9+
import com.mojang.blaze3d.vertex.Tesselator;
10+
import com.mojang.blaze3d.vertex.VertexFormat;
711
import dev.architectury.networking.NetworkManager;
812
import dev.ftb.mods.ftblibrary.client.icon.IconHelper;
913
import dev.ftb.mods.ftblibrary.config.ImageResourceConfig;
@@ -13,24 +17,35 @@
1317
import dev.ftb.mods.ftblibrary.icon.Icons;
1418
import dev.ftb.mods.ftblibrary.icon.ImageIcon;
1519
import dev.ftb.mods.ftblibrary.math.MathUtils;
16-
import dev.ftb.mods.ftblibrary.ui.*;
20+
import dev.ftb.mods.ftblibrary.ui.Button;
21+
import dev.ftb.mods.ftblibrary.ui.ContextMenuItem;
22+
import dev.ftb.mods.ftblibrary.ui.GuiHelper;
23+
import dev.ftb.mods.ftblibrary.ui.Panel;
24+
import dev.ftb.mods.ftblibrary.ui.Theme;
25+
import dev.ftb.mods.ftblibrary.ui.Widget;
1726
import dev.ftb.mods.ftblibrary.ui.input.Key;
1827
import dev.ftb.mods.ftblibrary.ui.input.MouseButton;
1928
import dev.ftb.mods.ftbquests.api.FTBQuestsAPI;
2029
import dev.ftb.mods.ftbquests.client.FTBQuestsClientConfig;
21-
import dev.ftb.mods.ftbquests.net.*;
22-
import dev.ftb.mods.ftbquests.quest.*;
30+
import dev.ftb.mods.ftbquests.net.CopyChapterImageMessage;
31+
import dev.ftb.mods.ftbquests.net.CopyQuestMessage;
32+
import dev.ftb.mods.ftbquests.net.CreateObjectMessage;
33+
import dev.ftb.mods.ftbquests.net.CreateTaskAtMessage;
34+
import dev.ftb.mods.ftbquests.net.EditObjectMessage;
35+
import dev.ftb.mods.ftbquests.quest.ChapterImage;
36+
import dev.ftb.mods.ftbquests.quest.Movable;
37+
import dev.ftb.mods.ftbquests.quest.Quest;
38+
import dev.ftb.mods.ftbquests.quest.QuestLink;
39+
import dev.ftb.mods.ftbquests.quest.QuestObject;
40+
import dev.ftb.mods.ftbquests.quest.QuestObjectBase;
41+
import dev.ftb.mods.ftbquests.quest.QuestShape;
2342
import dev.ftb.mods.ftbquests.quest.task.Task;
2443
import dev.ftb.mods.ftbquests.quest.task.TaskType;
2544
import dev.ftb.mods.ftbquests.quest.task.TaskTypes;
2645
import dev.ftb.mods.ftbquests.quest.theme.property.ThemeProperties;
2746
import dev.ftb.mods.ftbquests.quest.translation.TranslationKey;
2847
import net.minecraft.ChatFormatting;
29-
import net.minecraft.client.Minecraft;
3048
import net.minecraft.client.gui.GuiGraphics;
31-
import net.minecraft.client.renderer.MultiBufferSource;
32-
import net.minecraft.client.renderer.RenderPipelines;
33-
import net.minecraft.client.renderer.rendertype.RenderTypes;
3449
import net.minecraft.network.chat.Component;
3550
import net.minecraft.util.Mth;
3651
import org.jetbrains.annotations.Nullable;
@@ -269,7 +284,7 @@ private void renderConnection(Widget widget, QuestButton button, @UnknownNullabi
269284
// TODO: @since 21.11: This doesn't work :joy:
270285
// java.lang.IllegalArgumentException: Cannot write more data than the slice allows (attempting to write 96 bytes into a slice of length 64)
271286
VertexFormat vertexformat = DefaultVertexFormat.POSITION_TEX_COLOR;
272-
try (ByteBufferBuilder bytebufferbuilder = ByteBufferBuilder.exactlySized(4 * vertexformat.getVertexSize())) {
287+
try (ByteBufferBuilder bytebufferbuilder = new ByteBufferBuilder(4 * vertexformat.getVertexSize())) {
273288
BufferBuilder buffer = new BufferBuilder(bytebufferbuilder, VertexFormat.Mode.QUADS, vertexformat);
274289
buffer.addVertex(0, -s, 0).setColor(r, g, b, a).setUv(len / s / 2F + mu, 0);
275290
buffer.addVertex(0, s, 0).setColor(r, g, b, a).setUv(len / s / 2F + mu, 1);
Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package dev.ftb.mods.ftbquests.block.neoforge;
22

33
import dev.ftb.mods.ftbquests.block.entity.LootCrateOpenerBlockEntity;
4+
import dev.ftb.mods.ftbquests.item.LootCrateItem;
45
import net.minecraft.core.BlockPos;
5-
import net.minecraft.world.item.ItemStack;
66
import net.minecraft.world.level.block.state.BlockState;
7-
import net.neoforged.neoforge.items.IItemHandler;
87
import net.neoforged.neoforge.transfer.ResourceHandler;
98
import net.neoforged.neoforge.transfer.item.ItemResource;
10-
import org.jetbrains.annotations.NotNull;
9+
import net.neoforged.neoforge.transfer.transaction.TransactionContext;
1110

1211
public class NeoForgeLootCrateOpenerBlockEntity extends LootCrateOpenerBlockEntity {
1312
private final LootCrateHandler lootCrateHandler = new LootCrateHandler();
@@ -20,38 +19,42 @@ public ResourceHandler<ItemResource> getLootCrateHandler() {
2019
return lootCrateHandler;
2120
}
2221

23-
private class LootCrateHandler implements IItemHandler {
22+
private class LootCrateHandler implements ResourceHandler<ItemResource> {
2423
@Override
25-
public int getSlots() {
24+
public int size() {
2625
return NeoForgeLootCrateOpenerBlockEntity.this._getSlots();
2726
}
2827

29-
@NotNull
3028
@Override
31-
public ItemStack getStackInSlot(int slot) {
32-
return NeoForgeLootCrateOpenerBlockEntity.this._getStackInSlot(slot);
29+
public ItemResource getResource(int slot) {
30+
return ItemResource.of(NeoForgeLootCrateOpenerBlockEntity.this._getStackInSlot(slot));
3331
}
3432

35-
@NotNull
3633
@Override
37-
public ItemStack insertItem(int slot, @NotNull ItemStack stack, boolean simulate) {
38-
return NeoForgeLootCrateOpenerBlockEntity.this._insertItem(slot, stack, simulate);
34+
public long getAmountAsLong(int slot) {
35+
return NeoForgeLootCrateOpenerBlockEntity.this._getStackInSlot(slot).getCount();
3936
}
4037

41-
@NotNull
4238
@Override
43-
public ItemStack extractItem(int slot, int amount, boolean simulate) {
44-
return NeoForgeLootCrateOpenerBlockEntity.this._extractItem(slot, amount, simulate);
39+
public long getCapacityAsLong(int i, ItemResource resource) {
40+
return resource.getItem() instanceof LootCrateItem ? Long.MAX_VALUE : 0L;
4541
}
4642

4743
@Override
48-
public int getSlotLimit(int slot) {
49-
return 64;
44+
public boolean isValid(int i, ItemResource resource) {
45+
return NeoForgeLootCrateOpenerBlockEntity.this._isItemValid(i, resource.toStack());
5046
}
5147

5248
@Override
53-
public boolean isItemValid(int slot, @NotNull ItemStack stack) {
54-
return NeoForgeLootCrateOpenerBlockEntity.this._isItemValid(slot, stack);
49+
public int insert(int i, ItemResource resource, int j, TransactionContext transaction) {
50+
// return NeoForgeLootCrateOpenerBlockEntity.this._insertItem(slot, stack, simulate);
51+
return 0;
52+
}
53+
54+
@Override
55+
public int extract(int i, ItemResource resource, int j, TransactionContext transaction) {
56+
// return NeoForgeLootCrateOpenerBlockEntity.this._insertItem(slot, stack, simulate);
57+
return 0;
5558
}
5659
}
5760
}

0 commit comments

Comments
 (0)