Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
47422a5
GT Integration
cubefury Sep 2, 2025
4b1e200
Added text labels to trade groups
cubefury Sep 3, 2025
9176b19
Added MUI2 UI
cubefury Sep 3, 2025
05e11cd
Fixed Eject Button for servers.
cubefury Sep 3, 2025
9bdd750
Added Trades Interface Skeleton
cubefury Sep 3, 2025
94fe111
Added Trade Slot Overlays
cubefury Sep 3, 2025
97fa828
Added Tooltip update per second and shift to freeze
cubefury Sep 4, 2025
6d56a12
Added trade refresh mechanism
cubefury Sep 4, 2025
e24fb7b
Swapped IMC for NEI names
cubefury Sep 5, 2025
ad903c5
Added highlight for trades ready to execute
cubefury Sep 5, 2025
1c21b95
Force update trade panel when input items changed/purchase is made
cubefury Sep 6, 2025
53863fb
Added trade requests to server.
cubefury Sep 6, 2025
900ce83
Added trade claiming.
cubefury Sep 6, 2025
9a818e2
Added trade state saveload
cubefury Sep 6, 2025
f19c230
Fixed Incorrect Item counts dispensed
cubefury Sep 7, 2025
93754b9
Added trade tabs
cubefury Sep 7, 2025
5c7c794
Made trade tab lengths dynamically change based on how many items are…
cubefury Sep 7, 2025
0d3470d
Separated trade row code to look cleaner
cubefury Sep 7, 2025
654de91
Added tooltips to tabs.
cubefury Sep 7, 2025
79c2537
Added sidebar for IO
cubefury Sep 8, 2025
2ae5c48
Added Searchbar
cubefury Sep 8, 2025
0d17859
Added Item Tooltips
cubefury Sep 8, 2025
e000b57
Active check for purchasing/dispensing items
cubefury Sep 8, 2025
b4bea69
Removed unnecessary UI object reassignments
cubefury Sep 9, 2025
07f4678
Swapped Purchase Icon graphics to buttons
cubefury Sep 9, 2025
3203f85
Fixed Trade Panel Display
cubefury Sep 9, 2025
9f91344
Changed trading to server authoritative model
cubefury Sep 10, 2025
5eb261b
Fixed button overlays for trade status
cubefury Sep 11, 2025
bed1b51
Fixed text overlay remaining on buttons after moving around.
cubefury Sep 11, 2025
39501aa
Added null check for empty vending machine categories
cubefury Sep 11, 2025
58b9c4b
Fixed NEI integration
cubefury Sep 12, 2025
c7e72e4
Fixed NEI header icon
cubefury Sep 13, 2025
bc23231
Added Sidebar and UI icons
cubefury Sep 14, 2025
83c091a
Added Sidebar and UI icons
cubefury Sep 14, 2025
c24800b
Merge remote-tracking branch 'origin/gt-integration' into gt-integration
cubefury Sep 14, 2025
8b938b5
Fixed sidebar looking weird
cubefury Sep 14, 2025
6c615af
Spotless
cubefury Sep 14, 2025
118fda3
Fixed layout of trade panel
cubefury Sep 14, 2025
93448c5
Added Ack for trade system to refresh UI
cubefury Sep 14, 2025
9ab5327
Fixed Server side crash
cubefury Sep 14, 2025
c2fe4bc
spotless
cubefury Sep 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,13 @@
* For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
*/
dependencies {
compileOnly("com.github.GTNewHorizons:NotEnoughItems:2.7.77-GTNH:dev")
implementation("com.github.GTNewHorizons:NotEnoughItems:2.7.77-GTNH:dev")
implementation("com.github.GTNewHorizons:GTNHLib:0.6.39:dev")
compileOnly("com.github.GTNewHorizons:BetterQuesting:3.7.11-GTNH:dev")
implementation("com.github.GTNewHorizons:ModularUI2:2.2.16-1.7.10:dev")
implementation("com.github.GTNewHorizons:ModularUI2:2.2.18-1.7.10:dev")
// implementation("com.github.GTNewHorizons:ModularUI2:99.99:dev")
implementation("com.github.GTNewHorizons:StructureLib:1.4.18:dev")
implementation("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.440:dev")
}

// deps may transitively add Baubles, so we replace it
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/cubefury/vendingmachine/ClientProxy.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.cubefury.vendingmachine;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.common.MinecraftForge;

import com.cubefury.vendingmachine.integration.nei.IMCforNEI;
import com.cubefury.vendingmachine.integration.nei.NEIConfig;

import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
Expand All @@ -13,14 +14,13 @@ public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);

IMCforNEI.IMCSender();
}

// Override CommonProxy methods here, if you want a different behaviour on the client (e.g. registering renders).
// Don't forget to call the super methods as well.
@Override
public void init(FMLInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new NEIConfig());
super.init(event);
}

Expand Down
19 changes: 15 additions & 4 deletions src/main/java/com/cubefury/vendingmachine/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@

public class Config {

private static final String CONFIG_CATEGORY_GUI = "GUI";
private static final String CONFIG_CATEGORY_VM = "Vending Machine Settings";

public static String data_dir = "vendingmachine";
public static String config_dir = "config/vendingmachine";
public static int gui_refresh_interval = 1;
public static int gui_refresh_interval = 20;
public static int dispense_frequency = 10;
public static int dispense_amount = 16;

public static File worldDir = null;

Expand All @@ -22,9 +24,18 @@ public static void init(File configFile) {
config_dir = configuration
.getString("config_dir", Configuration.CATEGORY_GENERAL, config_dir, "Configuration directory");

configuration.addCustomCategoryComment(CONFIG_CATEGORY_GUI, "GUI Settings");
configuration.addCustomCategoryComment(CONFIG_CATEGORY_VM, "Vending Machine Settings");
gui_refresh_interval = configuration
.getInt("gui_refresh_interval", CONFIG_CATEGORY_GUI, gui_refresh_interval, 1, 3600, "");
.getInt("gui_refresh_interval", CONFIG_CATEGORY_VM, gui_refresh_interval, 20, 3600, "In number of ticks");
dispense_frequency = configuration
.getInt("dispense_frequency", CONFIG_CATEGORY_VM, dispense_frequency, 1, 9000, "In number of ticks");
dispense_amount = configuration.getInt(
"dispense_amount",
CONFIG_CATEGORY_VM,
dispense_amount,
1,
Integer.MAX_VALUE,
"Number of items per dispense cycle");

if (configuration.hasChanged()) {
configuration.save();
Expand Down
38 changes: 22 additions & 16 deletions src/main/java/com/cubefury/vendingmachine/VendingMachine.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package com.cubefury.vendingmachine;

import net.minecraft.block.Block;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.cubefury.vendingmachine.blocks.BlockVendingMachine;
import com.cubefury.vendingmachine.blocks.ItemBlockVendingMachine;
import com.cubefury.vendingmachine.blocks.TileVendingMachine;
import com.cubefury.vendingmachine.gui.WidgetThemes;
import com.cubefury.vendingmachine.items.VMItems;
import com.cubefury.vendingmachine.network.PacketTypeRegistry;
import com.cubefury.vendingmachine.network.SerializedPacket;
import com.cubefury.vendingmachine.util.ItemPlaceholder;
Expand Down Expand Up @@ -43,10 +40,12 @@ public class VendingMachine {
@Mod.Instance(MODID)
public static VendingMachine instance;

public static Block vendingMachine = new BlockVendingMachine();

public static boolean isNeiLoaded = false;
public static boolean isBqLoaded = false;
public static boolean isGtLoaded = false;
public static boolean isAeLoaded = false;

public static int CONTROLLER_MTE_ID = 2741;
// public static int ME_UPLINK_MTE_ID = 2742;

@SidedProxy(
clientSide = "com.cubefury.vendingmachine.ClientProxy",
Expand All @@ -67,28 +66,35 @@ public void preInit(FMLPreInitializationEvent event) {
network.registerMessage(SerializedPacket.HandleClient.class, SerializedPacket.class, 0, Side.CLIENT);
network.registerMessage(SerializedPacket.HandleServer.class, SerializedPacket.class, 0, Side.SERVER);

// ModularUI
WidgetThemes.register();

}

@Mod.EventHandler
// load "Do your mod setup. Build whatever data structures you care about. Register recipes." (Remove if not needed)
public void init(FMLInitializationEvent event) {
proxy.init(event);

GameRegistry.registerBlock(vendingMachine, ItemBlockVendingMachine.class, "vending_machine");
GameRegistry.registerTileEntity(TileVendingMachine.class, "vending_machine");
isBqLoaded = Loader.isModLoaded("betterquesting");
isGtLoaded = Loader.isModLoaded("gregtech");
isAeLoaded = Loader.isModLoaded("appliedenergistics2");

LOG.info("Better Questing Integration enabled: {}", isBqLoaded);
LOG.info("Gregtech Integration enabled: {}", isGtLoaded);
LOG.info("AE2 Integration enabled {}", isAeLoaded);

GameRegistry.registerItem(ItemPlaceholder.placeholder, "placeholder");

if (isGtLoaded) {
VMItems.registerMultis();
}

proxy.init(event);
}

@Mod.EventHandler
// postInit "Handle interaction with other mods, complete your setup based on this." (Remove if not needed)
public void postInit(FMLPostInitializationEvent event) {
isNeiLoaded = Loader.isModLoaded("NotEnoughItems");
isBqLoaded = Loader.isModLoaded("betterquesting");

LOG.info("NEI Integration enabled: {}", isNeiLoaded);
LOG.info("Better Questing Integration enabled: {}", isBqLoaded);

proxy.postInit(event);
}
Expand Down

This file was deleted.

This file was deleted.

Loading