Skip to content

Commit

Permalink
Clean Up Api and Add a item module container
Browse files Browse the repository at this point in the history
  • Loading branch information
Nedelosk committed Oct 9, 2016
1 parent 94923a0 commit fb1d6b0
Show file tree
Hide file tree
Showing 124 changed files with 1,167 additions and 826 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ forestry_version=5.2.+

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

curse_project_id=233073
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
public class HeatBuffer implements IHeatSource, INBTSerializable<NBTTagCompound> {

protected double heatBuffer;
protected double capacity;
protected double maxExtract;
protected double maxReceive;
protected final double capacity;
protected final double maxExtract;
protected final double maxReceive;

public HeatBuffer(float capacity, float maxTransfer) {
this(capacity, maxTransfer, maxTransfer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
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.IModulePage;
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;
Expand Down Expand Up @@ -43,5 +43,5 @@ public interface IGuiHelper {
/* ASSEMBLER */
Widget<IModularAssembler> createAssemblerTab(int xPosition, int yPosition, IModularAssembler provider, IStoragePosition position, boolean right);

Widget<ItemStack> createAssembleTab(int xPosition, int yPosition);
Widget<ItemStack> createAssembleTab(int xPosition, int yPosition, boolean isRight);
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import de.nedelosk.modularmachines.api.energy.IEnergyBuffer;
import de.nedelosk.modularmachines.api.energy.IHeatSource;
import de.nedelosk.modularmachines.api.modular.handlers.IModularHandler;
import de.nedelosk.modularmachines.api.modules.handlers.IModulePage;
import de.nedelosk.modularmachines.api.modules.IModulePage;
import de.nedelosk.modularmachines.api.modules.handlers.block.IBlockModificator;
import de.nedelosk.modularmachines.api.modules.position.IStoragePosition;
import de.nedelosk.modularmachines.api.modules.state.IModuleState;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,8 @@ public static ItemStack saveModularToItem(ItemStack modularItem, IModularHandler
IModularHandlerItem<NBTTagCompound> itemHandler = (IModularHandlerItem<NBTTagCompound>) modularItem.getCapability(MODULAR_HANDLER_CAPABILITY, null);
modularItem = modularItem.copy();
if(modularHandler.isAssembled() && modularHandler.getModular() != null){
itemHandler.setAssembled(true);
itemHandler.setModular(modularHandler.getModular().copy(itemHandler));
}else if(!modularHandler.isAssembled() && modularHandler.getAssembler() != null){
itemHandler.setAssembled(false);
itemHandler.setAssembler(modularHandler.getAssembler().copy(itemHandler));
}
itemHandler.setWorld(player.getEntityWorld());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ public interface IModularHandler<N extends NBTBase> extends IGuiHandler, ICapabi

void setOwner(GameProfile owner);

void setAssembled(boolean isAssembled);

boolean isAssembled();

@Nonnull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,10 @@ public abstract class ModularHandler implements IModularHandler<NBTTagCompound>{
protected IModularAssembler assembler;
protected World world;
protected GameProfile owner;
protected boolean isAssembled;

public ModularHandler(World world, List<IStoragePosition> positions) {
this.world = world;
this.positions = positions;
this.isAssembled = false;
}

@Override
Expand All @@ -50,7 +48,6 @@ public NBTTagCompound serializeNBT() {
NBTUtil.writeGameProfile(nbtTag, owner);
nbt.setTag("owner", nbtTag);
}
nbt.setBoolean("isAssembled", isAssembled);
return nbt;
}

Expand All @@ -65,7 +62,6 @@ public void deserializeNBT(NBTTagCompound nbt) {
if (nbt.hasKey("owner")) {
owner = NBTUtil.readGameProfileFromNBT(nbt.getCompoundTag("owner"));
}
isAssembled = nbt.getBoolean("isAssembled");
}

@Override
Expand Down Expand Up @@ -134,12 +130,7 @@ public World getWorld() {

@Override
public boolean isAssembled() {
return isAssembled;
}

@Override
public void setAssembled(boolean isAssembled) {
this.isAssembled = isAssembled;
return modular != null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import de.nedelosk.modularmachines.api.modules.containers.IModuleItemContainer;
import de.nedelosk.modularmachines.api.modules.containers.IModuleProvider;
import de.nedelosk.modularmachines.api.modules.handlers.IModuleContentHandler;
import de.nedelosk.modularmachines.api.modules.handlers.IModulePage;
import de.nedelosk.modularmachines.api.modules.models.IModelHandler;
import de.nedelosk.modularmachines.api.modules.position.IStoragePosition;
import de.nedelosk.modularmachines.api.modules.state.IModuleState;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
package de.nedelosk.modularmachines.api.modules.handlers;
package de.nedelosk.modularmachines.api.modules;

import java.util.List;

import de.nedelosk.modularmachines.api.gui.IContainerBase;
import de.nedelosk.modularmachines.api.gui.IPage;
import de.nedelosk.modularmachines.api.modular.IModular;
import de.nedelosk.modularmachines.api.modular.handlers.IModularHandler;
import de.nedelosk.modularmachines.api.modules.handlers.IModuleContentHandlerProvider;
import de.nedelosk.modularmachines.api.modules.handlers.inventory.IModuleInventory;
import de.nedelosk.modularmachines.api.modules.handlers.inventory.slots.SlotModule;
import de.nedelosk.modularmachines.api.modules.handlers.tank.IModuleTank;
import de.nedelosk.modularmachines.api.modules.state.IModuleState;
import net.minecraft.nbt.NBTTagCompound;

public interface IModulePage extends IPage, IModuleContentProvider {
public interface IModulePage extends IPage, IModuleContentHandlerProvider {

IModuleTank getTank();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package de.nedelosk.modularmachines.api.modules;

import javax.annotation.Nonnull;

import de.nedelosk.modularmachines.api.modules.state.IModuleState;
import de.nedelosk.modularmachines.api.recipes.IRecipe;
import de.nedelosk.modularmachines.api.recipes.RecipeItem;
Expand All @@ -19,6 +21,6 @@ public interface IModuleRecipe extends IModule {
/**
* @return True if the stack is a input, of a recipe, at the matching position.
*/
boolean isRecipeInput(IModuleState state, RecipeItem item);
boolean isRecipeInput(IModuleState state, @Nonnull RecipeItem item);

}
50 changes: 13 additions & 37 deletions src/main/java/de/nedelosk/modularmachines/api/modules/Module.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package de.nedelosk.modularmachines.api.modules;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
Expand All @@ -16,9 +17,7 @@
import de.nedelosk.modularmachines.api.modules.containers.IModuleItemContainer;
import de.nedelosk.modularmachines.api.modules.containers.IModuleItemProvider;
import de.nedelosk.modularmachines.api.modules.containers.IModuleProvider;
import de.nedelosk.modularmachines.api.modules.handlers.ICleanableModuleContentHandler;
import de.nedelosk.modularmachines.api.modules.handlers.IModuleContentHandler;
import de.nedelosk.modularmachines.api.modules.handlers.IModulePage;
import de.nedelosk.modularmachines.api.modules.models.IModelHandler;
import de.nedelosk.modularmachines.api.modules.position.IModulePositioned;
import de.nedelosk.modularmachines.api.modules.position.IModulePostion;
Expand Down Expand Up @@ -107,16 +106,7 @@ public void addTooltip(List<String> tooltip, ItemStack stack, IModuleContainer c
if(this instanceof IModulePositioned){
if(showPosition(container)){
IModulePositioned module = (IModulePositioned) this;
IModulePostion[] positions = module.getValidPositions(container);
StringBuilder builder = new StringBuilder();
for(int i = 0;i < positions.length;i++){
IModulePostion pos = positions[i];
if(pos != null){
builder.append(pos.getLocName() + ((i - 1 < positions.length) ? ", " : ""));
}
}

tooltip.add(I18n.translateToLocal("mm.module.tooltip.position") + builder.toString());
tooltip.add(I18n.translateToLocal("mm.module.tooltip.position") + Arrays.toString(module.getValidPositions(container)).replace("[", "").replace("]", ""));
}
}
List<String> providerTip = new ArrayList<>();
Expand All @@ -132,13 +122,10 @@ public void addTooltip(List<String> tooltip, ItemStack stack, IModuleContainer c

protected void addProviderTooltip(List<String> tooltip, ItemStack stack, IModuleContainer container){
IModuleItemProvider itemProvider = stack.getCapability(ModuleManager.MODULE_PROVIDER_CAPABILITY, null);
if(itemProvider != null && itemProvider.hasStates()){
for(IModuleState state : itemProvider.createStates(null)){
for(IModuleContentHandler handler : state.getContentHandlers()){
handler.addToolTip(tooltip, stack, state);
}
for(IModulePage page : (List<IModulePage>) state.getPages()){
for(IModuleContentHandler handler : page.getContentHandlers()){
if(itemProvider != null && !itemProvider.isEmpty()){
for(IModuleState state : itemProvider){
if(state.getModule().equals(this)){
for(IModuleContentHandler handler : state.getAllContentHandlers()){
handler.addToolTip(tooltip, stack, state);
}
}
Expand All @@ -148,20 +135,9 @@ protected void addProviderTooltip(List<String> tooltip, ItemStack stack, IModule

@Override
public boolean isClean(IModuleState state) {
for(IModuleContentHandler handler : state.getContentHandlers()){
if(handler instanceof ICleanableModuleContentHandler){
if(!((ICleanableModuleContentHandler) handler).isEmpty()){
return false;
}
}
}
for(IModulePage page : (List<IModulePage>) state.getPages()){
for(IModuleContentHandler handler : page.getContentHandlers()){
if(handler instanceof ICleanableModuleContentHandler){
if(!((ICleanableModuleContentHandler) handler).isEmpty()){
return false;
}
}
for(IModuleContentHandler handler : state.getAllContentHandlers()){
if(handler.isCleanable() && !handler.isEmpty()){
return false;
}
}
return true;
Expand All @@ -188,10 +164,6 @@ public String getDescription(IModuleContainer container) {
return "module." + name + ".description";
}

@Override
public void saveDataToItem(ItemStack itemStack, IModuleState state) {
}

@Override
public List<IModuleContentHandler> createHandlers(IModuleState state){
return Lists.newArrayList();
Expand Down Expand Up @@ -222,6 +194,10 @@ public IModuleState loadStateFromItem(IModuleState state, ItemStack stack) {
return state;
}

@Override
public void saveDataToItem(ItemStack itemStack, IModuleState state) {
}

@Override
public List<IModulePage> createPages(IModuleState state) {
return new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package de.nedelosk.modularmachines.api.modules;

import de.nedelosk.modularmachines.api.modular.IModular;
import de.nedelosk.modularmachines.api.modules.handlers.IModulePage;
import de.nedelosk.modularmachines.api.modules.state.IModuleState;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
Expand Down
Loading

0 comments on commit fb1d6b0

Please sign in to comment.