Skip to content

Commit

Permalink
Improve API
Browse files Browse the repository at this point in the history
  • Loading branch information
Nedelosk committed Sep 25, 2016
1 parent b75acd1 commit 0ec3730
Show file tree
Hide file tree
Showing 49 changed files with 669 additions and 466 deletions.
6 changes: 3 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ forgeversion=12.18.1.2089
mcp_mappings=snapshot_20160525

tesla_version=1.10.2-1.2.1.46
jei_version=3.9.3.252
jei_version=3.11.+
ic2_version=2.6.68-ex110
waila_version=1.7.0-B3
top_version=1.10-1.0.15-28
mantle_version=0.10.4.+
forestry_version=5.2.9.+
forestry_version=5.2.+

version_major=1
version_minor=5
version_patch=2
version_patch=3

curse_project_id=233073
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package de.nedelosk.modularmachines.api.gui;


public class GuiManager {

public static IGuiHelper helper;
}
47 changes: 47 additions & 0 deletions src/main/java/de/nedelosk/modularmachines/api/gui/IGuiHelper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package de.nedelosk.modularmachines.api.gui;

import java.util.List;

import de.nedelosk.modularmachines.api.energy.IEnergyBuffer;
import de.nedelosk.modularmachines.api.modular.IModularAssembler;
import de.nedelosk.modularmachines.api.modules.IModuleBurning;
import de.nedelosk.modularmachines.api.modules.IModuleWorking;
import de.nedelosk.modularmachines.api.modules.controller.IModuleControlled;
import de.nedelosk.modularmachines.api.modules.handlers.IModulePage;
import de.nedelosk.modularmachines.api.modules.position.IStoragePosition;
import de.nedelosk.modularmachines.api.modules.state.IModuleState;
import de.nedelosk.modularmachines.api.modules.tools.IModuleModeMachine;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public interface IGuiHelper {

Widget<IFluidTank> createFluidTank(int xPosition, int yPosition, IFluidTank provider);

Widget<IModuleState<IModuleWorking>> createProgressBar(int xPosition, IModuleState<IModuleWorking> provider);

Widget<IEnergyBuffer> createEnergyField(int xPosition, int yPosition, IEnergyBuffer provider);

Widget<IEnergyBuffer> createEnergyBar(int xPosition, int yPosition, IEnergyBuffer provider);

Widget<IModuleState<IModuleBurning>> createBurning(int xPosition, int yPosition, IModuleState<IModuleBurning> provider);

Widget<IModuleState<IModuleControlled>> createRedstoneMode(int xPosition, int yPosition, IModuleState<IModuleControlled> provider);

Widget<IModuleState<IModuleControlled>> createController(int xPosition, int yPosition, IModuleState<IModuleControlled> provider, IModuleState state);

Widget<IModuleState<IModuleModeMachine>> createMode(int xPosition, int yPosition, IModuleState<IModuleModeMachine> provider);

/* MODULAR */
Widget<IModuleState> createModuleTab(int xPosition, int yPosition, IModuleState provider, List<IModuleState> modulesWithPages);

Widget<IModulePage> createModulePageTab(int xPosition, int yPosition, IModulePage provider);

/* ASSEMBLER */
Widget<IModularAssembler> createAssemblerTab(int xPosition, int yPosition, IModularAssembler provider, IStoragePosition position, boolean right);

Widget<ItemStack> createAssembleTab(int xPosition, int yPosition);
}
42 changes: 24 additions & 18 deletions src/main/java/de/nedelosk/modularmachines/api/gui/Widget.java
Original file line number Diff line number Diff line change
@@ -1,52 +1,64 @@
package de.nedelosk.modularmachines.api.gui;

import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.List;

import net.minecraft.client.Minecraft;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

@SideOnly(Side.CLIENT)
public abstract class Widget<I extends IGuiHandler> {
public abstract class Widget<P> {

protected ResourceLocation widgetTexture;
protected Rectangle pos;
public Minecraft mc = Minecraft.getMinecraft();
public boolean showTooltip;
protected final Minecraft mc = Minecraft.getMinecraft();
protected P provider;

public Widget(int posX, int posY, int width, int height) {
widgetTexture = new ResourceLocation("modularmachines", "textures/gui/widgets.png");
pos = new Rectangle(posX, posY, width, height);
showTooltip = true;
this(posX, posY, width, height, null);
}

public void draw(IGuiProvider<I> gui) {
public Widget(int posX, int posY, int width, int height, P provider) {
this.widgetTexture = new ResourceLocation("modularmachines", "textures/gui/widgets.png");
this.pos = new Rectangle(posX, posY, width, height);
this.provider = provider;
}

public boolean keyTyped(char keyChar, int keyCode, IGuiProvider<I> gui) {
public void draw(IGuiProvider gui) {
}

public boolean keyTyped(char keyChar, int keyCode, IGuiProvider gui) {
return false;
}

public void drawStrings(IGuiProvider<I> gui) {
public void drawStrings(IGuiProvider gui) {
}

public ArrayList<String> getTooltip(IGuiProvider<I> gui) {
public List<String> getTooltip(IGuiProvider gui) {
return null;
}

public boolean isMouseOver(int x, int y) {
return x >= pos.x && y >= pos.y && x < pos.x + pos.width && y < pos.y + pos.height;
}

public void handleMouseClick(int mouseX, int mouseY, int mouseButton, IGuiProvider<I> gui) {
public void handleMouseClick(int mouseX, int mouseY, int mouseButton, IGuiProvider gui) {
}

public Rectangle getPos() {
return pos;
}

public void setProvider(P provider) {
this.provider = provider;
}

public P getProvider() {
return provider;
}

@Override
public boolean equals(Object obj) {
Widget w = (Widget) obj;
Expand All @@ -55,10 +67,4 @@ public boolean equals(Object obj) {
}
return false;
}


public Widget<I> setShowTooltip(boolean showTooltip) {
this.showTooltip = showTooltip;
return this;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ public enum EnumMetalMaterials implements IMetalMaterial {
ALUMINIUM(2, "Aluminum", "aluminium", 0xD4E3E6, "Aluminum", "Aluminium"),
NICKEL(2, "Nickel", "nickel", 0xA9A283, "Nickel"), IRON(2, "Iron", "iron", 0xDADADA, "Iron"), TIN(2, "Tin", "tin", 0xCACECF, "Tin"),
SILVER(2, "Silver", "silver", 0xE6FDFF, "Silver"), COPPER(2, "Copper", "copper", 0xCC6410, "Copper"),
GOLD(4, "Gold", "gold", 0xD3B95A, "Gold"), BRONZE(3, "Bronze", "bronze", 0xCA9956, "Bronze"),
STEEL(5,"Steel", "steel",0xA0A0A0, "Steel"), MAGMARIUM(7, "Magmarium", "magmarium", 0x6E0C08, "Magmarium"),
GOLD(4, "Gold", "gold", 0xD3B95A, "Gold"), STEEL(5,"Steel", "steel",0xA0A0A0, "Steel"),

// Alloy
BRONZE(3, "Bronze", "bronze", 0xCA9956, "Bronze"), INVAR(3, "Invar", "invar", 0xA1A48C, "Invar"), MAGMARIUM(7, "Magmarium", "magmarium", 0x6E0C08, "Magmarium"),

// Thermal Expansion
LEAD(2, "Lead", "lead", 0x826C82, "Lead"), INVAR(3, "Invar", "invar", 0xA1A48C, "Invar"), ELECTRUM(5, "Electrum", "electrum", 0xD7D665, "Electrum"),
LEAD(2, "Lead", "lead", 0x826C82, "Lead"), ELECTRUM(5, "Electrum", "electrum", 0xD7D665, "Electrum"),
SIGNALUM(6, "Signalum", "signalum", 0xB86424, "Signalum"), ENDERIUM(7, "Enderium", "enderium", 0x1B7A57, "Enderium"),

// Mekanism
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

public interface IModuleBurning extends IModule{

int getBurnTimeTotal(IModuleState state);

int getBurnTime(IModuleState state);

void addBurnTime(IModuleState state, int burntime);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
import java.util.List;
import java.util.Map;

import com.google.common.collect.Lists;

import de.nedelosk.modularmachines.api.material.IMetalMaterial;
import de.nedelosk.modularmachines.api.modular.IModular;
import de.nedelosk.modularmachines.api.modules.items.IModuleContainer;
Expand Down Expand Up @@ -143,6 +145,16 @@ public static IModuleState loadOrCreateModuleState(IModular modular, ItemStack s
return state;
}

public static List<IModuleState> getModulesWithPages(IModular modular){
List<IModuleState> modulesWithPages = Lists.newArrayList();
for(IModuleState moduleState : modular.getModules()) {
if (moduleState != null && !moduleState.getPages().isEmpty()) {
modulesWithPages.add(moduleState);
}
}
return modulesWithPages;
}

public static boolean hasDefaultStack(IModuleContainer container){
return modulesWithDefaultItem.contains(container);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package de.nedelosk.modularmachines.api.modules.handlers;


public interface IHandlerHelper {
}
Loading

0 comments on commit 0ec3730

Please sign in to comment.