Skip to content

Commit

Permalink
Fix server version and fix assembler bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
Nedelosk committed Oct 11, 2016
1 parent 673377f commit 3edc8a6
Show file tree
Hide file tree
Showing 38 changed files with 296 additions and 158 deletions.
4 changes: 4 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ repositories {
name 'tterrag maven'
url "http://maven.tterrag.com/"
}
maven {
url "http://dl.bintray.com/raoulvdberge/dev"
}
}

dependencies {
Expand All @@ -140,6 +143,7 @@ dependencies {
deobfCompile "mcjty.theoneprobe:TheOneProbe:${top_version}"
deobfCompile "slimeknights.mantle:Mantle:${mcversion}-${mantle_version}"
deobfCompile "net.sengir.forestry:forestry_${mcversion}:${forestry_version}"
deobfCompile "refinedstorage:refinedstorage:${refinedstorage_version}:deobf"
}

processResources {
Expand Down
7 changes: 4 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
mcversion=1.10.2
forgeversion=12.18.1.2089
forgeversion=12.18.2.2099
mcp_mappings=snapshot_20160525

tesla_version=1.10.2-1.2.1.46
jei_version=3.11.1.+
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.+
mantle_version=1.1.0.+
forestry_version=5.2.+
refinedstorage_version=1.2-249

version_major=1
version_minor=6
version_patch=2
version_patch=3

curse_project_id=233073
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ protected boolean renderPageTitle() {
@SideOnly(Side.CLIENT)
@Override
public void drawForeground(FontRenderer fontRenderer, int mouseX, int mouseY) {
if (renderPageTitle()) {
if (renderPageTitle() && getPageTitle() != null) {
fontRenderer.drawString(getPageTitle(), 90 - (fontRenderer.getStringWidth(getPageTitle()) / 2),
6, 4210752);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
import de.nedelosk.modularmachines.api.gui.IGuiHandler;
import de.nedelosk.modularmachines.api.modular.handlers.IModularHandler;
import de.nedelosk.modularmachines.api.modules.position.IStoragePosition;
import de.nedelosk.modularmachines.api.modules.storage.IItemHandlerStorage;
import de.nedelosk.modularmachines.api.modules.storage.IStoragePage;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.INBTSerializable;
import net.minecraftforge.items.IItemHandler;

public interface IModularAssembler extends INBTSerializable<NBTTagCompound>, IGuiHandler {

Expand All @@ -34,7 +34,7 @@ public interface IModularAssembler extends INBTSerializable<NBTTagCompound>, IGu

void setSelectedPosition(IStoragePosition position);

IItemHandler getItemHandler();
IItemHandlerStorage getItemHandler();

@Nullable
IStoragePage getStoragePage(IStoragePosition position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import de.nedelosk.modularmachines.api.modules.storage.IStorageModule;
import de.nedelosk.modularmachines.api.modules.storage.IStoragePage;
import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler;
import net.minecraftforge.items.SlotItemHandler;

public class SlotAssemblerStorage extends SlotItemHandler {
Expand All @@ -18,8 +17,8 @@ public class SlotAssemblerStorage extends SlotItemHandler {
protected final IStoragePosition position;
protected final IAssemblerContainer container;

public SlotAssemblerStorage(IItemHandler inventory, int index, int xPosition, int yPosition, IStoragePage page, IStoragePosition position, IAssemblerContainer container) {
super(inventory, index, xPosition, yPosition);
public SlotAssemblerStorage(IModularAssembler assembler, int xPosition, int yPosition, IStoragePage page, IStoragePosition position, IAssemblerContainer container) {
super(assembler.getItemHandler(), assembler.getIndex(position), xPosition, yPosition);

this.container = container;
this.position = position;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ public static EnumModuleSizes getSize(EnumModuleSizes firstSize, EnumModuleSizes
return firstSize;
}else if(firstSize == null && secondSize == null){
return UNKNOWN;
}else if(firstSize == LARGE && secondSize == LARGE){
return LARGER;
}else if(firstSize == LARGER && secondSize == LARGE){
return LARGEST;
}else if(firstSize == LARGE && secondSize == LARGER){
return LARGEST;
}
int newSize = firstSize.ordinal() + secondSize.ordinal();
if(VALUES.length > newSize){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ public interface IModulePage extends IPage, IModuleContentHandlerProvider {

IModuleState getModuleState();

String getTabTitle();

String getPageID();

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,6 @@ protected void add(Button button){
@SideOnly(Side.CLIENT)
@Override
public void addWidgets() {

List<IModuleState> modulesWithPages = ModuleManager.getModulesWithPages(getModular());
int i = 0;
if(!modulesWithPages.isEmpty() && modulesWithPages.size() > 1){
Expand Down Expand Up @@ -321,9 +320,17 @@ public String getPageTitle() {
if(stack != null && stack.hasDisplayName()){
return stack.getDisplayName();
}
if(title == null || title.isEmpty()){
return null;
}
return I18n.translateToLocal("module.page." + title.toLowerCase(Locale.ENGLISH) + ".name");
}

@Override
public String getTabTitle() {
return getPageTitle();
}

@Override
public String getPageID() {
return pageID;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ public boolean isItemValid(ItemStack stack, SlotAssembler slot, SlotAssemblerSto
@Override
public void createSlots(IAssemblerContainer container, List<Slot> slots) {
if(position != null){
SlotAssemblerStorage storageSlot;
slots.add(storageSlot = new SlotAssemblerStorage(assembler.getItemHandler(), assembler.getIndex(position), 44, 35, this, position, container));
slots.add(new SlotAssemblerStorage(assembler, 44, 35, this, position, container));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public abstract class StoragePage extends Page implements IStoragePage {

protected final IItemHandlerStorage itemHandler;
protected final IStoragePosition position;
private int positionIndex = -1;
protected final List<IStoragePage> childs;
protected IStoragePage parent;
protected IModularAssembler assembler;
Expand All @@ -35,9 +36,9 @@ public StoragePage(IModularAssembler assembler, IStorage storage) {

public StoragePage(IModularAssembler assembler, IItemHandlerStorage itemHandler, IStoragePosition position) {
super(null);
this.assembler = assembler;
this.itemHandler = itemHandler;
this.position = position;
setAssembler(assembler);
this.childs = new ArrayList<>();
}

Expand All @@ -58,6 +59,9 @@ public int getPlayerInvPosition() {

@Override
public void setAssembler(IModularAssembler assembler) {
if(assembler != null){
this.positionIndex = assembler.getIndex(position);
}
this.assembler = assembler;
this.itemHandler.setAssembler(assembler);
}
Expand All @@ -69,19 +73,24 @@ public IModularAssembler getAssembler() {

@Override
public ItemStack getStorageStack() {
if(positionIndex < 0){
return null;
}
if(assembler != null){
return assembler.getItemHandler().getStackInSlot(assembler.getIndex(position));
return assembler.getItemHandler().getStackInSlot(positionIndex);
}
return null;
}

@Override
public IStorage assemble(IModular modular) throws AssemblerException {
ItemStack storageStack = assembler.getItemHandler().getStackInSlot(assembler.getIndex(position));
IModuleProvider provider = ModuleManager.loadOrCreateModuleProvider(modular, storageStack);
IModuleState<IStorageModule> storageContainer = ModuleManager.getStorageState(provider, position);
if(storageContainer != null && storageContainer.getModule() != null){
return storageContainer.getModule().createStorage(provider, position);
ItemStack storageStack = getStorageStack();
if(storageStack != null) {
IModuleProvider provider = ModuleManager.loadOrCreateModuleProvider(modular, storageStack);
IModuleState<IStorageModule> storageState = ModuleManager.getStorageState(provider, position);
if(storageState != null && storageState.getModule() != null){
return storageState.getModule().createStorage(provider, position);
}
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public ModuleStoragePage(IModularAssembler assembler, EnumModuleSizes size, ISto
public void createSlots(IAssemblerContainer container, List<Slot> slots) {
if(position != null){
SlotAssemblerStorage storageSlot;
slots.add(storageSlot = new SlotAssemblerStorage(assembler.getItemHandler(), assembler.getIndex(position), 44, 35, this, position, container));
slots.add(storageSlot = new SlotAssemblerStorage(assembler, 44, 35, this, position, container));
if(size == EnumModuleSizes.LARGEST){
for (int i = 0; i < 3; ++i){
for (int j = 0; j < 3; ++j){
Expand Down Expand Up @@ -169,7 +169,7 @@ public boolean isItemValid(ItemStack stack, SlotAssembler slot, SlotAssemblerSto
if(!hasPosition){
return false;
}
EnumModuleSizes usedSize = null;
EnumModuleSizes usedSize = itemContainer.getSize();
for(int index = 0;index < position.getSize().slots;index++){
IModuleItemContainer otherItemContainer = ModuleManager.getContainerFromItem(itemHandler.getStackInSlot(index));
if(otherItemContainer != null){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,25 +50,44 @@ public class GuiAssembler extends GuiBase<IModularHandler> implements IAssembler

public final WidgetAssembleTab assembleTab;

public GuiAssembler(IModularHandler tile, InventoryPlayer inventory) {
super(tile, inventory);
public GuiAssembler(IModularHandler modularHandler, InventoryPlayer inventory) {
super(modularHandler, inventory);

this.page = tile.getAssembler().getStoragePage(tile.getAssembler().getSelectedPosition());
this.page = modularHandler.getAssembler().getStoragePage(modularHandler.getAssembler().getSelectedPosition());

if(page != null){
page.setGui(this);
page.addWidgets();
}

WidgetAssembleTab assembleTab = null;
IModularAssembler assembler = modularHandler.getAssembler();
int xPosLeft = 8;
int xPosRight = 140;
int pageSize = 69;
int yStartPos = 3;
List<IStoragePosition> positions = handler.getStoragePositions();
//left
widgetManager.add(new WidgetAssemblerTab(8, 5, tile.getAssembler(), positions.get(0), false));
widgetManager.add(new WidgetAssemblerTab(8, 27, tile.getAssembler(), positions.get(1), false));
widgetManager.add(new WidgetAssemblerTab(8, 49, tile.getAssembler(), positions.get(2), false));
//right
widgetManager.add(new WidgetAssemblerTab(140, 5, tile.getAssembler(), positions.get(3), true));
widgetManager.add(new WidgetAssemblerTab(140, 27, tile.getAssembler(), positions.get(4), true));
widgetManager.add(assembleTab = new WidgetAssembleTab(140, 49, true));
double positionsPerSize = (positions.size() + 1) / 2;
double spacePerTab = pageSize / positionsPerSize;
int positionIndex = 0;
for(int side = 0;side < 2;side++){
for(int index = 0;index < positionsPerSize;index++){
boolean isRight = side == 1;
int xPos = side == 0 ? xPosLeft : xPosRight;
int yPos = (int) Math.round(yStartPos + (index * spacePerTab));
if(positionIndex < positions.size()){
widgetManager.add(new WidgetAssemblerTab(xPos, yPos, assembler, positions.get(positionIndex), isRight));
positionIndex++;
}else{
widgetManager.add(assembleTab = new WidgetAssembleTab(xPos, yPos, isRight));
}
}
}

if(assembleTab == null){
widgetManager.add(assembleTab = new WidgetAssembleTab(140, 49, true));
}
this.assembleTab = assembleTab;

onUpdate();
}
Expand Down Expand Up @@ -138,7 +157,7 @@ public void updateScreen() {

protected void onUpdate(){
IModularAssembler assembler = handler.getAssembler();
if(handler != null && handler.getAssembler() != null){
if(handler != null && assembler != null){
try{
lastException = null;
modular = assembler.createModular();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void draw(IGuiProvider gui) {
right ? 214 : 235, 28, 21);
IStoragePage page = provider.getStoragePage(position);
if(page != null){
ItemStack item = provider.getStoragePage(position).getStorageStack();
ItemStack item = page.getStorageStack();
if(item != null){
gui.drawItemStack(item, gui.getGuiLeft() + pos.x + (right ? 5 : 7), gui.getGuiTop() + pos.y + 2);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ public void handleMouseClick(int mouseX, int mouseY, int mouseButton, IGuiProvid

@Override
public List getTooltip(IGuiProvider gui) {
return Arrays.asList(provider.getPageTitle());
return Arrays.asList(provider.getTabTitle());
}
}
Loading

0 comments on commit 3edc8a6

Please sign in to comment.