Compare commits

...

10 commits

Author SHA1 Message Date
Timo Ley 4e4a770bdf chore: it builds 2023-04-07 23:34:49 +02:00
lehjr 1dca314ef4
remove unnecessary declaration
some weird artifact.
2019-08-19 21:18:01 -04:00
lehjr d786d41d11 some update from months ago that I can't remember. 2019-08-19 21:13:58 -04:00
lehjr b6daf58058 fix tooltip issue #887
1.7.10-0.11.1.115
2019-01-17 15:03:58 -05:00
lehjr 1e0b1923b8 maintanence update 2018-10-18 20:29:35 -04:00
lehjr 74bd150d16 cleaup code fix a couple things 2018-10-18 15:09:03 -04:00
lehjr 0c9e49938b Actually fix glider sound stuck on, and fix it without breaking servers 2017-04-04 13:46:08 -04:00
Leon 7f50c70571 final 1.7.10 build 2017-03-26 11:34:44 -04:00
Leon d8ac715066 Some final fixes for 1.7.10. 2017-03-26 10:51:59 -04:00
Leon 0d88ca125a fix NPE when adding color in Tinker Table with no item selected 2017-03-11 08:12:05 -05:00
65 changed files with 1269 additions and 1316 deletions

View file

@ -3,7 +3,7 @@ buildscript {
mavenCentral()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
url = "https://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
@ -11,22 +11,55 @@ buildscript {
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
classpath ('com.anatawa12.forge:ForgeGradle:1.2-1.0.+') {
changing = true
}
}
}
repositories {
maven {
url = "https://maven.tilera.xyz/"
}
maven {
name = "ChickenBones"
url = "http://chickenbones.net/maven"
}
maven {
name = "ic2"
url = "http://maven.ic2.player.to/"
metadataSources {
artifact()
}
}
maven {
url = "https://maven.thorfusion.com/artifactory/central/"
metadataSources {
artifact()
}
}
maven {
url = "https://s3.tilera.xyz/cdn/minecraft/libs/"
metadataSources {
artifact()
}
}
ivy {
url "https://ci.rs485.network/job/LogisticsPipes-0.9-mc17-bc7"
layout "pattern", {
artifact "[revision]/artifact/build/libs/[artifact]-0.9.3.[revision](-[classifier]).[ext]"
}
metadataSources {
artifact()
}
}
}
apply plugin: 'forge'
apply plugin: 'curseforge'
sourceCompatibility = 1.7
targetCompatibility = 1.7
sourceCompatibility = 1.8
targetCompatibility = 1.8
// define the properties file
ext.configFile = file "project.properties"
@ -40,91 +73,57 @@ configFile.withReader {
def buildnumber = System.getenv("BUILD_NUMBER")
def travisbuildnumber = (System.getenv("TRAVIS_BUILD_NUMBER") ?: -111).toInteger() + 111
version = "${config.mod_version}." + (buildnumber ?: travisbuildnumber)
version = "${config.minecraft_version}-${config.mod_version}." + (buildnumber ?: travisbuildnumber)
group= "${config.group_id}" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "${config.mod_id}"
def numina_version = (System.getenv("NUMINA_VERSION") ?:"0.4.1.104")
def numina_version = (System.getenv("NUMINA_VERSION") ?:"0.4.1.105")
minecraft {
version = "${config.minecraft_version}-${config.forge_version}"
replace "@numina_version@", numina_version
replace "@VERSION@", project.version
runDir = "run"
}
new File(config.libs_dir).mkdirs()
def getLibrary(filename) {
def f = new File(config.libs_dir + filename)
if (!f.exists()) {
new URL(config.apisource_url + filename).withInputStream{ i -> f.withOutputStream{ it << i }}
}
dependencies {
compile files(config.libs_dir + filename)
}
}
dependencies {
compile 'codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev'
compile 'codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev'
compile 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev'
implementation 'codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev'
implementation 'codechicken:NotEnoughItems:1.7.10-1.0.5.120:dev'
implementation 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev'
implementation "codechicken:ForgeMultipart:1.7.10-1.2.0.347:dev"
implementation "universalelectricity:universalelectricity:5.1.0:deobf"
implementation 'net.industrial-craft:industrialcraft-2:2.2.826-experimental:api'
implementation 'thaumcraft:Thaumcraft:1.7.10-4.2.3.5:deobf'
implementation 'logisticspipes:logisticspipes:128:dev'
implementation 'appeng:appliedenergistics2:rv3-beta-23:dev'
implementation 'mekanism:Mekanism:1.7.10-9.13.1:deobf'
implementation 'buildcraft:buildcraft:7.1.25:dev'
implementation 'cofh:CoFHCore:[1.7.10]3.1.4-329:dev'
implementation 'cofh:ThermalFoundation:[1.7.10]1.2.6-118:dev'
implementation 'cofh:ThermalExpansion:[1.7.10]4.1.5-248:dev'
implementation 'ender:EnderCore:1.7.10-0.2.0.39_beta:dev'
implementation 'ender:EnderIO:1.7.10-2.3.0.429_beta:dev'
implementation 'chisel:Chisel:2.9.5.11:deobf'
implementation 'mods:ExtraCells:1.7.10-2.3.14b197:deobf'
implementation 'mods:MineFactoryReloaded:[1.7.10]2.8.0-104:dev'
implementation 'mods:Numina:0.4.1.106'
implementation 'mods:PlayerAPI:1.7.10-1.4'
implementation 'mods:RenderPlayerAPI:1.7.10-1.4'
implementation 'mods:SmartRender:1.7.10-2.1'
implementation 'mods:forestry_1.7.10:4.2.16.64'
implementation 'mods:Railcraft_1.7.10:9.12.2.0'
implementation 'mods:BluePower:1.7.10-0.2.962:universal'
implementation 'mods:QmunityLib:1.7.10-0.1.114:universal'
implementation 'mods:MrTJPCore:1.1.0.31:universal'
implementation 'mods:ProjectRed:1.7.10-4.7.0pre8.92:Base'
}
/*
repositories {
maven {
name = "ic2"
url = "http://maven.ic2.player.to/"
}
}
dependencies {
compile 'net.industrial-craft:industrialcraft-2:2.2.826-experimental:api'
}
*/
//getLibrary("CoFHCore-[1.7.10]3.0.3-303-dev.jar")
////getLibrary("industrialcraft-2-2.2.765-experimental-api.jar")
//getLibrary("ThermalExpansion-[1.7.10]4.0.3B1-218-dev.jar")
//getLibrary("GalacticraftCore-Dev-1.7-3.0.12.168.jar")
//getLibrary("Railcraft_1.7.10-9.7.0.0-dev.jar") // delete outdated CoFH API from this jar to run in dev environment
//getLibrary("MineFactoryReloaded-[1.7.10]2.8.0-104-dev.jar")
//getLibrary("forestry_1.7.10-3.6.3.20-api.jar")
//getLibrary("Thaumcraft-deobf-1.7.10-4.2.3.5.jar")
//getLibrary("SmartRender-1.7.10-2.1.jar") // this version is ok to build with, but to run in dev environment, download the SmartMoving zip and use the version from that
//getLibrary("RenderPlayerAPI-1.7.10-1.4.jar")
////getLibrary("appliedenergistics2-rv2-stable-10-dev.jar")
//getLibrary("ExtraCells-deobf-1.7.10-2.3.2b158.jar") // This one may have to be downloaded manually
//getLibrary("buildcraft-7.0.21-dev.jar")
//getLibrary("BluePower-1.7.10-0.2.962-universal.jar")
//getLibrary("EnderIO-1.7.10-2.2.8.381-dev.jar") // May need to delete Mekanism API from this jar to run in dev environment
//getLibrary("Mekanism-1.7.10-8.1.7.252.jar")
//getLibrary("MrTJPCore-1.1.0.31-universal.jar")
//getLibrary("ProjectRed-1.7.10-4.7.0pre8.92-Base.jar")
////getLibrary("Chisel2-2.5.0.43-deobf.jar")
////getLibrary("Chisel-2.9.0.3-deobf.jar")
//getLibrary("compactmachines-1.7.10-1.20-dev.jar") // This is for the personal shrinking device module; needs to be built from source.
processResources {
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
filesMatching('mcmod.info') {
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
jar {

View file

@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip

View file

@ -4,4 +4,3 @@ minecraft_version=1.7.10
group_id=net.machinemuse
mod_id=ModularPowersuits
libs_dir=libs/
apisource_url=http://machinemuse.minecraftforge.net/

View file

@ -11,7 +11,7 @@ import net.minecraft.item.ItemStack;
* - handle charging, taking amount, tier, transfer limit, canProvideEnergy and simulate into account
* - replace item IDs if appropriate (getChargedItemId() and getEmptyItemId())
* - update and manage the damage value for the visual charge indicator
*
*
* @note If you're implementing your own variant (ISpecialElectricItem), you can delegate to the
* default implementations through ElectricItem.rawManager. The default implementation is designed
* to minimize its dependency on its own constraints/structure and delegates most work back to the
@ -45,7 +45,7 @@ public interface IElectricItemManager {
/**
* Determine the charge level for the specified item.
*
*
* @param stack ItemStack containing the electric item
* @return charge level in EU
*/
@ -85,7 +85,7 @@ public interface IElectricItemManager {
/**
* Get the tool tip to display for electric items.
*
*
* @param stack ItemStack to determine the tooltip for
* @return tool tip string or null for none
*/

View file

@ -0,0 +1,35 @@
package micdoodle8.mods.galacticraft.api.item;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
/**
* Implement into Armor items
*/
public interface IBreathableArmor
{
public enum EnumGearType
{
HELMET,
GEAR,
TANK1,
TANK2
}
/**
* @param gearType The gear type to be handled
* @return true if the passed gear type should be handled by this armor item
*/
public boolean handleGearType(EnumGearType gearType);
/**
* Determines if armor item is currently valid for breathing
*
* @param helmetInSlot The armor itemstack
* @param playerWearing The player wearing the armor
* @param type The oxygen gear type @see EnumGearType
* @return true if this armor item is valid for the provided oxygen gear
* type
*/
public boolean canBreathe(ItemStack helmetInSlot, EntityPlayer playerWearing, EnumGearType type);
}

View file

@ -24,8 +24,6 @@ public interface IPowerModule {
String getDataName();
// Use StatCollector.translateToLocal("module." + m.getUnlocalizedName + ".name") instead
@Deprecated
String getLocalizedName();
double applyPropertyModifiers(NBTTagCompound itemTag, String propertyName, double propertyValue);

View file

@ -6,7 +6,6 @@ import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.numina.item.NuminaItemUtils;
import net.machinemuse.powersuits.item.IModeChangingModularItem;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@ -111,10 +110,7 @@ public class ModuleManager {
public static boolean isModuleOnline(NBTTagCompound itemTag, String moduleName) {
if (tagHasModule(itemTag, moduleName) && !itemTag.getCompoundTag(moduleName).hasKey(ONLINE)) {
return true;
} else if (tagHasModule(itemTag, moduleName) && itemTag.getCompoundTag(moduleName).getBoolean(ONLINE)) {
return true;
}
return false;
} else return tagHasModule(itemTag, moduleName) && itemTag.getCompoundTag(moduleName).getBoolean(ONLINE);
}
public static void toggleModule(NBTTagCompound itemTag, String name, boolean toggleval) {

View file

@ -15,7 +15,7 @@ public abstract class ElectricAdapter {
if (stack == null)
return null;
Item i = stack.getItem();
if (i instanceof MuseElectricItem) {
if (i instanceof IMuseElectricItem) {
return new MuseElectricAdapter(stack);
} else if (ModCompatibility.isRFAPILoaded() && i instanceof IEnergyContainerItem) {
return new TEElectricAdapter(stack);
@ -35,4 +35,4 @@ public abstract class ElectricAdapter {
public abstract double drainEnergy(double requested);
public abstract double giveEnergy(double provided);
}
}

View file

@ -21,7 +21,7 @@ import net.minecraft.item.ItemStack;
@Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true),
@Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true),
@Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true),
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "AE2", striprefs = true)
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "appliedenergistics2", striprefs = true)
})
public interface IMuseElectricItem extends
IEnergyContainerItem,

View file

@ -7,11 +7,11 @@ import net.minecraft.item.ItemStack;
*/
public class MuseElectricAdapter extends ElectricAdapter {
ItemStack stack;
MuseElectricItem item;
IMuseElectricItem item;
public MuseElectricAdapter(ItemStack stack) {
this.stack = stack;
this.item = (MuseElectricItem)stack.getItem();
this.item = (IMuseElectricItem)stack.getItem();
}
@Override
@ -33,4 +33,4 @@ public class MuseElectricAdapter extends ElectricAdapter {
public double giveEnergy(double provided) {
return item.giveEnergyTo(stack, provided);
}
}
}

View file

@ -1,253 +0,0 @@
package net.machinemuse.api.electricity;
import appeng.api.config.AccessRestriction;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItemManager;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
/**
* Author: MachineMuse (Claire Semple)
* Created: 10:12 PM, 4/20/13
*
* Ported to Java by lehjr on 11/3/16.
*/
public class MuseElectricItem extends Item implements IMuseElectricItem {
private static MuseElectricItem INSTANCE;
public static MuseElectricItem getInstance() {
if (INSTANCE == null)
INSTANCE = new MuseElectricItem();
return INSTANCE;
}
/**
* Call to get the energy of an item
*
* @param stack ItemStack to set
* @return Current energy level
*/
@Override
public double getCurrentEnergy(ItemStack stack) {
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
}
/**
* Call to set the energy of an item
*
* @param stack ItemStack to set
* @return Maximum energy level
*/
@Override
public double getMaxEnergy(ItemStack stack) {
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
}
/**
* Call to set the energy of an item
*
* @param stack ItemStack to set
* @param energy Level to set it to
*/
@Override
public void setCurrentEnergy(ItemStack stack, double energy) {
MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack)));
}
/**
* Call to drain energy from an item
*
* @param stack ItemStack being requested for energy
* @param requested Amount of energy to drain
* @return Amount of energy successfully drained
*/
@Override
public double drainEnergyFrom(ItemStack stack, double requested) {
double available = getCurrentEnergy(stack);
if (available > requested) {
setCurrentEnergy(stack, available - requested);
return requested;
} else {
setCurrentEnergy(stack, 0);
return available;
}
}
/**
* Call to give energy to an item
*
* @param stack ItemStack being provided with energy
* @param provided Amount of energy to add
* @return Amount of energy added
*/
@Override
public double giveEnergyTo(ItemStack stack, double provided) {
double available = getCurrentEnergy(stack);
double max = getMaxEnergy(stack);
if (available + provided < max) {
setCurrentEnergy(stack, available + provided);
return provided;
} else {
setCurrentEnergy(stack, max);
return max - available;
}
}
@Override
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
/* Industrialcraft 2 -------------------------------------------------------------------------- */
@Override
public boolean canProvideEnergy(ItemStack itemStack) {
return true;
}
@Override
public Item getChargedItem(ItemStack itemStack) {
return this;
}
@Override
public Item getEmptyItem(ItemStack itemStack) {
return this;
}
@Override
public double getMaxCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack));
}
@Override
public int getTier(ItemStack itemStack) {
return ElectricConversions.getTier(itemStack);
}
@Override
public double getTransferLimit(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)));
}
@Override
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){
double current = getCurrentEnergy(itemStack);
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
double given = giveEnergyTo(itemStack, transfer);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToEU(given);
}
@Override
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
double taken = drainEnergyFrom(itemStack, transfer);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToEU(taken);
}
@Override
public double getCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack));
}
@Override
public boolean canUse(ItemStack itemStack, double amount) {
return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack);
}
@Override
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity);
}
@Override
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
ElectricItem.rawManager.chargeFromArmor(itemStack, entity);
}
@Override
public String getToolTip(ItemStack itemStack) {
// return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString(); // enabling this doubles up the tooltips
return "";
}
@Override
public IElectricItemManager getManager(ItemStack itemStack) {
return this;
}
/* Thermal Expansion -------------------------------------------------------------------------- */
@Override
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double receivedME = ElectricConversions.museEnergyFromRF(energy);
double eatenME = giveEnergyTo(itemStack, receivedME);
if (simulate) setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToRF(eatenME);
}
@Override
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
double takenME = drainEnergyFrom(itemStack, requesteddME);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToRF(takenME);
}
@Override
public int getEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
}
@Override
public int getMaxEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
@Override
public double injectAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double recieved = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(recieved);
}
@Override
public double extractAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double taken = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(taken);
}
@Override
public double getAEMaxPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
@Override
public double getAECurrentPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
@Override
public AccessRestriction getPowerFlow(ItemStack itemStack) {
return AccessRestriction.READ_WRITE;
}
}

View file

@ -7,47 +7,47 @@ import net.machinemuse.powersuits.control.KeybindManager;
import net.minecraft.entity.player.EntityPlayer;
public class KeyConfigGui extends MuseGui {
private EntityPlayer player;
protected KeybindConfigFrame frame;
private EntityPlayer player;
protected KeybindConfigFrame frame;
protected int worldx;
protected int worldy;
protected int worldz;
public KeyConfigGui(EntityPlayer player, int x, int y, int z) {
super();
KeybindManager.readInKeybinds();
this.player = player;
this.xSize = 256;
this.ySize = 226;
public KeyConfigGui(EntityPlayer player, int x, int y, int z) {
super();
KeybindManager.readInKeybinds();
this.player = player;
this.xSize = 256;
this.ySize = 226;
this.worldx = x;
this.worldy = y;
this.worldz = z;
}
}
/**
* Add the buttons (and other controls) to the screen.
*/
@Override
public void initGui() {
super.initGui();
frame = new KeybindConfigFrame(this,
new MusePoint2D(absX(-0.95), absY(-0.95)),
new MusePoint2D(absX(0.95), absY(0.95)), player);
frames.add(frame);
/**
* Add the buttons (and other controls) to the screen.
*/
@Override
public void initGui() {
super.initGui();
frame = new KeybindConfigFrame(this,
new MusePoint2D(absX(-0.95), absY(-0.95)),
new MusePoint2D(absX(0.95), absY(0.95)), player);
frames.add(frame);
TabSelectFrame tabFrame = new TabSelectFrame(player, new MusePoint2D(absX(-0.95F), absY(-1.05f)),new MusePoint2D(absX(0.95F), absY(-0.95f)), worldx, worldy, worldz);
TabSelectFrame tabFrame = new TabSelectFrame(player, new MusePoint2D(absX(-0.95F), absY(-1.05f)), new MusePoint2D(absX(0.95F), absY(-0.95f)), worldx, worldy, worldz);
frames.add(tabFrame);
}
}
@Override
public void handleKeyboardInput() {
super.handleKeyboardInput();
frame.handleKeyboard();
}
@Override
public void handleKeyboardInput() {
super.handleKeyboardInput();
frame.handleKeyboard();
}
@Override
public void onGuiClosed() {
super.onGuiClosed();
KeybindManager.writeOutKeybinds();
}
@Override
public void onGuiClosed() {
super.onGuiClosed();
KeybindManager.writeOutKeybinds();
}
}

View file

@ -23,7 +23,7 @@ import java.util.List;
/**
* Ported to Java by lehjr on 10/19/16.
*/
public class ClickableKeybinding extends ClickableButton{
public class ClickableKeybinding extends ClickableButton {
protected List<ClickableModule> boundModules = new ArrayList<ClickableModule>();
public boolean toggleval = false;
boolean toggled = false;
@ -33,9 +33,8 @@ public class ClickableKeybinding extends ClickableButton{
public ClickableKeybinding(KeyBinding keybind, MusePoint2D position, boolean free, Boolean displayOnHUD) {
super(ClickableKeybinding.parseName(keybind), position, true);
this.keybind = keybind;
this.displayOnHUD = (displayOnHUD!= null) ? displayOnHUD : false;
this.keybind = keybind;
}
static String parseName(KeyBinding keybind) {

View file

@ -52,5 +52,4 @@ public class ClickableLabel implements IClickable {
public MusePoint2D getPosition() {
return position;
}
}

View file

@ -44,13 +44,13 @@ public class ClickableModule extends Clickable {
public String getLocalizedName(IPowerModule m) {
if (m instanceof ILocalizeableModule)
return StatCollector.translateToLocal("module." + ((ILocalizeableModule) m).getUnlocalizedName() + ".name");
return m.getLocalizedName();
return "module has localization issue";
}
public String getLocalizedDescription(IPowerModule m) {
if (m instanceof ILocalizeableModule)
return StatCollector.translateToLocal("module." + ((ILocalizeableModule) m).getUnlocalizedName() + ".desc");
return m.getDescription();
return "module has localization issue";
}
@Override
@ -72,7 +72,7 @@ public class ClickableModule extends Clickable {
MuseRenderer.drawString(string, getPosition().x() + 3, getPosition().y() + 1);
}
else if (installed) {
new GuiIcons.Checkmark(this.getPosition().x() - 8 + 1, this.getPosition().y() - 8 + 1, this.checkmarkcolour, null, null, null,null);
new GuiIcons.Checkmark(getPosition().x() - 8 + 1, getPosition().y() - 8 + 1, checkmarkcolour, null, null, null, null);
}
}

View file

@ -34,7 +34,6 @@ public class ClickableSlider extends Clickable {
return this.name;
}
@Override
public void draw() {
MuseRenderer.drawCenteredString(name, position.x(), position.y());

View file

@ -13,9 +13,7 @@ import net.machinemuse.utils.MuseItemUtils;
import net.machinemuse.utils.render.GuiIcons;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagIntArray;
import net.minecraft.util.StatCollector;
@ -68,7 +66,7 @@ public class ColourPickerFrame implements IGuiFrame {
if (item instanceof ItemPowerArmor) {
ItemPowerArmor itemPowerArmor = (ItemPowerArmor)item;
int[] intArray = { itemPowerArmor.getColorFromItemStack(this.itemSelector.getSelectedItem().getItem()).getInt(),
itemPowerArmor.getGlowFromItemStack(this.itemSelector.getSelectedItem().getItem()).getInt() };
itemPowerArmor.getGlowFromItemStack(this.itemSelector.getSelectedItem().getItem()).getInt() };
renderSpec.setIntArray("colours", intArray);
}
else {
@ -77,7 +75,7 @@ public class ColourPickerFrame implements IGuiFrame {
}
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
if (player.worldObj.isRemote) {
PacketSender.sendToServer(new MusePacketColourInfo((EntityPlayer)player, this.itemSelector.getSelectedItem().inventorySlot, this.colours()));
PacketSender.sendToServer(new MusePacketColourInfo(player, this.itemSelector.getSelectedItem().inventorySlot, this.colours()));
}
return (NBTTagIntArray) renderSpec.getTag("colours");
}
@ -88,25 +86,25 @@ public class ColourPickerFrame implements IGuiFrame {
return null;
}
NBTTagCompound renderSpec = MuseItemUtils.getMuseRenderTag(this.itemSelector.getSelectedItem().getItem());
renderSpec.setTag("colours", (NBTBase)new NBTTagIntArray(newarray));
renderSpec.setTag("colours", new NBTTagIntArray(newarray));
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
if (player.worldObj.isRemote) {
PacketSender.sendToServer(new MusePacketColourInfo((EntityPlayer)player, this.itemSelector.getSelectedItem().inventorySlot, this.colours()));
PacketSender.sendToServer(new MusePacketColourInfo(player, this.itemSelector.getSelectedItem().inventorySlot, this.colours()));
}
return (NBTTagIntArray) renderSpec.getTag("colours");
}
public ArrayList<Integer> importColours() {
return new ArrayList<Integer>();
return new ArrayList<>();
}
public void refreshColours() {
// getOrCreateColourTag.map(coloursTag => {
// val colourints: Array[Int] = coloursTag.intArray
// val colourset: HashSet[Int] = HashSet.empty ++ colours ++ colourints
// val colourarray = colourset.toArray
// coloursTag.intArray = colourarray
// })
// getOrCreateColourTag.map(coloursTag => {
// val colourints: Array[Int] = coloursTag.intArray
// val colourset: HashSet[Int] = HashSet.empty ++ colours ++ colourints
// val colourarray = colourset.toArray
// coloursTag.intArray = colourarray
// })
}
@Override
@ -174,7 +172,10 @@ public class ColourPickerFrame implements IGuiFrame {
this.onSelectColour(colourCol);
} else if (colourCol == this.colours().length) {
MuseLogger.logDebug("Adding");
setColourTagMaybe(ArrayUtils.add(getIntArray(getOrCreateColourTag()), Colour.WHITE.getInt()));
NBTTagIntArray nbtTagIntArray = getOrCreateColourTag();
int[] intArray = getIntArray(nbtTagIntArray);
setColourTagMaybe(ArrayUtils.add(intArray, Colour.WHITE.getInt()));
}
}
@ -183,7 +184,7 @@ public class ColourPickerFrame implements IGuiFrame {
NBTTagIntArray nbtTagIntArray = getOrCreateColourTag();
int[] intArray = getIntArray(nbtTagIntArray);
if (intArray.length > 1) {
if (intArray != null && intArray.length > 1) {
/* TODO - for 1.10.2 and above, simplyfy with Java 8 collections and streams. Seriously, all this to remove an element fron an int array*/
List<Integer> integerArray = new ArrayList<>();
int intToRemove = intArray[selectedColour];
@ -212,6 +213,8 @@ public class ColourPickerFrame implements IGuiFrame {
}
public int[] getIntArray(NBTTagIntArray e) {
if (e == null) // null when no armor item selected
return new int[0];
return e.func_150302_c();
}
}

View file

@ -27,19 +27,17 @@ import java.util.List;
public class ItemModelViewFrame implements IGuiFrame {
ItemSelectionFrame itemSelector;
DrawableMuseRect border;
double anchorx = 0;
double anchory = 0;
int dragging = -1;
double lastdWheel = 0;
double rotx = 0;
double roty = 0;
double offsetx = 0;
double offsety = 0;
double zoom = 64;
public ItemModelViewFrame(ItemSelectionFrame itemSelector, MusePoint2D topleft, MusePoint2D bottomright, Colour borderColour, Colour insideColour) {
public ItemModelViewFrame(ItemSelectionFrame itemSelector, MusePoint2D topleft, MusePoint2D bottomright, Colour borderColour, Colour insideColour) {
this.itemSelector = itemSelector;
this.border = new DrawableMuseRect(topleft, bottomright, borderColour, insideColour);
}
@ -81,15 +79,15 @@ public class ItemModelViewFrame implements IGuiFrame {
double dy = mousey - anchory;
switch(dragging) {
case 0: {
rotx = MuseMathUtils.clampDouble((rotx + dy), -90, 90);
roty = (roty - dx);
rotx = MuseMathUtils.clampDouble(rotx + dy, -90, 90);
roty = roty - dx;
anchorx = mousex;
anchory = mousey;
break;
}
case 1: {
offsetx = (offsetx + dx);
offsety = (offsety + dy);
offsetx = offsetx + dx;
offsety = offsety + dy;
anchorx = mousex;
anchory = mousey;
break;

View file

@ -43,9 +43,7 @@ public class KeybindConfigFrame implements IGuiFrame {
public KeybindConfigFrame(MuseGui gui, MusePoint2D ul, MusePoint2D br, EntityPlayer player) {
modules = new HashSet();
for (ClickableKeybinding kb : KeybindManager.getKeybindings()) {
for (ClickableModule module : kb.getBoundModules()) {
modules.add(module);
}
modules.addAll(kb.getBoundModules());
}
this.gui = gui;
this.ul = ul;

View file

@ -63,7 +63,6 @@ public class ModuleTweakFrame extends ScrollableFrame {
if (selectedSlider != null) {
selectedSlider.moveSlider(mousex, mousey);
}
}
@Override
@ -111,7 +110,6 @@ public class ModuleTweakFrame extends ScrollableFrame {
}
}
propertyStrings.put(property.getKey(), currValue);
}
sliders = new LinkedList();

View file

@ -55,7 +55,6 @@ public class PartManipSubFrame {
var specs: Array[ModelPartSpec] = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray
model.apply().values().filter(Function1<ModelPartSpec, Object> p) */
this.specs = getSpecs();
this.open = true;
}
@ -272,4 +271,4 @@ public class PartManipSubFrame {
}
return false;
}
}
}

View file

@ -67,6 +67,10 @@ public class SMovingArmorModel extends ModelPlayer implements IArmorModel {
visibleSection = value;
}
/**
* Sets the models various rotation angles then renders the model.
*/

View file

@ -23,7 +23,7 @@ public class ModelSpec extends MuseRegistry<ModelPartSpec>
this.textures = textures;
this.offset = offset;
this.rotation = rotation;
this.filename = filename;
ModelSpec.filename = filename;
}
public void applyOffsetAndRotation() {

View file

@ -4,9 +4,9 @@ import com.google.gson.Gson;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.IModularItem;
import net.machinemuse.numina.basemod.Numina;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.powersuits.common.proxy.CommonProxy;

View file

@ -5,21 +5,9 @@ import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.EntityRegistry;
import net.machinemuse.powersuits.common.proxy.CommonProxy;
import net.machinemuse.powersuits.entity.EntityLuxCapacitor;
import net.machinemuse.powersuits.entity.EntityPlasmaBolt;
import net.machinemuse.powersuits.entity.EntitySpinningBlade;
import net.machinemuse.powersuits.event.HarvestEventHandler;
import net.machinemuse.powersuits.event.MovementManager;
import net.machinemuse.powersuits.network.packets.MPSPacketList;
import net.machinemuse.powersuits.powermodule.tool.TerminalHandler;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.config.Configuration;
import javax.annotation.Nonnull;
import java.io.File;
import static net.machinemuse.powersuits.common.ModularPowersuits.MODID;
import static net.machinemuse.powersuits.common.ModularPowersuits.VERSION;
@ -32,7 +20,7 @@ import static net.machinemuse.powersuits.common.ModularPowersuits.VERSION;
*
* Ported to Java by lehjr on 11/14/16.
*/
@Mod(modid = MODID, version = VERSION, dependencies = "required-after:numina@[@numina_version@,)")
@Mod(modid = MODID, version = VERSION, dependencies = "required-after:numina@[@numina_version@,), ae2wct")
public final class ModularPowersuits {
public static final String MODID = "powersuits";
public static final String VERSION = "@VERSION@";

View file

@ -77,9 +77,9 @@ public class CommonProxy {
MinecraftForge.EVENT_BUS.register(new MovementManager());
}
public void registerHandlers() {};
public void registerHandlers() {}
public void registerRenderers() {};
public void registerRenderers() {}
public void sendModeChange(int dMode, String newMode) {};
public void sendModeChange(int dMode, String newMode) {}
}

View file

@ -10,7 +10,6 @@ import net.machinemuse.powersuits.item.IModeChangingModularItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import org.lwjgl.input.Keyboard;

View file

@ -11,7 +11,6 @@ import net.machinemuse.general.gui.WaterMeter;
import net.machinemuse.general.gui.clickable.ClickableKeybinding;
import net.machinemuse.numina.network.MusePacket;
import net.machinemuse.numina.network.PacketSender;
import net.machinemuse.powersuits.block.BlockTinkerTable;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.control.KeybindManager;
import net.machinemuse.powersuits.control.PlayerInputMap;

View file

@ -84,6 +84,8 @@ public class PlayerUpdateHandler {
}
}
}
else if ((player.worldObj.isRemote) && NuminaConfig.useSounds())
Musique.stopPlayerSound(player, SoundDictionary.SOUND_GLIDER);
}
}
}

View file

@ -34,7 +34,7 @@ public class RenderEventHandler {
private final DrawableMuseRect frame = new DrawableMuseRect(Config.keybindHUDx(), Config.keybindHUDy(), Config.keybindHUDx() + (double)16, Config.keybindHUDy() + (double)16, true, Colour.DARKGREEN.withAlpha(0.2), Colour.GREEN.withAlpha(0.2));
public RenderEventHandler() {
this.ownFly = false;
ownFly = false;
}
@SubscribeEvent

View file

@ -47,10 +47,4 @@ public interface IModularItemBase extends IModularItem, IMuseElectricItem {
List<String> getLongInfo(EntityPlayer player, ItemStack stack);
double getArmorDouble(EntityPlayer player, ItemStack stack);
double getPlayerEnergy(EntityPlayer player);
void drainPlayerEnergy(EntityPlayer player, double drainEnergy);
void givePlayerEnergy(EntityPlayer player, double joulesToGive);
}

View file

@ -1,190 +1,358 @@
package net.machinemuse.powersuits.item;
import appeng.api.config.AccessRestriction;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItemManager;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.ElectricConversions;
import net.machinemuse.api.electricity.IMuseElectricItem;
import net.machinemuse.api.electricity.MuseElectricItem;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule;
import net.machinemuse.powersuits.powermodule.misc.TintModule;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseCommonStrings;
import net.machinemuse.utils.MuseItemUtils;
import net.machinemuse.utils.MuseStringUtils;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.util.WeightedRandom;
import java.util.ArrayList;
import java.util.List;
import static net.machinemuse.numina.general.MuseMathUtils.clampDouble;
/**
* Ported to Java by lehjr on 10/26/16.
*/
@Optional.InterfaceList({
@Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true),
@Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true),
@Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true),
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "appliedenergistics2", striprefs = true)
})
public abstract class ItemElectricArmor extends ItemArmor implements IModularItemBase, IMuseElectricItem {
public ItemElectricArmor(final ItemArmor.ArmorMaterial material, final int index1, final int index2) {
super(material, index1, index2);
}
@SideOnly(Side.CLIENT)
@Override
public int getColorFromItemStack(ItemStack itemStack, int par2) {
return getColorFromItemStack(itemStack).getInt();
}
@Override
public Colour getGlowFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, CosmeticGlowModule.MODULE_GLOW)) {
return Colour.LIGHTBLUE;
}
double computedred = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.RED_GLOW);
double computedgreen = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.GREEN_GLOW);
double computedblue = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.BLUE_GLOW);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 0.8);
}
@Override
public Colour getColorFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, TintModule.MODULE_TINT)) {
return Colour.WHITE;
}
double computedred = ModuleManager.computeModularProperty(itemStack, TintModule.RED_TINT);
double computedgreen = ModuleManager.computeModularProperty(itemStack, TintModule.GREEN_TINT);
double computedblue = ModuleManager.computeModularProperty(itemStack, TintModule.BLUE_TINT);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 1.0F);
}
@Override
public boolean requiresMultipleRenderPasses() {
return false;
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
}
@Override
public String formatInfo(String string, double value) {
return string + '\t' + MuseStringUtils.formatNumberShort(value);
}
/* IModularItem ------------------------------------------------------------------------------- */
@SideOnly(Side.CLIENT)
@Override
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
List<String> info = new ArrayList<>();
info.add("Detailed Summary");
info.add(formatInfo("Armor", getArmorDouble(player, itemStack)));
info.add(formatInfo("Energy Storage", getCurrentEnergy(itemStack)) + 'J');
info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(itemStack)) + 'g');
return info;
}
@Override
public double getArmorDouble(EntityPlayer player, ItemStack itemStack) {
return 0;
}
@Override
public double getPlayerEnergy(EntityPlayer player) {
return ElectricItemUtils.getPlayerEnergy(player);
}
@Override
public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) {
ElectricItemUtils.drainPlayerEnergy(player, drainEnergy);
}
@Override
public void givePlayerEnergy(EntityPlayer player, double joulesToGive) {
ElectricItemUtils.givePlayerEnergy(player, joulesToGive);
}
@Override
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
@SideOnly(Side.CLIENT)
@Override
public String getToolTip(ItemStack itemStack) {
return null;
}
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(final ItemStack stack, final int par2) {
return ModularItemBase.getInstance().getColorFromItemStack(stack, par2);
}
public Colour getGlowFromItemStack(final ItemStack stack) {
return ModularItemBase.getInstance().getGlowFromItemStack(stack);
}
public Colour getColorFromItemStack(final ItemStack stack) {
return ModularItemBase.getInstance().getColorFromItemStack(stack);
}
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses() {
return ModularItemBase.getInstance().requiresMultipleRenderPasses();
}
@SideOnly(Side.CLIENT)
/**
* Call to get the energy of an item
*
* @param stack ItemStack to set
* @return Current energy level
*/
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
ModularItemBase.getInstance().addInformation(stack, player, currentTipList, advancedToolTips);
public double getCurrentEnergy(ItemStack stack) {
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
}
public String formatInfo(final String string, final double value) {
return ModularItemBase.getInstance().formatInfo(string, value);
/**
* Call to set the energy of an item
*
* @param stack ItemStack to set
* @return Maximum energy level
*/
@Override
public double getMaxEnergy(ItemStack stack) {
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
}
public List<String> getLongInfo(final EntityPlayer player, final ItemStack stack) {
return ModularItemBase.getInstance().getLongInfo(player, stack);
/**
* Call to set the energy of an item
*
* @param stack ItemStack to set
* @param energy Level to set it to
*/
@Override
public void setCurrentEnergy(ItemStack stack, double energy) {
MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack)));
}
public double getArmorDouble(final EntityPlayer player, final ItemStack stack) {
return ModularItemBase.getInstance().getArmorDouble(player, stack);
/**
* Call to drain energy from an item
*
* @param stack ItemStack being requested for energy
* @param requested Amount of energy to drain
* @return Amount of energy successfully drained
*/
@Override
public double drainEnergyFrom(ItemStack stack, double requested) {
double available = getCurrentEnergy(stack);
if (available > requested) {
setCurrentEnergy(stack, available - requested);
return requested;
} else {
setCurrentEnergy(stack, 0);
return available;
}
}
public double getPlayerEnergy(final EntityPlayer player) {
return ModularItemBase.getInstance().getPlayerEnergy(player);
/**
* Call to give energy to an item
*
* @param stack ItemStack being provided with energy
* @param provided Amount of energy to add
* @return Amount of energy added
*/
@Override
public double giveEnergyTo(ItemStack stack, double provided) {
double available = getCurrentEnergy(stack);
double max = getMaxEnergy(stack);
if (available + provided < max) {
setCurrentEnergy(stack, available + provided);
return provided;
} else {
setCurrentEnergy(stack, max);
return max - available;
}
}
public void drainPlayerEnergy(final EntityPlayer player, final double drainEnergy) {
ModularItemBase.getInstance().drainPlayerEnergy(player, drainEnergy);
/* Industrialcraft 2 -------------------------------------------------------------------------- */
@Optional.Method(modid = "IC2")
@Override
public boolean canProvideEnergy(ItemStack itemStack) {
return true;
}
public void givePlayerEnergy(final EntityPlayer player, final double joulesToGive) {
ModularItemBase.getInstance().givePlayerEnergy(player, joulesToGive);
@Optional.Method(modid = "IC2")
@Override
public Item getChargedItem(ItemStack itemStack) {
return this;
}
public double getCurrentEnergy(final ItemStack stack) {
return MuseElectricItem.getInstance().getCurrentEnergy(stack);
@Optional.Method(modid = "IC2")
@Override
public Item getEmptyItem(ItemStack itemStack) {
return this;
}
public double getMaxEnergy(final ItemStack stack) {
return MuseElectricItem.getInstance().getMaxEnergy(stack);
@Optional.Method(modid = "IC2")
@Override
public double getMaxCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack));
}
public void setCurrentEnergy(final ItemStack stack, final double energy) {
MuseElectricItem.getInstance().setCurrentEnergy(stack, energy);
@Optional.Method(modid = "IC2")
@Override
public int getTier(ItemStack itemStack) {
return ElectricConversions.getTier(itemStack);
}
public double drainEnergyFrom(final ItemStack stack, final double requested) {
return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested);
@Optional.Method(modid = "IC2")
@Override
public double getTransferLimit(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)));
}
public double giveEnergyTo(final ItemStack stack, final double provided) {
return MuseElectricItem.getInstance().giveEnergyTo(stack, provided);
@Optional.Method(modid = "IC2")
@Override
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){
double current = getCurrentEnergy(itemStack);
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
double given = giveEnergyTo(itemStack, transfer);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToEU(given);
}
public IMuseElectricItem getManager(final ItemStack itemStack) {
return (IMuseElectricItem) MuseElectricItem.getInstance().getManager(itemStack);
@Optional.Method(modid = "IC2")
@Override
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
double taken = drainEnergyFrom(itemStack, transfer);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToEU(taken);
}
public void chargeFromArmor(final ItemStack itemStack, final EntityLivingBase entity) {
MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity);
@Optional.Method(modid = "IC2")
@Override
public double getCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack));
}
public boolean use(final ItemStack itemStack, final double amount, final EntityLivingBase entity) {
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
@Optional.Method(modid = "IC2")
@Override
public boolean canUse(ItemStack itemStack, double amount) {
return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack);
}
public boolean canProvideEnergy(final ItemStack itemStack) {
return MuseElectricItem.getInstance().canProvideEnergy(itemStack);
@Optional.Method(modid = "IC2")
@Override
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity);
}
public double getCharge(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getCharge(itemStack);
@Optional.Method(modid = "IC2")
@Override
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
ElectricItem.rawManager.chargeFromArmor(itemStack, entity);
}
public double getMaxCharge(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getMaxCharge(itemStack);
@Optional.Method(modid = "IC2")
@Override
public IElectricItemManager getManager(ItemStack itemStack) {
return this;
}
/* Thermal Expansion -------------------------------------------------------------------------- */
@Override
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double receivedME = ElectricConversions.museEnergyFromRF(energy);
double eatenME = giveEnergyTo(itemStack, receivedME);
if (simulate) setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToRF(eatenME);
}
public int getTier(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getTier(itemStack);
@Override
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
double takenME = drainEnergyFrom(itemStack, requesteddME);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToRF(takenME);
}
public double getTransferLimit(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getTransferLimit(itemStack);
@Override
public int getEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
}
public double charge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean simulate) {
return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate);
}
public double discharge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean externally, final boolean simulate) {
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
}
public boolean canUse(final ItemStack itemStack, final double amount) {
return MuseElectricItem.getInstance().canUse(itemStack, amount);
}
public Item getChargedItem(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getChargedItem(itemStack);
}
public Item getEmptyItem(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
}
public int receiveEnergy(final ItemStack stack, final int energy, final boolean simulate) {
return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate);
}
public int extractEnergy(final ItemStack stack, final int energy, final boolean simulate) {
return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate);
}
public int getEnergyStored(final ItemStack theItem) {
return MuseElectricItem.getInstance().getEnergyStored(theItem);
}
public int getMaxEnergyStored(final ItemStack theItem) {
return MuseElectricItem.getInstance().getMaxEnergyStored(theItem);
}
public int getMaxDamage(final ItemStack itemStack) {
return MuseElectricItem.getInstance().getMaxDamage(itemStack);
@Override
public int getMaxEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
public double injectAEPower(final ItemStack stack, final double ae) {
return MuseElectricItem.getInstance().injectAEPower(stack, ae);
@Override
public double injectAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double recieved = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(recieved);
}
public double extractAEPower(final ItemStack stack, final double ae) {
return MuseElectricItem.getInstance().extractAEPower(stack, ae);
@Override
public double extractAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double taken = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(taken);
}
public double getAEMaxPower(final ItemStack stack) {
return MuseElectricItem.getInstance().getAEMaxPower(stack);
@Override
public double getAEMaxPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
public double getAECurrentPower(final ItemStack stack) {
return MuseElectricItem.getInstance().getAECurrentPower(stack);
@Override
public double getAECurrentPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
public AccessRestriction getPowerFlow(final ItemStack stack) {
return MuseElectricItem.getInstance().getPowerFlow(stack);
@Override
public AccessRestriction getPowerFlow(ItemStack itemStack) {
return AccessRestriction.READ_WRITE;
}
}

View file

@ -5,9 +5,7 @@ import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.machinemuse.api.IApiaristArmor;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.powersuits.client.render.item.ArmorModelInstance;
import net.machinemuse.powersuits.client.render.item.IArmorModel;
import net.machinemuse.powersuits.common.Config;
@ -99,14 +97,9 @@ public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpeci
return ModuleManager.tagHasModule(itemTag, TintModule.RED_TINT) || ModuleManager.tagHasModule(itemTag, TintModule.GREEN_TINT) || ModuleManager.tagHasModule(itemTag, TintModule.BLUE_TINT);
}
double getHeatResistance(EntityPlayer player, ItemStack stack) {
return MuseHeatUtils.getMaxHeat(stack);
}
@Override
public double getArmorDouble(EntityPlayer player, ItemStack stack) {
double totalArmor = 0;
NBTTagCompound props = MuseItemUtils.getMuseItemTag(stack);
double energy = ElectricItemUtils.getPlayerEnergy(player);
double physArmor = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_PHYSICAL);
double enerArmor = ModuleManager.computeModularProperty(stack, MuseCommonStrings.ARMOR_VALUE_ENERGY);
@ -162,7 +155,6 @@ public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpeci
*/
@Override
public void damageArmor(EntityLivingBase entity, ItemStack stack, DamageSource source, int damage, int slot) {
NBTTagCompound itemProperties = MuseItemUtils.getMuseItemTag(stack);
if (entity instanceof EntityPlayer) {
if (source == MuseHeatUtils.overheatDamage) {
} else if (source.isFireDamage()) {

View file

@ -44,6 +44,7 @@ public class ItemPowerArmorHelmet extends ItemPowerArmor implements
itemIcon = iconRegister.registerIcon(iconpath);
}
@Optional.Method(modid = "Thaumcraft")
@Override
public boolean showIngamePopups(ItemStack itemStack, EntityLivingBase entityLivingBase) {
return ModuleManager.itemHasActiveModule(itemStack, ThaumGogglesModule.MODULE_THAUM_GOGGLES);
@ -71,4 +72,4 @@ public class ItemPowerArmorHelmet extends ItemPowerArmor implements
public boolean canBreathe(ItemStack itemStack, EntityPlayer entityPlayer, EnumGearType enumGearType) {
return ModuleManager.itemHasActiveModule(itemStack, AirtightSealModule.AIRTIGHT_SEAL_MODULE);
}
}
}

View file

@ -3,7 +3,7 @@ package net.machinemuse.powersuits.item;
import appeng.api.implementations.items.IAEWrench;
import buildcraft.api.tools.IToolWrench;
import cofh.api.item.IToolHammer;
import com.bluepowermod.api.misc.IScrewdriver;
import com.google.common.collect.Multimap;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -17,7 +17,6 @@ import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.general.gui.MuseIcon;
import net.machinemuse.numina.item.IModeChangingItem;
import net.machinemuse.numina.item.NuminaItemUtils;
import net.machinemuse.numina.network.MusePacketModeChangeRequest;
import net.machinemuse.numina.network.PacketSender;
@ -29,8 +28,9 @@ import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseHeatUtils;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.ai.attributes.AttributeModifier;
import net.minecraft.entity.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
@ -41,8 +41,6 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import powercrystals.minefactoryreloaded.api.IMFRHammer;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
/**
@ -73,7 +71,8 @@ public class ItemPowerFist extends MPSItemElectricTool implements
IToolWrench,
com.bluepowermod.api.misc.IScrewdriver,
mrtjp.projectred.api.IScrewdriver,
ITool, IMekWrench,
ITool,
IMekWrench,
IModeChangingModularItem
{
public final String iconpath = MuseIcon.ICON_PREFIX + "handitem";
@ -163,18 +162,11 @@ public class ItemPowerFist extends MPSItemElectricTool implements
return true;
}
/**
* An itemstack sensitive version of getDamageVsEntity - allows items to
* handle damage based on
* itemstack data, like tags. Falls back to getDamageVsEntity.
*
* @param entity The entity being attacked (or the attacking mob, if it's a mob
* - vanilla bug?)
* @param itemStack The itemstack
* @return the damage
*/
public float getDamageVsEntity(Entity entity, ItemStack itemStack){
return (float) ModuleManager.computeModularProperty(itemStack, MeleeAssistModule.PUNCH_DAMAGE);
@Override
public Multimap getAttributeModifiers(ItemStack stack) {
Multimap<String, AttributeModifier> multimap = super.getAttributeModifiers(stack);
multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(field_111210_e, "Weapon modifier", ModuleManager.computeModularProperty(stack, MeleeAssistModule.PUNCH_DAMAGE), 0));
return multimap;
}
@SideOnly(Side.CLIENT)
@ -249,10 +241,6 @@ public class ItemPowerFist extends MPSItemElectricTool implements
((IRightClickModule)module).onPlayerStoppedUsing(itemStack, world, player, par4);
}
public boolean shouldPassSneakingClickToBlock(World world, int x, int y, int z) {
return true;
}
@Override
public boolean onItemUseFirst(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
String mode = getActiveMode(itemStack, player);
@ -299,88 +287,105 @@ public class ItemPowerFist extends MPSItemElectricTool implements
}
/* TE Crescent Hammer */
@Optional.Method(modid = "CoFHCore")
@Override
public void toolUsed(ItemStack itemStack, EntityLivingBase entityLivingBase, int i, int i1, int i2) {}
/* Railcraft Crowbar */
@Optional.Method(modid = "Railcraft")
@Override
public boolean canWhack(EntityPlayer entityPlayer, ItemStack itemStack, int i, int i1, int i2) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Railcraft Crowbar */
@Optional.Method(modid = "Railcraft")
@Override
public boolean canLink(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Railcraft Crowbar */
@Optional.Method(modid = "Railcraft")
@Override
public boolean canBoost(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Railcraft Crowbar */
@Optional.Method(modid = "Railcraft")
@Override
public void onLink(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {}
/* Railcraft Crowbar */
@Optional.Method(modid = "Railcraft")
@Override
public void onWhack(EntityPlayer entityPlayer, ItemStack itemStack, int i, int i1, int i2) {}
/* Railcraft Crowbar */
@Optional.Method(modid = "Railcraft")
@Override
public void onBoost(EntityPlayer entityPlayer, ItemStack itemStack, EntityMinecart entityMinecart) {}
/* AE wrench */
@Optional.Method(modid = "appliedenergistics2")
@Override
public boolean canWrench(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Buildcraft Wrench */
@Optional.Method(modid = "BuildCraft|Core")
@Override
public void wrenchUsed(EntityPlayer entityPlayer, int i, int i1, int i2) {}
/* Buildcraft Wrench */
@Optional.Method(modid = "BuildCraft|Core")
@Override
public boolean canWrench(EntityPlayer entityPlayer, int i, int i1, int i2) {
return getActiveMode(entityPlayer.getHeldItem(), entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Bluepower Screwdriver */
@Optional.Method(modid = "ProjRed|Core")
@Override
public boolean damage(ItemStack itemStack, int i, EntityPlayer entityPlayer, boolean b) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* ProjectRed Screwdriver */
@Optional.Method(modid = "ProjRed|Core")
@Override
public void damageScrewdriver(EntityPlayer entityPlayer, ItemStack itemStack) {}
/* ProjectRed Screwdriver */
@Optional.Method(modid = "ProjRed|Core")
@Override
public boolean canUse(EntityPlayer entityPlayer, ItemStack itemStack) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* EnderIO Tool */
@Optional.Method(modid = "EnderIO")
@Override
public void used(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {}
/* EnderIO Tool */
@Optional.Method(modid = "EnderIO")
@Override
public boolean canUse(ItemStack itemStack, EntityPlayer entityPlayer, int i, int i1, int i2) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* EnderIO Tool */
@Optional.Method(modid = "EnderIO")
@Override
public boolean shouldHideFacades(ItemStack itemStack, EntityPlayer entityPlayer) {
return getActiveMode(itemStack, entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* Mekanism Wrench */
@Optional.Method(modid = "Mekanism")
@Override
public boolean canUseWrench(EntityPlayer entityPlayer, int i, int i1, int i2) {
return getActiveMode(entityPlayer.getHeldItem(), entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);

View file

@ -2,12 +2,21 @@ package net.machinemuse.powersuits.item;
import appeng.api.config.AccessRestriction;
import com.google.common.collect.Sets;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.ElectricItem;
import ic2.api.item.IElectricItemManager;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.ElectricConversions;
import net.machinemuse.api.electricity.IMuseElectricItem;
import net.machinemuse.api.electricity.MuseElectricItem;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule;
import net.machinemuse.powersuits.powermodule.misc.TintModule;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseCommonStrings;
import net.machinemuse.utils.MuseItemUtils;
import net.machinemuse.utils.MuseStringUtils;
import net.minecraft.block.Block;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@ -16,12 +25,23 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemTool;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import static net.machinemuse.numina.general.MuseMathUtils.clampDouble;
/**
* Ported to Java by lehjr on 11/4/16.
*/
@Optional.InterfaceList({
@Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHAPI|energy", striprefs = true),
@Optional.Interface(iface = "ic2.api.item.IElectricItemManager", modid = "IC2", striprefs = true),
@Optional.Interface(iface = "ic2.api.item.ISpecialElectricItem", modid = "IC2", striprefs = true),
@Optional.Interface(iface = "appeng.api.implementations.items.IAEItemPowerStorage", modid = "appliedenergistics2", striprefs = true)
})
public class MPSItemElectricTool extends ItemTool implements IModularItemBase, IMuseElectricItem {
public static final Set<Block> blocksEffectiveOn = Sets.newHashSet(Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone,
Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore,
@ -33,194 +53,320 @@ public class MPSItemElectricTool extends ItemTool implements IModularItemBase, I
super(damageBonus, material, blocksEffectiveOn);
}
@Override
public String getToolTip(ItemStack itemStack) {
return null;
}
@Override
public double getCurrentEnergy(ItemStack stack) {
return MuseElectricItem.getInstance().getCurrentEnergy(stack);
}
@Override
public double getMaxEnergy(ItemStack stack) {
return MuseElectricItem.getInstance().getMaxEnergy(stack);
}
@Override
public void setCurrentEnergy(ItemStack stack, double energy) {
MuseElectricItem.getInstance().setCurrentEnergy(stack, energy);
}
@Override
public double drainEnergyFrom(ItemStack stack, double requested) {
return MuseElectricItem.getInstance().drainEnergyFrom(stack, requested);
}
@Override
public double giveEnergyTo(ItemStack stack, double provided) {
return MuseElectricItem.getInstance().giveEnergyTo(stack, provided);
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
ModularItemBase.getInstance().addInformation(stack, player, currentTipList, advancedToolTips);
}
/* Industrialcraft 2 -------------------------------------------------------------------------- */
@Override
public IElectricItemManager getManager(ItemStack stack) {
return MuseElectricItem.getInstance().getManager(stack);
}
@Override
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity);
}
@Override
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
}
@Override
public boolean canProvideEnergy(ItemStack itemStack) {
return MuseElectricItem.getInstance().canProvideEnergy(itemStack);
}
@Override
public double getCharge(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCharge(itemStack);
}
@Override
public double getMaxCharge(ItemStack itemStack) {
return MuseElectricItem.getInstance().getMaxCharge(itemStack);
}
@Override
public int getTier(ItemStack itemStack) {
return MuseElectricItem.getInstance().getTier(itemStack);
}
@Override
public double getTransferLimit(ItemStack itemStack) {
return MuseElectricItem.getInstance().getTransferLimit(itemStack);
}
@Override
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) {
return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate);
}
@Override
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
}
@Override
public boolean canUse(ItemStack itemStack, double amount) {
return MuseElectricItem.getInstance().canUse(itemStack, amount);
}
@Override
public Item getChargedItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getChargedItem(itemStack);
}
@Override
public Item getEmptyItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
}
/* Thermal Expansion -------------------------------------------------------------------------- */
@Override
public int receiveEnergy(ItemStack stack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().receiveEnergy(stack, energy, simulate);
}
@Override
public int extractEnergy(ItemStack stack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().extractEnergy(stack, energy, simulate);
}
@Override
public int getEnergyStored(ItemStack theItem) {
return MuseElectricItem.getInstance().getEnergyStored(theItem);
}
@Override
public int getMaxEnergyStored(ItemStack theItem) {
return MuseElectricItem.getInstance().getMaxEnergyStored(theItem);
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
@Override
public double injectAEPower(ItemStack stack, double ae) {
return MuseElectricItem.getInstance().injectAEPower(stack, ae);
}
@Override
public double extractAEPower(ItemStack stack, double ae) {
return MuseElectricItem.getInstance().extractAEPower(stack, ae);
}
@Override
public double getAEMaxPower(ItemStack stack) {
return MuseElectricItem.getInstance().getAEMaxPower(stack);
}
@Override
public double getAECurrentPower(ItemStack stack) {
return MuseElectricItem.getInstance().getAECurrentPower(stack);
}
@Override
public AccessRestriction getPowerFlow(ItemStack stack) {
return MuseElectricItem.getInstance().getPowerFlow(stack);
}
/* IModularItemBase ------------------------------------------------------------------------------ */
@Override
public Colour getGlowFromItemStack(ItemStack stack) {
return ModularItemBase.getInstance().getGlowFromItemStack(stack);
}
@Override
public Colour getColorFromItemStack(ItemStack stack) {
return ModularItemBase.getInstance().getColorFromItemStack(stack);
}
@Override
public String formatInfo(String string, double value) {
return ModularItemBase.getInstance().formatInfo(string, value);
}
@Override
public List<String> getLongInfo(EntityPlayer player, ItemStack stack) {
return ModularItemBase.getInstance().getLongInfo(player, stack);
}
@Override
public double getArmorDouble(EntityPlayer player, ItemStack stack) {
return 0;
}
/* MPSItemElectricTool ------------------------------------------------------------------------ */
@SideOnly(Side.CLIENT)
@Override
public int getColorFromItemStack(ItemStack itemStack, int par2) {
return getColorFromItemStack(itemStack).getInt();
}
@Override
public Colour getGlowFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, CosmeticGlowModule.MODULE_GLOW)) {
return Colour.LIGHTBLUE;
}
double computedred = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.RED_GLOW);
double computedgreen = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.GREEN_GLOW);
double computedblue = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.BLUE_GLOW);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 0.8);
}
@Override
public Colour getColorFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, TintModule.MODULE_TINT)) {
return Colour.WHITE;
}
double computedred = ModuleManager.computeModularProperty(itemStack, TintModule.RED_TINT);
double computedgreen = ModuleManager.computeModularProperty(itemStack, TintModule.GREEN_TINT);
double computedblue = ModuleManager.computeModularProperty(itemStack, TintModule.BLUE_TINT);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 1.0F);
}
@Override
public boolean requiresMultipleRenderPasses() {
return false;
}
@SideOnly(Side.CLIENT)
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
}
@Override
public String formatInfo(String string, double value) {
return string + '\t' + MuseStringUtils.formatNumberShort(value);
}
/* IModularItem ------------------------------------------------------------------------------- */
@SideOnly(Side.CLIENT)
@Override
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
List<String> info = new ArrayList<>();
info.add("Detailed Summary");
info.add(formatInfo("Armor", getArmorDouble(player, itemStack)));
info.add(formatInfo("Energy Storage", getCurrentEnergy(itemStack)) + 'J');
info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(itemStack)) + 'g');
return info;
}
@Override
public double getPlayerEnergy(EntityPlayer player) {
return 0;
return ElectricItemUtils.getPlayerEnergy(player);
}
@Override
public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) {
ElectricItemUtils.drainPlayerEnergy(player, drainEnergy);
}
@Override
public void givePlayerEnergy(EntityPlayer player, double joulesToGive) {
ElectricItemUtils.givePlayerEnergy(player, joulesToGive);
}
@Override
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
@SideOnly(Side.CLIENT)
@Override
public String getToolTip(ItemStack itemStack) {
return null;
}
/**
* Call to get the energy of an item
*
* @param stack ItemStack to set
* @return Current energy level
*/
@Override
public double getCurrentEnergy(ItemStack stack) {
return MuseItemUtils.getDoubleOrZero(stack, ElectricItemUtils.CURRENT_ENERGY);
}
/**
* Call to set the energy of an item
*
* @param stack ItemStack to set
* @return Maximum energy level
*/
@Override
public double getMaxEnergy(ItemStack stack) {
return ModuleManager.computeModularProperty(stack, ElectricItemUtils.MAXIMUM_ENERGY);
}
/**
* Call to set the energy of an item
*
* @param stack ItemStack to set
* @param energy Level to set it to
*/
@Override
public void setCurrentEnergy(ItemStack stack, double energy) {
MuseItemUtils.setDoubleOrRemove(stack, ElectricItemUtils.CURRENT_ENERGY, Math.min(energy, getMaxEnergy(stack)));
}
/**
* Call to drain energy from an item
*
* @param stack ItemStack being requested for energy
* @param requested Amount of energy to drain
* @return Amount of energy successfully drained
*/
@Override
public double drainEnergyFrom(ItemStack stack, double requested) {
double available = getCurrentEnergy(stack);
if (available > requested) {
setCurrentEnergy(stack, available - requested);
return requested;
} else {
setCurrentEnergy(stack, 0);
return available;
}
}
/**
* Call to give energy to an item
*
* @param stack ItemStack being provided with energy
* @param provided Amount of energy to add
* @return Amount of energy added
*/
@Override
public double giveEnergyTo(ItemStack stack, double provided) {
double available = getCurrentEnergy(stack);
double max = getMaxEnergy(stack);
if (available + provided < max) {
setCurrentEnergy(stack, available + provided);
return provided;
} else {
setCurrentEnergy(stack, max);
return max - available;
}
}
/* Industrialcraft 2 -------------------------------------------------------------------------- */
@Optional.Method(modid = "IC2")
@Override
public boolean canProvideEnergy(ItemStack itemStack) {
return true;
}
@Optional.Method(modid = "IC2")
@Override
public Item getChargedItem(ItemStack itemStack) {
return this;
}
@Optional.Method(modid = "IC2")
@Override
public Item getEmptyItem(ItemStack itemStack) {
return this;
}
@Optional.Method(modid = "IC2")
@Override
public double getMaxCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getMaxEnergy(itemStack));
}
@Optional.Method(modid = "IC2")
@Override
public int getTier(ItemStack itemStack) {
return ElectricConversions.getTier(itemStack);
}
@Optional.Method(modid = "IC2")
@Override
public double getTransferLimit(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(Math.sqrt(getMaxEnergy(itemStack)));
}
@Optional.Method(modid = "IC2")
@Override
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate){
double current = getCurrentEnergy(itemStack);
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
double given = giveEnergyTo(itemStack, transfer);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToEU(given);
}
@Optional.Method(modid = "IC2")
@Override
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double transfer = (ignoreTransferLimit || amount < getTransferLimit(itemStack)) ? ElectricConversions.museEnergyFromEU(amount) : getTransferLimit(itemStack);
double taken = drainEnergyFrom(itemStack, transfer);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToEU(taken);
}
@Optional.Method(modid = "IC2")
@Override
public double getCharge(ItemStack itemStack) {
return ElectricConversions.museEnergyToEU(getCurrentEnergy(itemStack));
}
@Optional.Method(modid = "IC2")
@Override
public boolean canUse(ItemStack itemStack, double amount) {
return ElectricConversions.museEnergyFromEU(amount) < getCurrentEnergy(itemStack);
}
@Optional.Method(modid = "IC2")
@Override
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return ElectricItem.rawManager.use(itemStack, ElectricConversions.museEnergyToEU(amount), entity);
}
@Optional.Method(modid = "IC2")
@Override
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
ElectricItem.rawManager.chargeFromArmor(itemStack, entity);
}
@Optional.Method(modid = "IC2")
@Override
public IElectricItemManager getManager(ItemStack itemStack) {
return this;
}
/* Thermal Expansion -------------------------------------------------------------------------- */
@Override
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double receivedME = ElectricConversions.museEnergyFromRF(energy);
double eatenME = giveEnergyTo(itemStack, receivedME);
if (simulate) setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToRF(eatenME);
}
@Override
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
double current = getCurrentEnergy(itemStack);
double requesteddME = ElectricConversions.museEnergyFromRF(energy);
double takenME = drainEnergyFrom(itemStack, requesteddME);
if (simulate) {
setCurrentEnergy(itemStack, current);
}
return ElectricConversions.museEnergyToRF(takenME);
}
@Override
public int getEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getCurrentEnergy(itemStack));
}
@Override
public int getMaxEnergyStored(ItemStack itemStack) {
return ElectricConversions.museEnergyToRF(getMaxEnergy(itemStack));
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
@Override
public double injectAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double recieved = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(recieved);
}
@Override
public double extractAEPower(ItemStack itemStack, double ae) {
double current = getCurrentEnergy(itemStack);
double taken = ElectricConversions.museEnergyFromAE(ae);
setCurrentEnergy(itemStack, current);
return ElectricConversions.museEnergyToAE(taken);
}
@Override
public double getAEMaxPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
@Override
public double getAECurrentPower(ItemStack itemStack) {
return ElectricConversions.museEnergyToAE(getCurrentEnergy(itemStack));
}
@Override
public AccessRestriction getPowerFlow(ItemStack itemStack) {
return AccessRestriction.READ_WRITE;
}
}

View file

@ -1,130 +0,0 @@
//package net.machinemuse.powersuits.item;
//
//import net.machinemuse.api.ModuleManager;
//import net.machinemuse.api.moduletrigger.IRightClickModule;
//import net.machinemuse.numina.item.NuminaItemUtils;
//import net.machinemuse.numina.network.MusePacketModeChangeRequest;
//import net.machinemuse.numina.network.PacketSender;
//import net.minecraft.entity.player.EntityPlayer;
//import net.minecraft.item.ItemStack;
//import net.minecraft.util.IIcon;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 4:52 PM, 9/5/13
// *
// * Ported to Java by lehjr on 12/12/16.
// */
//public class ModeChangingModularItem implements IModeChangingModularItem {
// private static ModeChangingModularItem ourInstance = new ModeChangingModularItem();
//
// public static ModeChangingModularItem getInstance() {
// return ourInstance;
// }
//
// private ModeChangingModularItem() {
// }
//
// @Override
// public void setActiveMode(ItemStack itemStack, String newMode) {
// NuminaItemUtils.getTagCompound(itemStack).setString("mode", newMode);
// }
//
// @Override
// public String getActiveMode(ItemStack itemStack, EntityPlayer player) {
// return getActiveMode(itemStack);
// }
//
// @Override
// public void cycleMode(ItemStack itemStack, EntityPlayer player, int dMode) {
// List<String> modes = getValidModes(itemStack, player);
// if (!modes.isEmpty()) {
// int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) + dMode, modes.size());
// String newmode = modes.get(newindex);
// setActiveMode(itemStack, newmode);
// PacketSender.sendToServer(new MusePacketModeChangeRequest(player,newmode, player.inventory.currentItem));
// }
// }
//
// @Override
// public String nextMode(ItemStack itemStack, EntityPlayer player) {
// List<String> modes = getValidModes(itemStack, player);
// if (!modes.isEmpty()) {
// int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) + 1, modes.size());
// return modes.get(newindex);
// } else {
// return "";
// }
// }
//
// @Override
// public String prevMode(ItemStack itemStack, EntityPlayer player) {
// List<String> modes = getValidModes(itemStack, player);
// if (!modes.isEmpty()) {
// int newindex = clampMode(modes.indexOf(getActiveMode(itemStack, player)) - 1, modes.size());
// return modes.get(newindex);
// } else {
// return "";
// }
// }
//
// @Override
// public void cycleModeForItem(ItemStack itemStack, EntityPlayer player, int dMode) {
// if (itemStack != null) {
// this.cycleMode(itemStack, player, dMode);
// }
// }
//
// @Override
// public IIcon getModeIcon(String mode, ItemStack itemStack, EntityPlayer player) {
// if (!mode.isEmpty())
// return ModuleManager.getModule(mode).getIcon(itemStack);
// return null;
// }
//
//
// private int clampMode(int selection, int modesSize) {
// if (selection > 0) {
// return selection % modesSize;
// } else {
// return (selection + modesSize * (-selection)) % modesSize;
// }
// }
////-------------
//
//
// @Override
// public List<String> getValidModes(ItemStack stack, EntityPlayer player) {
// return getValidModes(stack);
// }
//
// @Override
// public List<String> getValidModes(ItemStack itemStack) {
//// List<String> validModes = new ArrayList<>();
////
//// for (IRightClickModule module : ModuleManager.getRightClickModules()) {
//// if (module.isValidForItem(itemStack))
//// if (ModuleManager.itemHasActiveModule(itemStack, module.getDataName()))
//// validModes.add(module.getDataName());
//// }
// return ModuleManager.getValidModes(itemStack);
// }
//
// @Override
// public String getActiveMode(ItemStack itemStack) {
// String modeFromNBT = NuminaItemUtils.getTagCompound(itemStack).getString("mode");
// if (!modeFromNBT.isEmpty()) {
// return modeFromNBT;
// } else {
// List<String> validModes = getValidModes(itemStack);
// if (!validModes.isEmpty()) {
// return validModes.get(0);
// } else {
// return "";
// }
// }
// }
//}

View file

@ -1,273 +0,0 @@
package net.machinemuse.powersuits.item;
import appeng.api.config.AccessRestriction;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.IElectricItemManager;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.MuseElectricItem;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.powersuits.powermodule.misc.CosmeticGlowModule;
import net.machinemuse.powersuits.powermodule.misc.TintModule;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseCommonStrings;
import net.machinemuse.utils.MuseStringUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import java.util.ArrayList;
import java.util.List;
import static net.machinemuse.numina.general.MuseMathUtils.clampDouble;
/**
* Author: MachineMuse (Claire Semple)
* Created: 7:49 PM, 4/23/13
*
* Ported to Java by lehjr on 11/4/16.
*/
public class ModularItemBase extends Item implements IModularItemBase {
private static ModularItemBase INSTANCE;
public static ModularItemBase getInstance() {
if (INSTANCE == null) {
INSTANCE = new ModularItemBase();
}
return INSTANCE;
}
@SideOnly(Side.CLIENT)
@Override
public int getColorFromItemStack(ItemStack itemStack, int par2) {
return getColorFromItemStack(itemStack).getInt();
}
@Override
public Colour getGlowFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, CosmeticGlowModule.MODULE_GLOW)) {
return Colour.LIGHTBLUE;
}
double computedred = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.RED_GLOW);
double computedgreen = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.GREEN_GLOW);
double computedblue = ModuleManager.computeModularProperty(itemStack, CosmeticGlowModule.BLUE_GLOW);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 0.8);
}
@Override
public Colour getColorFromItemStack(ItemStack itemStack) {
if (!ModuleManager.itemHasActiveModule(itemStack, TintModule.MODULE_TINT)) {
return Colour.WHITE;
}
double computedred = ModuleManager.computeModularProperty(itemStack, TintModule.RED_TINT);
double computedgreen = ModuleManager.computeModularProperty(itemStack, TintModule.GREEN_TINT);
double computedblue = ModuleManager.computeModularProperty(itemStack, TintModule.BLUE_TINT);
return new Colour(clampDouble(computedred, 0, 1), clampDouble(computedgreen, 0, 1), clampDouble(computedblue, 0, 1), 1.0F);
}
@Override
public boolean requiresMultipleRenderPasses() {
return false;
}
@Override
public void addInformation(ItemStack itemStack, EntityPlayer player, List currentTipList, boolean advancedToolTips) {
MuseCommonStrings.addInformation(itemStack, player, currentTipList, advancedToolTips);
}
@Override
public String formatInfo(String string, double value) {
return string + '\t' + MuseStringUtils.formatNumberShort(value);
}
/* IModularItem ------------------------------------------------------------------------------- */
@SideOnly(Side.CLIENT)
@Override
public List<String> getLongInfo(EntityPlayer player, ItemStack itemStack) {
List<String> info = new ArrayList<>();
info.add("Detailed Summary");
info.add(formatInfo("Armor", getArmorDouble(player, itemStack)));
info.add(formatInfo("Energy Storage", getCurrentEnergy(itemStack)) + 'J');
info.add(formatInfo("Weight", MuseCommonStrings.getTotalWeight(itemStack)) + 'g');
return info;
}
@Override
public double getArmorDouble(EntityPlayer player, ItemStack itemStack) {
return 0;
}
@Override
public double getPlayerEnergy(EntityPlayer player) {
return ElectricItemUtils.getPlayerEnergy(player);
}
@Override
public void drainPlayerEnergy(EntityPlayer player, double drainEnergy) {
ElectricItemUtils.drainPlayerEnergy(player, drainEnergy);
}
@Override
public void givePlayerEnergy(EntityPlayer player, double joulesToGive) {
ElectricItemUtils.drainPlayerEnergy(player, joulesToGive);
}
/* MuseElectricItem --------------------------------------------------------------------------- */
@Override
public double getCurrentEnergy(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCurrentEnergy(itemStack);
}
@Override
public double getMaxEnergy(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCurrentEnergy(itemStack);
}
@Override
public void setCurrentEnergy(ItemStack itemStack, double energy) {
MuseElectricItem.getInstance().setCurrentEnergy(itemStack, energy);
}
@Override
public double drainEnergyFrom(ItemStack itemStack, double requested) {
return MuseElectricItem.getInstance().drainEnergyFrom(itemStack, requested);
}
@Override
public double giveEnergyTo(ItemStack itemStack, double provided) {
return MuseElectricItem.getInstance().giveEnergyTo(itemStack, provided);
}
@Override
public int getMaxDamage(ItemStack itemStack) {
return 0;
}
@SideOnly(Side.CLIENT)
@Override
public String getToolTip(ItemStack itemStack) {
return itemStack.getTooltip(Minecraft.getMinecraft().thePlayer, false).toString();
}
/* Industrialcraft 2 -------------------------------------------------------------------------- */
@Override
public boolean canProvideEnergy(ItemStack itemStack) {
return MuseElectricItem.getInstance().canProvideEnergy(itemStack);
}
@Override
public Item getChargedItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getChargedItem(itemStack);
}
@Override
public Item getEmptyItem(ItemStack itemStack) {
return MuseElectricItem.getInstance().getEmptyItem(itemStack);
}
@Override
public double getMaxCharge(ItemStack itemStack) {
return MuseElectricItem.getInstance().getMaxCharge(itemStack);
}
@Override
public int getTier(ItemStack itemStack) {
return MuseElectricItem.getInstance().getTier(itemStack);
}
@Override
public double getTransferLimit(ItemStack itemStack) {
return MuseElectricItem.getInstance().getTransferLimit(itemStack);
}
@Override
public double charge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean simulate) {
return MuseElectricItem.getInstance().charge(itemStack, amount, tier, ignoreTransferLimit, simulate);
}
@Override
public double discharge(ItemStack itemStack, double amount, int tier, boolean ignoreTransferLimit, boolean externally, boolean simulate) {
return MuseElectricItem.getInstance().discharge(itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
}
@Override
public double getCharge(ItemStack itemStack) {
return MuseElectricItem.getInstance().getCharge(itemStack);
}
@Override
public boolean canUse(ItemStack itemStack, double amount) {
return MuseElectricItem.getInstance().canUse(itemStack, amount);
}
@Override
public boolean use(ItemStack itemStack, double amount, EntityLivingBase entity) {
return MuseElectricItem.getInstance().use(itemStack, amount, entity);
}
@Override
public void chargeFromArmor(ItemStack itemStack, EntityLivingBase entity) {
MuseElectricItem.getInstance().chargeFromArmor(itemStack, entity);
}
@Override
public IElectricItemManager getManager(ItemStack itemStack) {
return MuseElectricItem.getInstance().getManager(itemStack);
}
/* Thermal Expansion -------------------------------------------------------------------------- */
@Override
public int receiveEnergy(ItemStack itemStack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().receiveEnergy(itemStack, energy, simulate);
}
@Override
public int extractEnergy(ItemStack itemStack, int energy, boolean simulate) {
return MuseElectricItem.getInstance().extractEnergy(itemStack, energy, simulate);
}
@Override
public int getEnergyStored(ItemStack itemStack) {
return MuseElectricItem.getInstance().getEnergyStored(itemStack);
}
@Override
public int getMaxEnergyStored(ItemStack itemStack) {
return MuseElectricItem.getInstance().getMaxEnergyStored(itemStack);
}
/* Applied Energistics 2 ---------------------------------------------------------------------- */
@Override
public double injectAEPower(ItemStack itemStack, double ae) {
return MuseElectricItem.getInstance().injectAEPower(itemStack, ae);
}
@Override
public double extractAEPower(ItemStack itemStack, double ae) {
return MuseElectricItem.getInstance().extractAEPower(itemStack, ae);
}
@Override
public double getAEMaxPower(ItemStack itemStack) {
return MuseElectricItem.getInstance().getAEMaxPower(itemStack);
}
@Override
public double getAECurrentPower(ItemStack itemStack) {
return MuseElectricItem.getInstance().getAECurrentPower(itemStack);
}
@Override
public AccessRestriction getPowerFlow(ItemStack itemStack) {
return MuseElectricItem.getInstance().getPowerFlow(itemStack);
}
}

View file

@ -22,12 +22,6 @@ public class PowerModule extends PowerModuleBase {
return name;
}
@Override
public String getLocalizedName() {
return "This module did not correctly label its name.";
}
@Override
public String getDescription() {
return description;

View file

@ -1,10 +1,6 @@
package net.machinemuse.powersuits.powermodule;
import net.machinemuse.api.ILocalizeableModule;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.IPropertyModifier;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.*;
import net.machinemuse.general.gui.MuseIcon;
import net.machinemuse.numina.render.MuseTextureUtils;
import net.machinemuse.powersuits.common.Config;
@ -166,11 +162,6 @@ public abstract class PowerModuleBase implements ILocalizeableModule {
// return "/terrain.png";
}
@Override
public String getLocalizedName() {
return StatCollector.translateToLocal("module." + getUnlocalizedName() + ".name");
}
@Override
public String getDescription() {
return StatCollector.translateToLocal("module." + getUnlocalizedName() + ".desc");

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.energy;
import net.machinemuse.api.electricity.ElectricConversions;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.electricity.ElectricConversions;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;
import net.machinemuse.utils.ElectricItemUtils;

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.powermodule.energy;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.powersuits.item.ItemComponent;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.misc;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.powersuits.item.ItemComponent;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.movement;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.powersuits.item.ItemComponent;
@ -39,10 +39,8 @@ public class SprintAssistModule extends PowerModuleBase implements IToggleableMo
@Override
public void onPlayerTickActive(EntityPlayer player, ItemStack item) {
double motionX = player.posX - player.lastTickPosX;
double motionY = player.posY - player.lastTickPosY;
double motionZ = player.posZ - player.lastTickPosZ;
double horzMovement = Math.sqrt(motionX * motionX + motionZ * motionZ);
double horzMovement = player.distanceWalkedModified - player.prevDistanceWalkedModified;
double totalEnergy = ElectricItemUtils.getPlayerEnergy(player);
if (player.isSprinting()) {
double exhaustion = Math.round(horzMovement * 100.0F) * 0.01;

View file

@ -63,7 +63,7 @@ public class AppEngWirelessFluidModule extends PowerModuleBase implements IRight
@Override
public void onRightClick(EntityPlayer player, World world, ItemStack item) {
ECApi.instance().openWirelessTerminal(player, player.getHeldItem(), world);
ECApi.instance().openWirelessFluidTerminal(player, player.getHeldItem(), world);
}
@Override

View file

@ -88,9 +88,7 @@ public class AxeModule extends PowerModuleBase implements IBlockBreakingModule,
@Override
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
if (istEffectiveHarvestTool(block, meta)) {
if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, AXE_ENERGY_CONSUMPTION)) {
return true;
}
return ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, AXE_ENERGY_CONSUMPTION);
}
return false;
}

View file

@ -72,9 +72,7 @@ public class ChiselModule extends PowerModuleBase implements IBlockBreakingModul
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
if (ModCompatibility.isChiselLoaded() && ITEM_CHISEL != null) {
if (ForgeHooks.canToolHarvestBlock(block, meta, new ItemStack(ITEM_CHISEL))) {
if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, CHISEL_ENERGY_CONSUMPTION)) {
return true;
}
return ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, CHISEL_ENERGY_CONSUMPTION);
}
}
return false;

View file

@ -55,9 +55,7 @@ public class DiamondPickUpgradeModule extends PowerModuleBase implements IBlockB
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
if (!Items.iron_pickaxe.canHarvestBlock(block, stack)) {
if (Items.diamond_pickaxe.canHarvestBlock(block, stack)) {
if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, PickaxeModule.PICKAXE_ENERGY_CONSUMPTION)) {
return true;
}
return ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, PickaxeModule.PICKAXE_ENERGY_CONSUMPTION);
}
}
return false;

View file

@ -73,9 +73,7 @@ public class PersonalShrinkingModule extends PowerModuleBase implements IRightCl
int block = Block.getIdFromBlock(world.getBlock(x, y, z));
if (block == Block.getIdFromBlock(GameRegistry.findBlock("CompactMachines", "machine"))) {
return false;
} else if (block == Block.getIdFromBlock(GameRegistry.findBlock("CompactMachines", "innerwall"))) {
return true;
}
} else return block == Block.getIdFromBlock(GameRegistry.findBlock("CompactMachines", "innerwall"));
}
return false;
}

View file

@ -90,10 +90,7 @@ public class PickaxeModule extends PowerModuleBase implements IBlockBreakingModu
// some blocks like stairs do no not have a tool assigned to them
if (effectiveHarvestTool == null) {
if (emulatedTool.func_150997_a/*getStrVsBlock*/(block) >= ((ItemTool) emulatedTool.getItem()).func_150913_i/*getToolMaterial*/().getEfficiencyOnProperMaterial())
{
return true;
}
return emulatedTool.func_150997_a/*getStrVsBlock*/(block) >= ((ItemTool) emulatedTool.getItem()).func_150913_i/*getToolMaterial*/().getEfficiencyOnProperMaterial();
}
return false;
}

View file

@ -66,9 +66,7 @@ public class ScoopModule extends PowerModuleBase implements IBlockBreakingModule
@Override
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
if (ForgeHooks.canToolHarvestBlock(block, meta, scoop)) {
if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, SCOOP_ENERGY_CONSUMPTION)) {
return true;
}
return ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, SCOOP_ENERGY_CONSUMPTION);
}
return false;
}

View file

@ -111,9 +111,7 @@ public class ShearsModule extends PowerModuleBase implements IBlockBreakingModul
@Override
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
if (ForgeHooks.canToolHarvestBlock(block, meta, shears)) {
if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, SHEARING_ENERGY_CONSUMPTION)) {
return true;
}
return ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, SHEARING_ENERGY_CONSUMPTION);
}
return false;
}

View file

@ -79,9 +79,7 @@ public class ShovelModule extends PowerModuleBase implements IBlockBreakingModul
@Override
public boolean canHarvestBlock(ItemStack stack, Block block, int meta, EntityPlayer player) {
if (istEffectiveHarvestTool(block, meta)) {
if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, SHOVEL_ENERGY_CONSUMPTION)) {
return true;
}
return ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, SHOVEL_ENERGY_CONSUMPTION);
}
return false;
}

View file

@ -37,9 +37,7 @@ public class TerminalHandler implements IWirelessTermHandler, IWirelessFluidTerm
return false;
if(is.getUnlocalizedName() == null)
return false;
if(is.getUnlocalizedName().equals("item.powerFist"))
return true;
return false;
return is.getUnlocalizedName().equals("item.powerFist");
}
@Optional.Method(modid = "appliedenergistics2")
@ -115,7 +113,7 @@ public class TerminalHandler implements IWirelessTermHandler, IWirelessFluidTerm
@Optional.Method(modid = "extracells")
private static void registerECHandler(TerminalHandler handler){
ECApi.instance().registerWirelessFluidTermHandler(handler);
ECApi.instance().registerWirelessTermHandler(handler);
}
public static void registerHandler() {

View file

@ -41,6 +41,8 @@ public class ElectricItemUtils {
}
public static void drainPlayerEnergy(EntityPlayer player, double drainAmount) {
if (player.capabilities.isCreativeMode)
return;
double drainleft = drainAmount;
for (ElectricAdapter adapter: electricItemsEquipped(player))
if (drainleft > 0)

View file

@ -55,6 +55,9 @@ public class MuseHeatUtils {
}
public static void heatPlayer(EntityPlayer player, double heatDegrees) {
if (player.capabilities.isCreativeMode)
return;
List<ItemStack> items = MuseItemUtils.getModularItemsInInventory(player);
if (player.isUsingItem()) {
items.remove(player.getCurrentEquippedItem());

View file

@ -233,7 +233,7 @@ public abstract class MuseStringUtils {
*
* @author MachineMuse
*/
public static enum FormatCodes {
public enum FormatCodes {
Black('0'),
DarkBlue('1'),
DarkGreen('2'),
@ -259,7 +259,7 @@ public abstract class MuseStringUtils {
public char character;
private FormatCodes(char character) {
FormatCodes(char character) {
this.character = character;
}
}

View file

@ -1,9 +1,9 @@
#Made by users: KazoBurg, Vexatos, Dongonzales
#Last edited on 7/2/13
tile.luxCapacitor.name=Luxkompensator
tile.tinkerTable.name=Energierüstungsbasteltisch
itemGroup.powersuits=Modular Powersuits
item.powerArmorBoots.name=Energiestiefel
item.powerArmorLeggings.name=Energiehose
item.powerArmorChestplate.name=Energiebrustplatte
@ -31,6 +31,9 @@ item.powerArmorComponent.componentArtificialMuscle.name=Künstlicher Muskel
item.powerArmorComponent.componentSolarPanel.name=Solarzelle
item.powerArmorComponent.componentMagnet.name=Magnet
item.powerArmorComponent.componentComputerChip.name=Mikroprozessor
item.powerArmorComponent.componentLiquidNitrogen.name=Liquid Nitrogen Bucket
item.powerArmorComponent.componentRubberHose.name=Insulated Rubber Hose
item.powerArmorComponent.componentRawCarbon.name=Raw Carbon
module.basicPlating.name=Eisenplatte
module.diamondPlating.name=Diamantplatte
@ -74,6 +77,7 @@ module.transparentArmor.name=Transparentrüstung
module.cosmeticGlow.name=Leuchtmodul
module.mffsFieldTeleporter.name=MFFS-Kraftfeldteleporter
module.grafter.name=Gartenschere
module.scoop.name=Scoop
module.apiaristArmor.name=Imkerrüstung
module.hazmat.name=Strahlungsschild
module.redstoneLaser.name=Rotsteinlaser
@ -96,11 +100,15 @@ module.clock.name=Uhr
module.compass.name=Kompass
module.lightningSummoner.name=Blitz-o-Mat
module.waterTank.name=Wassertank
module.euReader.name=EU-Lesegerät
module.treetap.name=Kautschukhahn
module.teMultimeter.name=TE-Multimeter
module.appengWireless.name=Kabelloses ME-Terminal
module.bucket.name=Eimer
module.appengECWirelessFluid.name=ExtraCells Wireless Fluid Terminal
module.advSolarGenerator.name=High Efficiency Solar Generator
module.nitrogenCoolingSystem.name=Liquid Nitrogen Cooling System
module.mechAssistance.name=Mechanical Assistance
module.cmPSD.name=Personal Shrinking Device
module.omniProbe.name=Prototype OmniProbe
module.dimRiftGen.name=Dimensional Tear Generator
module.basicPlating.desc=Basic plating is heavy but protective.
module.diamondPlating.desc=Advanced plating is lighter, harder, and more protective than Basic but much harder to make.
@ -142,7 +150,36 @@ module.coolingSystem.desc=Cools down heat-producing modules quicker.
module.tint.desc=Give your armor some coloured tinting to customize your armor's appearance.
module.transparentArmor.desc=Make the item transparent, so you can show off your skin without losing armor.
module.cosmeticGlow.desc=Change the appearance of the glowy bits on your armor.
module.hazmat.desc=Protect yourself from electricity and radiation poisoning. *Must be on every piece for 100% protection*
module.aurameter.desc=Connect up some Thaumic goggles to have them embedded in your helmet. (Does not give Vis usage discount)
module.airtightSeal.desc=Seal the suit against hostile atmospheres for venturing to other planets.
module.grafter.desc=A Forestry grafter integrated into your power tool.
module.scoop.desc=A Forestry Scoop integrated into your power tool.
module.apiaristArmor.desc=A set of Forestry apiarist armor integrated into your armor.
module.chisel.desc=This won't let you chisel blocks, but it will at least let you harvest them.
module.lightningSummoner.desc=Allows you to summon lightning for a large energy cost.
module.portableCraftingTable.desc=A larger crafting grid, on the go.
module.kineticGenerator.desc=Generate power with your movement.
module.solarGenerator.desc=Let the sun power your adventures.
module.thermalGenerator.desc=Generate power from extreme amounts of heat.
module.autoFeeder.desc=Whenever you're hungry, this module will grab the bottom-left-most food item from your inventory and feed it to you, storing the rest for later.
module.magnet.desc=Generates a magnetic field strong enough to attract items towards the player. WARNING: This module drains power continuously. Turn it off when not needed. (Keybind menu: k)
module.oreScanner.desc=A way to see how valuable the land around you is.
module.leafBlower.desc=Create a torrent of air to knock plants out of the ground and leaves off of trees.
module.mobRepulsor.desc=Pushes mobs away from you when activated, but constantly drains power. It is highly recommended that you set this module to a keybind because of the high energy draw.
module.flintAndSteel.desc=A portable igniter that creates fire through the power of energy.
module.clock.desc=A clock on the run that shows you the time, no matter where you are. Toggleable by keybinds.
module.compass.desc=A compass on the run that shows you your direction, no matter where you are. Toggleable by keybinds.
module.waterTank.desc=Store water which can later be used to cool yourself in emergency situations.
module.teMultimeter.desc=A prototype multi-use probe integrated into your power tool.
module.appengWireless.desc=An Applied Energistics wireless terminal integrated into your power tool.
module.appengECWirelessFluid.desc=An Applied Energistics ExtraCells wireless fluid terminal integrated into your power tool.
module.advSolarGenerator.desc=A solar generator with 3 times the power generation of the standard solar generator.
module.nitrogenCoolingSystem.desc=Cools down heat-producing modules even faster than the standard cooling system.
module.mechAssistance.desc=Robotic assistance to reduce the effect of weight on the user
module.cmPSD.desc=A Compact Machines Personal Shrinking Device integrated into your power tool.
module.omniProbe.desc=A prototype multi-use probe integrated into your power tool.
module.dimRiftGen.desc=Generate a tear in the space-time continuum that will teleport the player to its relative coordinates in the nether or overworld.
gui.noModulesFound.line1=Keine Energierüstungs-Items
gui.noModulesFound.line2=im Inventar gefunden. Bastle welche!
@ -160,8 +197,27 @@ gui.pressKey=Drücke Taste
gui.keybindInstructions1=Nutze "Neu", um neue Tastenfunktionen zu konfigurieren.
gui.keybindInstructions2=Ziehe Module hierhin, um sie mit Tasten zu verbinden.
gui.keybindInstructions3=Ziehe Tasten auf das "Entfernen"-Feld, um die Konfiguration zu entfernen.
gui.keybindInstructions4=Right-click keybinds to add them to the HUD.
gui.keybindTaken=Bereits in gebrauch!
gui.tab.tinker=Bastlen
gui.tab.keybinds=Tastenkombinationen
gui.tab.visual=Visuelles
gui.equippedTotals=Equipped Totals
gui.energyStorage=Energy Storage
gui.weight=Weight
gui.armor=Armor
nei.jsonShaped=JSON Shaped
tooltip.pressShift=Press SHIFT for more information.
tooltip.componentTooltip=For use in Tinker Table.
tooltip.changeModes=Change modes: Sneak+mousewheel.
tooltip.energy=Energy:
tooltip.noModules=No installed modules! This item is useless until you add some modules at a Tinker Table.
tooltip.installedModules=Installed Modules:
tooltip.mode=Mode:
module.bucket.name=Eimer
module.euReader.name=EU-Lesegerät
module.treetap.name=Kautschukhahn

View file

@ -1,5 +1,5 @@
Made by users: Andrew2448, MachineMuse
Last edited on 6/25/13 12:18AM EST
# Made by users: Andrew2448, MachineMuse
# Last edited on 6/25/13 12:18AM EST
tile.luxCapacitor.name=Lux Capacitor
tile.tinkerTable.name=Power Armor Tinker Table

View file

@ -1,88 +1,114 @@
Made by users: Mazdallier, AegisLesha, solomon56
Last edited on 08/31/15
tile.luxCapacitor.name=Condensateur Lux
tile.tinkerTable.name=Table de bricolage d'Armure énergétique
tile.luxCapacitor.name=Condensateur Lux
tile.tinkerTable.name=Table de bricolage d'Armure énergétique
itemGroup.powersuits=Armure énergétique modulaire
itemGroup.powersuits=Armure énergétique modulaire
item.powerArmorBoots.name=Bottes d'Armure énergétique
item.powerArmorBoots.name=Bottes d'Armure énergétique
item.powerArmorLeggings.name=Pantalon d'Armure énergétique
item.powerArmorChestplate.name=Plastron d'Armure énergétique
item.powerArmorChestplate.name=Plastron d'Armure énergétique
item.powerArmorHelmet.name=Casque d'Armure énergétique
item.powerFist.name=Poing énergétique
item.powerArmorComponent.componentWiring.name=Câblage
item.powerArmorComponent.componentSolenoid.name=Solénoïde
item.powerArmorComponent.componentServo.name=Servo Moteur
item.powerArmorComponent.componentServo.name=Servo Moteur
item.powerArmorComponent.componentGliderWing.name=Ailes de planeur
item.powerArmorComponent.componentIonThruster.name=Propulseur Ionique
item.powerArmorComponent.componentLVCapacitor.name=Condensateur BT
item.powerArmorComponent.componentMVCapacitor.name=Condensateur MT
item.powerArmorComponent.componentIonThruster.name=Propulseur Ionique
item.powerArmorComponent.componentLVCapacitor.name=Condensateur BT
item.powerArmorComponent.componentMVCapacitor.name=Condensateur MT
item.powerArmorComponent.componentHVCapacitor.name=Condensateur HT
item.powerArmorComponent.componentParachute.name=Parachute
item.powerArmorComponent.componentPlatingBasic.name=Plaquage de base
item.powerArmorComponent.componentPlatingAdvanced.name=Plaquage avancé
item.powerArmorComponent.componentParachute.name=Parachute
item.powerArmorComponent.componentPlatingBasic.name=Plaquage de base
item.powerArmorComponent.componentPlatingAdvanced.name=Plaquage avancé
item.powerArmorComponent.componentFieldEmitter.name=Emetteur de champ de force
item.powerArmorComponent.componentLaserEmitter.name=Emetteur d'hologramme
item.powerArmorComponent.componentLaserEmitter.name=Emetteur d'hologramme
item.powerArmorComponent.componentCarbonMyofiber.name=Myofibre carbone
item.powerArmorComponent.componentControlCircuit.name=Circuit de contrôle
item.powerArmorComponent.componentMyofiberGel.name=Gel myofibre
item.powerArmorComponent.componentArtificialMuscle.name=Muscle artificiel
item.powerArmorComponent.componentArtificialMuscle.name=Muscle artificiel
item.powerArmorComponent.componentSolarPanel.name=Panneau Solaire
item.powerArmorComponent.componentMagnet.name=Aimant
item.powerArmorComponent.componentComputerChip.name=Puce informatique
item.powerArmorComponent.componentLiquidNitrogen.name=Liquid Nitrogen Bucket
item.powerArmorComponent.componentRubberHose.name=Insulated Rubber Hose
item.powerArmorComponent.componentRawCarbon.name=Raw Carbon
module.basicPlating.name=Plaquage en Fer
module.diamondPlating.name=Plaquage en Diamant
module.energyShield.name=Champ énergétique
module.heatSink.name=Dissipateur de chaleur
module.axe.name=Hache
module.pickaxe.name=Pioche
module.shovel.name=Pelle
module.shears.name=Ciseaux
module.hoe.name=Houe
module.luxCapacitor.name=Condensateur Lux
module.omniwrench.name=Prototype Multiclef
module.basicPlating.name=Plaquage en Fer
module.diamondPlating.name=Plaquage en Diamant
module.energyShield.name=Champ énergétique
module.heatSink.name=Dissipateur de chaleur
module.axe.name=Hache
module.pickaxe.name=Pioche
module.shovel.name=Pelle
module.shears.name=Ciseaux
module.hoe.name=Houe
module.luxCapacitor.name=Condensateur Lux
module.omniwrench.name=Prototype Multiclef
module.fieldTinkerer.name=Module de champ ambulant
module.meleeAssist.name=Assistant de combat
module.meleeAssist.name=Assistant de combat
module.plasmaCannon.name=Canon à plasma
module.railgun.name=Railgun
module.railgun.name=Railgun
module.bladeLauncher.name=Lanceur de lame
module.basicBattery.name=Batterie de base
module.eliteBattery.name=batterie élite
module.advancedBattery.name=Batterie avancée
module.parachute.name=Parachute
module.glider.name=Planneur
module.jetpack.name=Jetpack
module.basicBattery.name=Batterie de base
module.eliteBattery.name=batterie élite
module.advancedBattery.name=Batterie avancée
module.parachute.name=Parachute
module.glider.name=Planneur
module.jetpack.name=Jetpack
module.sprintAssist.name=Assistant de course
module.jumpAssist.name=Assistant de saut
module.swimAssist.name=Amplificateur de nage
module.climbAssist.name=Assistant de monté de bloc
module.jetBoots.name=Bottes Jet
module.shockAbsorber.name=Absorbeur de choc
module.waterElectrolyzer.name=Electrolyseur d'eau
module.binoculars.name=Binoculaires
module.nightVision.name=Vision nocturne
module.flightControl.name=Contrôleur de vol
module.invisibility.name=Camouflage actif
module.blinkDrive.name=Pilote de clignotement
module.diamondPickUpgrade.name=Mise à jour foret diamant
module.aquaAffinity.name=Affinité aquatique
module.jumpAssist.name=Assistant de saut
module.swimAssist.name=Amplificateur de nage
module.climbAssist.name=Assistant de monté de bloc
module.jetBoots.name=Bottes Jet
module.shockAbsorber.name=Absorbeur de choc
module.waterElectrolyzer.name=Electrolyseur d'eau
module.binoculars.name=Binoculaires
module.nightVision.name=Vision nocturne
module.flightControl.name=Contrôleur de vol
module.invisibility.name=Camouflage actif
module.blinkDrive.name=Pilote de clignotement
module.diamondPickUpgrade.name=Mise à jour foret diamant
module.aquaAffinity.name=Affinité aquatique
module.coolingSystem.name=Système de refroidissement
module.tint.name=Module de couleur personnalisée
module.transparentArmor.name=Armure transparente
module.cosmeticGlow.name=Module lumineux
module.tint.name=Module de couleur personnalisée
module.transparentArmor.name=Armure transparente
module.cosmeticGlow.name=Module lumineux
module.mffsFieldTeleporter.name=Téléporteur de champ MFFS
module.grafter.name=Greffeur
module.apiaristArmor.name=Armure de l'apiariste
module.hazmat.name=Protection anti-radiation
module.redstoneLaser.name=Laser de Redstone
module.aurameter.name=Auramètre
module.airtightSeal.name=Etanchéité à l'air
module.grafter.name=Greffeur
module.scoop.name=Scoop
module.apiaristArmor.name=Armure de l'apiariste
module.hazmat.name=Protection anti-radiation
module.redstoneLaser.name=Laser de Redstone
module.aurameter.name=Auramètre
module.airtightSeal.name=Etanchéité à l'air
module.citizenJoe.name=Armure Citizen Joe
module.sonicWeapon.name=Arme sonique
module.sonicWeapon.name=Arme sonique
module.portableCraftingTable.name=Poche Tableau Artisanat
module.kineticGenerator.name=Générateur Cinétique
module.solarGenerator.name=Générateur Solaire
module.thermalGenerator.name=Générateur Thermique
module.autoFeeder.name=Nourriture-Automatique
module.magnet.name=Aimant
module.oreScanner.name=Scanneur des Minerais
module.leafBlower.name=Souffleur
module.mobRepulsor.name=Repousseur de Monstre
module.flintAndSteel.name=Briquet
module.clock.name=Montre
module.compass.name=Boussole
module.lightningSummoner.name=Porteur de la Foudre
module.waterTank.name=Réservoir d'eau
module.teMultimeter.name=Multimètre de TE
module.appengWireless.name=Terminal sans fil d'AppEng
module.appengECWirelessFluid.name=ExtraCells Wireless Fluid Terminal
module.advSolarGenerator.name=High Efficiency Solar Generator
module.nitrogenCoolingSystem.name=Liquid Nitrogen Cooling System
module.mechAssistance.name=Mechanical Assistance
module.cmPSD.name=Personal Shrinking Device
module.omniProbe.name=Prototype OmniProbe
module.dimRiftGen.name=Dimensional Tear Generator
module.basicPlating.desc=Le plaquage en fer est lourd mais efficace.
module.diamondPlating.desc=Le plaquage en diamant est plus léger, plus dur et protège plus mais est aussi plus difficile à faire.
@ -125,26 +151,35 @@ module.tint.desc=Permet à votre armure de se tinter pour la customisation de so
module.transparentArmor.desc=Rend l'objet transparent, pour que vous puissiez montrer votre skin sans perdre la protection offerte par l'armure.
module.cosmeticGlow.desc=Change l'apparence des parties lumineuse de l'armure.
module.hazmat.desc=Vous protège de l'électricité et de l'empoisonnement dû aux radiations. (Doit être présent sur toutes les parties de l'armure pour une protection totale)
module.portableCraftingTable.name=Poche Tableau Artisanat
module.kineticGenerator.name=Générateur Cinétique
module.solarGenerator.name=Générateur Solaire
module.thermalGenerator.name=Générateur Thermique
module.autoFeeder.name=Nourriture-Automatique
module.magnet.name=Aimant
module.oreScanner.name=Scanneur des Minerais
module.leafBlower.name=Souffleur
module.mobRepulsor.name=Repousseur de Monstre
module.flintAndSteel.name=Briquet
module.clock.name=Montre
module.compass.name=Boussole
module.lightningSummoner.name=Porteur de la Foudre
module.waterTank.name=Réservoir d'eau
module.euReader.name= Interpréteur d'EU
module.treetap.name=Sève prise
module.teMultimeter.name=Multimètre de TE
module.appengWireless.name=Terminal sans fil d'AppEng
module.bucket.name=Seau
module.aurameter.desc=Connect up some Thaumic goggles to have them embedded in your helmet. (Does not give Vis usage discount)
module.airtightSeal.desc=Seal the suit against hostile atmospheres for venturing to other planets.
module.grafter.desc=A Forestry grafter integrated into your power tool.
module.scoop.desc=A Forestry Scoop integrated into your power tool.
module.apiaristArmor.desc=A set of Forestry apiarist armor integrated into your armor.
module.chisel.desc=This won't let you chisel blocks, but it will at least let you harvest them.
module.lightningSummoner.desc=Allows you to summon lightning for a large energy cost.
module.portableCraftingTable.desc=A larger crafting grid, on the go.
module.kineticGenerator.desc=Generate power with your movement.
module.solarGenerator.desc=Let the sun power your adventures.
module.thermalGenerator.desc=Generate power from extreme amounts of heat.
module.autoFeeder.desc=Whenever you're hungry, this module will grab the bottom-left-most food item from your inventory and feed it to you, storing the rest for later.
module.magnet.desc=Generates a magnetic field strong enough to attract items towards the player. WARNING: This module drains power continuously. Turn it off when not needed. (Keybind menu: k)
module.oreScanner.desc=A way to see how valuable the land around you is.
module.leafBlower.desc=Create a torrent of air to knock plants out of the ground and leaves off of trees.
module.mobRepulsor.desc=Pushes mobs away from you when activated, but constantly drains power. It is highly recommended that you set this module to a keybind because of the high energy draw.
module.flintAndSteel.desc=A portable igniter that creates fire through the power of energy.
module.clock.desc=A clock on the run that shows you the time, no matter where you are. Toggleable by keybinds.
module.compass.desc=A compass on the run that shows you your direction, no matter where you are. Toggleable by keybinds.
module.waterTank.desc=Store water which can later be used to cool yourself in emergency situations.
module.teMultimeter.desc=A prototype multi-use probe integrated into your power tool.
module.appengWireless.desc=An Applied Energistics wireless terminal integrated into your power tool.
module.appengECWirelessFluid.desc=An Applied Energistics ExtraCells wireless fluid terminal integrated into your power tool.
module.advSolarGenerator.desc=A solar generator with 3 times the power generation of the standard solar generator.
module.nitrogenCoolingSystem.desc=Cools down heat-producing modules even faster than the standard cooling system.
module.mechAssistance.desc=Robotic assistance to reduce the effect of weight on the user
module.cmPSD.desc=A Compact Machines Personal Shrinking Device integrated into your power tool.
module.omniProbe.desc=A prototype multi-use probe integrated into your power tool.
module.dimRiftGen.desc=Generate a tear in the space-time continuum that will teleport the player to its relative coordinates in the nether or overworld.
gui.noModulesFound.line1=Aucune armure énergétique modulaire
gui.noModulesFound.line2=trouvée dans les alentours.
@ -162,10 +197,27 @@ gui.pressKey=Appuyer sur une touche
gui.keybindInstructions1=Utiliser 'Nouvelle' pour créer de nouvelles combinaisons de touches.
gui.keybindInstructions2=Glisser-déposer des modules pour les lier avec des touches.
gui.keybindInstructions3=Déposer des touches dans la corbeille pour annuler les liaisons.
gui.keybindInstructions4=Right-click keybinds to add them to the HUD.
gui.keybindTaken=Occupée!
gui.tab.tinker=Bricolage
gui.tab.keybinds=Combinaisons
gui.tab.visual=Apparence
gui.equippedTotals=Equipped Totals
gui.energyStorage=Energy Storage
gui.weight=Weight
gui.armor=Armor
nei.jsonShaped=JSON Shaped
tooltip.pressShift=Press SHIFT for more information.
tooltip.componentTooltip=For use in Tinker Table.
tooltip.changeModes=Change modes: Sneak+mousewheel.
tooltip.energy=Energy:
tooltip.noModules=No installed modules! This item is useless until you add some modules at a Tinker Table.
tooltip.installedModules=Installed Modules:
tooltip.mode=Mode:
module.bucket.name=Seau
module.euReader.name= Interpréteur d'EU
module.treetap.name=Sève prise

View file

@ -1,5 +1,3 @@
Made by users: EzerArch
Last edited on 12/24/14 07:02AM GMT-2
tile.luxCapacitor.name=Capacitor de Luz
tile.tinkerTable.name=Mesa de Trabalho Power Armor
@ -25,11 +23,18 @@ item.powerArmorComponent.componentPlatingBasic.name=Blindagem Básica
item.powerArmorComponent.componentPlatingAdvanced.name=Blindagem Avançada
item.powerArmorComponent.componentFieldEmitter.name=Emissor de Campo de Força
item.powerArmorComponent.componentLaserEmitter.name=Emissor de Holograma
item.powerArmorComponent.componentCarbonMyofiber.name=Miofibra de Carbono
item.powerArmorComponent.componentControlCircuit.name=Circuito de Controle
item.powerArmorComponent.componentCarbonMyofiber.name=Miofibra de Carbono
item.powerArmorComponent.componentControlCircuit.name=Circuito de Controle
item.powerArmorComponent.componentMyofiberGel.name=Gel de Miofibra
item.powerArmorComponent.componentArtificialMuscle.name=Músculo Artificial
item.powerArmorComponent.componentSolarPanel.name=Solar Panel
item.powerArmorComponent.componentMagnet.name=Magnet
item.powerArmorComponent.componentComputerChip.name=Computer Chip
item.powerArmorComponent.componentLiquidNitrogen.name=Liquid Nitrogen Bucket
item.powerArmorComponent.componentRubberHose.name=Insulated Rubber Hose
item.powerArmorComponent.componentRawCarbon.name=Raw Carbon
module.basicPlating.name=Blindagem de Ferro
module.diamondPlating.name=Blindagem de Diamante
module.energyShield.name=Campo de Energia
@ -64,7 +69,7 @@ module.nightVision.name=Visão Noturna
module.flightControl.name=Controle de Voo
module.invisibility.name=Camuflagem Ativa
module.blinkDrive.name=Blink Drive
module.diamondPickUpgrade.name=Melhoramento da Broca de Diamante
module.diamondPickUpgrade.name=Melhoramento da Broca de Diamante
module.aquaAffinity.name=Afinidade Aquática
module.coolingSystem.name=Sistema de Resfriamento
module.tint.name=Módulo de Cores Personalizáveis
@ -72,6 +77,7 @@ module.transparentArmor.name=Armadura Transparente
module.cosmeticGlow.name=Módulo de Brilho
module.mffsFieldTeleporter.name=Teleportador MFFS Field
module.grafter.name=Enxertador
module.scoop.name=Scoop
module.apiaristArmor.name=Armadura para Apicultor
module.hazmat.name=Proteção contra Radiação
module.redstoneLaser.name=Redstone Laser
@ -80,6 +86,29 @@ module.airtightSeal.name=Vedação Hermética
module.citizenJoe.name=Armadura Citizen Joe
module.sonicWeapon.name=Arma Sônica
module.portableCraftingTable.name=In-Place Assembler
module.kineticGenerator.name=Kinetic Generator
module.solarGenerator.name=Solar Generator
module.thermalGenerator.name=Thermal Generator
module.autoFeeder.name=Auto-Feeder
module.magnet.name=Magnet
module.oreScanner.name=Ore Scanner
module.leafBlower.name=Leaf Blower
module.mobRepulsor.name=Mob Repulsor
module.flintAndSteel.name=Flint and Steel
module.clock.name=Clock
module.compass.name=Compass
module.lightningSummoner.name=Lightning Summoner
module.waterTank.name=Water Tank
module.teMultimeter.name=TE Multimeter
module.appengWireless.name=AppEng Wireless Terminal
module.appengECWirelessFluid.name=ExtraCells Wireless Fluid Terminal
module.advSolarGenerator.name=High Efficiency Solar Generator
module.nitrogenCoolingSystem.name=Liquid Nitrogen Cooling System
module.mechAssistance.name=Mechanical Assistance
module.cmPSD.name=Personal Shrinking Device
module.omniProbe.name=Prototype OmniProbe
module.dimRiftGen.name=Dimensional Tear Generator
module.basicPlating.desc=Basic plating is heavy but protective.
module.diamondPlating.desc=Advanced plating is lighter, harder, and more protective than Basic but much harder to make.
@ -121,7 +150,36 @@ module.coolingSystem.desc=Cools down heat-producing modules quicker.
module.tint.desc=Give your armor some coloured tinting to customize your armor's appearance.
module.transparentArmor.desc=Make the item transparent, so you can show off your skin without losing armor.
module.cosmeticGlow.desc=Change the appearance of the glowy bits on your armor.
module.hazmat.desc=Protect yourself from electricity and radiation poisoning. *Must be on every piece for 100% protection*
module.aurameter.desc=Connect up some Thaumic goggles to have them embedded in your helmet. (Does not give Vis usage discount)
module.airtightSeal.desc=Seal the suit against hostile atmospheres for venturing to other planets.
module.grafter.desc=A Forestry grafter integrated into your power tool.
module.scoop.desc=A Forestry Scoop integrated into your power tool.
module.apiaristArmor.desc=A set of Forestry apiarist armor integrated into your armor.
module.chisel.desc=This won't let you chisel blocks, but it will at least let you harvest them.
module.lightningSummoner.desc=Allows you to summon lightning for a large energy cost.
module.portableCraftingTable.desc=A larger crafting grid, on the go.
module.kineticGenerator.desc=Generate power with your movement.
module.solarGenerator.desc=Let the sun power your adventures.
module.thermalGenerator.desc=Generate power from extreme amounts of heat.
module.autoFeeder.desc=Whenever you're hungry, this module will grab the bottom-left-most food item from your inventory and feed it to you, storing the rest for later.
module.magnet.desc=Generates a magnetic field strong enough to attract items towards the player. WARNING: This module drains power continuously. Turn it off when not needed. (Keybind menu: k)
module.oreScanner.desc=A way to see how valuable the land around you is.
module.leafBlower.desc=Create a torrent of air to knock plants out of the ground and leaves off of trees.
module.mobRepulsor.desc=Pushes mobs away from you when activated, but constantly drains power. It is highly recommended that you set this module to a keybind because of the high energy draw.
module.flintAndSteel.desc=A portable igniter that creates fire through the power of energy.
module.clock.desc=A clock on the run that shows you the time, no matter where you are. Toggleable by keybinds.
module.compass.desc=A compass on the run that shows you your direction, no matter where you are. Toggleable by keybinds.
module.waterTank.desc=Store water which can later be used to cool yourself in emergency situations.
module.teMultimeter.desc=A prototype multi-use probe integrated into your power tool.
module.appengWireless.desc=An Applied Energistics wireless terminal integrated into your power tool.
module.appengECWirelessFluid.desc=An Applied Energistics ExtraCells wireless fluid terminal integrated into your power tool.
module.advSolarGenerator.desc=A solar generator with 3 times the power generation of the standard solar generator.
module.nitrogenCoolingSystem.desc=Cools down heat-producing modules even faster than the standard cooling system.
module.mechAssistance.desc=Robotic assistance to reduce the effect of weight on the user
module.cmPSD.desc=A Compact Machines Personal Shrinking Device integrated into your power tool.
module.omniProbe.desc=A prototype multi-use probe integrated into your power tool.
module.dimRiftGen.desc=Generate a tear in the space-time continuum that will teleport the player to its relative coordinates in the nether or overworld.
gui.noModulesFound.line1=No modular powersuit items
gui.noModulesFound.line2=found in inventory. Make some!
@ -139,8 +197,24 @@ gui.pressKey=Press Key
gui.keybindInstructions1=Use 'new' to bind new keys.
gui.keybindInstructions2=Drag and drop modules to bind them to keys.
gui.keybindInstructions3=Drop keys on 'trash' to unbind them.
gui.keybindInstructions4=Right-click keybinds to add them to the HUD.
gui.keybindTaken=Taken!
gui.tab.tinker=Tinker
gui.tab.keybinds=Keybinds
gui.tab.visual=Visual
gui.tab.visual=Visual
gui.equippedTotals=Equipped Totals
gui.energyStorage=Energy Storage
gui.weight=Weight
gui.armor=Armor
nei.jsonShaped=JSON Shaped
tooltip.pressShift=Press SHIFT for more information.
tooltip.componentTooltip=For use in Tinker Table.
tooltip.changeModes=Change modes: Sneak+mousewheel.
tooltip.energy=Energy:
tooltip.noModules=No installed modules! This item is useless until you add some modules at a Tinker Table.
tooltip.installedModules=Installed Modules:
tooltip.mode=Mode:

View file

@ -1,5 +1,3 @@
Made by users: EzerArch
Last edited on 12/24/14 07:02AM GMT-2
tile.luxCapacitor.name=Condensador de Luz
tile.tinkerTable.name=Mesa de Trabalho Power Armor
@ -25,11 +23,18 @@ item.powerArmorComponent.componentPlatingBasic.name=Blindagem Básica
item.powerArmorComponent.componentPlatingAdvanced.name=Blindagem Avançada
item.powerArmorComponent.componentFieldEmitter.name=Emissor de Campo de Força
item.powerArmorComponent.componentLaserEmitter.name=Emissor de Holograma
item.powerArmorComponent.componentCarbonMyofiber.name=Miofibra de Carbono
item.powerArmorComponent.componentControlCircuit.name=Circuito de Controle
item.powerArmorComponent.componentCarbonMyofiber.name=Miofibra de Carbono
item.powerArmorComponent.componentControlCircuit.name=Circuito de Controle
item.powerArmorComponent.componentMyofiberGel.name=Gel de Miofibra
item.powerArmorComponent.componentArtificialMuscle.name=Músculo Artificial
item.powerArmorComponent.componentSolarPanel.name=Solar Panel
item.powerArmorComponent.componentMagnet.name=Magnet
item.powerArmorComponent.componentComputerChip.name=Computer Chip
item.powerArmorComponent.componentLiquidNitrogen.name=Liquid Nitrogen Bucket
item.powerArmorComponent.componentRubberHose.name=Insulated Rubber Hose
item.powerArmorComponent.componentRawCarbon.name=Raw Carbon
module.basicPlating.name=Blindagem de Ferro
module.diamondPlating.name=Blindagem de Diamante
module.energyShield.name=Campo de Energia
@ -64,7 +69,7 @@ module.nightVision.name=Visão Noturna
module.flightControl.name=Controlo de Voo
module.invisibility.name=Camuflagem Ativa
module.blinkDrive.name=Blink Drive
module.diamondPickUpgrade.name=Melhoramento da Broca de Diamante
module.diamondPickUpgrade.name=Melhoramento da Broca de Diamante
module.aquaAffinity.name=Afinidade Aquática
module.coolingSystem.name=Sistema de Resfriamento
module.tint.name=Módulo de Cores Personalizáveis
@ -72,6 +77,7 @@ module.transparentArmor.name=Armadura Transparente
module.cosmeticGlow.name=Módulo de Brilho
module.mffsFieldTeleporter.name=Teleportador MFFS Field
module.grafter.name=Enxertador
module.scoop.name=Scoop
module.apiaristArmor.name=Armadura para Apicultor
module.hazmat.name=Proteção contra Radiação
module.redstoneLaser.name=Redstone Laser
@ -80,6 +86,29 @@ module.airtightSeal.name=Vedação Hermética
module.citizenJoe.name=Armadura Citizen Joe
module.sonicWeapon.name=Arma Sônica
module.portableCraftingTable.name=In-Place Assembler
module.kineticGenerator.name=Kinetic Generator
module.solarGenerator.name=Solar Generator
module.thermalGenerator.name=Thermal Generator
module.autoFeeder.name=Auto-Feeder
module.magnet.name=Magnet
module.oreScanner.name=Ore Scanner
module.leafBlower.name=Leaf Blower
module.mobRepulsor.name=Mob Repulsor
module.flintAndSteel.name=Flint and Steel
module.clock.name=Clock
module.compass.name=Compass
module.lightningSummoner.name=Lightning Summoner
module.waterTank.name=Water Tank
module.teMultimeter.name=TE Multimeter
module.appengWireless.name=AppEng Wireless Terminal
module.appengECWirelessFluid.name=ExtraCells Wireless Fluid Terminal
module.advSolarGenerator.name=High Efficiency Solar Generator
module.nitrogenCoolingSystem.name=Liquid Nitrogen Cooling System
module.mechAssistance.name=Mechanical Assistance
module.cmPSD.name=Personal Shrinking Device
module.omniProbe.name=Prototype OmniProbe
module.dimRiftGen.name=Dimensional Tear Generator
module.basicPlating.desc=Basic plating is heavy but protective.
module.diamondPlating.desc=Advanced plating is lighter, harder, and more protective than Basic but much harder to make.
@ -121,7 +150,36 @@ module.coolingSystem.desc=Cools down heat-producing modules quicker.
module.tint.desc=Give your armor some coloured tinting to customize your armor's appearance.
module.transparentArmor.desc=Make the item transparent, so you can show off your skin without losing armor.
module.cosmeticGlow.desc=Change the appearance of the glowy bits on your armor.
module.hazmat.desc=Protect yourself from electricity and radiation poisoning. *Must be on every piece for 100% protection*
module.aurameter.desc=Connect up some Thaumic goggles to have them embedded in your helmet. (Does not give Vis usage discount)
module.airtightSeal.desc=Seal the suit against hostile atmospheres for venturing to other planets.
module.grafter.desc=A Forestry grafter integrated into your power tool.
module.scoop.desc=A Forestry Scoop integrated into your power tool.
module.apiaristArmor.desc=A set of Forestry apiarist armor integrated into your armor.
module.chisel.desc=This won't let you chisel blocks, but it will at least let you harvest them.
module.lightningSummoner.desc=Allows you to summon lightning for a large energy cost.
module.portableCraftingTable.desc=A larger crafting grid, on the go.
module.kineticGenerator.desc=Generate power with your movement.
module.solarGenerator.desc=Let the sun power your adventures.
module.thermalGenerator.desc=Generate power from extreme amounts of heat.
module.autoFeeder.desc=Whenever you're hungry, this module will grab the bottom-left-most food item from your inventory and feed it to you, storing the rest for later.
module.magnet.desc=Generates a magnetic field strong enough to attract items towards the player. WARNING: This module drains power continuously. Turn it off when not needed. (Keybind menu: k)
module.oreScanner.desc=A way to see how valuable the land around you is.
module.leafBlower.desc=Create a torrent of air to knock plants out of the ground and leaves off of trees.
module.mobRepulsor.desc=Pushes mobs away from you when activated, but constantly drains power. It is highly recommended that you set this module to a keybind because of the high energy draw.
module.flintAndSteel.desc=A portable igniter that creates fire through the power of energy.
module.clock.desc=A clock on the run that shows you the time, no matter where you are. Toggleable by keybinds.
module.compass.desc=A compass on the run that shows you your direction, no matter where you are. Toggleable by keybinds.
module.waterTank.desc=Store water which can later be used to cool yourself in emergency situations.
module.teMultimeter.desc=A prototype multi-use probe integrated into your power tool.
module.appengWireless.desc=An Applied Energistics wireless terminal integrated into your power tool.
module.appengECWirelessFluid.desc=An Applied Energistics ExtraCells wireless fluid terminal integrated into your power tool.
module.advSolarGenerator.desc=A solar generator with 3 times the power generation of the standard solar generator.
module.nitrogenCoolingSystem.desc=Cools down heat-producing modules even faster than the standard cooling system.
module.mechAssistance.desc=Robotic assistance to reduce the effect of weight on the user
module.cmPSD.desc=A Compact Machines Personal Shrinking Device integrated into your power tool.
module.omniProbe.desc=A prototype multi-use probe integrated into your power tool.
module.dimRiftGen.desc=Generate a tear in the space-time continuum that will teleport the player to its relative coordinates in the nether or overworld.
gui.noModulesFound.line1=No modular powersuit items
gui.noModulesFound.line2=found in inventory. Make some!
@ -139,8 +197,24 @@ gui.pressKey=Press Key
gui.keybindInstructions1=Use 'new' to bind new keys.
gui.keybindInstructions2=Drag and drop modules to bind them to keys.
gui.keybindInstructions3=Drop keys on 'trash' to unbind them.
gui.keybindInstructions4=Right-click keybinds to add them to the HUD.
gui.keybindTaken=Taken!
gui.tab.tinker=Tinker
gui.tab.keybinds=Keybinds
gui.tab.visual=Visual
gui.tab.visual=Visual
gui.equippedTotals=Equipped Totals
gui.energyStorage=Energy Storage
gui.weight=Weight
gui.armor=Armor
nei.jsonShaped=JSON Shaped
tooltip.pressShift=Press SHIFT for more information.
tooltip.componentTooltip=For use in Tinker Table.
tooltip.changeModes=Change modes: Sneak+mousewheel.
tooltip.energy=Energy:
tooltip.noModules=No installed modules! This item is useless until you add some modules at a Tinker Table.
tooltip.installedModules=Installed Modules:
tooltip.mode=Mode:

View file

@ -1,6 +1,3 @@
Made by users: Adaptivity
Last edited on 9/08/15
tile.luxCapacitor.name=Конденсатор света
tile.tinkerTable.name=Верстак для создания силовой брони
@ -30,6 +27,13 @@ item.powerArmorComponent.componentControlCircuit.name=Микросхема уп
item.powerArmorComponent.componentMyofiberGel.name=Гель из мышечного волокна
item.powerArmorComponent.componentArtificialMuscle.name=Искусственные мышцы
item.powerArmorComponent.componentSolarPanel.name=Solar Panel
item.powerArmorComponent.componentMagnet.name=Magnet
item.powerArmorComponent.componentComputerChip.name=Computer Chip
item.powerArmorComponent.componentLiquidNitrogen.name=Liquid Nitrogen Bucket
item.powerArmorComponent.componentRubberHose.name=Insulated Rubber Hose
item.powerArmorComponent.componentRawCarbon.name=Raw Carbon
module.basicPlating.name=Железная обшивка
module.diamondPlating.name=Алмазная обшивка
module.energyShield.name=Энергетический щит
@ -81,6 +85,30 @@ module.airtightSeal.name=Герметичность
module.citizenJoe.name=Броня гражданина Джо
module.sonicWeapon.name=Звуковое оружие
module.portableCraftingTable.name=In-Place Assembler
module.kineticGenerator.name=Kinetic Generator
module.solarGenerator.name=Solar Generator
module.thermalGenerator.name=Thermal Generator
module.autoFeeder.name=Auto-Feeder
module.magnet.name=Magnet
module.oreScanner.name=Ore Scanner
module.leafBlower.name=Leaf Blower
module.mobRepulsor.name=Mob Repulsor
module.flintAndSteel.name=Flint and Steel
module.clock.name=Clock
module.compass.name=Compass
module.lightningSummoner.name=Lightning Summoner
module.waterTank.name=Water Tank
module.teMultimeter.name=TE Multimeter
module.appengWireless.name=AppEng Wireless Terminal
module.appengECWirelessFluid.name=ExtraCells Wireless Fluid Terminal
module.advSolarGenerator.name=High Efficiency Solar Generator
module.nitrogenCoolingSystem.name=Liquid Nitrogen Cooling System
module.mechAssistance.name=Mechanical Assistance
module.cmPSD.name=Personal Shrinking Device
module.omniProbe.name=Prototype OmniProbe
module.dimRiftGen.name=Dimensional Tear Generator
module.basicPlating.desc=Основная обшивка достаточна тяжела, но хорошо защищает.
module.diamondPlating.desc=Продвинутая обшивка легче, прочнее и защищает ещё лучше основной, но её непросто получить.
module.energyShield.desc=Энергетические щиты намного легче обшивок, но потребляют энергию.
@ -92,6 +120,7 @@ module.shears.desc=Подходят для стрижки листьев, шер
module.hoe.desc=Автоматическое вспахивающее дополнение, подходящее для вспахивания больших кусков земли.
module.luxCapacitor.desc=Излучает практически бесконечное число источников света на стены.
module.omniwrench.desc=Ключ, который может взаимодействовать почти с каждым модом.
module.fieldTinkerer.desc=Maybe you can't memorize the blueprints, but you should at least be able to fine tune your modules without Inspiration™ Inc. LLC.
module.meleeAssist.desc=Простое дополнение, усиливает удары Вашего силового инструмента.
module.plasmaCannon.desc=Use electrical arcs in a containment field to superheat air to a plasma and launch it at enemies.
module.railgun.desc=Сборка, которая ускоряет снаряд до сверхзвуковой скорости, применяя магнитную силу. Большая отдача.
@ -100,10 +129,15 @@ module.basicBattery.desc=Аккумулятор, позволяющий пред
module.advancedBattery.desc=Продвинутый аккумулятор, позволяющий предмету хранить больше энергии.
module.eliteBattery.desc=Самый продвинутый аккумулятор, позволяющий предмету хранить ещё больше энергии.
module.parachute.desc=Парашют для замедления падений. Активируется нажатием клавиши приседания (по-умолч. Shift) в воздухе.
module.glider.desc=Tack on some wings to turn downward into forward momentum. Press sneak+forward while falling to activate.
module.jetpack.desc=Реактивный ранец позволит Вам прыгать сколько угодно или, по крайней мере, пока у Вас не кончится энергия.
module.sprintAssist.desc=Набор серводвигателей, который поможет Вам бежать (дважды нажмите вперёд) и ходить быстрее.
module.jumpAssist.desc=Ещё один набор серводвигателей, который поможет Вам прыгать выше.
module.swimAssist.desc=By refitting an ion thruster for underwater use, you may be able to add extra forward (or backward) thrust when underwater.
module.climbAssist.desc=Пара дополнительных серводвигателей позволит Вам перешагивать выступы высотой 1 метр.
module.jetBoots.desc=Jet boots are not as strong as a jetpack, but they should at least be strong enough to counteract gravity.
module.shockAbsorber.desc=With some servos, springs, and padding, you should be able to negate a portion of fall damage.
module.waterElectrolyzer.desc=When you run out of air, this module will jolt the water around you, electrolyzing a small bubble to breathe from.
module.nightVision.desc=Пара усиленных очков поможет Вам хорошо видеть как и в ночное время, так и под водой.
module.binoculars.desc=Из-за многочисленных графических проблем с модификацией Optifine, Вы решили взять способность "Приближения" под свой контроль.
module.flightControl.desc=Интегрированная схема управления поможет Вам в полёте. Нажмите Z, чтобы снизиться.
@ -119,9 +153,32 @@ module.hazmat.desc=Защитит Вас от удара электрическ
module.aurameter.desc=Встраивает очки Откровения в Ваш шлем. (Не понижает затраты Вис)
module.airtightSeal.desc=Делает Вашу броню герметичной, позволяет Вам отправиться на другие планеты.
module.grafter.desc=Интегрирует садовый нож модификации Forestry в Ваш силовой инструмент.
module.scoop.desc=Сачок, интегрированный в силовой кулак.
module.apiaristArmor.desc=Интегрирует костюм пчеловода модификации Forestry в Вашу броню.
module.chisel.desc=Это улучшение не позволит Вам обрабатывать блоки, но позволит Вам добывать уже обработанные блоки.
module.scoop.desc=Сачок, интегрированный в силовой кулак.
module.lightningSummoner.desc=Allows you to summon lightning for a large energy cost.
module.portableCraftingTable.desc=A larger crafting grid, on the go.
module.kineticGenerator.desc=Generate power with your movement.
module.solarGenerator.desc=Let the sun power your adventures.
module.thermalGenerator.desc=Generate power from extreme amounts of heat.
module.autoFeeder.desc=Whenever you're hungry, this module will grab the bottom-left-most food item from your inventory and feed it to you, storing the rest for later.
module.magnet.desc=Generates a magnetic field strong enough to attract items towards the player. WARNING: This module drains power continuously. Turn it off when not needed. (Keybind menu: k)
module.oreScanner.desc=A way to see how valuable the land around you is.
module.leafBlower.desc=Create a torrent of air to knock plants out of the ground and leaves off of trees.
module.mobRepulsor.desc=Pushes mobs away from you when activated, but constantly drains power. It is highly recommended that you set this module to a keybind because of the high energy draw.
module.flintAndSteel.desc=A portable igniter that creates fire through the power of energy.
module.clock.desc=A clock on the run that shows you the time, no matter where you are. Toggleable by keybinds.
module.compass.desc=A compass on the run that shows you your direction, no matter where you are. Toggleable by keybinds.
module.waterTank.desc=Store water which can later be used to cool yourself in emergency situations.
module.teMultimeter.desc=A prototype multi-use probe integrated into your power tool.
module.appengWireless.desc=An Applied Energistics wireless terminal integrated into your power tool.
module.appengECWirelessFluid.desc=An Applied Energistics ExtraCells wireless fluid terminal integrated into your power tool.
module.advSolarGenerator.desc=A solar generator with 3 times the power generation of the standard solar generator.
module.nitrogenCoolingSystem.desc=Cools down heat-producing modules even faster than the standard cooling system.
module.mechAssistance.desc=Robotic assistance to reduce the effect of weight on the user
module.cmPSD.desc=A Compact Machines Personal Shrinking Device integrated into your power tool.
module.omniProbe.desc=A prototype multi-use probe integrated into your power tool.
module.dimRiftGen.desc=Generate a tear in the space-time continuum that will teleport the player to its relative coordinates in the nether or overworld.
gui.noModulesFound.line1=Части модульной силовой брони
gui.noModulesFound.line2=не найдены в инвентаре. Сделайте несколько!
@ -152,3 +209,11 @@ gui.weight=Вес
gui.armor=Броня
nei.jsonShaped=Форменное JSON
tooltip.pressShift=Press SHIFT for more information.
tooltip.componentTooltip=For use in Tinker Table.
tooltip.changeModes=Change modes: Sneak+mousewheel.
tooltip.energy=Energy:
tooltip.noModules=No installed modules! This item is useless until you add some modules at a Tinker Table.
tooltip.installedModules=Installed Modules:
tooltip.mode=Mode:

View file

@ -1,5 +1,5 @@
Made by users: crafteverywhere, 3TUSK, Joccob
Last edited on 8/30/15 1:35 AM EST
# Made by users: crafteverywhere, 3TUSK, Joccob
# Last edited on 8/30/15 1:35 AM EST
tile.luxCapacitor.name=光能容器
tile.tinkerTable.name=动力装甲改装台

View file

@ -27,7 +27,8 @@
"Thaumcraft",
"GalacticraftCore",
"numina",
"chisel"
"chisel",
"ae2wct"
],
"useDependencyInformation": true