Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update EntityLocomotiveSteamMagic.java #47

Merged
merged 1 commit into from Jul 31, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -15,6 +15,7 @@
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidStack;

import cpw.mods.fml.common.Optional;
import mods.railcraft.api.carts.locomotive.LocomotiveRenderType;
import mods.railcraft.common.fluids.FluidItemHelper;
import mods.railcraft.common.fluids.Fluids;
Expand All @@ -37,6 +38,8 @@
*
* @author CovertJaguar <http://www.railcraft.info>
*/
@Optional.InterfaceList(
value = { @Optional.Interface(iface = "thaumcraft.api.aspects.IAspectContainer", modid = "Thaumcraft"), })
public class EntityLocomotiveSteamMagic extends EntityLocomotiveSteam implements ISidedInventory, IAspectContainer {

private static final int SLOT_BURN = 2;
Expand Down Expand Up @@ -74,6 +77,7 @@ public LocomotiveRenderType getRenderType() {
}

@Override
@Optional.Method(modid = "Thaumcraft")
public boolean doesContainerAccept(Aspect tag) {
throw new UnsupportedOperationException("Not supported yet.");
}
Expand Down Expand Up @@ -173,40 +177,47 @@ public boolean isItemValidForSlot(int slot, ItemStack stack) {
}

@Override
@Optional.Method(modid = "Thaumcraft")
public AspectList getAspects() {
return new AspectList().add(Aspect.FIRE, fireAspect.getAmount()).add(Aspect.WATER, waterAspect.getAmount());
}

@Override
@Optional.Method(modid = "Thaumcraft")
public void setAspects(AspectList aspects) {}

@Override
@Optional.Method(modid = "Thaumcraft")
public int addToContainer(Aspect tag, int amount) {
if (tag == Aspect.FIRE) return fireAspect.fill(amount, true);
if (tag == Aspect.WATER) return waterAspect.fill(amount, true);
return amount;
}

@Override
@Optional.Method(modid = "Thaumcraft")
public boolean takeFromContainer(Aspect tag, int amount) {
if (tag == Aspect.FIRE) return fireAspect.remove(amount, true);
if (tag == Aspect.WATER) return waterAspect.remove(amount, true);
return false;
}

@Override
@Optional.Method(modid = "Thaumcraft")
public boolean takeFromContainer(AspectList ot) {
return false;
}

@Override
@Optional.Method(modid = "Thaumcraft")
public boolean doesContainerContainAmount(Aspect tag, int amount) {
if (tag == Aspect.FIRE) return fireAspect.contains(amount);
if (tag == Aspect.WATER) return waterAspect.contains(amount);
return false;
}

@Override
@Optional.Method(modid = "Thaumcraft")
public boolean doesContainerContain(AspectList ot) {
for (Entry<Aspect, Integer> entry : ot.aspects.entrySet()) {
if (!doesContainerContainAmount(entry.getKey(), entry.getValue())) return false;
Expand All @@ -215,6 +226,7 @@ public boolean doesContainerContain(AspectList ot) {
}

@Override
@Optional.Method(modid = "Thaumcraft")
public int containerContains(Aspect tag) {
if (tag == Aspect.FIRE) return fireAspect.getAmount();
if (tag == Aspect.WATER) return waterAspect.getAmount();
Expand Down