Skip to content

Instantly share code, notes, and snippets.

@aidancbrady
Created February 29, 2020 21:32
Show Gist options
  • Save aidancbrady/2cb046ba2b38b4d610374cdc7427e147 to your computer and use it in GitHub Desktop.
Save aidancbrady/2cb046ba2b38b4d610374cdc7427e147 to your computer and use it in GitHub Desktop.
package mekanism.common.content.machines;
import java.util.EnumSet;
import java.util.Set;
import javax.annotation.Nonnull;
import mekanism.api.Upgrade;
import mekanism.api.block.FactoryType;
import mekanism.client.HolidayManager;
import mekanism.common.MekanismLang;
import mekanism.common.base.ILangEntry;
import mekanism.common.config.value.CachedDoubleValue;
import mekanism.common.inventory.container.tile.MekanismTileContainer;
import mekanism.common.registration.impl.ContainerTypeRegistryObject;
import mekanism.common.registration.impl.SoundEventRegistryObject;
import mekanism.common.registration.impl.TileEntityTypeRegistryObject;
import mekanism.common.tile.base.TileEntityMekanism;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.SoundEvent;
public abstract class Machine<TILE extends TileEntityMekanism> {
private TileEntityTypeRegistryObject<TILE> tileEntityRegistrar;
private ContainerTypeRegistryObject<MekanismTileContainer<TILE>> containerRegistrar;
private CachedDoubleValue energyUsage;
private CachedDoubleValue energyStorage;
private SoundEventRegistryObject<SoundEvent> soundRegistrar;
private MekanismLang description;
private FactoryType factoryType;
public Machine() {
}
public TileEntityType<TILE> getTileType() {
return tileEntityRegistrar.getTileEntityType();
}
public ContainerTypeRegistryObject<MekanismTileContainer<TILE>> getContainerType() {
return containerRegistrar;
}
public FactoryType getFactoryType() {
return factoryType;
}
@Nonnull
public Set<Upgrade> getSupportedUpgrades() {
return EnumSet.of(Upgrade.SPEED, Upgrade.ENERGY, Upgrade.MUFFLING);
}
@Nonnull
public SoundEvent getSoundEvent() {
return HolidayManager.filterSound(soundRegistrar).getSoundEvent();
}
@Nonnull
public ILangEntry getDescription() {
return description;
}
public double getUsage() {
return energyUsage.get();
}
public double getConfigStorage() {
return energyStorage.get();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment