Finished porting to pure Java. Cleanup is next
This commit is contained in:
parent
a177803885
commit
d387e37a53
|
@ -23,7 +23,7 @@ repositories {
|
|||
}
|
||||
}
|
||||
|
||||
apply plugin: 'scala'
|
||||
//apply plugin: 'scala'
|
||||
apply plugin: 'forge'
|
||||
apply plugin: 'curseforge'
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
}
|
|
@ -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);
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
// }
|
||||
//}
|
|
@ -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()
|
||||
//}
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
|
@ -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()
|
||||
// }
|
||||
//}
|
|
@ -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
|
||||
// }
|
||||
//
|
||||
//}
|
|
@ -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()
|
||||
}
|
||||
}
|
|
@ -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 ","
|
||||
//// }
|
||||
//
|
||||
//}
|
|
@ -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 ","
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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())
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue