More Scala to Java porting. Not much left

This commit is contained in:
Leon 2016-11-02 19:07:20 -04:00
parent f13f528661
commit acbf07b09d
19 changed files with 1125 additions and 566 deletions

View file

@ -4,11 +4,12 @@ import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.powersuits.item.ModeChangingModularItem;
import net.machinemuse.powersuits.item.IModeChangingModularItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -34,6 +35,7 @@ public class ModuleManager {
return playerTickModules;
}
@Nullable
public static IPowerModule getModule(String key) {
return moduleMap.get(key);
}
@ -140,10 +142,10 @@ public class ModuleManager {
// playerEntity.sendChatToPlayer("Server has disallowed this module. Sorry!");
return false;
}
if (module instanceof IRightClickModule && itemStack.getItem() instanceof ModeChangingModularItem) {
if (module instanceof IRightClickModule && itemStack.getItem() instanceof IModeChangingModularItem) {
// MuseLogger.logDebug("Module: " + moduleName + " vs Mode: " +
// MuseItemUtils.getActiveMode(itemStack));
ModeChangingModularItem item = (ModeChangingModularItem) itemStack.getItem();
IModeChangingModularItem item = (IModeChangingModularItem) itemStack.getItem();
return moduleName.equals(item.getActiveMode(itemStack));
} else {

View file

@ -61,7 +61,6 @@ public class ModuleTweakFrame extends ScrollableFrame {
propertyStrings = null;
}
if (selectedSlider != null) {
System.out.println("moving slider name: " + selectedSlider.name());
selectedSlider.moveSlider(mousex, mousey);
}

View file

@ -6,7 +6,8 @@ import cpw.mods.fml.common.gameevent.InputEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.machinemuse.powersuits.common.ModularPowersuits;
import net.machinemuse.powersuits.item.ModeChangingModularItem$;
import net.machinemuse.powersuits.item.IModeChangingModularItem;
import net.machinemuse.powersuits.item.ModeChangingModularItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.settings.KeyBinding;
@ -58,11 +59,12 @@ public class KeybindKeyHandler {
}
if (key == cycleToolBackward.getKeyCode()) {
Minecraft.getMinecraft().playerController.updateController();
ModeChangingModularItem$.MODULE$.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1);
ModeChangingModularItem.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, 1);
}
if (key == cycleToolForward.getKeyCode()) {
Minecraft.getMinecraft().playerController.updateController();
ModeChangingModularItem$.MODULE$.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1);
ModeChangingModularItem.cycleModeForItem(player.inventory.getStackInSlot(player.inventory.currentItem), player, -1);
}
} else {
if (Minecraft.getMinecraft().thePlayer != null && key == goDownKey.getKeyCode()) {
@ -70,5 +72,4 @@ public class KeybindKeyHandler {
}
}
}
}

View file

@ -1,56 +1,46 @@
package net.machinemuse.powersuits.item;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.common.Config$;
import net.machinemuse.general.gui.MuseIcon;
import scala.collection.mutable.StringBuilder;
import net.minecraft.item.Item;
import net.minecraft.entity.item.EntityMinecart;
import net.machinemuse.utils.MuseHeatUtils;
import net.machinemuse.powersuits.powermodule.tool.GrafterModule;
import net.machinemuse.api.IPowerModule;
import scala.reflect.Manifest;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import scala.reflect.ManifestFactory$;
import net.machinemuse.numina.scala.OptionCast$;
import net.minecraft.item.EnumAction;
import net.minecraft.entity.Entity;
import scala.runtime.NonLocalReturnControl;
import scala.runtime.BoxedUnit;
import scala.Function1;
import java.util.List;
import scala.collection.JavaConversions$;
import net.minecraft.world.World;
import net.minecraft.util.Vec3;
import net.minecraft.util.DamageSource;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.powersuits.powermodule.weapon.MeleeAssistModule;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.powersuits.powermodule.tool.OmniWrenchModule;
import net.minecraft.entity.EntityLivingBase;
import appeng.api.implementations.items.IAEWrench;
import buildcraft.api.tools.IToolWrench;
import cofh.api.item.IToolHammer;
import com.bluepowermod.api.misc.IScrewdriver;
import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.block.Block;
import net.machinemuse.numina.item.ModeChangingItem;
import net.machinemuse.numina.item.ModeChangingItem$class;
import scala.collection.Seq;
import net.minecraft.util.IIcon;
import scala.Option;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import scala.reflect.ScalaSignature;
import cpw.mods.fml.common.Optional;
import mekanism.api.IMekWrench;
import crazypants.enderio.api.tool.ITool;
import com.bluepowermod.api.misc.IScrewdriver;
import buildcraft.api.tools.IToolWrench;
import appeng.api.implementations.items.IAEWrench;
import mods.railcraft.api.core.items.IToolCrowbar;
import powercrystals.minefactoryreloaded.api.IMFRHammer;
import cofh.api.item.IToolHammer;
import forestry.api.arboriculture.IToolGrafter;
import mekanism.api.IMekWrench;
import mods.railcraft.api.core.items.IToolCrowbar;
import net.machinemuse.api.IPowerModule;
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.ModeChangingItem;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.powermodule.tool.GrafterModule;
import net.machinemuse.powersuits.powermodule.tool.OmniWrenchModule;
import net.machinemuse.powersuits.powermodule.weapon.MeleeAssistModule;
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.item.EntityMinecart;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.IIcon;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import powercrystals.minefactoryreloaded.api.IMFRHammer;
import javax.annotation.Nullable;
import java.util.List;
/**
* Describes the modular power tool.
@ -71,13 +61,13 @@ import forestry.api.arboriculture.IToolGrafter;
@Optional.Interface(iface = "cofh.api.item.IToolHammer", modid = "CoFHCore", striprefs = true),
@Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft|Core", striprefs = true),
@Optional.Interface(iface = "appeng.api.implementations.items.IAEWrench", modid = "appliedenergistics2", striprefs = true) })
public class ItemPowerFist extends ItemElectricTool implements IToolGrafter, IToolHammer, IMFRHammer, IToolCrowbar, IAEWrench, IToolWrench, IScrewdriver, mrtjp.projectred.api.IScrewdriver, ITool, IMekWrench, ModeChangingModularItem
public class ItemPowerFist extends ItemElectricTool implements IToolGrafter, IToolHammer, IMFRHammer, IToolCrowbar, IAEWrench, IToolWrench, IScrewdriver, mrtjp.projectred.api.IScrewdriver, ITool, IMekWrench, IModeChangingModularItem
{
private final String iconpath = MuseIcon.ICON_PREFIX + "handitem";
public ItemPowerFist() {
super(0.0f, Item.ToolMaterial.EMERALD);
// ModeChangingItem$class.$init$(this);
// ModeChangingModularItem$class.$init$(this);
// IModeChangingItem$class.$init$(this);
// IModeChangingModularItem$class.$init$(this);
this.setMaxStackSize(1);
this.setMaxDamage(0);
this.setCreativeTab(Config.getCreativeTab());
@ -389,42 +379,50 @@ public class ItemPowerFist extends ItemElectricTool implements IToolGrafter, ITo
return this.getActiveMode(entityPlayer.getHeldItem(), entityPlayer).equals(OmniWrenchModule.MODULE_OMNI_WRENCH);
}
/* A D D E D B Y D E C O M P I L E R ------------------------------------------------------------------------------ */
public Option<IIcon> getModeIcon(String mode, ItemStack stack, EntityPlayer player) {
return (Option<IIcon>)ModeChangingModularItem$class.getModeIcon(this, mode, stack, player);
}
public Seq<String> getValidModes(ItemStack stack, EntityPlayer player) {
return (Seq<String>)ModeChangingModularItem$class.getValidModes(this, stack, player);
}
public Seq<String> getValidModes(ItemStack stack) {
return (Seq<String>)ModeChangingModularItem$class.getValidModes(this, stack);
}
public String getActiveMode(ItemStack stack) {
return ModeChangingModularItem$class.getActiveMode(this, stack);
}
/* A D D E D B Y D E C O M P I L E R ------------------------------------------------------------------------------ */
@Override
public void setActiveMode(ItemStack stack, String newMode) {
ModeChangingItem$class.setActiveMode(this, stack, newMode);
ModeChangingItem.getInstance().setActiveMode(stack, newMode);
}
@Override
public String getActiveMode(ItemStack stack, EntityPlayer player) {
return ModeChangingItem$class.getActiveMode(this, stack, player);
return ModeChangingItem.getInstance().getActiveMode(stack, player);
}
@Override
public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) {
ModeChangingItem$class.cycleMode(this, stack, player, dMode);
ModeChangingItem.getInstance().cycleMode(stack, player, dMode);
}
@Override
public String nextMode(ItemStack stack, EntityPlayer player) {
return ModeChangingItem$class.nextMode(this, stack, player);
return ModeChangingItem.getInstance().nextMode(stack, player);
}
@Override
public String prevMode(ItemStack stack, EntityPlayer player) {
return ModeChangingItem$class.prevMode(this, stack, player);
return ModeChangingItem.getInstance().prevMode(stack, player);
}
@Nullable
@Override
public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) {
return ModeChangingModularItem.getInstance().getModeIcon(mode, stack, player);
}
@Override
public List<String> getValidModes(ItemStack stack, EntityPlayer player) {
return ModeChangingModularItem.getInstance().getValidModes(stack, player);
}
@Override
public List<String> getValidModes(ItemStack stack) {
return ModeChangingModularItem.getInstance().getValidModes(stack);
}
@Override
public String getActiveMode(ItemStack stack) {
return ModeChangingModularItem.getInstance().getActiveMode(stack);
}
}

View file

@ -46,8 +46,9 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
renderSpec.setIntArray("colours", intArray)
}
val player = Minecraft.getMinecraft.thePlayer
if (player.worldObj.isRemote)
if (player.worldObj.isRemote) {
PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, colours))
}
Some(renderSpec.getTag("colours").asInstanceOf[NBTTagIntArray])
}
}

View file

@ -1,130 +1,140 @@
//package net.machinemuse.general.gui.frame;
//
//import net.machinemuse.general.gui.clickable.ClickableItem;
//import net.machinemuse.numina.general.MuseMathUtils;
//import net.machinemuse.numina.geometry.Colour;
//import net.machinemuse.numina.geometry.DrawableMuseRect;
//import net.machinemuse.numina.geometry.MusePoint2D;
//import net.machinemuse.powersuits.item.ItemPowerArmor;
//import net.machinemuse.utils.MuseItemUtils;
//import net.minecraft.client.Minecraft;
//import net.minecraft.nbt.NBTTagCompound;
//import org.lwjgl.input.Mouse;
//import org.lwjgl.opengl.GL11;
//import net.machinemuse.powersuits.client.render.item.ArmorModel;
//
//import java.util.List;
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 12:25 PM, 5/2/13
// *
// * Ported to Java by lehjr on 10/21/16.
// */
//public class ItemModelViewFrame implements IGuiFrame {
// 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;
//
// 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.topleft = topleft;
// this.bottomright = bottomright;
// this.borderColour = borderColour;
// this.insideColour = insideColour;
// border = new DrawableMuseRect(topleft, bottomright, borderColour, insideColour);
// }
//
// int getArmorSlot() {
// return ((ItemPowerArmor)getSelectedItem().getItem().getItem()).armorType;
// }
//
// ClickableItem getSelectedItem() {
// return itemSelector.getSelectedItem();
// }
//
// NBTTagCompound getRenderTag() {
// return MuseItemUtils.getMuseRenderTag(getSelectedItem().getItem(), getArmorSlot());
// }
//
// @Override
// public void onMouseDown(double x, double y, int button) {
// if (border.containsPoint(x, y)) {
// dragging = button;
// anchorx = x;
// anchory = y;
// }
// }
//
// @Override
// public void onMouseUp(double x, double y, int button) {
// dragging = -1;
// }
//
// @Override
// public void update(double mousex, double mousey) {
// if (border.containsPoint(mousex, mousey)) {
// double dscroll = (lastdWheel - Mouse.getDWheel()) / 120;
// zoom = zoom * Math.pow(1.1, dscroll);
// lastdWheel = Mouse.getDWheel();
// }
// double dx = mousex - anchorx;
// double dy = mousey - anchory;
// switch(dragging) {
// case -1:
// break;
// case 0:
// rotx = MuseMathUtils.clampDouble((rotx + dy), -90, 90);
// roty = (roty - dx);
// anchorx = mousex;
// anchory = mousey;
// break;
// case 1:
// offsetx = (offsetx + dx);
// offsety = (offsety + dy);
// anchorx = mousex;
// anchory = mousey;
// break;
// default:
// break;
// }
// }
//
// @Override
// public void draw() {
// Minecraft mc = Minecraft.getMinecraft();
// border.draw();
// if (itemSelector.getSelectedItem().equals(null) || !(getSelectedItem().getItem().getItem() instanceof ItemPowerArmor))
// return;
// GL11.glPushMatrix();
// ArmorModel.instance.renderSpec = MuseItemUtils.getMuseRenderTag(getSelectedItem().getItem(), getArmorSlot());
// ArmorModel.instance.visibleSection = getArmorSlot();
// GL11.glTranslated(border.centerx() + offsetx, border.centery() + offsety, 0);
// GL11.glScaled(zoom, zoom, zoom);
// GL11.glClear(GL11.GL_DEPTH_BUFFER_BIT);
// GL11.glDisable(GL11.GL_CULL_FACE);
// GL11.glRotatef((float)rotx, 1, 0, 0);
// GL11.glRotatef((float)roty, 0, 1, 0);
// GL11.glTranslated(0, -getArmorSlot() / 2.0, 0);
// ArmorModel.instance.render(mc.thePlayer, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625f);
// GL11.glPopMatrix();
// }
//
// @Override
// public List<String> getToolTip(int x, int y) {
// return null;
// }
//}
package net.machinemuse.general.gui.frame;
import net.machinemuse.general.gui.clickable.ClickableItem;
import net.machinemuse.numina.general.MuseMathUtils;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.numina.geometry.DrawableMuseRect;
import net.machinemuse.numina.geometry.MusePoint2D;
import net.machinemuse.powersuits.client.render.item.ArmorModel$;
import net.machinemuse.powersuits.item.ItemPowerArmor;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.ModelBiped;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.GL11;
import scala.None$;
import java.util.List;
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:25 PM, 5/2/13
*
* Ported to Java by lehjr on 11/2/16.
*/
public class ItemModelViewFrame implements IGuiFrame
{
private final ItemSelectionFrame itemSelector;
private final DrawableMuseRect border;
private double anchorx;
private double anchory;
private int dragging;
private double lastdWheel;
private double rotx;
private double roty;
private double offsetx;
private double offsety;
private double zoom;
public ItemModelViewFrame(final ItemSelectionFrame itemSelector, final MusePoint2D topleft, final MusePoint2D bottomright, final Colour borderColour, final Colour insideColour) {
this.itemSelector = itemSelector;
this.border = new DrawableMuseRect(topleft, bottomright, borderColour, insideColour);
this.anchorx = 0.0;
this.anchory = 0.0;
this.dragging = -1;
this.lastdWheel = 0.0;
this.rotx = 0.0;
this.roty = 0.0;
this.offsetx = 0.0;
this.offsety = 0.0;
this.zoom = 64.0;
}
public int getArmorSlot() {
return ((ItemPowerArmor)this.getSelectedItem().getItem().getItem()).armorType;
}
public ClickableItem getSelectedItem() {
return this.itemSelector.getSelectedItem();
}
public NBTTagCompound getRenderTag() {
return MuseItemUtils.getMuseRenderTag(this.getSelectedItem().getItem(), this.getArmorSlot());
}
@Override
public void onMouseDown(final double x, final double y, final int button) {
if (this.border.containsPoint(x, y)) {
this.dragging = button;
this.anchorx = x;
this.anchory = y;
}
}
@Override
public void onMouseUp(final double x, final double y, final int button) {
this.dragging = -1;
}
@Override
public void update(final double mousex, final double mousey) {
if (this.border.containsPoint(mousex, mousey)) {
final double dscroll = (this.lastdWheel - Mouse.getDWheel()) / 120;
this.zoom = (this.zoom * Math.pow(1.1, dscroll));
this.lastdWheel = Mouse.getDWheel();
}
final double dx = mousex - this.anchorx;
final double dy = mousey - this.anchory;
switch (this.dragging) {
default: {
final None$ module$ = None$.MODULE$;
break;
}
case 1: {
this.offsetx = this.offsetx + dx;
this.offsety = this.offsety + dy;
this.anchorx = mousex;
this.anchory = mousey;
break;
}
case 0: {
this.rotx = MuseMathUtils.clampDouble(this.rotx + dy, -90.0, 90.0);
this.roty = this.roty - dx;
this.anchorx = mousex;
this.anchory = mousey;
break;
}
case -1: {
final None$ module$2 = None$.MODULE$;
break;
}
}
}
@Override
public void draw() {
final Minecraft mc = Minecraft.getMinecraft();
this.border.draw();
if (this.itemSelector.getSelectedItem() != null && this.getSelectedItem().getItem().getItem() instanceof ItemPowerArmor) {
GL11.glPushMatrix();
ArmorModel$.MODULE$.instance().renderSpec_$eq(MuseItemUtils.getMuseRenderTag(this.getSelectedItem().getItem(), this.getArmorSlot()));
ArmorModel$.MODULE$.instance().visibleSection_$eq(this.getArmorSlot());
GL11.glTranslated(this.border.centerx() + this.offsetx, this.border.centery() + this.offsety, 0.0);
GL11.glScaled(this.zoom, this.zoom, this.zoom);
GL11.glClear(256);
GL11.glDisable(2884);
GL11.glRotatef((float)this.rotx, 1.0f, 0.0f, 0.0f);
GL11.glRotatef((float)this.roty, 0.0f, 1.0f, 0.0f);
GL11.glTranslated(0.0, -this.getArmorSlot() / 2.0, 0.0);
((ModelBiped)ArmorModel$.MODULE$.instance()).render((Entity)mc.thePlayer, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0625f);
GL11.glPopMatrix();
}
}
@Override
public List<String> getToolTip(final int x, final int y) {
return null;
}
}

View file

@ -1,97 +0,0 @@
package net.machinemuse.general.gui.frame
import java.util
import net.machinemuse.numina.general.MuseMathUtils
import net.machinemuse.numina.geometry.{Colour, DrawableMuseRect, MusePoint2D}
import net.machinemuse.powersuits.client.render.item.ArmorModel
import net.machinemuse.powersuits.item.ItemPowerArmor
import net.machinemuse.utils.MuseItemUtils
import net.minecraft.client.Minecraft
import net.minecraft.nbt.NBTTagCompound
import org.lwjgl.input.Mouse
import org.lwjgl.opengl.GL11._
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:25 PM, 5/2/13
*/
class ItemModelViewFrame(itemSelector: ItemSelectionFrame, topleft: MusePoint2D, bottomright: MusePoint2D, borderColour: Colour, insideColour: Colour)
extends IGuiFrame {
val border = new DrawableMuseRect(topleft, bottomright, borderColour, insideColour)
var anchorx: Double = 0
var anchory: Double = 0
var dragging: Int = -1
var lastdWheel: Double = 0
var rotx: Double = 0
var roty: Double = 0
var offsetx: Double = 0
var offsety: Double = 0
var zoom: Double = 64
def getArmorSlot = getSelectedItem.getItem.getItem.asInstanceOf[ItemPowerArmor].armorType
def getSelectedItem = itemSelector.getSelectedItem
def getRenderTag: NBTTagCompound = MuseItemUtils.getMuseRenderTag(getSelectedItem.getItem, getArmorSlot)
def onMouseDown(x: Double, y: Double, button: Int) {
if (border.containsPoint(x, y)) {
dragging = button
anchorx = x
anchory = y
}
}
def onMouseUp(x: Double, y: Double, button: Int) {
dragging = -1
}
def update(mousex: Double, mousey: Double) {
if (border.containsPoint(mousex, mousey)) {
val dscroll: Double = (lastdWheel - Mouse.getDWheel) / 120
zoom = zoom * Math.pow(1.1, dscroll)
lastdWheel = Mouse.getDWheel
}
val dx = mousex - anchorx
val dy = mousey - anchory
dragging match {
case -1 => None
case 0 => {
rotx = MuseMathUtils.clampDouble((rotx + dy), -90, 90)
roty = (roty - dx)
anchorx = mousex
anchory = mousey
}
case 1 => {
offsetx = (offsetx + dx)
offsety = (offsety + dy)
anchorx = mousex
anchory = mousey
}
case _ => None
}
}
def draw() {
val mc: Minecraft = Minecraft.getMinecraft
border.draw()
if (itemSelector.getSelectedItem == null || !getSelectedItem.getItem.getItem.isInstanceOf[ItemPowerArmor]) return
glPushMatrix()
ArmorModel.instance.renderSpec = MuseItemUtils.getMuseRenderTag(getSelectedItem.getItem, getArmorSlot)
ArmorModel.instance.visibleSection = getArmorSlot
glTranslated(border.centerx + offsetx, border.centery + offsety, 0)
glScaled(zoom, zoom, zoom)
glClear(GL_DEPTH_BUFFER_BIT)
glDisable(GL_CULL_FACE)
glRotatef(rotx.toFloat, 1, 0, 0)
glRotatef(roty.toFloat, 0, 1, 0)
glTranslated(0, -getArmorSlot / 2.0, 0)
ArmorModel.instance.render(mc.thePlayer, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625f)
glPopMatrix()
}
def getToolTip(x: Int, y: Int): util.List[String] = null
}

View file

@ -46,9 +46,6 @@ class PartManipContainer(val itemSelect: ItemSelectionFrame, val colourSelect: C
}
}
//
// override def onMouseUp(x: Double, y: Double, button: Int) {}
//
override def update(mousex: Double, mousey: Double) {
super.update(mousex, mousey)
if (lastItemSlot != getItemSlot) {
@ -77,6 +74,4 @@ class PartManipContainer(val itemSelect: ItemSelectionFrame, val colourSelect: C
glPopMatrix()
super.postDraw()
}
// override def getToolTip(x: Int, y: Int): util.List[String] = ???
}

View file

@ -1,226 +1,546 @@
//package net.machinemuse.general.gui.frame;
//
//import net.machinemuse.general.gui.clickable.ClickableItem;
//import net.machinemuse.numina.general.MuseLogger;
//import net.machinemuse.numina.general.MuseMathUtils;
//import net.machinemuse.numina.geometry.Colour;
//import net.machinemuse.numina.geometry.MuseRect;
//import net.machinemuse.numina.geometry.MuseRelativeRect;
//import net.machinemuse.numina.network.PacketSender;
//import net.machinemuse.numina.render.RenderState;
//import net.machinemuse.powersuits.client.render.modelspec.ModelPartSpec;
//import net.machinemuse.powersuits.client.render.modelspec.ModelRegistry;
//import net.machinemuse.powersuits.client.render.modelspec.ModelSpec;
//import net.machinemuse.powersuits.network.packets.MusePacketCosmeticInfo;
//import net.machinemuse.utils.MuseItemUtils;
//import net.machinemuse.utils.render.GuiIcons;
//import net.machinemuse.utils.render.MuseRenderer;
//import net.minecraft.client.Minecraft;
//import net.minecraft.client.entity.EntityClientPlayerMP;
//import net.minecraft.entity.Entity;
//import net.minecraft.entity.player.EntityPlayer;
//import net.minecraft.item.ItemArmor;
//import net.minecraft.nbt.NBTBase;
//import net.minecraft.nbt.NBTTagCompound;
//import org.lwjgl.opengl.GL11;
//import scala.*;
//import scala.collection.TraversableOnce;
//import scala.reflect.ClassTag$;
//
//import java.io.Serializable;
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 1:46 AM, 30/04/13
// *
// * Ported to Java by lehjr on 10/21/16.
// * Ported to Java by lehjr on 11/2/16.
// */
//
//public class PartManipSubFrame {
// ModelPartSpec[] specs;
// boolean open;
// double mousex;
// double mousey;
//// Array<ModelPartSpec> specs;
//// boolean open;
//// double mousex;
//// double mousey;
//// ModelSpec model;
//// ColourPickerFrame colourframe;
//// ItemSelectionFrame itemSelector;
//// MuseRelativeRect border;
//
//// import net.machinemuse.general.gui.clickable.ClickableItem
//// import net.machinemuse.numina.general.{MuseLogger, MuseMathUtils}
//// import net.machinemuse.numina.geometry.{Colour, MuseRect, MuseRelativeRect}
//// import net.machinemuse.numina.network.PacketSender
//// import net.machinemuse.numina.render.RenderState
//// import net.machinemuse.powersuits.client.render.modelspec.{ModelPartSpec, ModelRegistry, ModelSpec}
//// import net.machinemuse.powersuits.network.packets.MusePacketCosmeticInfo
//// import net.machinemuse.utils.MuseItemUtils
//// import net.machinemuse.utils.render.GuiIcons.GuiIcon
//// import net.machinemuse.utils.render.{GuiIcons, MuseRenderer}
//// import net.minecraft.client.Minecraft
//// import net.minecraft.item.ItemArmor
//// import net.minecraft.nbt.NBTTagCompound
//// import org.lwjgl.opengl.GL11._
// private ModelSpec model;
// private ColourPickerFrame colourframe;
// private ItemSelectionFrame itemSelector;
// private MuseRelativeRect border;
// private ModelPartSpec[] specs;
// private boolean open;
// private double mousex;
// private double mousey;
//
// public PartManipSubFrame(ModelSpec model, ColourPickerFrame colourframe, ItemSelectionFrame itemSelector, MuseRelativeRect border) {
//// this.specs = model.apply().values().filter(spec = > isValidArmor(getSelectedItem, spec.slot)).toArray
// this.model = model;
// this.colourframe = colourframe;
// this.itemSelector = itemSelector;
// this.border = border;
//
//
//
// this.specs = (ModelPartSpec[])((TraversableOnce)model.apply().values().filter((Function1)new Serializable() {
// public boolean apply(ModelPartSpec spec) {
// return PartManipSubFrame.this.isValidArmor(PartManipSubFrame.this.getSelectedItem(), spec.slot());
// }
// })).toArray(ClassTag$.MODULE$.apply((Class)ModelPartSpec.class));
//
//
//
//
// this.open = true;
// this.mousex = 0;
// this.mousey = 0;
// this.mousex = 0.0;
// this.mousey = 0.0;
// }
//
// int getArmorSlot(){
// return getSelectedItem().getItem.getItem.asInstanceOf[ItemArmor].armorType
// public int getArmorSlot() {
// return ((ItemArmor)this.getSelectedItem().getItem().getItem()).armorType;
// }
//
// int getSelectedItem() {
// return itemSelector().getSelectedItem();
// // def getSelectedItem = itemSelector.getSelectedItem
// public ClickableItem getSelectedItem() {
// return this.itemSelector().getSelectedItem();
// }
//
// NBTTagCompound getRenderTag() {
// return MuseItemUtils.getMuseRenderTag(getSelectedItem().getItem(), getArmorSlot());
// public NBTTagCompound getRenderTag() {
// return MuseItemUtils.getMuseRenderTag(this.getSelectedItem().getItem(), this.getArmorSlot());
// }
//
// NBTTagCompound getItemTag() {
// return MuseItemUtils.getMuseItemTag(getSelectedItem().getItem());
// public NBTTagCompound getItemTag() {
// return MuseItemUtils.getMuseItemTag(this.getSelectedItem().getItem());
// }
//
// boolean isValidArmor(ClickableItem clickie, int slot) {
// return (clickie == null) ? false : clickie.getItem().getItem().isValidArmor(clickie.getItem(), slot, Minecraft.getMinecraft().thePlayer);
// public boolean isValidArmor(ClickableItem clickie, int slot) {
// return clickie != null && clickie.getItem().getItem().isValidArmor(clickie.getItem(), slot, (Entity) Minecraft.getMinecraft().thePlayer);
// }
//
// NBTTagCompound getSpecTag(ModelPartSpec spec) {
// return getRenderTag().getCompoundTag(ModelRegistry.makeName(spec));
// public NBTTagCompound getSpecTag(ModelPartSpec spec) {
// return this.getRenderTag().getCompoundTag(ModelRegistry.makeName(spec));
// }
//
// NBTTagCompound getOrDontGetSpecTag(ModelPartSpec spec) {
//
//// def getOrDontGetSpecTag(spec: ModelPartSpec): Option[NBTTagCompound] = {
//// val name = ModelRegistry.makeName(spec)
//// if (!getRenderTag.hasKey(name)) None
//// else Some(getRenderTag.getCompoundTag(name))
//// }
//
// public Option<NBTTagCompound> getOrDontGetSpecTag(ModelPartSpec spec) {
// String name = ModelRegistry.makeName(spec);
// return (!getRenderTag().hasKey(name)) ? null : getRenderTag().getCompoundTag(name);
// return (Option<NBTTagCompound>)(this.getRenderTag().hasKey(name) ? new Some((Object)this.getRenderTag().getCompoundTag(name)) : None$.MODULE$);
// }
//
// NBTTagCompound getOrMakeSpecTag(ModelPartSpec spec) {
//
//
// // def getOrMakeSpecTag(spec: ModelPartSpec): NBTTagCompound = {
//// val name = ModelRegistry.makeName(spec)
//// if (!getRenderTag.hasKey(name)) {
//// val k = new NBTTagCompound()
//// spec.multiSet(k, None, None, None)
//// getRenderTag.setTag(name, k)
//// k
//// } else {
//// getRenderTag.getCompoundTag(name)
//// }
//// }
//
// public NBTTagCompound getOrMakeSpecTag(ModelPartSpec spec) {
// String name = ModelRegistry.makeName(spec);
// if (!getRenderTag().hasKey(name)) {
// NBTTagCompound compoundTag;
// if (this.getRenderTag().hasKey(name)) {
// compoundTag = this.getRenderTag().getCompoundTag(name);
// }
// else {
// NBTTagCompound k = new NBTTagCompound();
// spec.multiSet(k, null, null, null);
// getRenderTag().setTag(name, k);
// return k;
// } else {
// return getRenderTag().getCompoundTag(name);
// spec.multiSet(k, (Option<String>)None$.MODULE$, (Option<Object>)None$.MODULE$, (Option<Object>)None$.MODULE$);
// this.getRenderTag().setTag(name, (NBTBase)k);
// compoundTag = k;
// }
// return compoundTag;
// }
//
// def updateItems() {
// specs = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray
// border.setHeight(if (specs.size > 0) specs.size * 8 + 10 else 0)
//// def updateItems() {
//// specs = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray
//// border.setHeight(if (specs.size > 0) specs.size * 8 + 10 else 0)
//// }
//
// public void updateItems() {
// this.specs = ((ModelPartSpec[])((TraversableOnce)this.model().apply().values().filter((Function1)new PartManipSubFrame$$anonfun$updateItems.PartManipSubFrame$$anonfun$updateItems$1(this))).toArray(ClassTag$.MODULE$.apply((Class)ModelPartSpec.class)));
// this.border().setHeight((Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() > 0) ? (Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() * 8 + 10) : 0.0);
// }
//
// def drawPartial(min: Double, max: Double) {
// if (specs.size > 0) {
// ModelRegistry.getName(model).foreach(s => MuseRenderer.drawString(s, border.left + 8, border.top))
// drawOpenArrow(min, max)
// if (open) {
// ((border.top + 8) /: specs) {
// case (y, spec) => {
// drawSpecPartial(border.left, y, spec, min, max)
// y + 8
// }
// }
//
// // def drawPartial(min: Double, max: Double) {
//// if (specs.size > 0) {
//// ModelRegistry.getName(model).foreach(s => MuseRenderer.drawString(s, border.left + 8, border.top))
//// drawOpenArrow(min, max)
//// if (open) {
//// ((border.top + 8) /: specs) {
//// case (y, spec) => {
//// drawSpecPartial(border.left, y, spec, min, max)
//// y + 8
//// }
//// }
//// }
//// }
//// }
//
// public void drawPartial(double min, double max) {
// if (Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() > 0) {
// ((MuseBiMap<Object, T>)ModelRegistry.getName((T)this.model()).foreach((Function1)new PartManipSubFrame$$anonfun$drawPartial.PartManipSubFrame$$anonfun$drawPartial$1(this));
// this.drawOpenArrow(min, max);
// if (this.open()) {
// Predef$.MODULE$.refArrayOps((Object[])this.specs()).$div$colon((Object)BoxesRunTime.boxToDouble(this.border().top() + 8), (Function2)new PartManipSubFrame$$anonfun$drawPartial.PartManipSubFrame$$anonfun$drawPartial$2(this, min, max));
// }
// }
// }
//
// def decrAbove(index: Int) {
// for (spec <- specs) {
// val tagname = ModelRegistry.makeName(spec)
// val player = Minecraft.getMinecraft.thePlayer
// val tagdata = getOrDontGetSpecTag(spec)
// tagdata.foreach(e => {
// val oldindex = spec.getColourIndex(e)
// if (oldindex >= index && oldindex > 0) {
// spec.setColourIndex(e, oldindex - 1)
// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, e).getPacket131)
// }
// })
// // def decrAbove(index: Int) {
//// for (spec <- specs) {
//// val tagname = ModelRegistry.makeName(spec)
//// val player = Minecraft.getMinecraft.thePlayer
//// val tagdata = getOrDontGetSpecTag(spec)
//// tagdata.foreach(e => {
//// val oldindex = spec.getColourIndex(e)
//// if (oldindex >= index && oldindex > 0) {
//// spec.setColourIndex(e, oldindex - 1)
//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, e).getPacket131)
//// }
//// })
////
//// }
//// }
//
// }
//
// //
// public void decrAbove(int index) {
// Predef$.MODULE$.refArrayOps((Object[])this.specs()).foreach((Function1)new PartManipSubFrame$$anonfun$decrAbove.PartManipSubFrame$$anonfun$decrAbove$1(this, index));
// }
//
// def drawSpecPartial(x: Double, y: Double, spec: ModelPartSpec, ymino: Double, ymaxo: Double) = {
// val tag = getSpecTag(spec)
// val selcomp = if (tag.hasNoTags) 0 else if (spec.getGlow(tag)) 2 else 1
// val selcolour = spec.getColourIndex(tag)
// new GuiIcons.TransparentArmor(x, y, null, null, ymino, null, ymaxo);
// new GuiIcons.NormalArmor(x + 8, y, null, null, ymino, null, ymaxo);
// new GuiIcons.GlowArmor(x + 16, y, null, null, ymino, null, ymaxo);
// new GuiIcons.SelectedArmorOverlay(x + selcomp * 8, y, null, null, ymino, null, ymaxo);
// val textstartx = ((x + 28) /: colourframe.colours) {
// case (acc, colour) =>
// new GuiIcons.ArmourColourPatch(acc, y, new Colour(colour), null, ymino, null, ymaxo);
// acc + 8
// }
//// def drawSpecPartial(x: Double, y: Double, spec: ModelPartSpec, ymino: Double, ymaxo: Double) = {
//// val tag = getSpecTag(spec)
//// val selcomp = if (tag.hasNoTags) 0 else if (spec.getGlow(tag)) 2 else 1
//// val selcolour = spec.getColourIndex(tag)
//// new GuiIcons.TransparentArmor(x, y, null, null, ymino, null, ymaxo)
//// new GuiIcons.NormalArmor(x + 8, y, null, null, ymino, null, ymaxo)
//// new GuiIcons.GlowArmor(x + 16, y, null, null, ymino, null, ymaxo)
//// new GuiIcons.SelectedArmorOverlay(x + selcomp * 8, y, null, null, ymino, null, ymaxo)
//// val textstartx = ((x + 28) /: colourframe.colours) {
//// case (acc, colour) =>
//// new GuiIcons.ArmourColourPatch(acc, y, new Colour(colour), null, ymino, null, ymaxo)
//// acc + 8
//// }
//// if (selcomp > 0) {
//// new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, ymino, null, ymaxo)
//// }
//// MuseRenderer.drawString(spec.displayName, textstartx + 4, y)
//// }
//
// public void drawSpecPartial(double x, double y, ModelPartSpec spec, double ymino, double ymaxo) {
// NBTTagCompound tag = this.getSpecTag(spec);
// int selcomp = tag.hasNoTags() ? 0 : (spec.getGlow(tag) ? 2 : 1);
// int selcolour = spec.getColourIndex(tag);
// new GuiIcons.TransparentArmor(x, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo));
// new GuiIcons.NormalArmor(x + 8, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo));
// new GuiIcons.GlowArmor(x + 16, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo));
// new GuiIcons.SelectedArmorOverlay(x + selcomp * 8, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo));
// double textstartx = BoxesRunTime.unboxToDouble(Predef$.MODULE$.intArrayOps(this.colourframe().colours()).$div$colon((Object)BoxesRunTime.boxToDouble(x + 28), (Function2)new PartManipSubFrame$$anonfun.PartManipSubFrame$$anonfun$1(this, y, ymino, ymaxo)));
// if (selcomp > 0) {
// new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, ymino, null, ymaxo);
// new GuiIcons.SelectedArmorOverlay(x + 28 + selcolour * 8, y, null, null, Predef$.MODULE$.double2Double(ymino), null, Predef$.MODULE$.double2Double(ymaxo));
// }
//
//
// MuseRenderer.drawString(spec.displayName, textstartx + 4, y)
// }
//
// def drawOpenArrow(min: Double, max: Double) {
// RenderState.texturelessOn()
// Colour.LIGHTBLUE.doGL()
// glBegin(GL_TRIANGLES)
// import net.machinemuse.numina.general.MuseMathUtils._
// if (open) {
// glVertex2d(border.left + 3, clampDouble(border.top + 3, min, max))
// glVertex2d(border.left + 5, clampDouble(border.top + 7, min, max))
// glVertex2d(border.left + 7, clampDouble(border.top + 3, min, max))
// } else {
// glVertex2d(border.left + 3, clampDouble(border.top + 3, min, max))
// glVertex2d(border.left + 3, clampDouble(border.top + 7, min, max))
// glVertex2d(border.left + 7, clampDouble(border.top + 5, min, max))
// else {
// BoxedUnit unit = BoxedUnit.UNIT;
// }
// glEnd()
// Colour.WHITE.doGL()
// RenderState.texturelessOff()
// MuseRenderer.drawString(spec.displayName(), textstartx + 4, y);
// }
//
// def getBorder: MuseRect = {
// if (open) border.setHeight(9 + 9 * specs.size)
// else border.setHeight(9)
// border
//
//
//
//
// public void drawOpenArrow(double min, double max) {
// RenderState.texturelessOn();
// Colour.LIGHTBLUE.doGL();
// GL11.glBegin(4);
// if (this.open) {
// GL11.glVertex2d(this.border.left() + 3, MuseMathUtils.clampDouble(this.border.top() + 3, min, max));
// GL11.glVertex2d(this.border.left() + 5, MuseMathUtils.clampDouble(this.border.top() + 7, min, max));
// GL11.glVertex2d(this.border.left() + 7, MuseMathUtils.clampDouble(this.border.top() + 3, min, max));
// }
// else {
// GL11.glVertex2d(this.border.left() + 3, MuseMathUtils.clampDouble(this.border.top() + 3, min, max));
// GL11.glVertex2d(this.border.left() + 3, MuseMathUtils.clampDouble(this.border.top() + 7, min, max));
// GL11.glVertex2d(this.border.left() + 7, MuseMathUtils.clampDouble(this.border.top() + 5, min, max));
// }
// GL11.glEnd();
// Colour.WHITE.doGL();
// RenderState.texturelessOff();
// }
//
// def tryMouseClick(x: Double, y: Double): Boolean = {
// if (x < border.left || x > border.right || y < border.top || y > border.bottom) false
// else if (x > border.left + 2 && x < border.left + 8 && y > border.top + 2 && y < border.top + 8) {
// open = !open
// getBorder
// true
// } else if (x < border.left + 24 && y > border.top + 8) {
// val lineNumber = ((y - border.top - 8) / 8).toInt
// val columnNumber = ((x - border.left) / 8).toInt
// val spec = specs(lineNumber.min(specs.size - 1).max(0))
// MuseLogger.logDebug("Line " + lineNumber + " Column " + columnNumber)
// columnNumber match {
// case 0 => {
// val renderTag = getRenderTag
// val tagname = ModelRegistry.makeName(spec)
// val player = Minecraft.getMinecraft.thePlayer
// renderTag.removeTag(ModelRegistry.makeName(spec))
// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, new NBTTagCompound()).getPacket131)
// updateItems()
// true
//// def getBorder: MuseRect = {
//// if (open) border.setHeight(9 + 9 * specs.size)
//// else border.setHeight(9)
//// border
//// }
//
// public MuseRect getBorder() {
// if (this.open) {
// this.border.setHeight(9 + 9 * this.specs.length);
// }
// else {
// this.border.setHeight(9.0);
// }
// return this.border;
// }
//
// public boolean tryMouseClick(double x, double y) {
// boolean b;
// if (x < this.border.left() || x > this.border.right() || y < this.border.top() || y > this.border.bottom()) {
// b = false;
// }
// else if (x > this.border.left() + 2 && x < this.border.left() + 8 && y > this.border.top() + 2 && y < this.border.top() + 8) {
// this.open =(!this.open);
// this.getborder;
// b = true;
// }
// else if (x < this.border.left() + 24 && y > this.border.top() + 8) {
// int lineNumber = (int)((y - this.border.top() - 8) / 8);
// int columnNumber = (int)((x - this.border.left()) / 8);
// ModelPartSpec spec = this.specs[RichInt$.MODULE$.max$extension(Predef$.MODULE$.intWrapper(RichInt$.MODULE$.min$extension(Predef$.MODULE$.intWrapper(lineNumber), Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() - 1)), 0)];
// MuseLogger.logDebug(new StringBuilder().append((Object)"Line ").append((Object)BoxesRunTime.boxToInteger(lineNumber)).append((Object)" Column ").append((Object)BoxesRunTime.boxToInteger(columnNumber)).toString());
// switch (columnNumber) {
// default: {
// b = false;
// break;
// }
// case 1 => {
// val tagname = ModelRegistry.makeName(spec)
// val player = Minecraft.getMinecraft.thePlayer
// val tagdata = getOrMakeSpecTag(spec)
// spec.setGlow(tagdata, false)
// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
// updateItems()
// true
// case 2: {
// String tagname = ModelRegistry.makeName(spec);
// EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
// NBTTagCompound tagdata = this.getOrMakeSpecTag(spec);
// spec.setGlow(tagdata, true);
// if (player.worldObj.isRemote) {
// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player, this.getSelectedItem().inventorySlot, tagname, tagdata).getPacket131());
// }
// this.updateItems();
// b = true;
// break;
// }
// case 2 => {
// val tagname = ModelRegistry.makeName(spec)
// val player = Minecraft.getMinecraft.thePlayer
// val tagdata = getOrMakeSpecTag(spec)
// spec.setGlow(tagdata, true)
// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
// updateItems()
// true
// case 1: {
// String tagname2 = ModelRegistry.makeName(spec);
// EntityClientPlayerMP player2 = Minecraft.getMinecraft().thePlayer;
// NBTTagCompound tagdata2 = this.getOrMakeSpecTag(spec);
// spec.setGlow(tagdata2, false);
// if (player2.worldObj.isRemote) {
// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player2, this.getSelectedItem().inventorySlot, tagname2, tagdata2).getPacket131());
// }
// this.updateItems();
// b = true;
// break;
// }
// case 0: {
// NBTTagCompound renderTag = this.getRenderTag();
// String tagname3 = ModelRegistry.makeName(spec);
// EntityClientPlayerMP player3 = Minecraft.getMinecraft().thePlayer;
// renderTag.removeTag(ModelRegistry.makeName(spec));
// if (player3.worldObj.isRemote) {
// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player3, this.getSelectedItem().inventorySlot, tagname3, new NBTTagCompound()).getPacket131());
// }
// this.updateItems();
// b = true;
// break;
// }
// case _ => false
// }
// } else if (x > border.left + 28 && x < border.left + 28 + colourframe.colours.size * 8) {
// val lineNumber = ((y - border.top - 8) / 8).toInt
// val columnNumber = ((x - border.left - 28) / 8).toInt
// val spec = specs(lineNumber.min(specs.size - 1).max(0))
// val tagname = ModelRegistry.makeName(spec)
// val player = Minecraft.getMinecraft.thePlayer
// val tagdata = getOrMakeSpecTag(spec)
// spec.setColourIndex(tagdata, columnNumber)
// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
// true
// }
//
// else false
// else if (x > this.border.left() + 28 && x < this.border.left() + 28 + Predef$.MODULE$.intArrayOps(this.colourframe.colours()).size() * 8) {
// int lineNumber2 = (int)((y - this.border.top() - 8) / 8);
// int columnNumber2 = (int)((x - this.border.left() - 28) / 8);
// ModelPartSpec spec2 = this.specs[RichInt$.MODULE$.max$extension(Predef$.MODULE$.intWrapper(RichInt$.MODULE$.min$extension(Predef$.MODULE$.intWrapper(lineNumber2), Predef$.MODULE$.refArrayOps((Object[])this.specs()).size() - 1)), 0)];
// String tagname4 = ModelRegistry.makeName(spec2);
// EntityClientPlayerMP player4 = Minecraft.getMinecraft().thePlayer;
// NBTTagCompound tagdata3 = this.getOrMakeSpecTag(spec2);
// spec2.setColourIndex(tagdata3, columnNumber2);
// if (player4.worldObj.isRemote) {
// PacketSender.sendToServer(new MusePacketCosmeticInfo((EntityPlayer)player4, this.getSelectedItem().inventorySlot, tagname4, tagdata3).getPacket131());
// }
// b = true;
// }
// else {
// b = false;
// }
// return b;
// }
//
//
//
//// class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame, val itemSelector: ItemSelectionFrame, val border: MuseRelativeRect) {
//// var specs: Array[ModelPartSpec] = model.apply.values.filter(spec => isValidArmor(getSelectedItem, spec.slot)).toArray
//// var open: Boolean = true
//// var mousex: Double = 0
//// var mousey: Double = 0
////
//
////
//// def tryMouseClick(x: Double, y: Double): Boolean = {
//// if (x < border.left || x > border.right || y < border.top || y > border.bottom) false
//// else if (x > border.left + 2 && x < border.left + 8 && y > border.top + 2 && y < border.top + 8) {
//// open = !open
//// getBorder
//// true
//// } else if (x < border.left + 24 && y > border.top + 8) {
//// val lineNumber = ((y - border.top - 8) / 8).toInt
//// val columnNumber = ((x - border.left) / 8).toInt
//// val spec = specs(lineNumber.min(specs.size - 1).max(0))
//// MuseLogger.logDebug("Line " + lineNumber + " Column " + columnNumber)
//// columnNumber match {
//// case 0 => {
//// val renderTag = getRenderTag
//// val tagname = ModelRegistry.makeName(spec)
//// val player = Minecraft.getMinecraft.thePlayer
//// renderTag.removeTag(ModelRegistry.makeName(spec))
//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, new NBTTagCompound()).getPacket131)
//// updateItems()
//// true
//// }
//// case 1 => {
//// val tagname = ModelRegistry.makeName(spec)
//// val player = Minecraft.getMinecraft.thePlayer
//// val tagdata = getOrMakeSpecTag(spec)
//// spec.setGlow(tagdata, false)
//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
//// updateItems()
//// true
//// }
//// case 2 => {
//// val tagname = ModelRegistry.makeName(spec)
//// val player = Minecraft.getMinecraft.thePlayer
//// val tagdata = getOrMakeSpecTag(spec)
//// spec.setGlow(tagdata, true)
//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
//// updateItems()
//// true
//// }
//// case _ => false
//// }
//// } else if (x > border.left + 28 && x < border.left + 28 + colourframe.colours.size * 8) {
//// val lineNumber = ((y - border.top - 8) / 8).toInt
//// val columnNumber = ((x - border.left - 28) / 8).toInt
//// val spec = specs(lineNumber.min(specs.size - 1).max(0))
//// val tagname = ModelRegistry.makeName(spec)
//// val player = Minecraft.getMinecraft.thePlayer
//// val tagdata = getOrMakeSpecTag(spec)
//// spec.setColourIndex(tagdata, columnNumber)
//// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
//// true
//// }
//// else false
//// }
////
//// }
//
//
//}
//
//
//
//
//
//
//
//
////
//////
////// Decompiled by Procyon v0.5.30
//////
////
////package net.machinemuse.general.gui.frame;
////
//// import net.machinemuse.numina.scala.MuseBiMap;
//// import scala.runtime.AbstractFunction1;
//// import scala.Serializable;
//// import net.minecraft.client.entity.EntityClientPlayerMP;
//// import net.machinemuse.numina.network.PacketSender;
//// import net.minecraft.entity.player.EntityPlayer;
//// import net.machinemuse.powersuits.network.packets.MusePacketCosmeticInfo;
//// import net.machinemuse.numina.general.MuseLogger;
//// import scala.collection.mutable.StringBuilder;
//// import scala.runtime.RichInt$;
//// import net.machinemuse.numina.geometry.MuseRect;
//// import net.machinemuse.numina.general.MuseMathUtils;
//// import org.lwjgl.opengl.GL11;
//// import net.machinemuse.numina.render.RenderState;
//// import net.machinemuse.utils.render.MuseRenderer;
//// import scala.runtime.BoxedUnit;
//// import net.machinemuse.numina.geometry.Colour;
//// import net.machinemuse.utils.render.GuiIcons;
//// import scala.Function2;
//// import scala.runtime.BoxesRunTime;
//// import scala.Predef$;
//// import scala.reflect.ClassTag$;
//// import scala.Function1;
//// import scala.collection.TraversableOnce;
//// import net.minecraft.nbt.NBTBase;
//// import scala.None$;
//// import scala.Some;
//// import scala.Option;
//// import net.machinemuse.powersuits.client.render.modelspec.ModelRegistry$;
//// import net.minecraft.entity.Entity;
//// import net.minecraft.client.Minecraft;
//// import net.machinemuse.utils.MuseItemUtils;
//// import net.minecraft.nbt.NBTTagCompound;
//// import net.machinemuse.general.gui.clickable.ClickableItem;
//// import net.minecraft.item.ItemArmor;
//// import net.machinemuse.powersuits.client.render.modelspec.ModelPartSpec;
//// import net.machinemuse.numina.geometry.MuseRelativeRect;
//// import net.machinemuse.powersuits.client.render.modelspec.ModelSpec;
//// import scala.reflect.ScalaSignature;
////
// public class PartManipSubFrame
////{
//
////
//// public ModelSpec model() {
//// return this.model;
//// }
////
//// public ColourPickerFrame colourframe() {
//// return this.colourframe;
//// }
////
//// public ItemSelectionFrame itemSelector() {
//// return this.itemSelector;
//// }
////
//// public MuseRelativeRect border() {
//// return this.border;
//// }
////
//// public ModelPartSpec[] specs() {
//// return this.specs;
//// }
////
//// public void specs_$eq(ModelPartSpec[] x$1) {
//// this.specs = x$1;
//// }
////
//// public boolean open() {
//// return this.open;
//// }
////
//// public void open_$eq(boolean x$1) {
//// this.open = x$1;
//// }
////
//// public double mousex() {
//// return this.mousex;
//// }
////
//// public void mousex_$eq(double x$1) {
//// this.mousex = x$1;
//// }
////
//// public double mousey() {
//// return this.mousey;
//// }
////
//// public void mousey_$eq(double x$1) {
//// this.mousey = x$1;
//// }
////
//
////
//
////
//
//
////
//
////
//
////
//
////
//
////}

View file

@ -189,7 +189,6 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
true
}
else false
}

View file

@ -0,0 +1,21 @@
package net.machinemuse.powersuits.item;
import net.machinemuse.numina.item.IModeChangingItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import java.util.List;
/**
* Ported to Java by lehjr on 11/1/16.
*/
public interface IModeChangingModularItem extends IModeChangingItem{
IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player);
List<String> getValidModes(ItemStack stack, EntityPlayer player);
List<String> getValidModes(ItemStack stack);
String getActiveMode(ItemStack stack);
}

View file

@ -0,0 +1,57 @@
//package net.machinemuse.powersuits.item
//
//import net.machinemuse.api.ModuleManager
//import net.machinemuse.numina.item.{IModeChangingItem, ModeChangingItem, NuminaItemUtils}
//import net.machinemuse.numina.scala.OptionCast
//import net.minecraft.entity.player.EntityPlayer
//import net.minecraft.item.ItemStack
//import net.minecraft.util.IIcon
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 4:52 PM, 9/5/13
// */
//object IModeChangingModularItem {
//
// def cycleModeForItem(stack: ItemStack, player: EntityPlayer, dMode: Int) {
// for (
// s <- Option(stack);
// i <- OptionCast[IModeChangingModularItem](stack.getItem)
// ) {
// i.cycleMode(stack, player, dMode)
// }
// }
//}
//
//trait IModeChangingModularItem extends IModeChangingItem {
// def getModeIcon(mode: String, stack: ItemStack, player: EntityPlayer): Option[IIcon] = Option(ModuleManager.getModule(mode)).map(m => m.getIcon(stack))
//
// def getValidModes(stack: ItemStack, player: EntityPlayer): Seq[String] = {
// getValidModes(stack)
// }
//
// def getValidModes(stack: ItemStack): Seq[String] = {
// import scala.collection.JavaConversions._
// for {
// module <- ModuleManager.getRightClickModules
// if module.isValidForItem(stack)
// if ModuleManager.itemHasModule(stack, module.getDataName)
// } yield {
// module.getDataName
// }
// }
//
// def getActiveMode(stack: ItemStack): String = {
// val modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode")
// if (!modeFromNBT.isEmpty) {
// modeFromNBT
// } else {
// val validModes = getValidModes(stack)
// if (validModes.nonEmpty) {
// validModes(0)
// } else {
// ""
// }
// }
// }
//}

View file

@ -0,0 +1,192 @@
package net.machinemuse.powersuits.item;
import ic2.api.item.IElectricItemManager;
import appeng.api.config.AccessRestriction;
import net.minecraft.item.Item;
import net.minecraft.entity.EntityLivingBase;
import net.machinemuse.api.electricity.MuseElectricItem;
import net.machinemuse.api.electricity.MuseElectricItem$class;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.machinemuse.numina.geometry.Colour;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.item.ItemStack;
import scala.reflect.ScalaSignature;
import net.minecraft.item.ItemArmor;
/**
* Ported to Java by lehjr on 10/26/16.
*/
public abstract class ItemElectricArmor extends ItemArmor implements ModularItemBase
{
public ItemElectricArmor(final ItemArmor.ArmorMaterial material, final int index1, final int index2) {
super(material, index1, index2);
// MuseElectricItem$class.$init$(this);
// ModularItemBase$class.$init$(this);
}
@Override
public String getToolTip(ItemStack itemStack) {
return null;
}
@SideOnly(Side.CLIENT)
public int getColorFromItemStack(final ItemStack stack, final int par2) {
return ModularItemBase$class.getColorFromItemStack(this, stack, par2);
}
public Colour getGlowFromItemStack(final ItemStack stack) {
return ModularItemBase$class.getGlowFromItemStack(this, stack);
}
public Colour getColorFromItemStack(final ItemStack stack) {
return ModularItemBase$class.getColorFromItemStack(this, stack);
}
@SideOnly(Side.CLIENT)
public boolean requiresMultipleRenderPasses() {
return ModularItemBase$class.requiresMultipleRenderPasses(this);
}
// @SideOnly(Side.CLIENT)
// public void addInformation(final ItemStack stack, final EntityPlayer player, final List<?> currentTipList, final boolean advancedToolTips) {
// ModularItemBase$class.addInformation(this, stack, player, currentTipList, advancedToolTips);
// }
public String formatInfo(final String string, final double value) {
return ModularItemBase$class.formatInfo(this, string, value);
}
public List<String> getLongInfo(final EntityPlayer player, final ItemStack stack) {
return (List<String>)ModularItemBase$class.getLongInfo(this, player, stack);
}
public double getArmorDouble(final EntityPlayer player, final ItemStack stack) {
return ModularItemBase$class.getArmorDouble(this, player, stack);
}
public double getPlayerEnergy(final EntityPlayer player) {
return ModularItemBase$class.getPlayerEnergy(this, player);
}
public void drainPlayerEnergy(final EntityPlayer player, final double drainEnergy) {
ModularItemBase$class.drainPlayerEnergy(this, player, drainEnergy);
}
public void givePlayerEnergy(final EntityPlayer player, final double joulesToGive) {
ModularItemBase$class.givePlayerEnergy(this, player, joulesToGive);
}
public double getCurrentEnergy(final ItemStack stack) {
return MuseElectricItem$class.getCurrentEnergy(this, stack);
}
public double getMaxEnergy(final ItemStack stack) {
return MuseElectricItem$class.getMaxEnergy(this, stack);
}
public void setCurrentEnergy(final ItemStack stack, final double energy) {
MuseElectricItem$class.setCurrentEnergy(this, stack, energy);
}
public double drainEnergyFrom(final ItemStack stack, final double requested) {
return MuseElectricItem$class.drainEnergyFrom(this, stack, requested);
}
public double giveEnergyTo(final ItemStack stack, final double provided) {
return MuseElectricItem$class.giveEnergyTo(this, stack, provided);
}
public MuseElectricItem getManager(final ItemStack itemStack) {
return MuseElectricItem$class.getManager(this, itemStack);
}
public void chargeFromArmor(final ItemStack itemStack, final EntityLivingBase entity) {
MuseElectricItem$class.chargeFromArmor(this, itemStack, entity);
}
public boolean use(final ItemStack itemStack, final double amount, final EntityLivingBase entity) {
return MuseElectricItem$class.use(this, itemStack, amount, entity);
}
public boolean canProvideEnergy(final ItemStack itemStack) {
return MuseElectricItem$class.canProvideEnergy(this, itemStack);
}
public double getCharge(final ItemStack itemStack) {
return MuseElectricItem$class.getCharge(this, itemStack);
}
public double getMaxCharge(final ItemStack itemStack) {
return MuseElectricItem$class.getMaxCharge(this, itemStack);
}
public int getTier(final ItemStack itemStack) {
return MuseElectricItem$class.getTier(this, itemStack);
}
public double getTransferLimit(final ItemStack itemStack) {
return MuseElectricItem$class.getTransferLimit(this, itemStack);
}
public double charge(final ItemStack itemStack, final double amount, final int tier, final boolean ignoreTransferLimit, final boolean simulate) {
return MuseElectricItem$class.charge(this, 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$class.discharge(this, itemStack, amount, tier, ignoreTransferLimit, externally, simulate);
}
public boolean canUse(final ItemStack itemStack, final double amount) {
return MuseElectricItem$class.canUse(this, itemStack, amount);
}
public Item getChargedItem(final ItemStack itemStack) {
return MuseElectricItem$class.getChargedItem(this, itemStack);
}
public Item getEmptyItem(final ItemStack itemStack) {
return MuseElectricItem$class.getEmptyItem(this, itemStack);
}
public int receiveEnergy(final ItemStack stack, final int energy, final boolean simulate) {
return MuseElectricItem$class.receiveEnergy(this, stack, energy, simulate);
}
public int extractEnergy(final ItemStack stack, final int energy, final boolean simulate) {
return MuseElectricItem$class.extractEnergy(this, stack, energy, simulate);
}
public int getEnergyStored(final ItemStack theItem) {
return MuseElectricItem$class.getEnergyStored(this, theItem);
}
public int getMaxEnergyStored(final ItemStack theItem) {
return MuseElectricItem$class.getMaxEnergyStored(this, theItem);
}
public int getMaxDamage(final ItemStack itemStack) {
return MuseElectricItem$class.getMaxDamage(this, itemStack);
}
public double injectAEPower(final ItemStack stack, final double ae) {
return MuseElectricItem$class.injectAEPower(this, stack, ae);
}
public double extractAEPower(final ItemStack stack, final double ae) {
return MuseElectricItem$class.extractAEPower(this, stack, ae);
}
public double getAEMaxPower(final ItemStack stack) {
return MuseElectricItem$class.getAEMaxPower(this, stack);
}
public double getAECurrentPower(final ItemStack stack) {
return MuseElectricItem$class.getAECurrentPower(this, stack);
}
public AccessRestriction getPowerFlow(final ItemStack stack) {
return MuseElectricItem$class.getPowerFlow(this, stack);
}
}

View file

@ -1,11 +1,13 @@
package net.machinemuse.powersuits.item
import net.machinemuse.api.electricity._
import net.minecraft.item.{ItemArmor, ItemStack}
abstract class ItemElectricArmor(material: ItemArmor.ArmorMaterial, index1: Int, index2: Int)
extends ItemArmor(material, index1, index2)
with ModularItemBase
with MuseElectricItem {
override def getToolTip(stack: ItemStack): String = null
}
//package net.machinemuse.powersuits.item
//
//import net.machinemuse.api.electricity._
//import net.minecraft.item.{ItemArmor, ItemStack}
//
//abstract class ItemElectricArmor(material: ItemArmor.ArmorMaterial, index1: Int, index2: Int)
// extends ItemArmor(material, index1, index2)
// with ModularItemBase
// with MuseElectricItem {
// override def getToolTip(stack: ItemStack): String = null
//}
//
//

View file

@ -57,7 +57,7 @@
//with mrtjp.projectred.api.IScrewdriver
//with ITool
//with IMekWrench
//with ModeChangingModularItem {
//with IModeChangingModularItem {
// val iconpath: String = MuseIcon.ICON_PREFIX + "handitem"
// setMaxStackSize(1)
// setMaxDamage(0)

View file

@ -0,0 +1,110 @@
package net.machinemuse.powersuits.item;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.numina.item.ModeChangingItem;
import net.machinemuse.numina.item.NuminaItemUtils;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import scala.Option;
import javax.annotation.Nullable;
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 11/1/16.
*/
public class ModeChangingModularItem implements IModeChangingModularItem {
private static ModeChangingModularItem INSTANCE;
public static ModeChangingModularItem getInstance() {
if (INSTANCE == null) {
INSTANCE = new ModeChangingModularItem();
}
return INSTANCE;
}
@Nullable
@Override
public IIcon getModeIcon(String mode, ItemStack stack, EntityPlayer player) {
IPowerModule module = ModuleManager.getModule(mode);
if (module != null)
return module.getIcon(stack);
return null;
}
@Override
public List<String> getValidModes(ItemStack stack, EntityPlayer player) {
return getValidModes(stack);
}
@Override
public List<String> getValidModes(ItemStack stack) {
List<String> modes = new ArrayList<>();
for (IRightClickModule module : ModuleManager.getRightClickModules()) {
if (module.isValidForItem(stack))
if (ModuleManager.itemHasModule(stack, module.getDataName()))
modes.add(module.getDataName());
}
return modes;
}
@Override
public String getActiveMode(ItemStack stack) {
List<String> validModes;
String modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode");
if (!modeFromNBT.isEmpty())
return modeFromNBT;
else {
validModes = getValidModes(stack);
if (!validModes.isEmpty())
return validModes.get(0);
else
return "";
}
}
public static void cycleModeForItem(ItemStack stack, EntityPlayer player, int dMode) {
Item item;
if (stack != null) {
item = stack.getItem();
if (item instanceof IModeChangingModularItem)
((IModeChangingModularItem) item).cycleMode(stack, player, dMode);
}
}
/* I M O D E C H A N G I N G I T E M ---------------------------------------------------------- */
@Override
public void setActiveMode(ItemStack stack, String newMode) {
ModeChangingItem.getInstance().setActiveMode(stack, newMode);
}
@Override
public String getActiveMode(ItemStack stack, EntityPlayer player) {
return ModeChangingItem.getInstance().getActiveMode(stack, player);
}
@Override
public void cycleMode(ItemStack stack, EntityPlayer player, int dMode) {
ModeChangingModularItem.getInstance().cycleMode(stack, player, dMode);
}
@Override
public String nextMode(ItemStack stack, EntityPlayer player) {
return ModeChangingItem.getInstance().nextMode(stack, player);
}
@Override
public String prevMode(ItemStack stack, EntityPlayer player) {
return ModeChangingItem.getInstance().prevMode(stack, player);
}
}

View file

@ -1,57 +0,0 @@
package net.machinemuse.powersuits.item
import net.machinemuse.api.ModuleManager
import net.machinemuse.numina.item.{ModeChangingItem, NuminaItemUtils}
import net.machinemuse.numina.scala.OptionCast
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
import net.minecraft.util.IIcon
/**
* Author: MachineMuse (Claire Semple)
* Created: 4:52 PM, 9/5/13
*/
object ModeChangingModularItem {
def cycleModeForItem(stack: ItemStack, player: EntityPlayer, dMode: Int) {
for (
s <- Option(stack);
i <- OptionCast[ModeChangingModularItem](stack.getItem)
) {
i.cycleMode(stack, player, dMode)
}
}
}
trait ModeChangingModularItem extends ModeChangingItem {
def getModeIcon(mode: String, stack: ItemStack, player: EntityPlayer): Option[IIcon] = Option(ModuleManager.getModule(mode)).map(m => m.getIcon(stack))
def getValidModes(stack: ItemStack, player: EntityPlayer): Seq[String] = {
getValidModes(stack)
}
def getValidModes(stack: ItemStack): Seq[String] = {
import scala.collection.JavaConversions._
for {
module <- ModuleManager.getRightClickModules
if module.isValidForItem(stack)
if ModuleManager.itemHasModule(stack, module.getDataName)
} yield {
module.getDataName
}
}
def getActiveMode(stack: ItemStack): String = {
val modeFromNBT = NuminaItemUtils.getTagCompound(stack).getString("mode")
if (!modeFromNBT.isEmpty) {
modeFromNBT
} else {
val validModes = getValidModes(stack)
if (validModes.nonEmpty) {
validModes(0)
} else {
""
}
}
}
}

View file

@ -0,0 +1,28 @@
package net.machinemuse.powersuits.network.packets;
import net.machinemuse.numina.network.MusePacketHandler;
/**
* Author: MachineMuse (Claire Semple)
* Created: 4:01 PM, 9/3/13
*
* Ported to Java by lehjr on 10/28/16.
*/
public class MPSPacketList {
static {
new MPSPacketList();
}
public static void registerPackets() {
MusePacketHandler.packagers.put(1, MusePacketInventoryRefresh$.MODULE$);
MusePacketHandler.packagers.put(2, MusePacketInstallModuleRequest$.MODULE$);
MusePacketHandler.packagers.put(3, MusePacketSalvageModuleRequest$.MODULE$);
MusePacketHandler.packagers.put(4, MusePacketTweakRequest$.MODULE$);
MusePacketHandler.packagers.put(5, MusePacketCosmeticInfo$.MODULE$);
MusePacketHandler.packagers.put(6, MusePacketPlayerUpdate$.MODULE$);
MusePacketHandler.packagers.put(7, MusePacketToggleRequest$.MODULE$);
MusePacketHandler.packagers.put(8, MusePacketPlasmaBolt$.MODULE$);
MusePacketHandler.packagers.put(10, MusePacketColourInfo$.MODULE$);
MusePacketHandler.packagers.put(11, MusePacketPropertyModifierConfig$.MODULE$);
}
}

View file

@ -1,22 +0,0 @@
package net.machinemuse.powersuits.network.packets
import net.machinemuse.numina.network.MusePacketHandler
/**
* Author: MachineMuse (Claire Semple)
* Created: 4:01 PM, 9/3/13
*/
object MPSPacketList {
def registerPackets() {
MusePacketHandler.packagers.put(1, MusePacketInventoryRefresh)
MusePacketHandler.packagers.put(2, MusePacketInstallModuleRequest)
MusePacketHandler.packagers.put(3, MusePacketSalvageModuleRequest)
MusePacketHandler.packagers.put(4, MusePacketTweakRequest)
MusePacketHandler.packagers.put(5, MusePacketCosmeticInfo)
MusePacketHandler.packagers.put(6, MusePacketPlayerUpdate)
MusePacketHandler.packagers.put(7, MusePacketToggleRequest)
MusePacketHandler.packagers.put(8, MusePacketPlasmaBolt)
MusePacketHandler.packagers.put(10, MusePacketColourInfo)
MusePacketHandler.packagers.put(11, MusePacketPropertyModifierConfig)
}
}