Finished porting to pure Java. Cleanup is next

This commit is contained in:
Leon 2016-11-15 09:00:23 -05:00
parent a177803885
commit d387e37a53
93 changed files with 97 additions and 1868 deletions

View file

@ -23,7 +23,7 @@ repositories {
}
}
apply plugin: 'scala'
//apply plugin: 'scala'
apply plugin: 'forge'
apply plugin: 'curseforge'

View file

@ -2,7 +2,6 @@ package net.machinemuse.api;
import cpw.mods.fml.common.Optional;
import forestry.api.apiculture.IArmorApiarist;
import net.machinemuse.utils.ElectricItemUtils;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

View file

@ -1,7 +1,6 @@
package net.machinemuse.api.electricity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import java.util.List;

View file

@ -3,14 +3,12 @@ package net.machinemuse.api.electricity;
import appeng.api.config.AccessRestriction;
import ic2.api.item.ElectricItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.numina.item.ModeChangingItem;
import net.machinemuse.utils.ElectricItemUtils;
import net.machinemuse.utils.MuseItemUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.machinemuse.api.electricity.ElectricConversions;
/**
* Author: MachineMuse (Claire Semple)

View file

@ -40,7 +40,7 @@ public class HeatMeter {
}
public void drawGlass(double xpos, double ypos) {
MuseTextureUtils.pushTexture(Config.GLASS_TEXTURE());
MuseTextureUtils.pushTexture(Config.GLASS_TEXTURE);
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2d(0, 0);
GL11.glVertex2d(xpos, ypos);

View file

@ -44,5 +44,5 @@ public class PortableCraftingGui extends GuiContainer {
super.onGuiClosed();
}
public static final ResourceLocation GUI_Loc = new ResourceLocation(Config.TEXTURE_PREFIX() + "gui/crafting.png");
public static final ResourceLocation GUI_Loc = new ResourceLocation(Config.TEXTURE_PREFIX + "gui/crafting.png");
}

View file

@ -136,10 +136,7 @@ public class ColourPickerFrame implements IGuiFrame {
this.rslider.draw();
this.gslider.draw();
this.bslider.draw();
System.out.println("colours().length: " + colours().length);
for (int i = 0; i < colours().length; i++) {
System.out.println("colours()[i] " + colours()[i]);
new GuiIcons.ArmourColourPatch(border.left() + 8 + i * 8, border.bottom() - 16, new Colour(colours()[i]), null, null, null, null);
}
new GuiIcons.ArmourColourPatch(this.border.left() + 8 + this.colours().length * 8, this.border.bottom() - 16, Colour.WHITE, null, null, null, null);

View file

@ -10,12 +10,10 @@ import net.machinemuse.powersuits.client.render.item.IArmorModel;
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;
@ -89,8 +87,11 @@ public class ItemModelViewFrame implements IGuiFrame
final double dx = mousex - this.anchorx;
final double dy = mousey - this.anchory;
switch (this.dragging) {
default: {
final None$ module$ = None$.MODULE$;
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: {
@ -100,15 +101,7 @@ public class ItemModelViewFrame implements IGuiFrame
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$;
default: {
break;
}
}

View file

@ -1,9 +1,7 @@
package net.machinemuse.general.gui.frame;
import net.machinemuse.general.gui.clickable.ClickableItem;
import net.machinemuse.numina.geometry.Colour;
import net.machinemuse.numina.geometry.MusePoint2D;
import net.machinemuse.numina.geometry.MuseRect;
import net.machinemuse.numina.geometry.MuseRelativeRect;
import net.machinemuse.powersuits.client.render.modelspec.ModelRegistry;
import net.machinemuse.powersuits.client.render.modelspec.ModelSpec;

View file

@ -43,7 +43,7 @@ public class TabSelectFrame implements IGuiFrame {
public void onMouseDown(double x, double y, int button) {
for (ClickableButton b : buttons.keySet()) {
if (b.isEnabled() && b.hitBox(x, y)) {
p.openGui(ModularPowersuits.INSTANCE(), buttons.get(b), p.worldObj, worldx, worldy, worldz);
p.openGui(ModularPowersuits.getInstance(), buttons.get(b), p.worldObj, worldx, worldy, worldz);
}
}
}

View file

@ -57,7 +57,7 @@ public class BlockTinkerTable extends Block {
if (player.isSneaking()) {
return false;
}
player.openGui(ModularPowersuits.INSTANCE(), 0, world, x, y, z);
player.openGui(ModularPowersuits.getInstance(), 0, world, x, y, z);
return true;
}

View file

@ -28,14 +28,14 @@ public class RenderLuxCapacitorTESR extends MuseTESR implements ISimpleBlockRend
public static WavefrontObject getLightModel() {
if (lightmodel == null) {
lightmodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX() + "models/lightCore.obj"));
lightmodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX + "models/lightCore.obj"));
}
return lightmodel;
}
public static WavefrontObject getFrameModel() {
if (framemodel == null) {
framemodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX() + "models/lightBase.obj"));
framemodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX + "models/lightBase.obj"));
}
return framemodel;
}
@ -43,7 +43,7 @@ public class RenderLuxCapacitorTESR extends MuseTESR implements ISimpleBlockRend
@Override
public void renderAt(TileEntity undifferentiatedtileentity, double x, double y, double z, float partialTickTime) {
TileEntityLuxCapacitor tileentity = (TileEntityLuxCapacitor) undifferentiatedtileentity;
this.bindTextureByName(Config.TEXTURE_PREFIX() + "models/thusters_uvw_2.png");
this.bindTextureByName(Config.TEXTURE_PREFIX + "models/thusters_uvw_2.png");
glPushMatrix();
glTranslated(x + 0.5, y + 0.5, z + 0.5);
double scale = 0.0625;
@ -86,7 +86,7 @@ public class RenderLuxCapacitorTESR extends MuseTESR implements ISimpleBlockRend
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
this.bindTextureByName(Config.TEXTURE_PREFIX() + "models/thusters_uvw_2.png");
this.bindTextureByName(Config.TEXTURE_PREFIX + "models/thusters_uvw_2.png");
GL11.glPushMatrix();
GL11.glTranslated(-0.5, -0.5 + -1.0 / 16.0, -0.5);

View file

@ -28,7 +28,7 @@ public class TinkerTableRenderer extends MuseTESR implements ISimpleBlockRenderi
@Override
public void renderAt(TileEntity tileEntity, double x, double y, double z, float partialTickTime) {
this.bindTextureByName(Config.TINKERTABLE_TEXTURE_PATH());
this.bindTextureByName(Config.TINKERTABLE_TEXTURE_PATH);
GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
@ -49,7 +49,7 @@ public class TinkerTableRenderer extends MuseTESR implements ISimpleBlockRenderi
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
this.bindTextureByName(Config.TINKERTABLE_TEXTURE_PATH());
this.bindTextureByName(Config.TINKERTABLE_TEXTURE_PATH);
GL11.glPushMatrix();
GL11.glTranslated(-0.5, -0.5 + -1.0 / 16.0, -0.5);
model.doRender(null, 0, 0, 0, 0);

View file

@ -18,14 +18,14 @@ public class RenderLuxCapacitorEntity extends MuseRender {
public static WavefrontObject getLightModel() {
if (lightmodel == null) {
lightmodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX() + "models/lightCore.obj"));
lightmodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX + "models/lightCore.obj"));
}
return lightmodel;
}
public static WavefrontObject getFrameModel() {
if (framemodel == null) {
framemodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX() + "models/lightBase.obj"));
framemodel = (WavefrontObject) AdvancedModelLoader.loadModel(new ResourceLocation(Config.RESOURCE_PREFIX + "models/lightBase.obj"));
}
return framemodel;
}
@ -33,7 +33,7 @@ public class RenderLuxCapacitorEntity extends MuseRender {
@Override
public void doRender(Entity undifferentiatedentity, double x, double y, double z, float yaw, float partialTickTime) {
EntityLuxCapacitor entity = (EntityLuxCapacitor) undifferentiatedentity;
MuseTextureUtils.pushTexture(Config.TEXTURE_PREFIX() + "models/thusters_uvw_2.png");
MuseTextureUtils.pushTexture(Config.TEXTURE_PREFIX + "models/thusters_uvw_2.png");
glPushMatrix();
glTranslated(x, y, z);
double scale = 0.0625;

View file

@ -14,7 +14,7 @@ public class RenderSpinningBlade extends MuseRender {
glPushMatrix();
glPushAttrib(GL_ENABLE_BIT);
glDisable(GL_CULL_FACE);
MuseTextureUtils.pushTexture(Config.TEXTURE_PREFIX() + "items/spinningblade.png");
MuseTextureUtils.pushTexture(Config.TEXTURE_PREFIX + "items/spinningblade.png");
glTranslated(x, y, z);
double motionscale = Math.sqrt(entity.motionZ * entity.motionZ + entity.motionX * entity.motionX);
glRotatef(90, 1, 0, 0);

View file

@ -370,7 +370,7 @@ public class ToolModel extends ModelBase {
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_DEPTH_TEST);
MuseTextureUtils.pushTexture(Config.SEBK_TOOL_TEXTURE());
MuseTextureUtils.pushTexture(Config.SEBK_TOOL_TEXTURE);
if (c1 != null) {
c1.doGL();

View file

@ -11,7 +11,6 @@ import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.nbt.NBTTagCompound;
import org.lwjgl.opengl.GL11;
import scala.Option;
/**
* Author: MachineMuse (Claire Semple)

View file

@ -2,8 +2,8 @@ package net.machinemuse.powersuits.common;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.ModAPIManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.powersuits.powermodule.armor.ApiaristArmorModule;
import net.machinemuse.powersuits.powermodule.armor.HazmatModule;

View file

@ -6,7 +6,6 @@ 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.IModeChangingModularItem;
import net.machinemuse.powersuits.item.ModeChangingModularItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
@ -45,13 +44,13 @@ public class KeybindKeyHandler {
if (key == openKeybindGUI.getKeyCode()) {
World world = Minecraft.getMinecraft().theWorld;
if (Minecraft.getMinecraft().inGameHasFocus) {
player.openGui(ModularPowersuits.INSTANCE(), 1, world, 0, 0, 0);
player.openGui(ModularPowersuits.getInstance(), 1, world, 0, 0, 0);
}
}
if (key == openCosmeticGUI.getKeyCode()) {
World world = Minecraft.getMinecraft().theWorld;
if (Minecraft.getMinecraft().inGameHasFocus) {
player.openGui(ModularPowersuits.INSTANCE(), 3, world, 0, 0, 0);
player.openGui(ModularPowersuits.getInstance(), 3, world, 0, 0, 0);
}
}
if (key == goDownKey.getKeyCode()) {

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.event;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.powersuits.item.ItemPowerFist;
import net.minecraft.block.Block;

View file

@ -80,7 +80,7 @@ public abstract class ItemPowerArmor extends ItemElectricArmor implements ISpeci
}
public String getArmorTexture(final ItemStack itemstack, final Entity entity, final int slot, final int layer) {
return Config.BLANK_ARMOR_MODEL_PATH();
return Config.BLANK_ARMOR_MODEL_PATH;
}
public int getColor(final ItemStack stack) {

View file

@ -4,10 +4,8 @@ import cpw.mods.fml.common.Optional;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.api.item.IMetalArmor;
import net.machinemuse.api.ApiaristArmor;
import net.machinemuse.utils.render.MuseRenderer;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;

View file

@ -33,12 +33,12 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemTool;
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;

View file

@ -14,15 +14,15 @@ public class 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$);
MusePacketHandler.packagers.put(1, MusePacketInventoryRefresh.getPackagerInstance());
MusePacketHandler.packagers.put(2, MusePacketInstallModuleRequest.getPackagerInstance());
MusePacketHandler.packagers.put(3, MusePacketSalvageModuleRequest.getPackagerInstance());
MusePacketHandler.packagers.put(4, MusePacketTweakRequest.getPackagerInstance());
MusePacketHandler.packagers.put(5, MusePacketCosmeticInfo.getPackagerInstance());
MusePacketHandler.packagers.put(6, MusePacketPlayerUpdate.getPackagerInstance());
MusePacketHandler.packagers.put(7, MusePacketToggleRequest.getPackagerInstance());
MusePacketHandler.packagers.put(8, MusePacketPlasmaBolt.getPackagerInstance());
MusePacketHandler.packagers.put(10, MusePacketColourInfo.getPackagerInstance());
MusePacketHandler.packagers.put(11, MusePacketPropertyModifierConfig.getPackagerInstance());
}
}

View file

@ -1,6 +1,9 @@
package net.machinemuse.powersuits.powermodule;
import net.machinemuse.api.*;
import net.machinemuse.api.ILocalizeableModule;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.IPropertyModifier;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.general.gui.MuseIcon;
import net.machinemuse.numina.render.MuseTextureUtils;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.armor;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
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.armor;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
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.armor;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

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

View file

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

View file

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

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.energy;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
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.energy;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.electricity.ElectricConversions;
import net.machinemuse.api.electricity.IModularItem;
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.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.powersuits.item.ItemComponent;

View file

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

View file

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

View file

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

View file

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

View file

@ -51,7 +51,7 @@ public class InPlaceAssemblerModule extends PowerModuleBase implements IRightCli
@Override
public void onRightClick(EntityPlayer player, World world, ItemStack item) {
player.openGui(ModularPowersuits.INSTANCE(), 4, world, (int) player.posX, (int) player.posY, (int) player.posZ);
player.openGui(ModularPowersuits.getInstance(), 4, world, (int) player.posX, (int) player.posY, (int) player.posZ);
}

View file

@ -3,8 +3,8 @@ package net.machinemuse.powersuits.powermodule.misc;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.powersuits.item.ItemComponent;

View file

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

View file

@ -2,8 +2,8 @@ package net.machinemuse.powersuits.powermodule.misc;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.general.sound.SoundDictionary;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.movement;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.numina.player.NuminaPlayerUtils;
import net.machinemuse.powersuits.item.ItemComponent;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.movement;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.numina.player.NuminaPlayerUtils;

View file

@ -2,8 +2,8 @@ package net.machinemuse.powersuits.powermodule.movement;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.general.sound.SoundDictionary;

View file

@ -2,8 +2,8 @@ package net.machinemuse.powersuits.powermodule.movement;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.general.sound.SoundDictionary;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.movement;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.numina.player.NuminaPlayerUtils;

View file

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

View file

@ -2,8 +2,8 @@ package net.machinemuse.powersuits.powermodule.movement;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.general.sound.SoundDictionary;

View file

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

View file

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

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.powermodule.tool;
import cpw.mods.fml.common.registry.GameRegistry;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.api.moduletrigger.IToggleableModule;
import net.machinemuse.numina.general.MuseLogger;

View file

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

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.powermodule.tool;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -63,7 +63,7 @@ public class FieldTinkerModule extends PowerModuleBase implements IRightClickMod
@Override
public void onRightClick(EntityPlayer player, World world, ItemStack item) {
player.openGui(ModularPowersuits.INSTANCE(), 2, world, (int)player.posX, (int)player.posY, (int)player.posZ);
player.openGui(ModularPowersuits.getInstance(), 2, world, (int)player.posX, (int)player.posY, (int)player.posZ);
}
}

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.tool;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -1,9 +1,9 @@
package net.machinemuse.powersuits.powermodule.tool;
import cpw.mods.fml.common.eventhandler.Event;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.tool;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.tool;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.entity.EntityLuxCapacitor;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.powermodule.tool;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.common.Config;
import net.machinemuse.powersuits.item.ItemComponent;

View file

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

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.powermodule.tool;
import cpw.mods.fml.common.registry.GameRegistry;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.tool;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.item.ItemComponent;

View file

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

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.weapon;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.entity.EntitySpinningBlade;
import net.machinemuse.powersuits.item.ItemComponent;

View file

@ -1,8 +1,8 @@
package net.machinemuse.powersuits.powermodule.weapon;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.powersuits.item.ItemComponent;
import net.machinemuse.powersuits.powermodule.PowerModuleBase;

View file

@ -1,7 +1,7 @@
package net.machinemuse.powersuits.powermodule.weapon;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.moduletrigger.IRightClickModule;
import net.machinemuse.numina.general.MuseMathUtils;
import net.machinemuse.numina.network.PacketSender;

View file

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

View file

@ -2,10 +2,10 @@ package net.machinemuse.utils;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.IPowerModule;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.MuseItemTag;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.numina.general.MuseMathUtils;
import net.machinemuse.powersuits.client.render.modelspec.DefaultModelSpec;

View file

@ -1,7 +1,7 @@
package net.machinemuse.utils;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.api.ModuleManager;
import net.machinemuse.api.electricity.IModularItem;
import net.machinemuse.numina.general.MuseLogger;
import net.machinemuse.numina.general.MuseMathUtils;
import net.machinemuse.numina.player.NuminaPlayerUtils;

View file

@ -54,49 +54,49 @@ public class GuiIcons {
public static class Checkmark extends GuiIcon {
public Checkmark(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(16.0, Config.TEXTURE_PREFIX() + "gui/checkmark.png", x, y, c, xmin, ymin, xmax, ymax);
super(16.0, Config.TEXTURE_PREFIX + "gui/checkmark.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class TransparentArmor extends GuiIcon {
public TransparentArmor(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/transparentarmor.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/transparentarmor.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class NormalArmor extends GuiIcon {
public NormalArmor(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/normalarmor.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/normalarmor.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class GlowArmor extends GuiIcon {
public GlowArmor(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/glowarmor.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/glowarmor.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class SelectedArmorOverlay extends GuiIcon {
public SelectedArmorOverlay(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/armordisplayselect.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/armordisplayselect.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class ArmourColourPatch extends GuiIcon {
public ArmourColourPatch(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/colourclicker.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/colourclicker.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class MinusSign extends GuiIcon {
public MinusSign(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/minussign.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/minussign.png", x, y, c, xmin, ymin, xmax, ymax);
}
}
public static class PlusSign extends GuiIcon {
public PlusSign(double x, double y, Colour c, Double xmin, Double ymin, Double xmax, Double ymax) {
super(8.0, Config.TEXTURE_PREFIX() + "gui/plussign.png", x, y, c, xmin, ymin, xmax, ymax);
super(8.0, Config.TEXTURE_PREFIX + "gui/plussign.png", x, y, c, xmin, ymin, xmax, ymax);
}
}

View file

@ -276,7 +276,7 @@ public abstract class MuseRenderer {
double jagfactor = 0.3;
RenderState.on2D();
GL11.glEnable(GL11.GL_DEPTH_TEST);
MuseTextureUtils.pushTexture(Config.LIGHTNING_TEXTURE());
MuseTextureUtils.pushTexture(Config.LIGHTNING_TEXTURE);
RenderState.blendingOn();
colour.doGL();
GL11.glBegin(GL11.GL_QUADS);
@ -301,7 +301,7 @@ public abstract class MuseRenderer {
}
public static void drawLightningBetweenPoints(double x1, double y1, double z1, double x2, double y2, double z2, int index) {
MuseTextureUtils.pushTexture(Config.LIGHTNING_TEXTURE());
MuseTextureUtils.pushTexture(Config.LIGHTNING_TEXTURE);
double u1 = index / 50.0;
double u2 = u1 + 0.02;
double px = (y1 - y2) * 0.125;

View file

@ -1,87 +0,0 @@
//package net.machinemuse.api
//
//import cpw.mods.fml.common.FMLCommonHandler
//import net.machinemuse.powersuits.powermodule.tool.{MFFSFieldTeleporterModule, OmniWrenchModule}
//import net.machinemuse.utils.ElectricItemUtils
//import net.minecraft.entity.item.EntityMinecart
//import net.minecraft.entity.player.EntityPlayer
//import net.minecraft.item.ItemStack
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 5:06 PM, 29/04/13
// */
//trait OmniWrench
// extends ModularWrench
// with ModularCrowbar
// with ModularHammer
// with ForceFieldManipulator {
//
//}
//
//trait ModularCrowbar extends IToolCrowbar {
// def canWhack(player: EntityPlayer, crowbar: ItemStack, x: Int, y: Int, z: Int): Boolean = {
// return ModuleManager.itemHasActiveModule(crowbar, OmniWrenchModule.MODULE_OMNI_WRENCH)
// }
//
// def onWhack(player: EntityPlayer, crowbar: ItemStack, x: Int, y: Int, z: Int) {
// player.swingItem
// }
//
// def canLink(player: EntityPlayer, crowbar: ItemStack, cart: EntityMinecart): Boolean = {
// return ModuleManager.itemHasActiveModule(crowbar, OmniWrenchModule.MODULE_OMNI_WRENCH)
// }
//
// def onLink(player: EntityPlayer, crowbar: ItemStack, cart: EntityMinecart) {
// player.swingItem
// }
//
// def canBoost(player: EntityPlayer, crowbar: ItemStack, cart: EntityMinecart): Boolean = {
// return ModuleManager.itemHasActiveModule(crowbar, OmniWrenchModule.MODULE_OMNI_WRENCH)
// }
//
// def onBoost(player: EntityPlayer, crowbar: ItemStack, cart: EntityMinecart) {
// player.swingItem
// }
//}
//
//// Buildcraft wrench
//trait ModularWrench
// extends IToolWrench {
//
// def canWrench(player: EntityPlayer, x: Int, y: Int, z: Int): Boolean = {
// if (player.getCurrentEquippedItem != null && player.getCurrentEquippedItem.getItem.isInstanceOf[IModularItem]) {
// return ModuleManager.itemHasActiveModule(player.getCurrentEquippedItem, OmniWrenchModule.MODULE_OMNI_WRENCH)
// }
// return false
// }
//
// def wrenchUsed(player: EntityPlayer, x: Int, y: Int, z: Int) {
// }
//}
//
//// MFR wrench
//trait ModularHammer extends IToolHammerAdvanced {
// def isActive(stack: ItemStack): Boolean = ModuleManager.itemHasActiveModule(stack, OmniWrenchModule.MODULE_OMNI_WRENCH)
//}
//
//trait ForceFieldManipulator extends IFieldTeleporter {
// def canFieldTeleport(player: EntityPlayer, stack: ItemStack, teleportCost: Int): Boolean = {
// if (ModuleManager.itemHasModule(stack, MFFSFieldTeleporterModule.MODULE_FIELD_TELEPORTER)) {
// if (ElectricItemUtils.getPlayerEnergy(player) > ModuleManager.computeModularProperty(stack, MFFSFieldTeleporterModule.FIELD_TELEPORTER_ENERGY_CONSUMPTION)) {
// return true
// }
// else if (FMLCommonHandler.instance.getEffectiveSide.isServer) {
// player.sendChatToPlayer(ChatMessageComponent.createFromText("[Field Security] Could not teleport through forcefield. 20,000J is required to teleport."))
// }
// }
// return false
// }
//
// def onFieldTeleportSuccess(player: EntityPlayer, stack: ItemStack, teleportCost: Int) {
// ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(stack, MFFSFieldTeleporterModule.FIELD_TELEPORTER_ENERGY_CONSUMPTION))
// }
//
// def onFieldTeleportFailed(player: EntityPlayer, stack: ItemStack, teleportCost: Int) {
// }
//}

View file

@ -1,171 +0,0 @@
//package net.machinemuse.general.gui.frame
//
//import java.util
//
//import net.machinemuse.general.gui.clickable.ClickableSlider
//import net.machinemuse.numina.general.MuseLogger
//import net.machinemuse.numina.geometry.{Colour, DrawableMuseRect, MusePoint2D, MuseRect}
//import net.machinemuse.numina.network.PacketSender
//import net.machinemuse.powersuits.item.ItemPowerArmor
//import net.machinemuse.powersuits.network.packets.MusePacketColourInfo
//import net.machinemuse.utils.MuseItemUtils
//import net.machinemuse.utils.render.GuiIcons._
//import net.minecraft.client.Minecraft
//import net.minecraft.nbt.NBTTagIntArray
//import net.minecraft.util.StatCollector
//
//import scala.collection.mutable
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 4:19 AM, 03/05/13
// */
//class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val borderColour: Colour, val itemSelector: ItemSelectionFrame) extends IGuiFrame {
// val border = new DrawableMuseRect(borderRef, insideColour, borderColour)
// val rslider: ClickableSlider = new ClickableSlider(new MusePoint2D(border.centerx, border.top + 8), border.width - 10, StatCollector.translateToLocal("gui.red"))
// val gslider: ClickableSlider = new ClickableSlider(new MusePoint2D(border.centerx, border.top + 24), border.width - 10, StatCollector.translateToLocal("gui.green"))
// val bslider: ClickableSlider = new ClickableSlider(new MusePoint2D(border.centerx, border.top + 40), border.width - 10, StatCollector.translateToLocal("gui.blue"))
//
// def colours: Array[Int] = getOrCreateColourTag.map(e => e.func_150302_c /*getIntArray()*/ ).getOrElse(Array.empty)
//
// var selectedSlider: Option[ClickableSlider] = None
// var selectedColour: Int = 0
// var decrAbove: Int = -1
//
// def getOrCreateColourTag: Option[NBTTagIntArray] = {
// if (itemSelector.getSelectedItem == null) return None
// val renderSpec = MuseItemUtils.getMuseRenderTag(itemSelector.getSelectedItem.getItem)
// if (renderSpec.hasKey("colours") && renderSpec.getTag("colours").isInstanceOf[NBTTagIntArray]) Some(renderSpec.getTag("colours").asInstanceOf[NBTTagIntArray])
// else {
// itemSelector.getSelectedItem.getItem.getItem match {
// case itembase: ItemPowerArmor =>
// val intArray: Array[Int] = Array(itembase.getColorFromItemStack(itemSelector.getSelectedItem.getItem).getInt, itembase.getGlowFromItemStack(itemSelector.getSelectedItem.getItem).getInt)
// renderSpec.setIntArray("colours", intArray)
// case _ =>
// val intArray: Array[Int] = Array.empty
// renderSpec.setIntArray("colours", intArray)
// }
// val player = Minecraft.getMinecraft.thePlayer
// if (player.worldObj.isRemote) {
// PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, colours))
// }
// Some(renderSpec.getTag("colours").asInstanceOf[NBTTagIntArray])
// }
// }
//
// def setColourTagMaybe(newarray: Array[Int]): Option[NBTTagIntArray] = {
// if (itemSelector.getSelectedItem == null) return None
// val renderSpec = MuseItemUtils.getMuseRenderTag(itemSelector.getSelectedItem.getItem)
// renderSpec.setTag("colours", new NBTTagIntArray(newarray))
// val player = Minecraft.getMinecraft.thePlayer
// if (player.worldObj.isRemote)
// PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, colours))
// Some(renderSpec.getTag("colours").asInstanceOf[NBTTagIntArray])
// }
//
// def importColours = {
// val colours = mutable.Buffer.empty[Int]
// colours
// }
//
// def 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
// // })
// }
//
// def onMouseUp(x: Double, y: Double, button: Int) {
// selectedSlider = None
// }
//
// def update(mousex: Double, mousey: Double) {
// selectedSlider.foreach(s => {
// s.setValueByX(mousex)
// if (colours.size > selectedColour) {
// colours(selectedColour) = Colour.getInt(rslider.value, gslider.value, bslider.value, 1.0)
// val player = Minecraft.getMinecraft.thePlayer
// if (player.worldObj.isRemote)
// PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, colours))
// }
// })
// }
//
// def draw() {
// border.draw()
// rslider.draw()
// gslider.draw()
// bslider.draw()
// for (i <- colours.indices) {
// new ArmourColourPatch(border.left + 8 + i * 8, border.bottom - 16, new Colour(colours(i)), null, null, null, null)
// }
// new ArmourColourPatch(border.left + 8 + colours.size * 8, border.bottom - 16, Colour.WHITE, null, null, null, null)
// new SelectedArmorOverlay(border.left + 8 + selectedColour * 8, border.bottom - 16, Colour.WHITE, null, null, null, null)
// new MinusSign(border.left + 8 + selectedColour * 8, border.bottom - 24, Colour.RED, null, null, null, null)
// new PlusSign(border.left + 8 + colours.size * 8, border.bottom - 16, Colour.GREEN, null, null, null, null)
// }
//
// def getToolTip(x: Int, y: Int): util.List[String] = null
//
// def onSelectColour(i: Int) {
// val c: Colour = new Colour(colours(i))
// rslider.setValue(c.r)
// gslider.setValue(c.g)
// bslider.setValue(c.b)
// selectedColour = i
// }
//
// def onMouseDown(x: Double, y: Double, button: Int) {
// if (rslider.hitBox(x, y)) {
// selectedSlider = Some(rslider)
// } else if (gslider.hitBox(x, y)) {
// selectedSlider = Some(gslider)
// } else if (bslider.hitBox(x, y)) {
// selectedSlider = Some(bslider)
// } else {
// selectedSlider = None
// }
// // add
// if (y > border.bottom - 16 && y < border.bottom - 8) {
// val colourCol: Int = (x - border.left - 8.0).toInt / 8
// if (colourCol >= 0 && colourCol < colours.size) {
// onSelectColour(colourCol.toInt)
// } else if (colourCol == colours.size) {
// MuseLogger.logDebug("Adding")
// getOrCreateColourTag.map(e => {setColourTagMaybe(getIntArray(e) :+ Colour.WHITE.getInt)}) // append White
//
// }
// }
// // remove
// if (y.>(border.bottom.-(24)).&&(y.<(border.bottom.-(16))).&&(x.>(border.left.+(8).+(selectedColour.*(8)))).&&(x.<(border.left.+(16).+(selectedColour.*(8))))) {
// getOrCreateColourTag.foreach((e: NBTTagIntArray) => {
//
// // if (getIntArray(nbtTagIntArray).length > 1) {
// if (Predef.intArrayOps(getIntArray(e)).size.>(1)) {
// setColourTagMaybe( Predef.intArrayOps(getIntArray(e)).diff(Predef.wrapIntArray(Array.apply(getIntArray(e)(selectedColour)))));
// decrAbove_=(selectedColour);
// if (selectedColour.==(Predef.intArrayOps(getIntArray(e)).size)) {
// selectedColour_=(selectedColour.-(1));
// };
// val player: net.minecraft.client.entity.EntityClientPlayerMP = Minecraft.getMinecraft.thePlayer;
// if (player.worldObj.isRemote)
// PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, e.func_150302_c));
// };
// });
//
// }
// }
// def getIntArray(e:NBTTagIntArray) = e.func_150302_c()
//}
//
//
//
//
//
//
//
//
//
//

View file

@ -1,79 +0,0 @@
//package net.machinemuse.general.gui.frame
//
//import net.machinemuse.numina.geometry.{Colour, MusePoint2D, MuseRelativeRect}
//import net.machinemuse.powersuits.client.render.modelspec.{ModelRegistry, ModelSpec}
//import org.lwjgl.opengl.GL11._
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 6:39 PM, 29/04/13
// */
//class PartManipContainer(val itemSelect: ItemSelectionFrame, val colourSelect: ColourPickerFrame, topleft: MusePoint2D, bottomright: MusePoint2D, borderColour: Colour, insideColour: Colour)
// extends ScrollableFrame(topleft, bottomright, borderColour, insideColour) {
//
//
// def getItem = Option(itemSelect.getSelectedItem).map(e => e.getItem)
//
// def getItemSlot = Option(itemSelect.getSelectedItem).map(e => e.inventorySlot)
// var lastItemSlot: Option[Int] = None
//
// def getColour = if(getItem != None && colourSelect.selectedColour < colourSelect.colours.size && colourSelect.selectedColour >= 0)
// colourSelect.colours(colourSelect.selectedColour)
// else
// Colour.WHITE.getInt
// var lastColour = getColour
//
// def getColourIndex = colourSelect.selectedColour
// var lastColourIndex = getColourIndex
//
//
// val modelframes: Seq[PartManipSubFrame] =
// (ModelRegistry.getInstance().apply.values./:(Tuple2.apply(Seq.empty[PartManipSubFrame], scala.None: Option[PartManipSubFrame]))) ({
// case ((frameseq, prev), modelspec: ModelSpec) => {
// val newframe: PartManipSubFrame = createNewFrame(modelspec, prev);
// Tuple2.apply(frameseq.:+(newframe), Some.apply(newframe));
// }
// })._1;
//
// def createNewFrame(modelspec: ModelSpec, prev: Option[PartManipSubFrame]) = {
// val newborder = new MuseRelativeRect(topleft.x + 4, topleft.y + 4, bottomright.x, topleft.y + 10)
// newborder.setBelow(prev.map(e => e.border) getOrElse null)
// new PartManipSubFrame(modelspec, colourSelect, itemSelect, newborder)
// }
//
// override def onMouseDown(x: Double, y: Double, button: Int) {
// if (button == 0) {
// for (frame <- modelframes) {
// frame.tryMouseClick(x, y + currentscrollpixels)
// }
// }
// }
//
// override def update(mousex: Double, mousey: Double) {
// super.update(mousex, mousey)
// if (lastItemSlot != getItemSlot) {
// lastItemSlot = getItemSlot
// colourSelect.refreshColours()
// this.totalsize = (0.0 /: modelframes) {
// (acc, subframe) => subframe.updateItems(); subframe.border.bottom()
// }.toInt
// }
// if(colourSelect.decrAbove > -1) {
// decrAbove(colourSelect.decrAbove)
// colourSelect.decrAbove = -1
// }
// }
//
// def decrAbove(index:Int) {for(frame<-modelframes) frame.decrAbove(index)}
//
// override def draw() {
// super.preDraw()
// glPushMatrix()
// glTranslated(0, -currentscrollpixels, 0)
// for (f <- modelframes) {
// f.drawPartial(currentscrollpixels + 4 + border.top, this.currentscrollpixels + border.bottom - 4)
// }
// glPopMatrix()
// super.postDraw()
// }
//}

View file

@ -1,211 +0,0 @@
//package net.machinemuse.general.gui.frame
//
//import net.machinemuse.general.gui.clickable.ClickableItem
//import net.machinemuse.numina.general.MuseLogger
//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, MuseRenderer}
//import net.minecraft.client.Minecraft
//import net.minecraft.item.ItemArmor
//import net.minecraft.nbt.NBTTagCompound
//import org.lwjgl.opengl.GL11._
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 1:46 AM, 30/04/13
// */
//class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame, val itemSelector: ItemSelectionFrame, val border: MuseRelativeRect) {
//
// // see the java filter function in the recipes for an example on how to implement a filter in Java
//
//
//
// 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 getArmorSlot = getSelectedItem.getItem.getItem.asInstanceOf[ItemArmor].armorType
//
// def getSelectedItem = itemSelector.getSelectedItem
//
// def getRenderTag: NBTTagCompound = MuseItemUtils.getMuseRenderTag(getSelectedItem.getItem, getArmorSlot)
//
// def getItemTag = MuseItemUtils.getMuseItemTag(getSelectedItem.getItem)
//
// def isValidArmor(clickie: ClickableItem, slot: Int): Boolean = if (clickie == null) false else clickie.getItem.getItem.isValidArmor(clickie.getItem, slot, Minecraft.getMinecraft.thePlayer)
//
// def getSpecTag(spec: ModelPartSpec) = getRenderTag.getCompoundTag(ModelRegistry.getInstance().makeName(spec))
//
// def getOrDontGetSpecTag(spec: ModelPartSpec): Option[NBTTagCompound] = {
// val name = ModelRegistry.getInstance().makeName(spec)
// if (!getRenderTag.hasKey(name)) None
// else Some(getRenderTag.getCompoundTag(name))
// }
//
// def getOrMakeSpecTag(spec: ModelPartSpec): NBTTagCompound = {
// val name = ModelRegistry.getInstance().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)
// }
// }
//
// 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 drawPartial(min: Double, max: Double) {
// if (specs.size > 0) {
// ModelRegistry.getInstance().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 decrAbove(index: Int) {
// for (spec <- specs) {
// val tagname = ModelRegistry.getInstance().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 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: Double = ((x + 28) /: colourframe.colours) {
// case (acc, colour) =>
// new GuiIcons.ArmourColourPatch(acc, y, new Colour(colour), null, ymino, null, ymaxo)
// acc + 8
// }
//
// /*
// 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)
// }
//
// 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))
// }
// glEnd()
// Colour.WHITE.doGL()
// RenderState.texturelessOff()
// }
//
// def getBorder: MuseRect = {
// if (open) border.setHeight(9 + 9 * specs.size)
// else border.setHeight(9)
// border
// }
//
// 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.getInstance().makeName(spec)
// val player = Minecraft.getMinecraft.thePlayer
// renderTag.removeTag(ModelRegistry.getInstance().makeName(spec))
// if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, new NBTTagCompound()).getPacket131)
// updateItems()
// true
// }
// case 1 => {
// val tagname = ModelRegistry.getInstance().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.getInstance().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.getInstance().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
// }
//
//}

View file

@ -1,21 +0,0 @@
package net.machinemuse.powersuits.client.render.modelspec
import java.io.{File, FileOutputStream, PrintWriter}
import com.google.gson.Gson
/**
* Author: MachineMuse (Claire Semple)
* Created: 9:10 AM, 29/04/13
*/
object ModelSpecJSONWriter {
def writeRegistry(file: String) {
val gson = new Gson()
import scala.collection.JavaConverters._
val registry = ModelRegistry.getInstance()
val jsonwrite = gson.toJson(registry)
val w = new PrintWriter(new FileOutputStream(new File(file)))
w.print(jsonwrite)
w.close()
}
}

View file

@ -1,84 +0,0 @@
//package net.machinemuse.powersuits.client.render.modelspec;
//
//import java.util.List;
//
///**
// * Author: MachineMuse (Claire Semple)
// * Created: 9:10 AM, 29/04/13
// *
// * Ported to Java by lehjr on 11/10/16.
// */
//public class ModelSpecXMLWriter {
// private ModelSpecXMLWriter() {
// }
//
// private static ModelSpecXMLWriter INSTANCE;
// public static ModelSpecXMLWriter getINSTANCE() {
// if (INSTANCE == null)
// INSTANCE = new ModelSpecXMLWriter();
// return INSTANCE;
// }
//
//
//
//
// public void writeRegistry(final String file) {
//// final String s = null;
//// final String s2 = "models";
//// final Null$ module$ = Null$.MODULE$;
//// final TopScope$ module$2 = TopScope$.MODULE$;
//// final boolean b = false;
//// final NodeBuffer $buf = new NodeBuffer();
//// $buf.$amp$plus((Object)new Text("\n "));
//// $buf.$amp$plus(ModelRegistry$.MODULE$.apply().withFilter((Function1)new ModelSpecXMLWriter$$anonfun.ModelSpecXMLWriter$$anonfun$1()).map((Function1)new ModelSpecXMLWriter$$anonfun.ModelSpecXMLWriter$$anonfun$2(), Iterable$.MODULE$.canBuildFrom()));
//// $buf.$amp$plus((Object)new Text("\n "));
//// final Elem xmlwrite = new Elem(s, s2, (MetaData)module$, (NamespaceBinding)module$2, b, (Seq)$buf);
//// XML$.MODULE$.save(file, (Node)xmlwrite, XML$.MODULE$.save$default$3(), XML$.MODULE$.save$default$4(), XML$.MODULE$.save$default$5());
// }
//
//
//
// public String concatList(final List<String> list) {
//
//
//
//
// return ModelSpecXMLWriter$.MODULE$.concatList(list);
// }
//
//
//
//
//
//
//// package net.machinemuse.powersuits.client.render.modelspec
////
////import java.io.{File, FileOutputStream, PrintWriter}
////
////import com.google.gson.Gson
//
//
//// /**
//// * Author: MachineMuse (Claire Semple)
//// * Created: 9:10 AM, 29/04/13
//// */
//// object ModelSpecXMLWriter {
//// def writeRegistry(file: String) {
//// val xmlwrite =
//// <models>
//// {for ((modelname, modelspec) <- ModelRegistry.getInstance()) yield
//// <model file={modelspec.filename} textures={concatList(modelspec.textures)}>
//// {for ((partname, partspec) <- modelspec) yield
//// <binding slot={partspec.slot.toString} target={partspec.morph.name}>
//// <part defaultcolor={partspec.defaultcolourindex.toString} defaultglow={partspec.defaultglow.toString} polygroup={partspec.partName} name={partspec.displayName}/>
//// </binding>}
//// </model>}
//// </models>
////
//// scala.xml.XML.save(file, xmlwrite)
//// }
////
//// def concatList(list: Seq[String]): String = list mkString ","
//// }
//
//}

View file

@ -1,32 +0,0 @@
package net.machinemuse.powersuits.client.render.modelspec
import java.io.{File, FileOutputStream, PrintWriter}
import com.google.gson.Gson
/**
* Author: MachineMuse (Claire Semple)
* Created: 9:10 AM, 29/04/13
*/
object ModelSpecXMLWriter {
def writeRegistry(file: String) {
println("Writing XML file to " + file)
// val xmlwrite =
// <models>
// {for ((modelname, modelspec) <- ModelRegistry.getInstance()) yield
// <model file={modelspec.filename} textures={concatList(modelspec.textures)}>
// {for ((partname, partspec) <- modelspec) yield
// <binding slot={partspec.slot.toString} target={partspec.morph.name}>
// <part defaultcolor={partspec.defaultcolourindex.toString} defaultglow={partspec.defaultglow.toString} polygroup={partspec.partName} name={partspec.displayName}/>
// </binding>}
// </model>}
// </models>
//
// scala.xml.XML.save(file, xmlwrite)
}
def concatList(list: Seq[String]): String = list mkString ","
}

View file

@ -1,105 +0,0 @@
package net.machinemuse.powersuits.common
import java.net.URL
import cpw.mods.fml.client.registry.{ClientRegistry, RenderingRegistry}
import cpw.mods.fml.common.FMLCommonHandler
import net.machinemuse.general.sound.SoundDictionary
import net.machinemuse.numina.network.{MusePacket, MusePacketModeChangeRequest, PacketSender}
import net.machinemuse.numina.render.RenderGameOverlayEventHandler
import net.machinemuse.powersuits.block.{BlockTinkerTable, TileEntityLuxCapacitor, TileEntityTinkerTable}
import net.machinemuse.powersuits.client.render.block.{RenderLuxCapacitorTESR, TinkerTableRenderer}
import net.machinemuse.powersuits.client.render.entity.{RenderLuxCapacitorEntity, RenderPlasmaBolt, RenderSpinningBlade}
import net.machinemuse.powersuits.client.render.item.ToolRenderer
import net.machinemuse.powersuits.client.render.modelspec.ModelSpecXMLReader
import net.machinemuse.powersuits.control.{KeybindKeyHandler, KeybindManager}
import net.machinemuse.powersuits.entity.{EntityLuxCapacitor, EntityPlasmaBolt, EntitySpinningBlade}
import net.machinemuse.powersuits.event.{ClientTickHandler, PlayerLoginHandlerThingy, PlayerUpdateHandler, RenderEventHandler}
import net.minecraft.client.Minecraft
import net.minecraft.client.entity.EntityClientPlayerMP
import net.minecraftforge.client.MinecraftForgeClient
import net.minecraftforge.common.MinecraftForge
/**
* Common side of the proxy. Provides functions which
* the ClientProxy and ServerProxy will override if the behaviour is different for client and
* server, and keeps some common behaviour.
*
* @author MachineMuse
*/
trait CommonProxy {
def registerEvents() {}
def registerRenderers() {}
def registerHandlers() {}
def postInit() {}
def sendModeChange(dMode: Int, newMode: String) {}
}
class ClientProxy extends CommonProxy {
override def registerEvents {
MinecraftForge.EVENT_BUS.register(new SoundDictionary)
}
/**
* Register all the custom renderers for this mod.
*/
override def registerRenderers {
MinecraftForgeClient.registerItemRenderer(MPSItems.INSTANCE.powerTool, new ToolRenderer)
val tinkTableRenderID: Int = RenderingRegistry.getNextAvailableRenderId
val tinkTableRenderer: TinkerTableRenderer = new TinkerTableRenderer(tinkTableRenderID)
BlockTinkerTable.setRenderType(tinkTableRenderID)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileEntityTinkerTable], tinkTableRenderer)
RenderingRegistry.registerBlockHandler(tinkTableRenderer)
val luxCapacitorRenderID: Int = RenderingRegistry.getNextAvailableRenderId
val luxCapacitorRenderer: RenderLuxCapacitorTESR = new RenderLuxCapacitorTESR(luxCapacitorRenderID)
MPSItems.INSTANCE.luxCapacitor.setRenderType(luxCapacitorRenderID)
ClientRegistry.bindTileEntitySpecialRenderer(classOf[TileEntityLuxCapacitor], luxCapacitorRenderer)
RenderingRegistry.registerBlockHandler(luxCapacitorRenderer)
RenderingRegistry.registerEntityRenderingHandler(classOf[EntityPlasmaBolt], new RenderPlasmaBolt)
RenderingRegistry.registerEntityRenderingHandler(classOf[EntitySpinningBlade], new RenderSpinningBlade)
RenderingRegistry.registerEntityRenderingHandler(classOf[EntityLuxCapacitor], new RenderLuxCapacitorEntity)
MinecraftForge.EVENT_BUS.register(new RenderEventHandler)
val resource: URL = classOf[ClientProxy].getResource("/assets/powersuits/models/modelspec.xml")
ModelSpecXMLReader.getINSTANCE.parseFile(resource)
val otherResource: URL = classOf[ClientProxy].getResource("/assets/powersuits/models/armor2.xml")
ModelSpecXMLReader.getINSTANCE.parseFile(otherResource)
}
/**
* Register the tick handler (for on-tick behaviour) and packet handler (for
* network synchronization and permission stuff).
*/
override def registerHandlers {
FMLCommonHandler.instance.bus.register(new KeybindKeyHandler)
MinecraftForge.EVENT_BUS.register(new PlayerUpdateHandler)
FMLCommonHandler.instance.bus.register(new ClientTickHandler)
// val packetHandler: MusePacketHandler.type = MusePacketHandler
}
override def postInit() {
KeybindManager.readInKeybinds()
}
override def sendModeChange(dMode: Int, newMode: String) {
val player: EntityClientPlayerMP = Minecraft.getMinecraft.thePlayer
RenderGameOverlayEventHandler.updateSwap(Math.signum(dMode).asInstanceOf[Int])
val modeChangePacket: MusePacket = new MusePacketModeChangeRequest(player, newMode, player.inventory.currentItem)
PacketSender.sendToServer(modeChangePacket)
}
}
class ServerProxy extends CommonProxy {
override def registerEvents {
FMLCommonHandler.instance().bus().register(new PlayerLoginHandlerThingy)
}
override def registerHandlers() {
MinecraftForge.EVENT_BUS.register(new PlayerUpdateHandler)
}
}

View file

@ -1,375 +0,0 @@
package net.machinemuse.powersuits.common
import java.io.{File, PrintWriter}
import java.nio.file.Files
import java.util.{Arrays, Collections, List}
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.electricity.IModularItem
import net.machinemuse.api.{IPowerModule, ModuleManager}
import net.machinemuse.numina.basemod.Numina
import net.machinemuse.numina.general.MuseLogger
import net.machinemuse.powersuits.powermodule.armor._
import net.machinemuse.powersuits.powermodule.energy._
import net.machinemuse.powersuits.powermodule.misc._
import net.machinemuse.powersuits.powermodule.movement._
import net.machinemuse.powersuits.powermodule.tool._
import net.machinemuse.powersuits.powermodule.weapon._
import net.machinemuse.utils.MuseStringUtils
import net.minecraft.creativetab.CreativeTabs
import net.minecraft.item.ItemStack
import net.minecraft.util.StatCollector
import net.minecraftforge.common.config.Configuration
import org.lwjgl.input.Keyboard
import scala.io.Source
/**
* Initial attempt at storing all tweakable/configurable values in one class.
* This got really messy really fast so it's in the process of being
* reworked.
*
* @author MachineMuse
*/
object Config {
def keybindHUDon: Boolean = config.get("HUD", "Display HUD", true).getBoolean()
def keybindHUDx: Double = config.get("HUD", "x position", 8.0).getDouble()
def keybindHUDy: Double = config.get("HUD", "y position", 32.0).getDouble()
def toggleModuleSpam: Boolean = config.get("HUD", "Chat message when toggling modules", false).getBoolean()
def getWeightCapacity: Double = config.get(Configuration.CATEGORY_GENERAL, "Weight Limit (grams)", 25000.0).getDouble()
/**
* Called in post-init. Extracts recipes if the configuration value is not found.
*/
def extractRecipes() = {
val key = "Auto-extract recipes"
if(!config.hasKey(Configuration.CATEGORY_GENERAL, key) || config.get(Configuration.CATEGORY_GENERAL, key, false).getBoolean) {
config.get(Configuration.CATEGORY_GENERAL, key, false)
var found=false
if(ModCompatibility.isThermalExpansionLoaded) {
found=true
//TE
copyRecipe("mps-thermalexpansion.recipes")
}
if (ModCompatibility.isIndustrialCraftLoaded) {
found=true
//IC2
copyRecipe("mps-ic2.recipes")
}
if (ModCompatibility.isEnderIOLoaded) {
found=true
//enderIO
copyRecipe("mps-enderio.recipes")
}
if(!found) {
//vanilla
copyRecipe("mps-vanilla.recipes")
}
}
}
def copyRecipe(inFile:String): Unit = {
val src = classOf[CommonProxy].getClassLoader.getResourceAsStream(inFile)
val dest = new File(Numina.configDir.toString + "/machinemuse/recipes/" + inFile)
if(!dest.exists()) {
Files.copy(src, dest.toPath)
}
}
/**
* Called in the pre-init phase of initialization, informs Forge that we
* want the following blockIDs.
*
* @param config The Forge configuration object which will handle such
* requests.
*/
def init(config: Configuration) {
Config.config = config
config.load()
config.save()
}
/**
* The packet channel for this mod. We will only listen for and send packets
* on this 'channel'. Max of 16 characters.
*
* @return
*/
def getNetworkChannelName: String = {
return "powerSuits"
}
/**
* The default creative tab to add all these items to. This behaviour may
* change if more items are added, but for now there are only 5 items and 1
* block, so misc is the most appropriate target.
*
* @return
*/
def getCreativeTab: CreativeTabs = {
return new MPSCreativeTab
}
/**
* Chance of each item being returned when salvaged.
*
* @return percent chance, 0.0 to 1.0
*/
def getSalvageChance: Double = {
return config.get(Configuration.CATEGORY_GENERAL, "Salvage Ratio", 0.9).getDouble(0.9)
}
/**
* The maximum amount of armor contribution allowed per armor piece. Total
* armor when the full set is worn can never exceed 4 times this amount.
*
* @return
*/
def getMaximumArmorPerPiece: Double = {
return Math.max(0.0, config.get(Configuration.CATEGORY_GENERAL, "Maximum Armor per Piece", 6.0).getDouble(6.0))
}
def getMaximumFlyingSpeedmps: Double = {
return config.get(Configuration.CATEGORY_GENERAL, "Maximum flight speed (in m/s)", 25.0).getDouble(25.0)
}
def useMouseWheel: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use Mousewheel to change modes", true).getBoolean(true)
}
def addModule(module: IPowerModule) {
ModuleManager.addModule(module)
}
/**
* The power drain for the Applied Energistics2 and ExtraCells2 wireless terminals
*
*/
def appengMultiplier: Double = {
return config.get(Configuration.CATEGORY_GENERAL, "Energy per AE", 5.0).getDouble(5.0)
}
def useAdvancedOreScannerMessage: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use Detailed Ore Scanner Message", true).getBoolean(true)
}
def useOldAutoFeeder: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use Old Auto Feeder Method", false).getBoolean(false);
}
def useCheatyLeatherRecipe: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use Cheaty Leather Recipe (Requires Thermal Expansion)", true).getBoolean(true)
}
def useHUDStuff: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use HUD for certain modules (Auto Feeder, Compass, Clock, etc.", true).getBoolean(true)
}
def use24hClock: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use a 24h clock instead of 12h", false).getBoolean(false)
}
/**
* Load all the modules in the config file into memory. Eventually. For now,
* they are hardcoded.
*/
def loadPowerModules() {
val ARMORONLY: List[IModularItem] = Arrays.asList[IModularItem](MPSItems.INSTANCE.powerArmorHead.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerArmorTorso.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerArmorLegs.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerArmorFeet.asInstanceOf[IModularItem])
val ALLITEMS: List[IModularItem] = Arrays.asList(MPSItems.INSTANCE.powerArmorHead.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerArmorTorso.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerArmorLegs.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerArmorFeet.asInstanceOf[IModularItem], MPSItems.INSTANCE.powerTool.asInstanceOf[IModularItem])
val HEADONLY: List[IModularItem] = Collections.singletonList(MPSItems.INSTANCE.powerArmorHead.asInstanceOf[IModularItem])
val TORSOONLY: List[IModularItem] = Collections.singletonList(MPSItems.INSTANCE.powerArmorTorso.asInstanceOf[IModularItem])
val LEGSONLY: List[IModularItem] = Collections.singletonList(MPSItems.INSTANCE.powerArmorLegs.asInstanceOf[IModularItem])
val FEETONLY: List[IModularItem] = Collections.singletonList(MPSItems.INSTANCE.powerArmorFeet.asInstanceOf[IModularItem])
val TOOLONLY: List[IModularItem] = Collections.singletonList(MPSItems.INSTANCE.powerTool.asInstanceOf[IModularItem])
addModule(new BasicPlatingModule(ARMORONLY))
addModule(new DiamondPlatingModule(ARMORONLY))
addModule(new EnergyShieldModule(ARMORONLY))
addModule(new HeatSinkModule(ARMORONLY))
addModule(new AxeModule(TOOLONLY))
addModule(new PickaxeModule(TOOLONLY))
addModule(new ShovelModule(TOOLONLY))
addModule(new ShearsModule(TOOLONLY))
addModule(new HoeModule(TOOLONLY))
addModule(new LuxCapacitor(TOOLONLY))
//addModule(new OmniWrenchModule(TOOLONLY)) // Requires COFH lib/core
addModule(new FieldTinkerModule(TOOLONLY))
addModule(new MeleeAssistModule(TOOLONLY))
addModule(new PlasmaCannonModule(TOOLONLY))
addModule(new RailgunModule(TOOLONLY))
addModule(new BladeLauncherModule(TOOLONLY))
addModule(new BasicBatteryModule(ALLITEMS))
addModule(new AdvancedBatteryModule(ALLITEMS))
addModule(new EliteBatteryModule(ALLITEMS))
addModule(new ParachuteModule(TORSOONLY))
addModule(new GliderModule(TORSOONLY))
addModule(new JetPackModule(TORSOONLY))
addModule(new SprintAssistModule(LEGSONLY))
addModule(new JumpAssistModule(LEGSONLY))
addModule(new SwimAssistModule(LEGSONLY))
addModule(new ClimbAssistModule(LEGSONLY))
addModule(new JetBootsModule(FEETONLY))
addModule(new ShockAbsorberModule(FEETONLY))
addModule(new WaterElectrolyzerModule(HEADONLY))
addModule(new NightVisionModule(HEADONLY))
addModule(new BinocularsModule(HEADONLY))
addModule(new FlightControlModule(HEADONLY))
addModule(new InvisibilityModule(TORSOONLY))
addModule(new BlinkDriveModule(TOOLONLY))
addModule(new DiamondPickUpgradeModule(TOOLONLY))
addModule(new AquaAffinityModule(TOOLONLY))
addModule(new CoolingSystemModule(TORSOONLY))
addModule(new TintModule(TOOLONLY))
addModule(new TransparentArmorModule(ARMORONLY))
addModule(new CosmeticGlowModule(ARMORONLY))
addModule(new InPlaceAssemblerModule(TOOLONLY));
addModule(new KineticGeneratorModule(LEGSONLY));
addModule(new SolarGeneratorModule(HEADONLY));
addModule(new AutoFeederModule(HEADONLY));
addModule(new MagnetModule(TORSOONLY));
addModule(new OreScannerModule(TOOLONLY));
addModule(new LeafBlowerModule(TOOLONLY));
addModule(new ThermalGeneratorModule(TORSOONLY));
addModule(new MobRepulsorModule(TORSOONLY));
addModule(new FlintAndSteelModule(TOOLONLY));
addModule(new ClockModule(HEADONLY));
addModule(new CompassModule(HEADONLY));
addModule(new LightningModule(TOOLONLY));
addModule(new WaterTankModule(TORSOONLY));
addModule(new DimensionalRiftModule(TOOLONLY));
addModule(new AdvancedSolarGenerator(HEADONLY));
addModule(new NitrogenCoolingSystem(TORSOONLY));
addModule(new MechanicalAssistance(TORSOONLY));
//addModule(new CoalGenerator(TORSOONLY)); //doesn't seem to be working
}
def getConfig: Configuration = {
return config
}
def doAdditionalInfo(): Boolean = {
if (FMLCommonHandler.instance.getEffectiveSide eq Side.CLIENT) {
if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) {
return true
}
}
return false
}
def additionalInfoInstructions: AnyRef = {
var message: String = StatCollector.translateToLocal("tooltip.pressShift")
message = MuseStringUtils.wrapMultipleFormatTags(message, MuseStringUtils.FormatCodes.Grey, MuseStringUtils.FormatCodes.Italic)
return message
}
def useGraphicalMeters: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Use Graphical Meters", true).getBoolean(true)
}
def baseMaxHeat: Double = {
return config.get(Configuration.CATEGORY_GENERAL, "Base Heat Cap", 50.0).getDouble(50.0)
}
def allowConflictingKeybinds: Boolean = {
return config.get(Configuration.CATEGORY_GENERAL, "Allow Conflicting Keybinds", true).getBoolean(true)
}
def useCustomFonts: Boolean = {
return config.get("Font", "Use Custom Font Engine", true).getBoolean(true)
}
def fontDetail: Double = {
return config.get("Font", "Font Detail Multiplier", 4).getDouble(4)
}
def fontURI: String = {
return config.get("Font", "Font URI", Config.RESOURCE_PREFIX + "fonts/cra.ttf").getString
}
def fontName: String = {
return config.get("Font", "Native Font Name (Overrides URI)", "").getString
}
def fontAntiAliasing: Boolean = {
return config.get("Font", "Font Anti-Aliasing", false).getBoolean(false)
}
def glowMultiplier: Int = {
return config.get("Graphics", "Bloom Multiplier", 3).getInt(3)
}
def useShaders: Boolean = {
return config.get("Graphics", "Use Pixel/Vertex Shaders", true).getBoolean(true)
}
def setConfigFolderBase(folder: File) {
configFolder = new File(folder.getAbsolutePath + "/machinemuse")
}
final val RESOURCE_PREFIX: String = "powersuits:"
final val TEXTURE_PREFIX: String = "powersuits:textures/"
final val SOUND_PREFIX: String = RESOURCE_PREFIX + "sound/"
final val LANG_PREFIX: String = RESOURCE_PREFIX + "lang/"
final val SEBK_ARMOR_PATH: String = TEXTURE_PREFIX + "models/sebkarmor.png"
final val SEBK_ARMORPANTS_PATH: String = TEXTURE_PREFIX + "models/sebkarmorpants.png"
final val TINKERTABLE_TEXTURE_PATH: String = TEXTURE_PREFIX + "models/tinkertable_tx.png"
final val ARMOR_TEXTURE_PATH: String = TEXTURE_PREFIX + "models/diffuse.png"
final val BLANK_ARMOR_MODEL_PATH: String = TEXTURE_PREFIX + "models/blankarmor.png"
final val SEBK_TOOL_TEXTURE: String = TEXTURE_PREFIX + "models/tool.png"
final val LIGHTNING_TEXTURE: String = TEXTURE_PREFIX + "gui/lightning-medium.png"
final val CITIZENJOE_ARMOR_PATH: String = TEXTURE_PREFIX + "models/joearmor.png"
final val CITIZENJOE_ARMORPANTS_PATH: String = TEXTURE_PREFIX + "models/joearmorpants.png"
final val GLASS_TEXTURE: String = TEXTURE_PREFIX + "gui/glass.png"
var configFolder: File = null
private var config: Configuration = null
var canUseShaders: Boolean = false
def addCustomInstallCosts():Unit = {
val installCostFile = new File(configFolder, "custominstallcosts.json")
val gson = new Gson()
if(installCostFile.exists) {
val source = Source.fromFile(installCostFile)
val string = source.mkString
source.close()
MuseLogger.logDebug(string)
val costs = gson.fromJson[Array[InstallCost]](string, classOf[Array[InstallCost]])
costs.foreach { cost=>
val moduleName = cost.moduleName
val item = GameRegistry.findItem(cost.modId, cost.itemName)
if(item != null) {
val metadata = if (cost.itemMetadata == null) 0 else cost.itemMetadata.intValue()
val quantity = if (cost.itemQuantity == null) 1 else cost.itemQuantity.intValue()
val stack = new ItemStack(item, quantity, metadata)
if(stack != null) {
ModuleManager.addCustomInstallCost(moduleName, stack)
} else {
MuseLogger.logError("Invalid Itemstack in custom install cost. Module [" + cost.moduleName + "], item [" + cost.itemName + "]")
}
} else {
MuseLogger.logError("Invalid Item in custom install cost. Module [" + cost.moduleName + "], item [" + cost.itemName + "]")
}
}
} else {
installCostFile.createNewFile()
val examplecost = new InstallCost()
examplecost.moduleName = "Shock Absorber"
examplecost.itemName = "wool"
examplecost.modId = "minecraft"
examplecost.itemQuantity = 2
examplecost.itemMetadata = 0
val examplecost2 = new InstallCost()
examplecost2.moduleName = "Shock Absorber"
examplecost2.itemName = "powerArmorComponent"
examplecost2.modId = "powersuits"
examplecost2.itemQuantity = 2
examplecost2.itemMetadata = 2
val output = Array(examplecost, examplecost2)
val json = gson.toJson(output)
val dest = new PrintWriter(installCostFile)
dest.write(json)
dest.close()
}
}
}

View file

@ -1,73 +0,0 @@
package net.machinemuse.powersuits.common
import java.io.File
import cpw.mods.fml.common.event.{FMLInitializationEvent, FMLPostInitializationEvent, FMLPreInitializationEvent}
import cpw.mods.fml.common.network.NetworkRegistry
import cpw.mods.fml.common.registry.EntityRegistry
import cpw.mods.fml.common.{Mod, SidedProxy}
import net.machinemuse.powersuits.entity.{EntityLuxCapacitor, EntityPlasmaBolt, EntitySpinningBlade}
import net.machinemuse.powersuits.event.{HarvestEventHandler, 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;
/**
* Main mod class. This is what Forge loads to get the mod up and running, both
* server- and client-side.
*
* @author MachineMuse
*/
@Mod(modid = "powersuits", modLanguage = "scala", dependencies = "required-after:numina@[@numina_version@,)")
object ModularPowersuits {
@SidedProxy(clientSide = "net.machinemuse.powersuits.common.ClientProxy", serverSide = "net.machinemuse.powersuits.common.ServerProxy")
var proxy: CommonProxy = null
var config: Configuration = null
val INSTANCE=this
@Mod.EventHandler def preInit(event: FMLPreInitializationEvent) {
val newConfig: File = new File(event.getModConfigurationDirectory + "/machinemuse/powersuits.cfg")
Config.init(new Configuration(newConfig))
Config.setConfigFolderBase(event.getModConfigurationDirectory)
MinecraftForge.EVENT_BUS.register(new HarvestEventHandler)
MinecraftForge.EVENT_BUS.register(new MovementManager)
proxy.registerEvents()
}
@Mod.EventHandler def load(event: FMLInitializationEvent) {
Config.loadPowerModules()
Config.getMaximumArmorPerPiece
Config.getMaximumFlyingSpeedmps
Config.useMouseWheel
Config.useGraphicalMeters
Config.getSalvageChance
Config.baseMaxHeat
Config.allowConflictingKeybinds
Config.fontAntiAliasing
Config.useCustomFonts
Config.glowMultiplier
Config.useShaders
Config.getWeightCapacity
Config.keybindHUDon
Config.keybindHUDx
Config.toggleModuleSpam
EntityRegistry.registerModEntity(classOf[EntityPlasmaBolt], "entityPlasmaBolt", 2477, this, 64, 20, true)
EntityRegistry.registerModEntity(classOf[EntitySpinningBlade], "entitySpinningBlade", 2478, this, 64, 20, true)
EntityRegistry.registerModEntity(classOf[EntityLuxCapacitor], "entityLuxCapacitor", 2479, this, 64, 20, true)
proxy.registerHandlers()
proxy.registerRenderers()
MPSPacketList.registerPackets()
NetworkRegistry.INSTANCE.registerGuiHandler(this, MPSGuiHandler.getInstance())
TerminalHandler.registerHandler();
}
@Mod.EventHandler def postInit(event: FMLPostInitializationEvent) {
proxy.postInit()
ModCompatibility.registerModSpecificModules()
Config.extractRecipes()
Config.addCustomInstallCosts()
Config.getConfig.save()
}
}

View file

@ -1,39 +0,0 @@
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import net.machinemuse.api.electricity.IModularItem
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.utils.MuseItemUtils
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
import net.minecraft.nbt.NBTTagCompound
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketColourInfo extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val itemSlot = readInt(d)
val tagData = readIntArray(d)
new MusePacketColourInfo(p, itemSlot, tagData)
}
}
class MusePacketColourInfo(player: EntityPlayer, itemSlot: Int, tagData: Array[Int]) extends MusePacket {
val packager = MusePacketColourInfo
def write {
writeInt(itemSlot)
writeIntArray(tagData)
}
override def handleServer(playerEntity: EntityPlayerMP) {
val stack = playerEntity.inventory.getStackInSlot(itemSlot)
if (stack != null && stack.getItem.isInstanceOf[IModularItem]) {
val renderTag: NBTTagCompound = MuseItemUtils.getMuseRenderTag(stack)
renderTag.setIntArray("colours", tagData)
}
}
}

View file

@ -1,54 +0,0 @@
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import net.machinemuse.api.electricity.IModularItem
import net.machinemuse.numina.general.MuseLogger
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.utils.MuseItemUtils
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
import net.minecraft.nbt.NBTTagCompound
/**
* Author: MachineMuse (Claire Semple)
* Created: 10:16 AM, 01/05/13
*/
object MusePacketCosmeticInfo extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val itemSlot = readInt(d)
val tagName = readString(d)
val tagData = readNBTTagCompound(d)
new MusePacketCosmeticInfo(p, itemSlot, tagName, tagData)
}
}
class MusePacketCosmeticInfo(player: EntityPlayer, itemSlot: Int, tagName: String, tagData: NBTTagCompound) extends MusePacket {
val packager = MusePacketCosmeticInfo
def write {
writeInt(itemSlot)
writeString(tagName)
writeNBTTagCompound(tagData)
}
override def handleServer(playerEntity: EntityPlayerMP) {
val stack = playerEntity.inventory.getStackInSlot(itemSlot)
if (tagName != null && stack != null && stack.getItem.isInstanceOf[IModularItem]) {
val itemTag: NBTTagCompound = MuseItemUtils.getMuseItemTag(stack)
var renderTag: NBTTagCompound = null
if (!itemTag.hasKey("render")) {
renderTag = new NBTTagCompound
itemTag.setTag("render", renderTag)
} else {
renderTag = itemTag.getCompoundTag("render")
}
if (tagData.hasNoTags) {
MuseLogger.logDebug("Removing tag " + tagName)
renderTag.removeTag(tagName)
} else {
MuseLogger.logDebug("Adding tag " + tagName + " : " + tagData)
renderTag.setTag(tagName, tagData)
}
}
}
}

View file

@ -1,69 +0,0 @@
/**
*
*/
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import java.util.{ArrayList, List}
import net.machinemuse.api.{IPowerModule, ModuleManager}
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket, PacketSender}
import net.machinemuse.utils.{ElectricItemUtils, MuseItemUtils}
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP, InventoryPlayer}
import net.minecraft.item.ItemStack
import net.minecraft.util.ChatComponentText
/**
* Packet for requesting to purchase an upgrade. Player-to-server. Server decides whether it is a valid upgrade or not and replies with an associated
* inventoryrefresh packet.
*
* Author: MachineMuse (Claire Semple)
* Created: 10:16 AM, 01/05/13
*/
object MusePacketInstallModuleRequest extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val itemSlot = readInt(d)
val moduleName = readString(d)
new MusePacketInstallModuleRequest(p, itemSlot, moduleName)
}
}
class MusePacketInstallModuleRequest(player: EntityPlayer, itemSlot: Int, moduleName: String) extends MusePacket {
val packager = MusePacketInstallModuleRequest
def write {
writeInt(itemSlot)
writeString(moduleName)
}
override def handleServer(playerEntity: EntityPlayerMP) {
val stack = playerEntity.inventory.getStackInSlot(itemSlot)
if (moduleName != null) {
val inventory: InventoryPlayer = playerEntity.inventory
val moduleType: IPowerModule = ModuleManager.getModule(moduleName)
if (moduleType == null || !moduleType.isAllowed) {
playerEntity.addChatComponentMessage(new ChatComponentText("Server has disallowed this module. Sorry!"))
return
}
val cost: List[ItemStack] = moduleType.getInstallCost
if ((!ModuleManager.itemHasModule(stack, moduleName) && MuseItemUtils.hasInInventory(cost, playerEntity.inventory)) || playerEntity.capabilities.isCreativeMode) {
ModuleManager.itemAddModule(stack, moduleType)
import scala.collection.JavaConversions._
for (stackInCost <- cost) {
ElectricItemUtils.givePlayerEnergy(playerEntity, ElectricItemUtils.jouleValueOfComponent(stackInCost))
}
var slotsToUpdate: List[Integer] = new ArrayList[Integer]
if (!playerEntity.capabilities.isCreativeMode) {
slotsToUpdate = MuseItemUtils.deleteFromInventory(cost, inventory)
}
slotsToUpdate.add(itemSlot)
import scala.collection.JavaConversions._
for (slotiter <- slotsToUpdate) {
val reply: MusePacket = new MusePacketInventoryRefresh(playerEntity, slotiter, inventory.getStackInSlot(slotiter))
PacketSender.sendTo(reply, playerEntity)
}
}
}
}
}

View file

@ -1,45 +0,0 @@
/**
*
*/
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import cpw.mods.fml.relauncher.{Side, SideOnly}
import net.machinemuse.general.gui.MuseGui
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.numina.scala.OptionCast
import net.minecraft.client.Minecraft
import net.minecraft.client.entity.EntityClientPlayerMP
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.inventory.IInventory
import net.minecraft.item.ItemStack
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketInventoryRefresh extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val itemSlot = readInt(d)
val stack = readItemStack(d)
new MusePacketInventoryRefresh(p, itemSlot, stack)
}
}
class MusePacketInventoryRefresh(player: EntityPlayer, slot: Int, stack: ItemStack) extends MusePacket {
val packager = MusePacketInventoryRefresh
def write {
writeInt(slot)
writeItemStack(stack)
}
@SideOnly(Side.CLIENT)
override def handleClient(player: EntityClientPlayerMP) {
val inventory: IInventory = player.inventory
inventory.setInventorySlotContents(slot, stack)
OptionCast[MuseGui](Minecraft.getMinecraft.currentScreen) foreach (s => s.refresh())
}
}

View file

@ -1,44 +0,0 @@
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import cpw.mods.fml.relauncher.{Side, SideOnly}
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.powersuits.entity.EntityPlasmaBolt
import net.minecraft.client.Minecraft
import net.minecraft.client.entity.EntityClientPlayerMP
import net.minecraft.entity.player.EntityPlayer
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketPlasmaBolt extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val entityID = readInt(d)
val size = readDouble(d)
new MusePacketPlasmaBolt(p, entityID, size)
}
}
class MusePacketPlasmaBolt(player: EntityPlayer, entityID: Int, size: Double) extends MusePacket {
val packager = MusePacketPlasmaBolt
def write {
writeInt(entityID)
writeDouble(size)
}
@SideOnly(Side.CLIENT)
override def handleClient(player: EntityClientPlayerMP) {
try {
val entity: EntityPlasmaBolt = Minecraft.getMinecraft.theWorld.getEntityByID(entityID).asInstanceOf[EntityPlasmaBolt]
entity.size = this.size
}
catch {
case e: Exception => {
return
}
}
}
}

View file

@ -1,39 +0,0 @@
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket, PacketSender}
import net.machinemuse.powersuits.control.PlayerInputMap
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketPlayerUpdate extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val username = readString(d)
val inputMap: PlayerInputMap = PlayerInputMap.getInputMapFor(username)
inputMap.readFromStream(d)
new MusePacketPlayerUpdate(p, inputMap)
}
}
class MusePacketPlayerUpdate(player: EntityPlayer, inputMap: PlayerInputMap) extends MusePacket {
val packager = MusePacketPlayerUpdate
def write {
writeString(player.getCommandSenderName)
inputMap.writeToStream(dataout)
}
override def handleServer(player: EntityPlayerMP) {
val updatePacket: MusePacketPlayerUpdate = new MusePacketPlayerUpdate(player, inputMap)
player.motionX = inputMap.motionX
player.motionY = inputMap.motionY
player.motionZ = inputMap.motionZ
PacketSender.sendToAllAround(updatePacket, player, 128)
}
}

View file

@ -1,77 +0,0 @@
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import cpw.mods.fml.relauncher.{Side, SideOnly}
import net.machinemuse.api.ModuleManager
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.powersuits.powermodule.{PowerModuleBase, PropertyModifierFlatAdditive, PropertyModifierLinearAdditive}
import net.minecraft.client.entity.EntityClientPlayerMP
import net.minecraft.entity.player.EntityPlayer
/**
* Author: MachineMuse (Claire Semple)
* Created: 7:23 PM, 12/05/13
*/
object MusePacketPropertyModifierConfig extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
new MusePacketPropertyModifierConfig(p, d)
}
}
class MusePacketPropertyModifierConfig(player: EntityPlayer, data: DataInputStream) extends MusePacket {
val packager = MusePacketPropertyModifierConfig
override def write {
import scala.collection.JavaConverters._
writeInt(ModuleManager.getAllModules.size())
for (module <- ModuleManager.getAllModules.asScala) {
writeString(module.getDataName)
writeBoolean(module.isAllowed)
writeInt(module.getPropertyModifiers.size())
for ((propname, propmodlist) <- module.getPropertyModifiers.asScala) {
writeString(propname)
writeInt(propmodlist.size)
for (propmod <- propmodlist.asScala) {
propmod match {
case x: PropertyModifierFlatAdditive => writeDouble(x.valueAdded)
case x: PropertyModifierLinearAdditive => writeDouble(x.multiplier)
case _ => writeDouble(0)
}
}
}
}
}
/**
* Called by the network manager since it does all the packet mapping
*
* @param player
*/
@SideOnly(Side.CLIENT)
override def handleClient(player: EntityClientPlayerMP) {
val d = MusePacketPropertyModifierConfig
val numModules = d readInt data
for (_ <- 0 until numModules) {
val moduleName = d readString data
val allowed = d readBoolean data
val module = ModuleManager.getModule(moduleName)
if (module.isInstanceOf[PowerModuleBase]) module.asInstanceOf[PowerModuleBase] setIsAllowed allowed
val numProps = d readInt data
for (_ <- 0 until numProps) {
val propName = d readString data
val numModifiers = d readInt data
val proplist = module.getPropertyModifiers.get(propName)
for (m <- 0 until numModifiers) {
proplist.get(m) match {
case x: PropertyModifierFlatAdditive => x.valueAdded = d readDouble data
case x: PropertyModifierLinearAdditive => x.multiplier = d readDouble data
case _ => d readDouble data
}
}
}
}
}
}

View file

@ -1,62 +0,0 @@
/**
*
*/
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import java.util.{HashSet, List}
import net.machinemuse.api.{IPowerModule, ModuleManager}
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket, PacketSender}
import net.machinemuse.powersuits.common.Config
import net.machinemuse.utils.MuseItemUtils
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP, InventoryPlayer}
import net.minecraft.item.ItemStack
/**
* Packet for requesting to purchase an upgrade. Player-to-server. Server
* decides whether it is a valid upgrade or not and replies with an associated
* inventoryrefresh packet.
*
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketSalvageModuleRequest extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val itemSlot = readInt(d)
val moduleName = readString(d)
new MusePacketSalvageModuleRequest(p, itemSlot, moduleName)
}
}
class MusePacketSalvageModuleRequest(player: EntityPlayer, itemSlot: Int, moduleName: String) extends MusePacket {
val packager = MusePacketSalvageModuleRequest
def write {
writeInt(itemSlot)
writeString(moduleName)
}
override def handleServer(playerEntity: EntityPlayerMP) {
if (moduleName != null) {
val inventory: InventoryPlayer = playerEntity.inventory
val stack = playerEntity.inventory.getStackInSlot(itemSlot)
val moduleType: IPowerModule = ModuleManager.getModule(moduleName)
val refund: List[ItemStack] = moduleType.getInstallCost
if (ModuleManager.itemHasModule(stack, moduleName)) {
val slots: java.util.Set[Integer] = new HashSet[Integer]
ModuleManager.removeModule(stack, moduleName)
import scala.collection.JavaConversions._
for (refundItem <- refund) {
slots.addAll(MuseItemUtils.giveOrDropItemWithChance(refundItem.copy, playerEntity, Config.getSalvageChance))
}
slots.add(itemSlot)
for (slotiter <- slots) {
val reply: MusePacket = new MusePacketInventoryRefresh(player, slotiter, inventory.getStackInSlot(slotiter))
PacketSender.sendTo(reply, playerEntity)
}
}
}
}
}

View file

@ -1,34 +0,0 @@
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.utils.MuseItemUtils
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
/**
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketToggleRequest extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val module = readString(d)
val value = readBoolean(d)
new MusePacketToggleRequest(p, module, value)
}
}
class MusePacketToggleRequest(player: EntityPlayer, module: String, active: Boolean) extends MusePacket {
val packager = MusePacketToggleRequest
def write() {
writeString(module)
writeBoolean(active)
}
override def handleServer(player: EntityPlayerMP) {
MuseItemUtils.toggleModuleForPlayer(player, module, active)
}
}

View file

@ -1,53 +0,0 @@
/**
*
*/
package net.machinemuse.powersuits.network.packets
import java.io.DataInputStream
import net.machinemuse.api.ModuleManager
import net.machinemuse.numina.general.MuseMathUtils
import net.machinemuse.numina.network.{IMusePackager, MusePackager, MusePacket}
import net.machinemuse.utils.MuseItemUtils
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
import net.minecraft.nbt.NBTTagCompound
/**
* Packet for requesting to purchase an upgrade. Player-to-server. Server
* decides whether it is a valid upgrade or not and <strike>replies with an associated
* inventoryrefresh packet</strike>.
*
* Author: MachineMuse (Claire Semple)
* Created: 12:28 PM, 5/6/13
*/
object MusePacketTweakRequest extends MusePackager {
override def read(d: DataInputStream, p: EntityPlayer) = {
val itemSlot = readInt(d)
val moduleName = readString(d)
val tweakName = readString(d)
val tweakValue = readDouble(d)
new MusePacketTweakRequest(p, itemSlot, moduleName, tweakName, tweakValue)
}
}
class MusePacketTweakRequest(player: EntityPlayer, itemSlot: Int, moduleName: String, tweakName: String, tweakValue: Double) extends MusePacket {
val packager = MusePacketTweakRequest
def write {
writeInt(itemSlot)
writeString(moduleName)
writeString(tweakName)
writeDouble(tweakValue)
}
override def handleServer(playerEntity: EntityPlayerMP) {
if (moduleName != null && tweakName != null) {
val stack = playerEntity.inventory.getStackInSlot(itemSlot)
val itemTag: NBTTagCompound = MuseItemUtils.getMuseItemTag(stack)
if (itemTag != null && ModuleManager.tagHasModule(itemTag, moduleName)) {
val moduleTag: NBTTagCompound = itemTag.getCompoundTag(moduleName)
moduleTag.setDouble(tweakName, MuseMathUtils.clampDouble(tweakValue, 0, 1))
}
}
}
}