All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mmb.content.imachine.extractor.BlockCollectorGUI Maven / Gradle / Ivy

Go to download

Dependency for the MultiMachineBuilder, a voxel game about building an industrial empire in a finite world. THIS RELEASE IS NOT PLAYABLE. To play the game, donwload from >ITCH.IO LINK HERE< or >GH releases link here<

The newest version!
/**
 * 
 */
package mmb.content.imachine.extractor;

import net.miginfocom.swing.MigLayout;

import javax.swing.JButton;

import static mmb.engine.settings.GlobalSettings.$res;

import java.awt.Color;
import javax.swing.JSpinner;

import mmb.menu.databind.IntVarSpinnerModel;
import mmb.menu.world.inv.InventoryController;
import mmb.menu.world.inv.MoveItems;
import mmb.menu.world.window.GUITab;
import mmb.menu.world.window.WorldWindow;

import javax.swing.JLabel;

/**
 * Configures the dropped item extractor and allows items to be withdrawn
 * @author oskar
 */
public class BlockCollectorGUI extends GUITab {
	private static final long serialVersionUID = 2506447463267036557L;
	
	private final transient ToItemUnifiedCollector coll;
	private final transient IntVarSpinnerModel spinnerModel;
	
	/**
	 * Creates an item collector GUI
	 * @param collector item collector
	 * @param window world window
	 */
	public BlockCollectorGUI(BlockCollector collector, WorldWindow window) {
		coll = collector;
		spinnerModel = new IntVarSpinnerModel(collector.period);
		
		setLayout(new MigLayout("", "[][][grow]", "[][grow][]"));
		
		JLabel lblPeriod = new JLabel($res("colperiod"));
		add(lblPeriod, "cell 1 0");
		
		JSpinner spinner = new JSpinner(spinnerModel);
		add(spinner, "cell 2 0,growx");
		
		InventoryController playerInv = new InventoryController();
		playerInv.setTitle($res("player"));
		window.playerInventory(playerInv);
		add(playerInv, "cell 0 1,grow");
		
		InventoryController collectorInv = new InventoryController();
		collectorInv.setInv(collector.inv());
		add(collectorInv, "cell 2 1,grow");
		
		MoveItems moveItems = new MoveItems(playerInv, collectorInv, MoveItems.LEFT);
		add(moveItems, "cell 1 1,grow");
		
		JButton btnNewButton = new JButton($res("exit"));
		btnNewButton.addActionListener(e ->window.closeWindow(this));
		btnNewButton.setBackground(Color.RED);
		add(btnNewButton, "cell 0 2 3 1,growx");
	}

	@Override
	public void close(WorldWindow window) {
		coll.destroyTab(this);
		spinnerModel.close();
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy