many changes for 1.7. Much remains.
This commit is contained in:
parent
91f75bc654
commit
c278000679
385
build.xml
385
build.xml
|
@ -1,385 +0,0 @@
|
|||
<project name="ModularPowersuits" default="install" basedir=".">
|
||||
|
||||
<property environment="env"/>
|
||||
|
||||
|
||||
<!-- Versions -->
|
||||
<property name="build.ver" value="0.10.0"/>
|
||||
<property name="fullversion" value="${build.ver}-${env.BUILD_NUMBER}"/>
|
||||
<property name="scala.version" value="2.10.1"/>
|
||||
|
||||
<property name="mcp.version" value="805"/>
|
||||
<property name="minecraft.version" value="1.6.4"/>
|
||||
<property name="forgemajor.version" value="9.11.1"/>
|
||||
<property name="forgebuild" value="965"/>
|
||||
|
||||
<property name="forge.version" value="${minecraft.version}-${forgemajor.version}.${forgebuild}"/>
|
||||
<property name="forgeant.version" value="${forgemajor.version}.${forgebuild}"/>
|
||||
|
||||
<property name="ic2api.version" value="1.118.401-lf"/>
|
||||
<property name="icbmapi.version" value="1.3.2.216"/>
|
||||
<property name="thermexapi.version" value="2.3.0b"/>
|
||||
<property name="galacticraftapi.version" value="2"/>
|
||||
<property name="mfrapi.version" value="2.5.2B2-642"/>
|
||||
<property name="forestryapi.version" value="2.3.0.1"/>
|
||||
<property name="thaumcraftapi.version" value="0.0.5-3.0.4b"/>
|
||||
|
||||
<!-- Directories -->
|
||||
<property name="download.dir" value="downloads"/>
|
||||
<property name="src.dir" value="src"/>
|
||||
<property name="lib.dir" value="${src.dir}/lib"/>
|
||||
<property name="build.dir" value="build/${minecraft.version}"/>
|
||||
<property name="classes.dir" value="${build.dir}/packaging"/>
|
||||
<property name="forge.dir" value="${build.dir}/forge"/>
|
||||
<property name="dist.dir" value="dist"/>
|
||||
<property name="mcp.dir" value="${forge.dir}/mcp"/>
|
||||
<property name="mcplib.dir" value="${mcp.dir}/lib"/>
|
||||
<property name="mcpsrc.dir" value="${mcp.dir}/src/minecraft"/>
|
||||
<property name="resources.dir" value="assets/powersuits"/>
|
||||
|
||||
<!-- URLs -->
|
||||
<property name="apisource.url" value="http://machinemuse.minecraftforge.net"/>
|
||||
|
||||
|
||||
<!-- Name -->
|
||||
<property name="package.meta-inf" value="META-INF"/>
|
||||
|
||||
|
||||
<!-- Version Checking -->
|
||||
|
||||
<property file="${forge.dir}/forgeversion.properties"/>
|
||||
<condition property="forge-already-installed">
|
||||
<equals arg1="${forge.build.number}" arg2="${forgebuild}"/>
|
||||
</condition>
|
||||
<available property="forge-exists" file="${download.dir}/forge-${forge.version}-src.zip"/>
|
||||
<!--<available property="already-compiled" file="${classes.dir}/net/machinemuse"/>-->
|
||||
|
||||
<mkdir dir="${download.dir}"/>
|
||||
<mkdir dir="${dist.dir}"/>
|
||||
<mkdir dir="build"/>
|
||||
<mkdir dir="${build.dir}"/>
|
||||
|
||||
|
||||
<condition property="should-download-ant-contrib">
|
||||
<or>
|
||||
<available file="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
|
||||
<available file="${download.dir}/forge-${forge.version}-src.zip"/>
|
||||
</or>
|
||||
</condition>
|
||||
|
||||
<macrodef name="get-api">
|
||||
<attribute name="filename"/>
|
||||
<attribute name="into"/>
|
||||
<sequential>
|
||||
<!--<if>-->
|
||||
<!--<available file="${download.dir}/@{filename}"/>-->
|
||||
<!--<then>-->
|
||||
<echo message="Downloading @{filename}... "/>
|
||||
<get src="${apisource.url}/@{filename}" dest="${download.dir}/@{filename}"/>
|
||||
<!--</then>-->
|
||||
<!--</if>-->
|
||||
|
||||
<echo message="Extracting @{filename}... "/>
|
||||
<mkdir dir="@{into}"/>
|
||||
<unzip src="${download.dir}/@{filename}" dest="@{into}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
<!-- Dependencies -->
|
||||
<target name="extract-apis" depends="setup-forge">
|
||||
<get-api filename="industrialcraft-2-api_${ic2api.version}.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/ic2/api/energy/tile"/>
|
||||
<move todir="${mcpsrc.dir}/ic2/api/">
|
||||
<fileset dir="${download.dir}/ic2/api/recipe"/>
|
||||
</move>
|
||||
|
||||
<move file="${download.dir}/ic2/api/item/ICustomElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/item/ISpecialElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/item/IElectricItemManager.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/item/IElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/item/ElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/item/Items.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/Direction.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move file="${download.dir}/ic2/api/tile/IWrenchable.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
||||
<move todir="${mcpsrc.dir}/ic2/api/energy/tile/">
|
||||
<fileset dir="${download.dir}/ic2/api/energy/tile/"/>
|
||||
</move>
|
||||
|
||||
<echo message="Downloading Atomic Science API... "/>
|
||||
<get src="http://machinemuse.net/Atomic-Science-1.1.0.16-api.zip" dest="${download.dir}/Atomic-Science-1.1.0.16-api.zip"/>
|
||||
|
||||
<echo message="Extracting Atomic-Science-1.1.0.16-api.zip... "/>
|
||||
<unzip src="${download.dir}/Atomic-Science-1.1.0.16-api.zip" dest="${download.dir}/"/>
|
||||
<mkdir dir="${mcpsrc.dir}/atomicscience/api/poison"/>
|
||||
<move file="${download.dir}/atomicscience/api/IAntiPoisonArmor.java"
|
||||
todir="${mcpsrc.dir}/atomicscience/api"/>
|
||||
|
||||
<get-api filename="ThermalExpansion-API-${thermexapi.version}.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/thermalexpansion/api/core"/>
|
||||
<move file="${download.dir}/thermalexpansion/api/item/ItemRegistry.java"
|
||||
todir="${mcpsrc.dir}/thermalexpansion/api/item"/>
|
||||
|
||||
<get-api filename="CoFHCore-API.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/cofh/api/tileentity"/>
|
||||
<move file="${download.dir}/cofh/api/tileentity/IReconfigurableFacing.java"
|
||||
todir="${mcpsrc.dir}/cofh/api/tileentity"/>
|
||||
|
||||
<get-api filename="CoFHLib-pre1.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/cofh/api/energy"/>
|
||||
<move file="${download.dir}/cofh/api/energy/IEnergyContainerItem.java"
|
||||
todir="${mcpsrc.dir}/cofh/api/energy"/>
|
||||
|
||||
<get-api filename="galacticraft-src-${galacticraftapi.version}.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/micdoodle8/mods/galacticraft/api/item"/>
|
||||
<move file="${download.dir}/micdoodle8/mods/galacticraft/api/item/IBreathableArmor.java"
|
||||
todir="${mcpsrc.dir}/micdoodle8/mods/galacticraft/api/item"/>
|
||||
|
||||
<get-api filename="Railcraft_API_latest.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/mods/railcraft/api/core/items"/>
|
||||
<mkdir dir="${mcpsrc.dir}/buildcraft/api/tools/"/>
|
||||
<move file="${download.dir}/src/minecraft/mods/railcraft/api/core/items/IToolCrowbar.java"
|
||||
todir="${mcpsrc.dir}/mods/railcraft/api/core/items"/>
|
||||
<move file="${download.dir}/src/minecraft/buildcraft/api/tools/IToolWrench.java"
|
||||
todir="${mcpsrc.dir}/buildcraft/api/tools"/>
|
||||
|
||||
<get-api filename="MFR-API-${mfrapi.version}.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/powercrystals/minefactoryreloaded/api"/>
|
||||
<move file="${download.dir}/powercrystals/minefactoryreloaded/api/IToolHammerAdvanced.java"
|
||||
todir="${mcpsrc.dir}/powercrystals/minefactoryreloaded/api"/>
|
||||
|
||||
<get-api filename="forestry-api-${forestryapi.version}.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/forestry/api/apiculture"/>
|
||||
<mkdir dir="${mcpsrc.dir}/forestry/api/arboriculture"/>
|
||||
<mkdir dir="${mcpsrc.dir}/forestry/api/core"/>
|
||||
<move file="${download.dir}/forestry/api/apiculture/IArmorApiarist.java"
|
||||
todir="${mcpsrc.dir}/forestry/api/apiculture"/>
|
||||
<move file="${download.dir}/forestry/api/arboriculture/IToolGrafter.java"
|
||||
todir="${mcpsrc.dir}/forestry/api/arboriculture"/>
|
||||
<move file="${download.dir}/forestry/api/core/ItemInterface.java" todir="${mcpsrc.dir}/forestry/api/core"/>
|
||||
|
||||
<get-api filename="Thaumcraft4.0.5-API.zip" into="${download.dir}/thaumcraft" />
|
||||
<mkdir dir="${mcpsrc.dir}/thaumcraft/api/nodes" />
|
||||
<move file="${download.dir}/thaumcraft/api/IGoggles.java" todir="${mcpsrc.dir}/thaumcraft/api" />
|
||||
<move file="${download.dir}/thaumcraft/api/nodes/IRevealer.java" todir="${mcpsrc.dir}/thaumcraft/api/nodes" />
|
||||
|
||||
|
||||
<get-api filename="MFFS2_API.zip" into="${download.dir}"/>
|
||||
<mkdir dir="${mcpsrc.dir}/mods/mffs/api"/>
|
||||
<move file="${download.dir}/mods/mffs/api/IFieldTeleporter.java" todir="${mcpsrc.dir}/mods/mffs/api"/>
|
||||
<move file="${download.dir}/mods/mffs/api/IMFFS_Wrench.java" todir="${mcpsrc.dir}/mods/mffs/api"/>
|
||||
|
||||
|
||||
<get src="${apisource.url}/scalalib-${scala.version}.zip"
|
||||
dest="${mcplib.dir}/scalalib-${scala.version}.zip"/>
|
||||
|
||||
<delete>
|
||||
<fileset dir="${mcplib.dir}" includes="numina-*.jar"/>
|
||||
</delete>
|
||||
<move todir="${mcplib.dir}">
|
||||
<fileset dir="${dist.dir}" includes="numina-*-deobf.jar"/>
|
||||
</move>
|
||||
|
||||
<get src="${apisource.url}/slick-util.jar"
|
||||
dest="${download.dir}/slick-util.jar"/>
|
||||
<copy file="${download.dir}/slick-util.jar" todir="${mcp.dir}/lib"/>
|
||||
</target>
|
||||
|
||||
<target name="update-names" depends="copy-source">
|
||||
<get src="${apisource.url}/methods.csv" dest="${mcp.dir}/conf/methods.csv"/>
|
||||
<get src="${apisource.url}/fields.csv" dest="${mcp.dir}/conf/fields.csv"/>
|
||||
|
||||
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
||||
<arg line="/c updatenames.bat"/>
|
||||
</exec>
|
||||
|
||||
<exec dir="${mcp.dir}" executable="bash" osfamily="unix" failonerror="true">
|
||||
<arg value="-c"/>
|
||||
<arg value="echo Yes | ./updatenames.sh"/>
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="install" depends="build">
|
||||
<delete>
|
||||
<fileset dir="${dist.dir}">
|
||||
<include name="ModularPowersuits-${minecraft.version}-*"/>
|
||||
</fileset>
|
||||
</delete>
|
||||
|
||||
<copy todir="${dist.dir}">
|
||||
<fileset dir="${classes.dir}/assets/powersuits/recipes" />
|
||||
</copy>
|
||||
<copy file="${download.dir}/slick-util.jar" todir="${dist.dir}"/>
|
||||
<!--<get src="http://files.minecraftforge.net/fmllibs/scala-library.jar"-->
|
||||
<!--dest="${dist.dir}/scala-library.jar"/>-->
|
||||
|
||||
|
||||
<jar destfile="${dist.dir}/ModularPowersuits-${minecraft.version}-${fullversion}.jar" basedir="${classes.dir}"/>
|
||||
<delete dir="${classes.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="rebuild" depends="clean,install">
|
||||
</target>
|
||||
|
||||
<target name="forgeinstalled.check">
|
||||
</target>
|
||||
|
||||
<target name="copy-source">
|
||||
<delete dir="${mcpsrc.dir}/net/machinemuse"/>
|
||||
<copy todir="${mcpsrc.dir}/net/machinemuse">
|
||||
<fileset dir="${src.dir}/minecraft/net/machinemuse"/>
|
||||
<filterset>
|
||||
<filter token="MOD_VERSION" value="${fullversion}"/>
|
||||
<filter token="MC_VERSION" value="${minecraft.version}"/>
|
||||
<filter token="DEPENDENCIES"
|
||||
value="*/ dependencies = "required-after:Forge@[${forgeant.version},);after:IC2;required-after:numina;after:RenderPlayerAPI", /*"/>
|
||||
</filterset>
|
||||
</copy>
|
||||
<copy todir="${mcpsrc.dir}/api/player/model" file="${src.dir}/minecraft/api/player/model/ModelPlayer.java"/>
|
||||
</target>
|
||||
|
||||
<target name="build" depends="extract-apis,copy-source,update-names" unless="already-compiled">
|
||||
|
||||
<echo message="Applying Scala mcp patch..."/>
|
||||
<get src="http://machinemuse.minecraftforge.net/scalapatch.sh" dest="${mcp.dir}/conf/scalapatch.sh"/>
|
||||
<!--<unzip src="${download.dir}/scalapatch.zip" dest="${mcp.dir}"/>-->
|
||||
|
||||
<exec dir="${mcp.dir}/conf" executable="sh" osfamily="unix" failonerror="false">
|
||||
<arg value="scalapatch.sh"/>
|
||||
</exec>
|
||||
|
||||
|
||||
<!-- Recompile -->
|
||||
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
||||
<arg line="/c recompile.bat"/>
|
||||
</exec>
|
||||
|
||||
<exec dir="${mcp.dir}" executable="sh" osfamily="unix" failonerror="true">
|
||||
<arg value="recompile.sh"/>
|
||||
</exec>
|
||||
|
||||
<!-- Reobfuscation -->
|
||||
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
|
||||
<arg line="/c reobfuscate_srg.bat"/>
|
||||
</exec>
|
||||
|
||||
<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
|
||||
<arg value="reobfuscate_srg.sh"/>
|
||||
</exec>
|
||||
|
||||
<copy todir="${classes.dir}">
|
||||
<fileset dir="${mcp.dir}/reobf/minecraft"/>
|
||||
</copy>
|
||||
|
||||
<mkdir dir="${classes.dir}/assets"/>
|
||||
<copy todir="${classes.dir}/assets/powersuits">
|
||||
<fileset dir="${resources.dir}"/>
|
||||
</copy>
|
||||
|
||||
<copy todir="${classes.dir}" file="pack.mcmeta">
|
||||
<filterset>
|
||||
<filter token="MC_VERSION" value="${minecraft.version}"/>
|
||||
<filter token="MOD_VERSION" value="${fullversion}"/>
|
||||
</filterset>
|
||||
</copy>
|
||||
|
||||
<copy todir="${classes.dir}" file="mcmod.info">
|
||||
<filterset>
|
||||
<filter token="MC_VERSION" value="${minecraft.version}"/>
|
||||
<filter token="MOD_VERSION" value="${fullversion}"/>
|
||||
</filterset>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="setup-forge" depends="download-forge" unless="forge-already-installed">
|
||||
|
||||
<unzip dest="${build.dir}">
|
||||
<fileset dir="${download.dir}">
|
||||
<include name="forge-${forge.version}-src.zip"/>
|
||||
</fileset>
|
||||
</unzip>
|
||||
|
||||
|
||||
<!-- Change executables' permitions -->
|
||||
|
||||
<chmod file="${forge.dir}/install.sh" perm="+x"/>
|
||||
|
||||
<!-- if your building on OSX these 2 should be executable -->
|
||||
|
||||
|
||||
<!-- Install forge -->
|
||||
<delete dir="${mcp.dir}" failonerror="no"/>
|
||||
<exec dir="${forge.dir}" executable="cmd" osfamily="windows" inputstring="Yes\n">
|
||||
<arg line="/c install.cmd"/>
|
||||
</exec>
|
||||
|
||||
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes\n">
|
||||
<arg value="install.sh"/>
|
||||
|
||||
</exec>
|
||||
|
||||
|
||||
<chmod file="${mcp.dir}/updatemd5.sh" perm="+x"/>
|
||||
<chmod file="${mcp.dir}/recompile.sh" perm="+x"/>
|
||||
<chmod file="${mcp.dir}/reobfuscate.sh" perm="+x"/>
|
||||
<chmod file="${mcp.dir}/runtime/bin/astyle-osx" perm="+x"/>
|
||||
<chmod file="${mcp.dir}/runtime/bin/jad-osx" perm="+x"/>
|
||||
<mkdir dir="${mcpsrc.dir}/net/machinemuse"/>
|
||||
|
||||
<!-- Copy libraries
|
||||
<copy todir="${mcp.dir}/lib">
|
||||
<fileset dir="lib">
|
||||
<patternset includes="*.jar" />
|
||||
</fileset>
|
||||
</copy> -->
|
||||
</target>
|
||||
|
||||
<target name="download-forge" depends="download-ant-contrib" unless="forge-exists">
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
||||
<classpath>
|
||||
<pathelement location="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
|
||||
<fileset dir="${download.dir}/ant-contrib/lib">
|
||||
<include name="*.jar"/>
|
||||
</fileset>
|
||||
</classpath>
|
||||
</taskdef>
|
||||
<echo message="Downloading forge... "/>
|
||||
<!--
|
||||
<getMethod url="http://files.minecraftforge.net/minecraftforge-src-${forge.version}.zip"
|
||||
responseDataFile="${download.dir}/minecraftforge-src-${forge.version}.zip">
|
||||
<header name="User-Agent" value="Ant-${ant.version}/${ant.java.version}"/>
|
||||
</getMethod>
|
||||
-->
|
||||
|
||||
<get src="http://machinemuse.net/forge-${forge.version}-src.zip"
|
||||
dest="${download.dir}/forge-${forge.version}-src.zip"/>
|
||||
</target>
|
||||
|
||||
<target name="download-ant-contrib" unless="should-download-ant-contrib">
|
||||
<echo message="Getting: ant-contrib"/>
|
||||
<mkdir dir="${download.dir}/tmp"/>
|
||||
<mkdir dir="${download.dir}/ant-contrib/lib"/>
|
||||
<get src="http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip/download"
|
||||
dest="${download.dir}/tmp/ant-contrib-1.0b3-bin.zip"/>
|
||||
<get src="http://archive.apache.org/dist/commons/codec/binaries/commons-codec-1.6-bin.zip"
|
||||
dest="${download.dir}/tmp/commons-codec-1.6-bin.zip"/>
|
||||
|
||||
<unzip src="${download.dir}/tmp/ant-contrib-1.0b3-bin.zip" dest="${download.dir}"/>
|
||||
<unzip src="${download.dir}/tmp/commons-codec-1.6-bin.zip" dest="${download.dir}/tmp"/>
|
||||
|
||||
<move todir="${download.dir}/ant-contrib/lib">
|
||||
<fileset file="${download.dir}/tmp/commons-codec-1.6/commons-codec-1.6.jar"/>
|
||||
</move>
|
||||
|
||||
<!-- Delete useless files -->
|
||||
<delete dir="${download.dir}/ant-contrib/docs"/>
|
||||
<delete dir="${download.dir}/tmp"/>
|
||||
|
||||
</target>
|
||||
|
||||
<target name="clean">
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${download.dir}"/>
|
||||
</target>
|
||||
|
||||
|
||||
</project>
|
|
@ -1,39 +0,0 @@
|
|||
package net.machinemuse.api
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.{ItemArmor, ItemStack}
|
||||
import net.machinemuse.utils.ElectricItemUtils
|
||||
import net.machinemuse.powersuits.powermodule.armor.{HazmatModule, ApiaristArmorModule}
|
||||
import forestry.api.apiculture.IArmorApiarist
|
||||
import net.minecraft.entity.EntityLivingBase
|
||||
import atomicscience.api.IAntiPoisonArmor
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 6:54 AM, 4/28/13
|
||||
*/
|
||||
trait ArmorTraits extends ItemArmor with IModularItem
|
||||
with ApiaristArmor
|
||||
with RadiationArmor {
|
||||
|
||||
}
|
||||
|
||||
trait ApiaristArmor extends IArmorApiarist {
|
||||
def protectPlayer(player: EntityPlayer, armor: ItemStack, cause: String, doProtect: Boolean): Boolean = {
|
||||
if (ModuleManager.itemHasActiveModule(armor, ApiaristArmorModule.MODULE_APIARIST_ARMOR)) {
|
||||
ElectricItemUtils.drainPlayerEnergy(player, ModuleManager.computeModularProperty(armor, ApiaristArmorModule.APIARIST_ARMOR_ENERGY_CONSUMPTION))
|
||||
true
|
||||
} else false
|
||||
}
|
||||
}
|
||||
|
||||
trait RadiationArmor extends ItemArmor with IAntiPoisonArmor {
|
||||
def isProtectedFromPoison(itemStack: ItemStack, EntityLivingBase: EntityLivingBase, poisontype: String): Boolean = {
|
||||
ModuleManager.itemHasActiveModule(itemStack, HazmatModule.MODULE_HAZMAT)
|
||||
}
|
||||
|
||||
|
||||
def getArmorType:Int = this.armorType
|
||||
|
||||
def onProtectFromPoison(itemStack: ItemStack, EntityLivingBase: EntityLivingBase, poisontype: String) {}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
package net.machinemuse.api;
|
||||
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -11,11 +11,11 @@ import java.util.Map;
|
|||
public interface IPowerModule {
|
||||
public abstract List<ItemStack> getInstallCost();
|
||||
|
||||
public abstract Icon getIcon(ItemStack item);
|
||||
public abstract IIcon getIcon(ItemStack item);
|
||||
|
||||
public abstract String getStitchedTexture(ItemStack item);
|
||||
|
||||
public abstract void registerIcon(IconRegister registry);
|
||||
public abstract void registerIcon(IIconRegister registry);
|
||||
|
||||
public abstract String getCategory();
|
||||
|
||||
|
|
|
@ -113,7 +113,7 @@ public class ModuleManager {
|
|||
}
|
||||
|
||||
public static void tagAddModule(NBTTagCompound tag, IPowerModule module) {
|
||||
tag.setCompoundTag(module.getDataName(), module.getNewTag());
|
||||
tag.setTag(module.getDataName(), module.getNewTag());
|
||||
}
|
||||
|
||||
public static void itemAddModule(ItemStack stack, IPowerModule moduleType) {
|
||||
|
|
|
@ -28,7 +28,7 @@ object MuseItemTag {
|
|||
val stackTag: NBTTagCompound = if (stack.hasTagCompound) stack.getTagCompound else new NBTTagCompound
|
||||
stack.setTagCompound(stackTag)
|
||||
val properties: NBTTagCompound = if (stackTag.hasKey(NBTPREFIX)) stackTag.getCompoundTag(NBTPREFIX) else new NBTTagCompound
|
||||
stackTag.setCompoundTag(NBTPREFIX, properties)
|
||||
stackTag.setTag(NBTPREFIX, properties)
|
||||
|
||||
properties
|
||||
}
|
||||
|
|
|
@ -1,92 +1,87 @@
|
|||
package net.machinemuse.api
|
||||
|
||||
import mods.railcraft.api.core.items.IToolCrowbar
|
||||
import net.machinemuse.utils.ElectricItemUtils
|
||||
import net.machinemuse.powersuits.powermodule.tool.{MFFSFieldTeleporterModule, OmniWrenchModule}
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.entity.item.EntityMinecart
|
||||
import buildcraft.api.tools.IToolWrench
|
||||
import cpw.mods.fml.common.FMLCommonHandler
|
||||
import mods.mffs.api.IFieldTeleporter
|
||||
import powercrystals.minefactoryreloaded.api.IToolHammerAdvanced
|
||||
import net.minecraft.util.ChatMessageComponent
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
}
|
||||
}
|
||||
//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,18 +1,14 @@
|
|||
package net.machinemuse.api.electricity
|
||||
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.machinemuse.powersuits.common.ModCompatability
|
||||
import ic2.api.item.{ElectricItem, IElectricItem}
|
||||
import net.machinemuse.api.electricity.ElectricConversions._
|
||||
import cofh.api.energy.IEnergyContainerItem
|
||||
|
||||
object ElectricAdapter {
|
||||
def wrap(stack: ItemStack): ElectricAdapter = {
|
||||
if (stack == null) return null
|
||||
stack.getItem match {
|
||||
case i: MuseElectricItem => new MuseElectricAdapter(stack)
|
||||
case i: IEnergyContainerItem => if (ModCompatability.isCoFHCoreLoaded) new TEElectricAdapter(stack) else null
|
||||
case i: IElectricItem => if (ModCompatability.isIndustrialCraftLoaded) new IC2ElectricAdapter(stack) else null
|
||||
// case i: IEnergyContainerItem => if (ModCompatability.isCoFHCoreLoaded) new TEElectricAdapter(stack) else null
|
||||
// case i: IElectricItem => if (ModCompatability.isIndustrialCraftLoaded) new IC2ElectricAdapter(stack) else null
|
||||
case _ => null
|
||||
}
|
||||
}
|
||||
|
@ -41,29 +37,30 @@ class MuseElectricAdapter(val stack: ItemStack) extends ElectricAdapter {
|
|||
def giveEnergy(provided: Double) = item.giveEnergyTo(stack, provided)
|
||||
}
|
||||
|
||||
class IC2ElectricAdapter(val stack: ItemStack) extends ElectricAdapter {
|
||||
val item = stack.getItem.asInstanceOf[IElectricItem]
|
||||
|
||||
def getCurrentEnergy: Double = museEnergyFromEU(ElectricItem.discharge(stack, Integer.MAX_VALUE, getTier, true, true))
|
||||
|
||||
def getMaxEnergy: Double = museEnergyFromEU(item.getMaxCharge(stack))
|
||||
|
||||
def drainEnergy(requested: Double) = museEnergyFromEU(ElectricItem.discharge(stack, museEnergyToEU(requested).toInt, getTier, true, false))
|
||||
|
||||
def giveEnergy(provided: Double): Double = museEnergyFromEU(ElectricItem.charge(stack, museEnergyToEU(provided).toInt, getTier, true, false))
|
||||
|
||||
def getTier = item.getTier(stack)
|
||||
}
|
||||
|
||||
class TEElectricAdapter(val stack: ItemStack) extends ElectricAdapter {
|
||||
val item = stack.getItem.asInstanceOf[IEnergyContainerItem]
|
||||
|
||||
def getCurrentEnergy: Double = museEnergyFromRF(item.getEnergyStored(stack))
|
||||
|
||||
def getMaxEnergy: Double = museEnergyFromRF(item.getMaxEnergyStored(stack))
|
||||
|
||||
def drainEnergy(requested: Double): Double = museEnergyFromRF(item.extractEnergy(stack, museEnergyToRF(requested), false))
|
||||
|
||||
def giveEnergy(provided: Double): Double = museEnergyFromRF(item.receiveEnergy(stack, museEnergyToRF(provided), false))
|
||||
|
||||
}
|
||||
//
|
||||
//class IC2ElectricAdapter(val stack: ItemStack) extends ElectricAdapter {
|
||||
// val item = stack.getItem.asInstanceOf[IElectricItem]
|
||||
//
|
||||
// def getCurrentEnergy: Double = museEnergyFromEU(ElectricItem.discharge(stack, Integer.MAX_VALUE, getTier, true, true))
|
||||
//
|
||||
// def getMaxEnergy: Double = museEnergyFromEU(item.getMaxCharge(stack))
|
||||
//
|
||||
// def drainEnergy(requested: Double) = museEnergyFromEU(ElectricItem.discharge(stack, museEnergyToEU(requested).toInt, getTier, true, false))
|
||||
//
|
||||
// def giveEnergy(provided: Double): Double = museEnergyFromEU(ElectricItem.charge(stack, museEnergyToEU(provided).toInt, getTier, true, false))
|
||||
//
|
||||
// def getTier = item.getTier(stack)
|
||||
//}
|
||||
//
|
||||
//class TEElectricAdapter(val stack: ItemStack) extends ElectricAdapter {
|
||||
// val item = stack.getItem.asInstanceOf[IEnergyContainerItem]
|
||||
//
|
||||
// def getCurrentEnergy: Double = museEnergyFromRF(item.getEnergyStored(stack))
|
||||
//
|
||||
// def getMaxEnergy: Double = museEnergyFromRF(item.getMaxEnergyStored(stack))
|
||||
//
|
||||
// def drainEnergy(requested: Double): Double = museEnergyFromRF(item.extractEnergy(stack, museEnergyToRF(requested), false))
|
||||
//
|
||||
// def giveEnergy(provided: Double): Double = museEnergyFromRF(item.receiveEnergy(stack, museEnergyToRF(provided), false))
|
||||
//
|
||||
//}
|
|
@ -1,12 +1,10 @@
|
|||
package net.machinemuse.api.electricity
|
||||
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.machinemuse.utils.{ElectricItemUtils, MuseItemUtils}
|
||||
import ic2.api.item.ICustomElectricItem
|
||||
import net.machinemuse.api.electricity.ElectricConversions._
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import cofh.api.energy.IEnergyContainerItem
|
||||
import cpw.mods.fml.common.Optional
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.api.electricity.ElectricConversions._
|
||||
import net.machinemuse.utils.{ElectricItemUtils, MuseItemUtils}
|
||||
import net.minecraft.item.ItemStack
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
|
@ -15,8 +13,9 @@ import cpw.mods.fml.common.Optional
|
|||
@Optional.Interface(iface = "ic2.api.item.ICustomElectricItem", modid = "IC2", striprefs = true)
|
||||
@Optional.Interface(iface = "cofh.api.energy.IEnergyContainerItem", modid = "CoFHCore", striprefs = true)
|
||||
trait MuseElectricItem
|
||||
extends ICustomElectricItem // IC2
|
||||
with IEnergyContainerItem {
|
||||
// extends ICustomElectricItem // IC2
|
||||
// with IEnergyContainerItem
|
||||
{
|
||||
// ICBM
|
||||
/**
|
||||
* Call to get the energy of an item
|
||||
|
@ -85,10 +84,6 @@ trait MuseElectricItem
|
|||
// IC2
|
||||
def canProvideEnergy(itemStack: ItemStack): Boolean = true
|
||||
|
||||
def getChargedItemId(itemStack: ItemStack): Int = itemStack.itemID
|
||||
|
||||
def getEmptyItemId(itemStack: ItemStack): Int = itemStack.itemID
|
||||
|
||||
def getMaxCharge(itemStack: ItemStack): Int = museEnergyToEU(getCurrentEnergy(itemStack)).asInstanceOf[Int]
|
||||
|
||||
def getTier(itemStack: ItemStack): Int = ElectricConversions.getTier(itemStack)
|
||||
|
|
|
@ -77,7 +77,7 @@ class CosmeticGui(val player: EntityPlayer, val worldx:Int, val worldy:Int, val
|
|||
}
|
||||
super.drawScreen(x, y, z)
|
||||
if (Config.canUseShaders) {
|
||||
val screen: ScaledResolution = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight)
|
||||
val screen: ScaledResolution = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight)
|
||||
GlowBuffer.drawFullScreen(screen)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,13 +5,13 @@ import net.machinemuse.numina.render.MuseTextureUtils;
|
|||
import net.machinemuse.numina.render.RenderState;
|
||||
import net.machinemuse.utils.render.MuseRenderer;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
public class EnergyMeter extends HeatMeter {
|
||||
public void draw(double xpos, double ypos, double value) {
|
||||
MuseTextureUtils.pushTexture(MuseTextureUtils.BLOCK_TEXTURE_QUILT());
|
||||
Icon icon = Block.waterStill.getIcon(0, 0);
|
||||
IIcon icon = Block.waterStill.getIcon(0, 0);
|
||||
GL11.glLineWidth(0.5f);
|
||||
RenderState.on2D();
|
||||
RenderState.blendingOn();
|
||||
|
|
|
@ -6,7 +6,7 @@ import net.machinemuse.numina.render.MuseTextureUtils;
|
|||
import net.machinemuse.numina.render.RenderState;
|
||||
import net.machinemuse.powersuits.common.Config;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
public class HeatMeter {
|
||||
|
@ -17,7 +17,7 @@ public class HeatMeter {
|
|||
MuseTextureUtils.pushTexture(MuseTextureUtils.BLOCK_TEXTURE_QUILT());
|
||||
RenderState.blendingOn();
|
||||
RenderState.on2D();
|
||||
Icon icon = Block.lavaStill.getIcon(0, 0);
|
||||
IIcon icon = Block.lavaStill.getIcon(0, 0);
|
||||
drawFluid(xpos, ypos, value, icon);
|
||||
drawGlass(xpos, ypos);
|
||||
RenderState.off2D();
|
||||
|
@ -25,7 +25,7 @@ public class HeatMeter {
|
|||
MuseTextureUtils.popTexture();
|
||||
}
|
||||
|
||||
public void drawFluid(double xpos, double ypos, double value, Icon icon) {
|
||||
public void drawFluid(double xpos, double ypos, double value, IIcon icon) {
|
||||
|
||||
double bottomY = (ypos + ysize);
|
||||
double topY = (ypos + ysize * (1 - value));
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package net.machinemuse.general.gui;
|
||||
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
/**
|
||||
* MuseIcon is just a helper class to make it more convenient to have multiple sprite sheets and to keep all the icon indices in one place.
|
||||
|
@ -99,7 +99,7 @@ public class MuseIcon {
|
|||
public static final MuseIcon PUNCHY = new MuseIcon("jetboots");
|
||||
|
||||
protected String texturename;
|
||||
protected Icon icon;
|
||||
protected IIcon icon;
|
||||
|
||||
public MuseIcon(String texturename) {
|
||||
super();
|
||||
|
@ -111,11 +111,11 @@ public class MuseIcon {
|
|||
return texturename;
|
||||
}
|
||||
|
||||
public Icon getIconRegistration() {
|
||||
public IIcon getIconRegistration() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
public void register(IconRegister iconRegister) {
|
||||
public void register(IIconRegister iconRegister) {
|
||||
icon = iconRegister.registerIcon(ICON_PREFIX + texturename);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
package net.machinemuse.general.gui.clickable;
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.network.Player;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.numina.geometry.MusePoint2D;
|
||||
import net.machinemuse.numina.network.PacketSender;
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketToggleRequest;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.machinemuse.utils.render.MuseRenderer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
import net.minecraft.client.settings.KeyBinding;
|
||||
import net.minecraft.util.ChatMessageComponent;
|
||||
import org.lwjgl.input.Keyboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -56,11 +55,11 @@ public class ClickableKeybinding extends ClickableButton {
|
|||
for (ClickableModule module : boundModules) {
|
||||
String valstring = toggleval ? " on" : " off";
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
player.sendChatToPlayer(ChatMessageComponent.createFromText("Toggled " + module.getModule().getDataName() + valstring));
|
||||
player.sendChatMessage("Toggled " + module.getModule().getDataName() + valstring);
|
||||
}
|
||||
MuseItemUtils.toggleModuleForPlayer(player, module.getModule().getDataName(), toggleval);
|
||||
MusePacketToggleRequest toggleRequest = new MusePacketToggleRequest((Player) player, module.getModule().getDataName(), toggleval);
|
||||
player.sendQueue.addToSendQueue(toggleRequest.getPacket131());
|
||||
MusePacketToggleRequest toggleRequest = new MusePacketToggleRequest(player, module.getModule().getDataName(), toggleval);
|
||||
PacketSender.sendToServer(toggleRequest);
|
||||
}
|
||||
toggleval = !toggleval;
|
||||
}
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
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 GuiIcons._
|
||||
import scala.collection.mutable
|
||||
import scala.Array
|
||||
import net.machinemuse.powersuits.item.ItemPowerArmor
|
||||
import net.minecraft.nbt.NBTTagIntArray
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketColourInfo
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.utils.render.GuiIcons._
|
||||
import net.minecraft.client.Minecraft
|
||||
import scala.Some
|
||||
import net.machinemuse.numina.general.MuseLogger
|
||||
import net.machinemuse.numina.geometry.{DrawableMuseRect, MusePoint2D, Colour, MuseRect}
|
||||
import net.minecraft.nbt.NBTTagIntArray
|
||||
|
||||
import scala.collection.mutable
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
|
@ -26,7 +26,7 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
|
|||
val gslider: ClickableSlider = new ClickableSlider(new MusePoint2D(border.centerx, border.top + 22), border.width - 10, "Green")
|
||||
val bslider: ClickableSlider = new ClickableSlider(new MusePoint2D(border.centerx, border.top + 34), border.width - 10, "Blue")
|
||||
|
||||
def colours: Array[Int] = getOrCreateColourTag.map(e => e.intArray).getOrElse(Array.empty)
|
||||
def colours: Array[Int] = getOrCreateColourTag.map(e => e.func_150302_c /*getIntArray()*/ ).getOrElse(Array.empty)
|
||||
|
||||
var selectedSlider: Option[ClickableSlider] = None
|
||||
var selectedColour: Int = 0
|
||||
|
@ -37,7 +37,6 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
|
|||
val renderSpec = MuseItemUtils.getMuseRenderTag(itemSelector.getSelectedItem.getItem)
|
||||
if (renderSpec.hasKey("colours") && renderSpec.getTag("colours").isInstanceOf[NBTTagIntArray]) Some(renderSpec.getTag("colours").asInstanceOf[NBTTagIntArray])
|
||||
else {
|
||||
val nbt = new NBTTagIntArray("colours")
|
||||
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)
|
||||
|
@ -48,11 +47,21 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
|
|||
}
|
||||
val player = Minecraft.getMinecraft.thePlayer
|
||||
if (player.worldObj.isRemote)
|
||||
player.sendQueue.addToSendQueue(new MusePacketColourInfo(player.asInstanceOf[Player], itemSelector.getSelectedItem.inventorySlot, colours).getPacket131)
|
||||
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
|
||||
|
@ -78,7 +87,7 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
|
|||
colours(selectedColour) = Colour.getInt(rslider.value, gslider.value, bslider.value, 1.0)
|
||||
val player = Minecraft.getMinecraft.thePlayer
|
||||
if (player.worldObj.isRemote)
|
||||
player.sendQueue.addToSendQueue(new MusePacketColourInfo(player.asInstanceOf[Player], itemSelector.getSelectedItem.inventorySlot, colours).getPacket131)
|
||||
PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, colours))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -125,10 +134,8 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
|
|||
} else if (colourCol == colours.size) {
|
||||
MuseLogger.logDebug("Adding")
|
||||
getOrCreateColourTag.map(e => {
|
||||
e.intArray = (e.intArray :+ Colour.WHITE.getInt)
|
||||
val player = Minecraft.getMinecraft.thePlayer
|
||||
if (player.worldObj.isRemote)
|
||||
player.sendQueue.addToSendQueue(new MusePacketColourInfo(player.asInstanceOf[Player], itemSelector.getSelectedItem.inventorySlot, e.intArray).getPacket131)
|
||||
setColourTagMaybe(getIntArray(e) :+ Colour.WHITE.getInt) // append White
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
@ -136,19 +143,20 @@ class ColourPickerFrame(val borderRef: MuseRect, val insideColour: Colour, val b
|
|||
// remove
|
||||
if (y > border.bottom - 24 && y < border.bottom - 16 && x > border.left + 8 + selectedColour * 8 && x < border.left + 16 + selectedColour * 8) {
|
||||
getOrCreateColourTag.map(e => {
|
||||
if (e.intArray.size > 1) {
|
||||
e.intArray = e.intArray diff Array(e.intArray(selectedColour))
|
||||
if (getIntArray(e).size > 1) {
|
||||
setColourTagMaybe( getIntArray(e) diff Array(getIntArray(e)(selectedColour)))
|
||||
decrAbove = selectedColour
|
||||
if (selectedColour == e.intArray.size) {
|
||||
if (selectedColour == getIntArray(e).size) {
|
||||
selectedColour = selectedColour - 1
|
||||
}
|
||||
val player = Minecraft.getMinecraft.thePlayer
|
||||
if (player.worldObj.isRemote)
|
||||
player.sendQueue.addToSendQueue(new MusePacketColourInfo(player.asInstanceOf[Player], itemSelector.getSelectedItem.inventorySlot, e.intArray).getPacket131)
|
||||
PacketSender.sendToServer(new MusePacketColourInfo(player, itemSelector.getSelectedItem.inventorySlot, e.func_150302_c))
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
def getIntArray(e:NBTTagIntArray) = e.func_150302_c()
|
||||
}
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
package net.machinemuse.general.gui.frame;
|
||||
|
||||
import cpw.mods.fml.common.network.Player;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.machinemuse.api.IPowerModule;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.numina.geometry.MusePoint2D;
|
||||
import net.machinemuse.general.gui.clickable.ClickableButton;
|
||||
import net.machinemuse.general.gui.clickable.ClickableItem;
|
||||
import net.machinemuse.general.gui.clickable.ClickableModule;
|
||||
import net.machinemuse.numina.sound.Musique;
|
||||
import net.machinemuse.general.sound.SoundLoader;
|
||||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.numina.geometry.MusePoint2D;
|
||||
import net.machinemuse.numina.network.MusePacket;
|
||||
import net.machinemuse.numina.network.PacketSender;
|
||||
import net.machinemuse.numina.sound.Musique;
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketInstallModuleRequest;
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketSalvageModuleRequest;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
|
@ -154,10 +154,10 @@ public class InstallSalvageFrame extends ScrollableFrame {
|
|||
private void doSalvage() {
|
||||
IPowerModule module = targetModule.getSelectedModule().getModule();
|
||||
MusePacket newpacket = new MusePacketSalvageModuleRequest(
|
||||
(Player) player,
|
||||
player,
|
||||
targetItem.getSelectedItem().inventorySlot,
|
||||
module.getDataName());
|
||||
player.sendQueue.addToSendQueue(newpacket.getPacket131());
|
||||
PacketSender.sendToServer(newpacket.getPacket131());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -171,10 +171,10 @@ public class InstallSalvageFrame extends ScrollableFrame {
|
|||
Musique.playClientSound(SoundLoader.SOUND_GUI_INSTALL, 1);
|
||||
// Now send request to server to make it legit
|
||||
MusePacket newpacket = new MusePacketInstallModuleRequest(
|
||||
(Player) player,
|
||||
player,
|
||||
targetItem.getSelectedItem().inventorySlot,
|
||||
module.getDataName());
|
||||
player.sendQueue.addToSendQueue(newpacket.getPacket131());
|
||||
PacketSender.sendToServer(newpacket.getPacket131());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package net.machinemuse.general.gui.frame;
|
||||
|
||||
import cpw.mods.fml.common.network.Player;
|
||||
import net.machinemuse.api.IPowerModule;
|
||||
import net.machinemuse.api.IPropertyModifier;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
|
@ -9,6 +8,7 @@ import net.machinemuse.general.gui.clickable.ClickableTinkerSlider;
|
|||
import net.machinemuse.numina.geometry.Colour;
|
||||
import net.machinemuse.numina.geometry.MusePoint2D;
|
||||
import net.machinemuse.numina.network.MusePacket;
|
||||
import net.machinemuse.numina.network.PacketSender;
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketTweakRequest;
|
||||
import net.machinemuse.powersuits.powermodule.PowerModule;
|
||||
import net.machinemuse.powersuits.powermodule.PropertyModifierLinearAdditive;
|
||||
|
@ -143,9 +143,9 @@ public class ModuleTweakFrame extends ScrollableFrame {
|
|||
if (selectedSlider != null && itemTarget.getSelectedItem() != null && moduleTarget.getSelectedModule() != null) {
|
||||
ClickableItem item = itemTarget.getSelectedItem();
|
||||
IPowerModule module = moduleTarget.getSelectedModule().getModule();
|
||||
MusePacket tweakRequest = new MusePacketTweakRequest((Player) player, item.inventorySlot, module.getDataName(), selectedSlider.name(),
|
||||
MusePacket tweakRequest = new MusePacketTweakRequest(player, item.inventorySlot, module.getDataName(), selectedSlider.name(),
|
||||
selectedSlider.value());
|
||||
player.sendQueue.addToSendQueue(tweakRequest.getPacket131());
|
||||
PacketSender.sendToServer(tweakRequest.getPacket131());
|
||||
}
|
||||
if (button == 0) {
|
||||
selectedSlider = null;
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
package net.machinemuse.general.gui.frame
|
||||
|
||||
import net.machinemuse.powersuits.client.render.modelspec.{ModelRegistry, ModelPartSpec, ModelSpec}
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import org.lwjgl.opengl.GL11._
|
||||
import net.machinemuse.general.gui.clickable.ClickableItem
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketCosmeticInfo
|
||||
import net.minecraft.client.Minecraft
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.minecraft.item.ItemArmor
|
||||
import net.machinemuse.utils.render.{MuseRenderer, GuiIcons}
|
||||
import net.machinemuse.numina.general.{MuseLogger, MuseMathUtils}
|
||||
import net.machinemuse.numina.geometry.{MuseRect, Colour, MuseRelativeRect}
|
||||
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)
|
||||
|
@ -48,7 +48,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
if (!getRenderTag.hasKey(name)) {
|
||||
val k = new NBTTagCompound()
|
||||
spec.multiSet(k, None, None, None)
|
||||
getRenderTag.setCompoundTag(name, k)
|
||||
getRenderTag.setTag(name, k)
|
||||
k
|
||||
} else {
|
||||
getRenderTag.getCompoundTag(name)
|
||||
|
@ -84,7 +84,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
val oldindex = spec.getColourIndex(e)
|
||||
if (oldindex >= index && oldindex > 0) {
|
||||
spec.setColourIndex(e, oldindex - 1)
|
||||
if (player.worldObj.isRemote) player.sendQueue.addToSendQueue(new MusePacketCosmeticInfo(player.asInstanceOf[Player], getSelectedItem.inventorySlot, tagname, e).getPacket131)
|
||||
if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, e).getPacket131)
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -117,7 +117,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
RenderState.texturelessOn()
|
||||
Colour.LIGHTBLUE.doGL()
|
||||
glBegin(GL_TRIANGLES)
|
||||
import MuseMathUtils._
|
||||
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))
|
||||
|
@ -155,7 +155,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
val tagname = ModelRegistry.makeName(spec)
|
||||
val player = Minecraft.getMinecraft.thePlayer
|
||||
renderTag.removeTag(ModelRegistry.makeName(spec))
|
||||
if (player.worldObj.isRemote) player.sendQueue.addToSendQueue(new MusePacketCosmeticInfo(player.asInstanceOf[Player], getSelectedItem.inventorySlot, tagname, new NBTTagCompound()).getPacket131)
|
||||
if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, new NBTTagCompound()).getPacket131)
|
||||
updateItems
|
||||
true
|
||||
}
|
||||
|
@ -164,7 +164,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
val player = Minecraft.getMinecraft.thePlayer
|
||||
val tagdata = getOrMakeSpecTag(spec)
|
||||
spec.setGlow(tagdata, false)
|
||||
if (player.worldObj.isRemote) player.sendQueue.addToSendQueue(new MusePacketCosmeticInfo(player.asInstanceOf[Player], getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
|
||||
if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
|
||||
updateItems
|
||||
true
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
val player = Minecraft.getMinecraft.thePlayer
|
||||
val tagdata = getOrMakeSpecTag(spec)
|
||||
spec.setGlow(tagdata, true)
|
||||
if (player.worldObj.isRemote) player.sendQueue.addToSendQueue(new MusePacketCosmeticInfo(player.asInstanceOf[Player], getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
|
||||
if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
|
||||
updateItems
|
||||
true
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ class PartManipSubFrame(val model: ModelSpec, val colourframe: ColourPickerFrame
|
|||
val player = Minecraft.getMinecraft.thePlayer
|
||||
val tagdata = getOrMakeSpecTag(spec)
|
||||
spec.setColourIndex(tagdata, columnNumber)
|
||||
if (player.worldObj.isRemote) player.sendQueue.addToSendQueue(new MusePacketCosmeticInfo(player.asInstanceOf[Player], getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
|
||||
if (player.worldObj.isRemote) PacketSender.sendToServer(new MusePacketCosmeticInfo(player, getSelectedItem.inventorySlot, tagname, tagdata).getPacket131)
|
||||
true
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.machinemuse.general.sound;
|
|||
|
||||
import net.machinemuse.numina.general.MuseLogger;
|
||||
import net.minecraftforge.client.event.sound.SoundLoadEvent;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import net.minecraftforge.event.SubscribeEvent;
|
||||
|
||||
public class SoundLoader {
|
||||
/**
|
||||
|
@ -32,7 +32,7 @@ public class SoundLoader {
|
|||
public static final String SOUND_SWIMASSIST = SOUND_PREFIX + "SwimAssist";
|
||||
public static final String SOUND_ELECTROLYZER = SOUND_PREFIX + "WaterElectrolyzer";
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void onSoundLoad(SoundLoadEvent event) {
|
||||
for (String soundFile : soundFiles) {
|
||||
try {
|
||||
|
|
|
@ -7,13 +7,13 @@ import net.machinemuse.general.gui.MuseIcon;
|
|||
import net.machinemuse.powersuits.common.Config;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
|
@ -40,7 +40,7 @@ public class BlockLuxCapacitor extends Block {
|
|||
setResistance(10.0F);
|
||||
|
||||
// Sound to play when player steps on the block
|
||||
setStepSound(Block.soundMetalFootstep);
|
||||
setStepSound(Block.soundTypeMetal);
|
||||
|
||||
// How much light is stopped by this block; 0 for air, 255 for fully
|
||||
// opaque.
|
||||
|
@ -84,9 +84,8 @@ public class BlockLuxCapacitor extends Block {
|
|||
return AxisAlignedBB.getAABBPool().getAABB(x + x1, y + y1, z + z1, x + x2, y + y2, z + z2);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister iconRegister) {
|
||||
public void registerIcons(IIconRegister iconRegister) {
|
||||
this.blockIcon = iconRegister.registerIcon(MuseIcon.ICON_PREFIX + "bluelight");
|
||||
}
|
||||
|
||||
|
@ -129,7 +128,7 @@ public class BlockLuxCapacitor extends Block {
|
|||
* Returns the bounding box of the wired rectangular prism to render.
|
||||
*/
|
||||
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
TileEntity te = world.getBlockTileEntity(x, y, z);
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if (te instanceof TileEntityLuxCapacitor) {
|
||||
ForgeDirection side = ((TileEntityLuxCapacitor) te).side;
|
||||
return createAABBForSide(side, x, y, z);
|
||||
|
@ -142,7 +141,7 @@ public class BlockLuxCapacitor extends Block {
|
|||
* cleared to be reused)
|
||||
*/
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
||||
TileEntity te = world.getBlockTileEntity(x, y, z);
|
||||
TileEntity te = world.getTileEntity(x, y, z);
|
||||
if (te instanceof TileEntityLuxCapacitor) {
|
||||
ForgeDirection side = ((TileEntityLuxCapacitor) te).side;
|
||||
return createAABBForSide(side, x, y, z);
|
||||
|
@ -151,7 +150,7 @@ public class BlockLuxCapacitor extends Block {
|
|||
}
|
||||
|
||||
public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int x, int y, int z) {
|
||||
TileEntity te = par1IBlockAccess.getBlockTileEntity(x, y, z);
|
||||
TileEntity te = par1IBlockAccess.getTileEntity(x, y, z);
|
||||
if (te instanceof TileEntityLuxCapacitor) {
|
||||
ForgeDirection side = ((TileEntityLuxCapacitor) te).side;
|
||||
float x1 = bbMin(side.offsetX);
|
||||
|
|
|
@ -8,10 +8,10 @@ import net.machinemuse.powersuits.common.Config;
|
|||
import net.machinemuse.powersuits.common.ModularPowersuits;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -26,7 +26,7 @@ import net.minecraftforge.common.MinecraftForge;
|
|||
public class BlockTinkerTable extends Block {
|
||||
protected int renderType;
|
||||
public static int assignedBlockID;
|
||||
public static Icon energyIcon;
|
||||
public static IIcon energyIcon;
|
||||
|
||||
public BlockTinkerTable setRenderType(int id) {
|
||||
this.renderType = id;
|
||||
|
@ -90,7 +90,7 @@ public class BlockTinkerTable extends Block {
|
|||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister iconRegister) {
|
||||
public void registerIcons(IIconRegister iconRegister) {
|
||||
this.blockIcon = iconRegister.registerIcon(MuseIcon.ICON_PREFIX + "heatresistantplating");
|
||||
energyIcon = blockIcon;
|
||||
}
|
||||
|
|
|
@ -1,14 +1,11 @@
|
|||
package net.machinemuse.powersuits.block;
|
||||
|
||||
import net.machinemuse.numina.general.MuseLogger;
|
||||
import net.machinemuse.numina.tileentity.MuseTileEntity;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.network.INetworkManager;
|
||||
import net.minecraft.network.packet.Packet;
|
||||
import net.minecraft.network.packet.Packet132TileEntityData;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class TileEntityLuxCapacitor extends TileEntity {
|
||||
public class TileEntityLuxCapacitor extends MuseTileEntity {
|
||||
public double red;
|
||||
public double green;
|
||||
public double blue;
|
||||
|
@ -62,20 +59,6 @@ public class TileEntityLuxCapacitor extends TileEntity {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) {
|
||||
readFromNBT(pkt.data);
|
||||
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet getDescriptionPacket() {
|
||||
NBTTagCompound tag = new NBTTagCompound();
|
||||
writeToNBT(tag);
|
||||
return new Packet132TileEntityData(xCoord, yCoord, zCoord, 0, tag);
|
||||
}
|
||||
|
||||
public ForgeDirection side;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -11,6 +11,7 @@ import net.machinemuse.numina.general.MuseLogger;
|
|||
import net.machinemuse.numina.network.MusePacket;
|
||||
import net.machinemuse.numina.network.MusePacketHandler;
|
||||
import net.machinemuse.numina.network.MusePacketModeChangeRequest;
|
||||
import net.machinemuse.numina.network.PacketSender;
|
||||
import net.machinemuse.numina.render.RenderGameOverlayEventHandler;
|
||||
import net.machinemuse.powersuits.block.TileEntityLuxCapacitor;
|
||||
import net.machinemuse.powersuits.block.TileEntityTinkerTable;
|
||||
|
@ -68,7 +69,7 @@ public class ClientProxy extends CommonProxy {
|
|||
@Override
|
||||
public void registerRenderers() {
|
||||
toolRenderer = new ToolRenderer();
|
||||
MinecraftForgeClient.registerItemRenderer(ModularPowersuits.powerTool.itemID, toolRenderer);
|
||||
MinecraftForgeClient.registerItemRenderer(ModularPowersuits.powerTool, toolRenderer);
|
||||
|
||||
int tinkTableRenderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
TinkerTableRenderer tinkTableRenderer = new TinkerTableRenderer(tinkTableRenderID);
|
||||
|
@ -117,7 +118,7 @@ public class ClientProxy extends CommonProxy {
|
|||
KeyBindingRegistry.registerKeyBinding(keybindHandler);
|
||||
|
||||
playerTickHandler = new PlayerTickHandler();
|
||||
TickRegistry.registerTickHandler(playerTickHandler, Side.CLIENT);
|
||||
MinecraftForge.EVENT_BUS.register(playerTickHandler);
|
||||
// TickRegistry.registerTickHandler(playerTickHandler, Side.SERVER);
|
||||
|
||||
renderTickHandler = new RenderTickHandler();
|
||||
|
@ -137,9 +138,9 @@ public class ClientProxy extends CommonProxy {
|
|||
|
||||
@Override
|
||||
public void sendModeChange(int dMode, String newMode) {
|
||||
EntityClientPlayerMP player= Minecraft.getMinecraft().thePlayer;
|
||||
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
|
||||
RenderGameOverlayEventHandler.updateSwap((int) Math.signum(dMode));
|
||||
MusePacket modeChangePacket = new MusePacketModeChangeRequest((Player) player, newMode, player.inventory.currentItem);
|
||||
player.sendQueue.addToSendQueue(modeChangePacket.getPacket131());
|
||||
MusePacket modeChangePacket = new MusePacketModeChangeRequest(player, newMode, player.inventory.currentItem);
|
||||
PacketSender.sendToServer(modeChangePacket);
|
||||
}
|
||||
}
|
|
@ -55,7 +55,7 @@ trait ArmorModel extends ModelBiped {
|
|||
def prep(entity: Entity, par2: Float, par3: Float, par4: Float, par5: Float, par6: Float, scale: Float) {
|
||||
try {
|
||||
val entLive: EntityLivingBase = entity.asInstanceOf[EntityLivingBase]
|
||||
val stack: ItemStack = entLive.getCurrentItemOrArmor(0)
|
||||
val stack: ItemStack = entLive.getEquipmentInSlot(0)
|
||||
this.heldItemRight = if (stack != null) 1 else 0
|
||||
this.isSneak = entLive.isSneaking
|
||||
this.aimedBow = entLive.asInstanceOf[EntityPlayer].getItemInUse != null
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.machinemuse.utils.MuseStringUtils
|
|||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.machinemuse.numina.general.MuseLogger
|
||||
import net.machinemuse.numina.geometry.Colour
|
||||
import net.minecraft.util.ResourceLocation
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
|
@ -17,38 +18,38 @@ object DefaultModelSpec {
|
|||
val tex = "/assets/powersuits/textures/models/diffuse.png"
|
||||
|
||||
def loadDefaultModel: Option[ModelSpec] = {
|
||||
loadModel("/assets/powersuits/models/mps_helm.obj", tex.split(";")).map(model => {
|
||||
loadModel(new ResourceLocation("powersuits:models/mps_helm.obj"), tex.split(";")).map(model => {
|
||||
makeEntries(Head, 0, 0, false, "helm_main;helm_tube_entry1;helm_tubes;helm_tube_entry2".split(";"), model)
|
||||
makeEntries(Head, 0, 1, true, "visor".split(";"), model)
|
||||
model
|
||||
})
|
||||
loadModel("/assets/powersuits/models/mps_arms.obj", tex.split(";")).map(model => {
|
||||
loadModel(new ResourceLocation("powersuits:models/mps_arms.obj"), tex.split(";")).map(model => {
|
||||
makeEntries(RightArm, 1, 0, false, "arms3".split(";"), model)
|
||||
makeEntries(RightArm, 1, 1, true, "crystal_shoulder_2".split(";"), model)
|
||||
makeEntries(LeftArm, 1, 0, false, "arms2".split(";"), model)
|
||||
makeEntries(LeftArm, 1, 1, true, "crystal_shoulder_1".split(";"), model)
|
||||
model
|
||||
})
|
||||
loadModel("/assets/powersuits/models/mps_chest.obj", tex.split(";")).map(model => {
|
||||
loadModel(new ResourceLocation("powersuits:models/mps_chest.obj"), tex.split(";")).map(model => {
|
||||
makeEntries(Body, 1, 0, false, "belt;chest_main;polySurface36;backpack;chest_padding".split(";"), model)
|
||||
makeEntries(Body, 1, 1, true, "crystal_belt".split(";"), model)
|
||||
model
|
||||
})
|
||||
loadModel("/assets/powersuits/models/mps_pantaloons.obj", tex.split(";")).map(model => {
|
||||
loadModel(new ResourceLocation("powersuits:models/mps_pantaloons.obj"), tex.split(";")).map(model => {
|
||||
makeEntries(RightLeg, 2, 0, false, "leg1".split(";"), model)
|
||||
makeEntries(LeftLeg, 2, 0, false, "leg2".split(";"), model)
|
||||
model
|
||||
})
|
||||
loadModel("/assets/powersuits/models/mps_boots.obj", tex.split(";")).map(model => {
|
||||
loadModel(new ResourceLocation("powersuits:models/mps_boots.obj"), tex.split(";")).map(model => {
|
||||
makeEntries(RightLeg, 3, 0, false, "boots1".split(";"), model)
|
||||
makeEntries(LeftLeg, 3, 0, false, "boots2".split(";"), model)
|
||||
model
|
||||
})
|
||||
}
|
||||
|
||||
def loadModel(file: String, textures: Array[String]): Option[ModelSpec] = {
|
||||
def loadModel(file: ResourceLocation, textures: Array[String]): Option[ModelSpec] = {
|
||||
ModelRegistry.loadModel(file) match {
|
||||
case Some(m) => Some(ModelRegistry.put(MuseStringUtils.extractName(file), new ModelSpec(m, textures, None, None, file)))
|
||||
case Some(m) => Some(ModelRegistry.put(MuseStringUtils.extractName(file), new ModelSpec(m, textures, None, None, file.toString)))
|
||||
case None => MuseLogger.logError("Model file " + file + " not found! D:")
|
||||
}
|
||||
}
|
||||
|
@ -83,7 +84,7 @@ object DefaultModelSpec {
|
|||
|
||||
}
|
||||
(new NBTTagCompound() /: list) {
|
||||
case (taglist, elem) => taglist.setCompoundTag(elem.getString("model") + "." + elem.getString("part"), elem); taglist
|
||||
case (taglist, elem) => taglist.setTag(elem.getString("model") + "." + elem.getString("part"), elem); taglist
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.machinemuse.powersuits.client.render.modelspec
|
|||
import net.minecraftforge.client.model.obj.WavefrontObject
|
||||
import net.minecraftforge.client.model.AdvancedModelLoader
|
||||
import net.machinemuse.utils.MuseStringUtils
|
||||
import net.minecraft.util.Vec3
|
||||
import net.minecraft.util.{ResourceLocation, Vec3}
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.machinemuse.numina.general.MuseLogger
|
||||
import net.machinemuse.numina.scala.MuseRegistry
|
||||
|
@ -13,7 +13,7 @@ import net.machinemuse.numina.scala.MuseRegistry
|
|||
* Created: 7:44 AM, 4/28/13
|
||||
*/
|
||||
object ModelRegistry extends MuseRegistry[ModelSpec] {
|
||||
def loadModel(resource: String): Option[WavefrontObject] = {
|
||||
def loadModel(resource: ResourceLocation): Option[WavefrontObject] = {
|
||||
val name = MuseStringUtils.extractName(resource)
|
||||
get(name) match {
|
||||
case Some(i) => Some(i.model)
|
||||
|
@ -21,7 +21,7 @@ object ModelRegistry extends MuseRegistry[ModelSpec] {
|
|||
}
|
||||
}
|
||||
|
||||
def wrap(resource: String): Option[WavefrontObject] = {
|
||||
def wrap(resource: ResourceLocation): Option[WavefrontObject] = {
|
||||
MuseLogger.logDebug("Loading " + resource + " as " + MuseStringUtils.extractName(resource))
|
||||
AdvancedModelLoader.loadModel(resource) match {
|
||||
case m: WavefrontObject => Some(m)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package net.machinemuse.powersuits.client.render.modelspec
|
||||
|
||||
import scala.xml.{NodeSeq, XML}
|
||||
import net.minecraft.util.Vec3
|
||||
import net.minecraft.util.{ResourceLocation, Vec3}
|
||||
import java.awt.Color
|
||||
import net.machinemuse.utils.MuseStringUtils
|
||||
import java.net.URL
|
||||
|
@ -27,7 +27,7 @@ object ModelSpecXMLReader {
|
|||
val offset = parseVector((modelnode \ "@offset").text)
|
||||
val rotation = parseVector((modelnode \ "@rotation").text)
|
||||
|
||||
ModelRegistry.loadModel(file) match {
|
||||
ModelRegistry.loadModel(new ResourceLocation(file)) match {
|
||||
case Some(m) => {
|
||||
val modelspec = new ModelSpec(m, textures, offset, rotation, file)
|
||||
val existingspec = ModelRegistry.put(MuseStringUtils.extractName(file), modelspec)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package net.machinemuse.powersuits.common
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry
|
||||
import net.machinemuse.powersuits.event.PlayerTracker
|
||||
import cpw.mods.fml.common.FMLCommonHandler
|
||||
import net.machinemuse.powersuits.event.PlayerLoginHandlerThingy
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
|
@ -9,7 +9,7 @@ import net.machinemuse.powersuits.event.PlayerTracker
|
|||
*/
|
||||
class ServerProxy extends CommonProxy {
|
||||
override def registerEvents {
|
||||
GameRegistry.registerPlayerTracker(new PlayerTracker)
|
||||
FMLCommonHandler.instance().bus().register(PlayerLoginHandlerThingy)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package net.machinemuse.powersuits.event;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.machinemuse.api.IModularItem;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.api.moduletrigger.IBlockBreakingModule;
|
||||
|
@ -7,11 +8,10 @@ import net.machinemuse.powersuits.item.ItemPowerFist;
|
|||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||
|
||||
public class HarvestEventHandler {
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void handleHarvestCheck(PlayerEvent.HarvestCheck event) {
|
||||
EntityPlayer player = event.entityPlayer;
|
||||
Block block = event.block;
|
||||
|
@ -21,7 +21,7 @@ public class HarvestEventHandler {
|
|||
}
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void handleBreakSpeed(PlayerEvent.BreakSpeed event) {
|
||||
Block block = event.block;
|
||||
EntityPlayer player = event.entityPlayer;
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
package net.machinemuse.powersuits.event;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.numina.sound.Musique;
|
||||
import net.machinemuse.general.sound.SoundLoader;
|
||||
import net.machinemuse.numina.sound.Musique;
|
||||
import net.machinemuse.powersuits.item.ItemPowerArmor;
|
||||
import net.machinemuse.powersuits.powermodule.movement.JumpAssistModule;
|
||||
import net.machinemuse.powersuits.powermodule.movement.ShockAbsorberModule;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingJumpEvent;
|
||||
import net.minecraftforge.event.entity.living.LivingFallEvent;
|
||||
|
||||
|
@ -21,18 +21,18 @@ public class MovementManager {
|
|||
|
||||
public static double getPlayerJumpMultiplier(EntityPlayer player) {
|
||||
|
||||
if (playerJumpMultipliers.containsKey(player.username)) {
|
||||
return playerJumpMultipliers.get(player.username);
|
||||
if (playerJumpMultipliers.containsKey(player.getCommandSenderName())) {
|
||||
return playerJumpMultipliers.get(player.getCommandSenderName());
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public static void setPlayerJumpTicks(EntityPlayer player, double number) {
|
||||
playerJumpMultipliers.put(player.username, number);
|
||||
playerJumpMultipliers.put(player.getCommandSenderName(), number);
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void handleLivingJumpEvent(LivingJumpEvent event) {
|
||||
if (event.entityLiving instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) event.entityLiving;
|
||||
|
@ -42,7 +42,7 @@ public class MovementManager {
|
|||
double jumpAssist = ModuleManager.computeModularProperty(stack, JumpAssistModule.JUMP_MULTIPLIER) * 2;
|
||||
double drain = ModuleManager.computeModularProperty(stack, JumpAssistModule.JUMP_ENERGY_CONSUMPTION);
|
||||
double avail = ElectricItemUtils.getPlayerEnergy(player);
|
||||
Musique.playerSound(player, SoundLoader.SOUND_JUMP_ASSIST, (float) (jumpAssist/8.0), 2, false);
|
||||
Musique.playerSound(player, SoundLoader.SOUND_JUMP_ASSIST, (float) (jumpAssist / 8.0), 2, false);
|
||||
if (drain < avail) {
|
||||
ElectricItemUtils.drainPlayerEnergy(player, drain);
|
||||
setPlayerJumpTicks(player, jumpAssist);
|
||||
|
@ -59,7 +59,7 @@ public class MovementManager {
|
|||
}
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void handleFallEvent(LivingFallEvent event) {
|
||||
if (event.entityLiving instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) event.entityLiving;
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package net.machinemuse.powersuits.event
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent
|
||||
import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent
|
||||
import net.machinemuse.numina.network.PacketSender
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketPropertyModifierConfig
|
||||
import net.minecraft.entity.player.{EntityPlayerMP, EntityPlayer}
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 8:01 PM, 12/05/13
|
||||
*/
|
||||
object PlayerLoginHandlerThingy {
|
||||
@SubscribeEvent
|
||||
def onPlayerLogin(e: PlayerLoggedInEvent) {
|
||||
val player = e.player
|
||||
PacketSender.sendTo(
|
||||
new MusePacketPropertyModifierConfig(player, null),
|
||||
player.asInstanceOf[EntityPlayerMP]
|
||||
)
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
package net.machinemuse.powersuits.event
|
||||
|
||||
import cpw.mods.fml.common.IPlayerTracker
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketPropertyModifierConfig
|
||||
import cpw.mods.fml.common.network.{Player, PacketDispatcher}
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 8:01 PM, 12/05/13
|
||||
*/
|
||||
class PlayerTracker extends IPlayerTracker {
|
||||
def onPlayerLogin(player: EntityPlayer) {
|
||||
PacketDispatcher.sendPacketToPlayer(
|
||||
new MusePacketPropertyModifierConfig(player.asInstanceOf[Player], null).getPacket131,
|
||||
player.asInstanceOf[Player]
|
||||
)
|
||||
}
|
||||
|
||||
def onPlayerLogout(player: EntityPlayer) {}
|
||||
|
||||
def onPlayerChangedDimension(player: EntityPlayer) {}
|
||||
|
||||
def onPlayerRespawn(player: EntityPlayer) {}
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
package net.machinemuse.powersuits.event
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.numina.general.MuseMathUtils
|
||||
import net.machinemuse.numina.scala.OptionCast
|
||||
import net.machinemuse.utils.{MuseHeatUtils, MuseItemUtils, MusePlayerUtils}
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent
|
||||
|
||||
/**
|
||||
* Created by Claire Semple on 9/8/2014.
|
||||
*/
|
||||
object PlayerUpdateHandler {
|
||||
@SubscribeEvent
|
||||
def onPlayerUpdate(e: LivingUpdateEvent) = {
|
||||
val player = OptionCast[EntityPlayer](e.entity).map { player =>
|
||||
val modularItemsEquipped = MuseItemUtils.modularItemsEquipped(player)
|
||||
val totalWeight: Double = MuseItemUtils.getPlayerWeight(player)
|
||||
val weightCapacity: Double = 25000
|
||||
|
||||
import scala.collection.JavaConversions._
|
||||
for (stack <- modularItemsEquipped) {
|
||||
if (stack.getTagCompound.hasKey("ench")) {
|
||||
stack.getTagCompound.removeTag("ench")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
var foundItemWithModule: Boolean = false
|
||||
import scala.collection.JavaConversions._
|
||||
for (module <- ModuleManager.getPlayerTickModules) {
|
||||
foundItemWithModule = false
|
||||
import scala.collection.JavaConversions._
|
||||
for (itemStack <- modularItemsEquipped) {
|
||||
if (module.isValidForItem(itemStack)) {
|
||||
if (ModuleManager.itemHasActiveModule(itemStack, module.getDataName)) {
|
||||
module.onPlayerTickActive(player, itemStack)
|
||||
foundItemWithModule = true
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!foundItemWithModule) {
|
||||
import scala.collection.JavaConversions._
|
||||
for (itemStack <- modularItemsEquipped) {
|
||||
module.onPlayerTickInactive(player, itemStack)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val foundItem: Boolean = modularItemsEquipped.size > 0
|
||||
|
||||
|
||||
if (foundItem) {
|
||||
player.fallDistance = MovementManager.computeFallHeightFromVelocity(MuseMathUtils.clampDouble(player.motionY, -1000.0, 0.0)).asInstanceOf[Float]
|
||||
if (totalWeight > weightCapacity) {
|
||||
player.motionX *= weightCapacity / totalWeight
|
||||
player.motionZ *= weightCapacity / totalWeight
|
||||
}
|
||||
MuseHeatUtils.coolPlayer(player, MusePlayerUtils.getPlayerCoolingBasedOnMaterial(player))
|
||||
val maxHeat: Double = MuseHeatUtils.getMaxHeat(player)
|
||||
val currHeat: Double = MuseHeatUtils.getPlayerHeat(player)
|
||||
if (currHeat > maxHeat) {
|
||||
player.attackEntityFrom(MuseHeatUtils.overheatDamage, Math.sqrt(currHeat - maxHeat).asInstanceOf[Int] / 4)
|
||||
player.setFire(1)
|
||||
}
|
||||
else {
|
||||
player.extinguish
|
||||
}
|
||||
val velsq2: Double = MuseMathUtils.sumsq(player.motionX, player.motionY, player.motionZ) - 0.5
|
||||
if (player.isAirBorne && velsq2 > 0) {
|
||||
// Musique.playerSound(player, SoundLoader.SOUND_GLIDER, (velsq2 / 3).asInstanceOf[Float], 1.0f, true)
|
||||
}
|
||||
else {
|
||||
// Musique.stopPlayerSound(player, SoundLoader.SOUND_GLIDER)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,42 +1,52 @@
|
|||
package net.machinemuse.powersuits.event;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.general.gui.EnergyMeter;
|
||||
import net.machinemuse.general.gui.HeatMeter;
|
||||
import net.machinemuse.powersuits.block.BlockTinkerTable;
|
||||
import net.machinemuse.powersuits.common.Config;
|
||||
import net.machinemuse.powersuits.powermodule.movement.FlightControlModule;
|
||||
import net.machinemuse.powersuits.powermodule.movement.GliderModule;
|
||||
import net.machinemuse.powersuits.powermodule.movement.JetBootsModule;
|
||||
import net.machinemuse.powersuits.powermodule.movement.JetPackModule;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
import net.machinemuse.utils.MuseHeatUtils;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.machinemuse.utils.MuseStringUtils;
|
||||
import net.machinemuse.utils.render.GlowBuffer;
|
||||
import net.machinemuse.utils.render.MuseRenderer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.ScaledResolution;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent;
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.event.ForgeSubscribe;
|
||||
|
||||
public class RenderEventHandler {
|
||||
@SideOnly(Side.CLIENT)
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void renderLast(RenderWorldLastEvent event) {
|
||||
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
ScaledResolution screen = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight);
|
||||
ScaledResolution screen = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight);
|
||||
if (Config.useShaders() && Config.canUseShaders && Minecraft.isFancyGraphicsEnabled()) {
|
||||
GlowBuffer.drawFullScreen(screen);
|
||||
GlowBuffer.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void onTextureStitch(TextureStitchEvent.Post event) {
|
||||
// MuseIcon.registerAllIcons(event.map);
|
||||
}
|
||||
|
||||
static boolean ownFly = false;
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void onPreRenderPlayer(RenderPlayerEvent.Pre event) {
|
||||
if (!event.entityPlayer.capabilities.isFlying && !event.entityPlayer.onGround && playerHasFlightOn(event.entityPlayer)) {
|
||||
event.entityPlayer.capabilities.isFlying = true;
|
||||
|
@ -51,11 +61,61 @@ public class RenderEventHandler {
|
|||
|| ModuleManager.itemHasActiveModule(player.getCurrentArmor(3), FlightControlModule.MODULE_FLIGHT_CONTROL);
|
||||
}
|
||||
|
||||
@ForgeSubscribe
|
||||
@SubscribeEvent
|
||||
public void onPostRenderPlayer(RenderPlayerEvent.Post event) {
|
||||
if (ownFly) {
|
||||
ownFly = false;
|
||||
event.entityPlayer.capabilities.isFlying = false;
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRenderGameOverlay(RenderGameOverlayEvent.Post event) {
|
||||
switch(event.type) {
|
||||
case EXPERIENCE:
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
if (player != null && MuseItemUtils.modularItemsEquipped(player).size() > 0 && Minecraft.getMinecraft().currentScreen == null) {
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
ScaledResolution screen = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight);
|
||||
drawMeters(player, screen);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected static HeatMeter heat;
|
||||
protected static HeatMeter energy;
|
||||
private int lightningCounter = 0;
|
||||
private void drawMeters(EntityPlayer player, ScaledResolution screen) {
|
||||
|
||||
double currEnergy = ElectricItemUtils.getPlayerEnergy(player);
|
||||
double maxEnergy = ElectricItemUtils.getMaxEnergy(player);
|
||||
double currHeat = MuseHeatUtils.getPlayerHeat(player);
|
||||
double maxHeat = MuseHeatUtils.getMaxHeat(player);
|
||||
if (maxEnergy > 0 && BlockTinkerTable.energyIcon != null) {
|
||||
String currStr = MuseStringUtils.formatNumberShort(currEnergy);
|
||||
String maxStr = MuseStringUtils.formatNumberShort(maxEnergy);
|
||||
String currHeatStr = MuseStringUtils.formatNumberShort(currHeat);
|
||||
String maxHeatStr = MuseStringUtils.formatNumberShort(maxHeat);
|
||||
if (Config.useGraphicalMeters()) {
|
||||
if (energy == null) {
|
||||
energy = new EnergyMeter();
|
||||
heat = new HeatMeter();
|
||||
}
|
||||
double left = screen.getScaledWidth() - 20;
|
||||
double top = screen.getScaledHeight() / 2.0 - 16;
|
||||
energy.draw(left, top, currEnergy / maxEnergy);
|
||||
heat.draw(left + 8, top, currHeat / maxHeat);
|
||||
MuseRenderer.drawRightAlignedString(currStr, left - 2, top + 10);
|
||||
MuseRenderer.drawRightAlignedString(currHeatStr, left - 2, top + 20);
|
||||
} else {
|
||||
MuseRenderer.drawString(currStr + '/' + maxStr + " \u1D60", 1, 1);
|
||||
MuseRenderer.drawString(currHeatStr + '/' + maxHeatStr + " C", 1, 10);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,12 +7,12 @@ import net.machinemuse.api.ModuleManager;
|
|||
import net.machinemuse.general.gui.MuseIcon;
|
||||
import net.machinemuse.powersuits.common.Config;
|
||||
import net.machinemuse.utils.MuseStringUtils;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
|
@ -22,7 +22,7 @@ import java.util.List;
|
|||
public class ItemComponent extends Item {
|
||||
public static int assignedItemID;
|
||||
|
||||
public static List<Icon> icons;
|
||||
public static List<IIcon> icons;
|
||||
public static List<String> iconNames;
|
||||
public static List<String> names;
|
||||
public static List<String> descriptions;
|
||||
|
@ -51,7 +51,7 @@ public class ItemComponent extends Item {
|
|||
this.setHasSubtypes(true);
|
||||
this.setMaxDamage(0);
|
||||
this.setCreativeTab(Config.getCreativeTab());
|
||||
icons = new ArrayList<Icon>();
|
||||
icons = new ArrayList<IIcon>();
|
||||
iconNames = new ArrayList<String>();
|
||||
names = new ArrayList<String>();
|
||||
descriptions = new ArrayList<String>();
|
||||
|
@ -119,13 +119,13 @@ public class ItemComponent extends Item {
|
|||
* Gets an icon index based on an item's damage value
|
||||
*/
|
||||
@Override
|
||||
public Icon getIconFromDamage(int index) {
|
||||
public IIcon getIconFromDamage(int index) {
|
||||
return icons.get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister iconRegister) {
|
||||
public void registerIcons(IIconRegister iconRegister) {
|
||||
icons.clear();
|
||||
for (String iconName : iconNames) {
|
||||
icons.add(iconRegister.registerIcon(MuseIcon.ICON_PREFIX + iconName));
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import net.minecraft.item.EnumArmorMaterial
|
||||
import net.minecraft.item.ItemArmor
|
||||
import net.machinemuse.api.electricity._
|
||||
import net.minecraft.item.ItemArmor
|
||||
|
||||
abstract class ItemElectricArmor(id: Int, material: EnumArmorMaterial, index1: Int, index2: Int)
|
||||
extends ItemArmor(id, material, index1, index2)
|
||||
abstract class ItemElectricArmor(material: ItemArmor.ArmorMaterial, index1: Int, index2: Int)
|
||||
extends ItemArmor(material, index1, index2)
|
||||
with ModularItemBase
|
||||
with MuseElectricItem {
|
||||
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import com.google.common.collect.Sets
|
||||
import net.machinemuse.api.electricity._
|
||||
import net.minecraft.block.Block
|
||||
import net.minecraft.item.EnumToolMaterial
|
||||
import net.minecraft.item.ItemTool
|
||||
import net.minecraft.init.Blocks
|
||||
import net.minecraft.item.{Item, ItemTool}
|
||||
|
||||
class ItemElectricTool(par1: Int, par2: Int, par3EnumToolMaterial: EnumToolMaterial, par4ArrayOfBlock: Array[Block])
|
||||
extends ItemTool(par1, par2, par3EnumToolMaterial, par4ArrayOfBlock)
|
||||
object ItemElectricTool {
|
||||
val blocksEffectiveOn = Sets.newHashSet(Array[Block](Blocks.cobblestone, Blocks.double_stone_slab, Blocks.stone_slab, Blocks.stone, Blocks.sandstone, Blocks.mossy_cobblestone, Blocks.iron_ore, Blocks.iron_block, Blocks.coal_ore, Blocks.gold_block, Blocks.gold_ore, Blocks.diamond_ore, Blocks.diamond_block, Blocks.ice, Blocks.netherrack, Blocks.lapis_ore, Blocks.lapis_block, Blocks.redstone_ore, Blocks.lit_redstone_ore, Blocks.rail, Blocks.detector_rail, Blocks.golden_rail, Blocks.activator_rail))
|
||||
}
|
||||
class ItemElectricTool(damageBonus : Float, material : Item.ToolMaterial)
|
||||
extends ItemTool(damageBonus, material, ItemElectricTool.blocksEffectiveOn)
|
||||
with ModularItemBase
|
||||
with MuseElectricItem {
|
||||
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import net.minecraft.item.Item
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 7:29 PM, 5/13/13
|
||||
*/
|
||||
class ItemMagic(id:Int) extends Item(id:Int) {
|
||||
|
||||
}
|
|
@ -1,34 +1,29 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.machinemuse.api.{IModularItem, ModuleManager}
|
||||
import net.machinemuse.numina.geometry.Colour
|
||||
import net.machinemuse.powersuits.client.render.item.ArmorModel
|
||||
import net.machinemuse.powersuits.common.Config
|
||||
import net.machinemuse.powersuits.powermodule.misc.{InvisibilityModule, TransparentArmorModule, TintModule}
|
||||
import net.machinemuse.powersuits.powermodule.misc.{InvisibilityModule, TintModule, TransparentArmorModule}
|
||||
import net.machinemuse.utils._
|
||||
import net.minecraft.entity.{EntityLivingBase, Entity}
|
||||
import net.minecraft.client.model.ModelBiped
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.EnumArmorMaterial
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.entity.{Entity, EntityLivingBase}
|
||||
import net.minecraft.item.{ItemArmor, ItemStack}
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.minecraft.util.DamageSource
|
||||
import net.minecraftforge.common.ISpecialArmor
|
||||
import scala.Predef.String
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.minecraft.client.model.ModelBiped
|
||||
import net.machinemuse.powersuits.client.render.item.ArmorModel
|
||||
import net.machinemuse.api.{ModuleManager, ArmorTraits, IModularItem}
|
||||
import net.machinemuse.numina.geometry.Colour
|
||||
import cpw.mods.fml.common.registry.GameRegistry
|
||||
import cpw.mods.fml.common.Optional
|
||||
|
||||
/**
|
||||
* Describes the 4 different modular armor pieces - head, torso, legs, feet.
|
||||
*
|
||||
* @author MachineMuse
|
||||
*/
|
||||
abstract class ItemPowerArmor(id: Int, renderIndex: Int, armorType: Int)
|
||||
extends ItemElectricArmor(id, EnumArmorMaterial.IRON, renderIndex, armorType)
|
||||
abstract class ItemPowerArmor(renderIndex: Int, armorType: Int)
|
||||
extends ItemElectricArmor(ItemArmor.ArmorMaterial.IRON, renderIndex, armorType)
|
||||
with ISpecialArmor
|
||||
with IModularItem
|
||||
with ArmorTraits {
|
||||
with IModularItem {
|
||||
setMaxStackSize(1)
|
||||
setCreativeTab(Config.getCreativeTab)
|
||||
|
||||
|
@ -54,7 +49,7 @@ abstract class ItemPowerArmor(id: Int, renderIndex: Int, armorType: Int)
|
|||
return new ISpecialArmor.ArmorProperties(priority, absorbRatio, absorbMax)
|
||||
}
|
||||
|
||||
override def getArmorTexture(itemstack: ItemStack, entity: Entity, slot: Int, layer: Int): String = {
|
||||
def getArmorTexture(itemstack: ItemStack, entity: Entity, slot: Int, layer: Int): String = {
|
||||
Config.BLANK_ARMOR_MODEL_PATH
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import net.minecraft.client.renderer.texture.IconRegister
|
||||
import net.minecraft.client.renderer.texture.IIconRegister
|
||||
import cpw.mods.fml.relauncher.Side
|
||||
import cpw.mods.fml.relauncher.SideOnly
|
||||
import net.machinemuse.utils.render.MuseRenderer
|
||||
|
||||
class ItemPowerArmorBoots(id: Int) extends ItemPowerArmor(id, 0, 3) {
|
||||
class ItemPowerArmorBoots(id: Int) extends ItemPowerArmor(0, 3) {
|
||||
val iconpath = MuseRenderer.ICON_PREFIX + "armorfeet"
|
||||
|
||||
setUnlocalizedName("powerArmorBoots")
|
||||
|
||||
@SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IconRegister) {
|
||||
@SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IIconRegister) {
|
||||
itemIcon = iconRegister.registerIcon(iconpath)
|
||||
}
|
||||
}
|
|
@ -1,16 +1,16 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import net.minecraft.client.renderer.texture.IconRegister
|
||||
import net.minecraft.client.renderer.texture.IIconRegister
|
||||
import cpw.mods.fml.relauncher.Side
|
||||
import cpw.mods.fml.relauncher.SideOnly
|
||||
import net.machinemuse.utils.render.MuseRenderer
|
||||
|
||||
class ItemPowerArmorChestplate(id: Int) extends ItemPowerArmor(id, 0, 1) {
|
||||
class ItemPowerArmorChestplate(id: Int) extends ItemPowerArmor(0, 1) {
|
||||
val iconpath = MuseRenderer.ICON_PREFIX + "armortorso"
|
||||
|
||||
setUnlocalizedName("powerArmorChestplate")
|
||||
|
||||
@SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IconRegister) {
|
||||
@SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IIconRegister) {
|
||||
itemIcon = iconRegister.registerIcon(iconpath)
|
||||
}
|
||||
}
|
|
@ -1,37 +1,32 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import thaumcraft.api.nodes.IRevealer
|
||||
import micdoodle8.mods.galacticraft.api.item.IBreathableArmor.EnumGearType
|
||||
import micdoodle8.mods.galacticraft.api.item.IBreathableArmor
|
||||
import net.machinemuse.powersuits.powermodule.misc.{ThaumGogglesModule, AirtightSealModule}
|
||||
import net.minecraft.client.renderer.texture.IconRegister
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.ItemStack
|
||||
import cpw.mods.fml.relauncher.Side
|
||||
import cpw.mods.fml.relauncher.SideOnly
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.powersuits.powermodule.misc.ThaumGogglesModule
|
||||
import net.machinemuse.utils.render.MuseRenderer
|
||||
import net.minecraft.client.renderer.texture.IIconRegister
|
||||
import net.minecraft.entity.EntityLivingBase
|
||||
import thaumcraft.api.IGoggles
|
||||
import net.minecraft.item.ItemStack
|
||||
|
||||
class ItemPowerArmorHelmet(id: Int) extends ItemPowerArmor(id, 0, 0)
|
||||
with IBreathableArmor
|
||||
with IGoggles
|
||||
with IRevealer {
|
||||
class ItemPowerArmorHelmet(id: Int) extends ItemPowerArmor(0, 0)
|
||||
//with IBreathableArmor
|
||||
//with IGoggles
|
||||
//with IRevealer
|
||||
{
|
||||
val iconpath = MuseRenderer.ICON_PREFIX + "armorhead"
|
||||
|
||||
setUnlocalizedName("powerArmorHelmet")
|
||||
|
||||
|
||||
// IBreathableArmor
|
||||
def handleGearType(gearType: EnumGearType): Boolean = gearType eq EnumGearType.HELMET
|
||||
|
||||
def canBreathe(helm: ItemStack, player: EntityPlayer, gearType: EnumGearType): Boolean =
|
||||
ModuleManager.itemHasActiveModule(helm, AirtightSealModule.AIRTIGHT_SEAL_MODULE)
|
||||
//
|
||||
// // IBreathableArmor
|
||||
// def handleGearType(gearType: EnumGearType): Boolean = gearType eq EnumGearType.HELMET
|
||||
//
|
||||
// def canBreathe(helm: ItemStack, player: EntityPlayer, gearType: EnumGearType): Boolean =
|
||||
// ModuleManager.itemHasActiveModule(helm, AirtightSealModule.AIRTIGHT_SEAL_MODULE)
|
||||
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
override def registerIcons(iconRegister: IconRegister) {
|
||||
override def registerIcons(iconRegister: IIconRegister) {
|
||||
itemIcon = iconRegister.registerIcon(iconpath)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import net.minecraft.client.renderer.texture.IconRegister
|
||||
import net.minecraft.client.renderer.texture.IIconRegister
|
||||
import cpw.mods.fml.relauncher.Side
|
||||
import cpw.mods.fml.relauncher.SideOnly
|
||||
import net.machinemuse.utils.render.MuseRenderer
|
||||
|
||||
class ItemPowerArmorLeggings(id: Int) extends ItemPowerArmor(id, 0, 2) {
|
||||
class ItemPowerArmorLeggings(id: Int) extends ItemPowerArmor(0, 2) {
|
||||
val iconpath = MuseRenderer.ICON_PREFIX + "armorlegs"
|
||||
|
||||
setUnlocalizedName("powerArmorLeggings")
|
||||
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
override def registerIcons(iconRegister: IconRegister) {
|
||||
override def registerIcons(iconRegister: IIconRegister) {
|
||||
itemIcon = iconRegister.registerIcon(iconpath)
|
||||
}
|
||||
}
|
|
@ -1,41 +1,36 @@
|
|||
package net.machinemuse.powersuits.item
|
||||
|
||||
import cpw.mods.fml.relauncher.Side
|
||||
import cpw.mods.fml.relauncher.SideOnly
|
||||
import forestry.api.arboriculture.IToolGrafter
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.machinemuse.api._
|
||||
import net.machinemuse.api.moduletrigger.IRightClickModule
|
||||
import net.machinemuse.general.gui.MuseIcon
|
||||
import net.machinemuse.numina.scala.OptionCast
|
||||
import net.machinemuse.powersuits.common.Config
|
||||
import net.machinemuse.powersuits.powermodule.tool.{OmniWrenchModule, GrafterModule}
|
||||
import net.machinemuse.powersuits.powermodule.tool.{GrafterModule, OmniWrenchModule}
|
||||
import net.machinemuse.powersuits.powermodule.weapon.MeleeAssistModule
|
||||
import net.machinemuse.utils.{ElectricItemUtils, MuseHeatUtils}
|
||||
import net.minecraft.block.Block
|
||||
import net.minecraft.client.renderer.texture.IconRegister
|
||||
import net.minecraft.entity.{EntityLivingBase, Entity}
|
||||
import net.minecraft.client.renderer.texture.IIconRegister
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.EnumAction
|
||||
import net.minecraft.item.EnumToolMaterial
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.entity.{Entity, EntityLivingBase}
|
||||
import net.minecraft.item.Item.ToolMaterial
|
||||
import net.minecraft.item.{EnumAction, ItemStack}
|
||||
import net.minecraft.util.{DamageSource, Vec3}
|
||||
import net.minecraft.world.World
|
||||
import net.machinemuse.numina.scala.OptionCast
|
||||
import scala.Predef.String
|
||||
|
||||
/**
|
||||
* Describes the modular power tool.
|
||||
*
|
||||
* @author MachineMuse
|
||||
*/
|
||||
class ItemPowerFist extends ItemElectricTool(Config.fistID, 0, EnumToolMaterial.EMERALD, new Array[Block](0))
|
||||
class ItemPowerFist extends ItemElectricTool(0, ToolMaterial.EMERALD)
|
||||
with IModularItem
|
||||
with IToolGrafter
|
||||
with OmniWrench
|
||||
//with IToolGrafter
|
||||
//with OmniWrench
|
||||
with ModeChangingModularItem {
|
||||
val iconpath: String = MuseIcon.ICON_PREFIX + "handitem"
|
||||
setMaxStackSize(1)
|
||||
setMaxDamage(0)
|
||||
this.damageVsEntity = 1
|
||||
setCreativeTab(Config.getCreativeTab)
|
||||
setUnlocalizedName("powerFist")
|
||||
|
||||
|
@ -44,14 +39,14 @@ with ModeChangingModularItem {
|
|||
* Returns the strength of the stack against a given block. 1.0F base,
|
||||
* (Quality+1)*2 if correct blocktype, 1.5F if sword
|
||||
*/
|
||||
override def getStrVsBlock(stack: ItemStack, block: Block): Float = getStrVsBlock(stack, block, 0)
|
||||
def getStrVsBlock(stack: ItemStack, block: Block): Float = getStrVsBlock(stack, block, 0)
|
||||
|
||||
/**
|
||||
* FORGE: Overridden to allow custom tool effectiveness
|
||||
*/
|
||||
override def getStrVsBlock(stack: ItemStack, block: Block, meta: Int): Float = 1
|
||||
def getStrVsBlock(stack: ItemStack, block: Block, meta: Int): Float = 1
|
||||
|
||||
@SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IconRegister) {
|
||||
@SideOnly(Side.CLIENT) override def registerIcons(iconRegister: IIconRegister) {
|
||||
itemIcon = iconRegister.registerIcon(iconpath)
|
||||
}
|
||||
|
||||
|
@ -86,7 +81,7 @@ with ModeChangingModularItem {
|
|||
* <p/>
|
||||
* Returns: Whether to increment player use stats with this item
|
||||
*/
|
||||
override def onBlockDestroyed(stack: ItemStack, world: World, blockID: Int, x: Int, y: Int, z: Int, entity: EntityLivingBase): Boolean = {
|
||||
def onBlockDestroyed(stack: ItemStack, world: World, blockID: Int, x: Int, y: Int, z: Int, entity: EntityLivingBase): Boolean = {
|
||||
entity match {
|
||||
case player: EntityPlayer =>
|
||||
import scala.collection.JavaConversions._
|
||||
|
@ -112,7 +107,7 @@ with ModeChangingModularItem {
|
|||
* @param itemStack The itemstack
|
||||
* @return the damage
|
||||
*/
|
||||
override def getDamageVsEntity(par1Entity: Entity, itemStack: ItemStack): Float = {
|
||||
def getDamageVsEntity(par1Entity: Entity, itemStack: ItemStack): Float = {
|
||||
ModuleManager.computeModularProperty(itemStack, MeleeAssistModule.PUNCH_DAMAGE).toFloat
|
||||
}
|
||||
|
||||
|
@ -175,13 +170,13 @@ with ModeChangingModularItem {
|
|||
}
|
||||
}
|
||||
|
||||
override def shouldPassSneakingClickToBlock(world: World, x: Int, y: Int, z: Int): Boolean = true
|
||||
def shouldPassSneakingClickToBlock(world: World, x: Int, y: Int, z: Int): Boolean = true
|
||||
|
||||
override def onItemUseFirst(itemStack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, side: Int, hitX: Float, hitY: Float, hitZ: Float): Boolean = {
|
||||
val mode: String = getActiveMode(itemStack, player)
|
||||
val module: IPowerModule = ModuleManager.getModule(mode)
|
||||
module match {
|
||||
case m:IRightClickModule => m.onItemUseFirst(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ)
|
||||
case m: IRightClickModule => m.onItemUseFirst(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ)
|
||||
case _ => false
|
||||
}
|
||||
}
|
||||
|
@ -190,7 +185,7 @@ with ModeChangingModularItem {
|
|||
val mode: String = getActiveMode(itemStack, player)
|
||||
val module: IPowerModule = ModuleManager.getModule(mode)
|
||||
module match {
|
||||
case m:IRightClickModule => m.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); false
|
||||
case m: IRightClickModule => m.onItemUse(itemStack, player, world, x, y, z, side, hitX, hitY, hitZ); false
|
||||
case _ => false
|
||||
}
|
||||
}
|
||||
|
@ -206,7 +201,7 @@ with ModeChangingModularItem {
|
|||
}
|
||||
|
||||
def canHarvestBlock(stack: ItemStack, block: Block, meta: Int, player: EntityPlayer): Boolean = {
|
||||
if (block.blockMaterial.isToolNotRequired) {
|
||||
if (block.getMaterial.isToolNotRequired) {
|
||||
return true
|
||||
}
|
||||
import scala.collection.JavaConversions._
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.machinemuse.powersuits.item
|
|||
|
||||
import net.machinemuse.numina.item.{NuminaItemUtils, ModeChangingItem}
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.util.Icon
|
||||
import net.minecraft.util.IIcon
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.api.moduletrigger.IRightClickModule
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
|
@ -25,7 +25,7 @@ object ModeChangingModularItem {
|
|||
}
|
||||
|
||||
trait ModeChangingModularItem extends ModeChangingItem {
|
||||
def getModeIcon(mode: String, stack: ItemStack, player: EntityPlayer): Option[Icon] = Option(ModuleManager.getModule(mode)).map(m => m.getIcon(stack))
|
||||
def getModeIcon(mode: String, stack: ItemStack, player: EntityPlayer): Option[IIcon] = Option(ModuleManager.getModule(mode)).map(m => m.getIcon(stack))
|
||||
|
||||
def getValidModes(stack: ItemStack, player: EntityPlayer): Seq[String] = {
|
||||
getValidModes(stack)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import net.machinemuse.api.IModularItem
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import java.io.DataInputStream
|
||||
|
||||
import net.machinemuse.api.IModularItem
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
|
||||
|
||||
/**
|
||||
|
@ -14,14 +14,14 @@ import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
|||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketColourInfo extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val itemSlot = readInt(d)
|
||||
val tagData = readIntArray(d)
|
||||
new MusePacketColourInfo(p, itemSlot, tagData)
|
||||
}
|
||||
}
|
||||
|
||||
class MusePacketColourInfo(player: Player, itemSlot: Int, tagData: Array[Int]) extends MusePacket(player) {
|
||||
class MusePacketColourInfo(player: EntityPlayer, itemSlot: Int, tagData: Array[Int]) extends MusePacket {
|
||||
val packager = MusePacketColourInfo
|
||||
|
||||
def write {
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.api.IModularItem
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import java.io.DataInputStream
|
||||
import scala.Predef._
|
||||
|
||||
import net.machinemuse.api.IModularItem
|
||||
import net.machinemuse.numina.general.MuseLogger
|
||||
import net.machinemuse.numina.network.{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 {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val itemSlot = readInt(d)
|
||||
val tagName = readString(d)
|
||||
val tagData = readNBTTagCompound(d)
|
||||
|
@ -23,7 +22,7 @@ object MusePacketCosmeticInfo extends MusePackager {
|
|||
}
|
||||
}
|
||||
|
||||
class MusePacketCosmeticInfo(player: Player, itemSlot: Int, tagName: String, tagData: NBTTagCompound) extends MusePacket(player) {
|
||||
class MusePacketCosmeticInfo(player: EntityPlayer, itemSlot: Int, tagName: String, tagData: NBTTagCompound) extends MusePacket {
|
||||
val packager = MusePacketCosmeticInfo
|
||||
|
||||
def write {
|
||||
|
@ -39,7 +38,7 @@ class MusePacketCosmeticInfo(player: Player, itemSlot: Int, tagName: String, tag
|
|||
var renderTag: NBTTagCompound = null
|
||||
if (!itemTag.hasKey("render")) {
|
||||
renderTag = new NBTTagCompound
|
||||
itemTag.setCompoundTag("render", renderTag)
|
||||
itemTag.setTag("render", renderTag)
|
||||
} else {
|
||||
renderTag = itemTag.getCompoundTag("render")
|
||||
}
|
||||
|
@ -48,7 +47,7 @@ class MusePacketCosmeticInfo(player: Player, itemSlot: Int, tagName: String, tag
|
|||
renderTag.removeTag(tagName)
|
||||
} else {
|
||||
MuseLogger.logDebug("Adding tag " + tagName + " : " + tagData)
|
||||
renderTag.setCompoundTag(tagName, tagData)
|
||||
renderTag.setTag(tagName, tagData)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,26 +3,15 @@
|
|||
*/
|
||||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import cpw.mods.fml.common.FMLCommonHandler
|
||||
import cpw.mods.fml.common.network.PacketDispatcher
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import cpw.mods.fml.relauncher.Side
|
||||
import net.machinemuse.api.{IModularItem, IPowerModule, ModuleManager}
|
||||
import net.machinemuse.utils.ElectricItemUtils
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import net.minecraft.item.ItemStack
|
||||
import java.io.DataInputStream
|
||||
import java.io.IOException
|
||||
import java.util.ArrayList
|
||||
import java.util.List
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import net.minecraft.util.ChatMessageComponent
|
||||
import net.machinemuse.api.ModuleManager.{itemAddModule, itemHasModule}
|
||||
import net.machinemuse.numina.general.MuseLogger
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import java.util.{ArrayList, List}
|
||||
|
||||
import net.machinemuse.api.{IPowerModule, ModuleManager}
|
||||
import net.machinemuse.numina.network.{PacketSender, MusePackager, MusePacket}
|
||||
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
|
||||
|
@ -33,14 +22,14 @@ import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
|||
*/
|
||||
|
||||
object MusePacketInstallModuleRequest extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val itemSlot = readInt(d)
|
||||
val moduleName = readString(d)
|
||||
new MusePacketInstallModuleRequest(p, itemSlot, moduleName)
|
||||
}
|
||||
}
|
||||
|
||||
class MusePacketInstallModuleRequest(player: Player, itemSlot: Int, moduleName: String) extends MusePacket(player) {
|
||||
class MusePacketInstallModuleRequest(player: EntityPlayer, itemSlot: Int, moduleName: String) extends MusePacket {
|
||||
val packager = MusePacketInstallModuleRequest
|
||||
|
||||
def write {
|
||||
|
@ -54,7 +43,7 @@ class MusePacketInstallModuleRequest(player: Player, itemSlot: Int, moduleName:
|
|||
val inventory: InventoryPlayer = playerEntity.inventory
|
||||
val moduleType: IPowerModule = ModuleManager.getModule(moduleName)
|
||||
if (moduleType == null || !moduleType.isAllowed) {
|
||||
playerEntity.sendChatToPlayer(ChatMessageComponent.createFromText("Server has disallowed this module. Sorry!"))
|
||||
playerEntity.addChatComponentMessage(new ChatComponentText("Server has disallowed this module. Sorry!"))
|
||||
return
|
||||
}
|
||||
val cost: List[ItemStack] = moduleType.getInstallCost
|
||||
|
@ -71,8 +60,8 @@ class MusePacketInstallModuleRequest(player: Player, itemSlot: Int, moduleName:
|
|||
slotsToUpdate.add(itemSlot)
|
||||
import scala.collection.JavaConversions._
|
||||
for (slotiter <- slotsToUpdate) {
|
||||
val reply: MusePacket = new MusePacketInventoryRefresh(player, slotiter, inventory.getStackInSlot(slotiter))
|
||||
PacketDispatcher.sendPacketToPlayer(reply.getPacket131, player)
|
||||
val reply: MusePacket = new MusePacketInventoryRefresh(playerEntity, slotiter, inventory.getStackInSlot(slotiter))
|
||||
PacketSender.sendTo(reply, playerEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,16 +4,16 @@
|
|||
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.minecraft.client.Minecraft
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP
|
||||
import net.minecraft.client.gui.GuiScreen
|
||||
import net.minecraft.inventory.IInventory
|
||||
import net.minecraft.item.ItemStack
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import net.machinemuse.numina.scala.OptionCast
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
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
|
||||
|
||||
|
||||
/**
|
||||
|
@ -21,14 +21,14 @@ import cpw.mods.fml.relauncher.{Side, SideOnly}
|
|||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketInventoryRefresh extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val itemSlot = readInt(d)
|
||||
val stack = readItemStack(d)
|
||||
new MusePacketInventoryRefresh(p, itemSlot, stack)
|
||||
}
|
||||
}
|
||||
|
||||
class MusePacketInventoryRefresh(player: Player, slot: Int, stack: ItemStack) extends MusePacket(player) {
|
||||
class MusePacketInventoryRefresh(player: EntityPlayer, slot: Int, stack: ItemStack) extends MusePacket {
|
||||
val packager = MusePacketInventoryRefresh
|
||||
|
||||
def write {
|
||||
|
@ -40,6 +40,6 @@ class MusePacketInventoryRefresh(player: Player, slot: Int, stack: ItemStack) ex
|
|||
override def handleClient(player: EntityClientPlayerMP) {
|
||||
val inventory: IInventory = player.inventory
|
||||
inventory.setInventorySlotContents(slot, stack)
|
||||
OptionCast[MuseGui](Minecraft.getMinecraft.currentScreen) map (s=>s.refresh())
|
||||
OptionCast[MuseGui](Minecraft.getMinecraft.currentScreen) map (s => s.refresh())
|
||||
}
|
||||
}
|
|
@ -1,26 +1,27 @@
|
|||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import java.io.DataInputStream
|
||||
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import net.machinemuse.powersuits.entity.EntityPlasmaBolt
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketPlasmaBolt extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val entityID = readInt(d)
|
||||
val size = readDouble(d)
|
||||
new MusePacketPlasmaBolt(p, entityID, size)
|
||||
}
|
||||
}
|
||||
|
||||
class MusePacketPlasmaBolt(player: Player, entityID: Int, size: Double) extends MusePacket(player) {
|
||||
class MusePacketPlasmaBolt(player: EntityPlayer, entityID: Int, size: Double) extends MusePacket {
|
||||
val packager = MusePacketPlasmaBolt
|
||||
|
||||
def write {
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import java.io.DataInputStream
|
||||
|
||||
import net.machinemuse.numina.network.{PacketSender, MusePackager, MusePacket}
|
||||
import net.machinemuse.powersuits.control.PlayerInputMap
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import cpw.mods.fml.common.network.PacketDispatcher
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -16,27 +12,28 @@ import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
|||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketPlayerUpdate extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val username = readString(d)
|
||||
val inputMap:PlayerInputMap = PlayerInputMap.getInputMapFor(username)
|
||||
val inputMap: PlayerInputMap = PlayerInputMap.getInputMapFor(username)
|
||||
inputMap.readFromStream(d)
|
||||
new MusePacketPlayerUpdate(p, inputMap)
|
||||
}
|
||||
}
|
||||
class MusePacketPlayerUpdate(player: Player, inputMap: PlayerInputMap) extends MusePacket(player) {
|
||||
|
||||
class MusePacketPlayerUpdate(player: EntityPlayer, inputMap: PlayerInputMap) extends MusePacket {
|
||||
val packager = MusePacketPlayerUpdate
|
||||
|
||||
def write {
|
||||
writeString(player.asInstanceOf[EntityPlayer].username)
|
||||
writeString(player.getCommandSenderName)
|
||||
inputMap.writeToStream(dataout)
|
||||
}
|
||||
|
||||
override def handleServer(player: EntityPlayerMP) {
|
||||
val updatePacket: MusePacketPlayerUpdate = new MusePacketPlayerUpdate(player.asInstanceOf[Player], inputMap)
|
||||
val updatePacket: MusePacketPlayerUpdate = new MusePacketPlayerUpdate(player, inputMap)
|
||||
player.motionX = inputMap.motionX
|
||||
player.motionY = inputMap.motionY
|
||||
player.motionZ = inputMap.motionZ
|
||||
PacketDispatcher.sendPacketToAllAround(player.posX, player.posY, player.posZ, 128, player.dimension, updatePacket.getPacket131)
|
||||
PacketSender.sendToAllAround(updatePacket, player, 128)
|
||||
}
|
||||
|
||||
}
|
|
@ -1,25 +1,25 @@
|
|||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import java.io.DataInputStream
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.powersuits.powermodule.{PowerModuleBase, PropertyModifierLinearAdditive, PropertyModifierFlatAdditive}
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP
|
||||
|
||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.numina.network.{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 {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
new MusePacketPropertyModifierConfig(p, d)
|
||||
}
|
||||
}
|
||||
|
||||
class MusePacketPropertyModifierConfig(player: Player, data: DataInputStream) extends MusePacket(player) {
|
||||
class MusePacketPropertyModifierConfig(player: EntityPlayer, data: DataInputStream) extends MusePacket {
|
||||
val packager = MusePacketPropertyModifierConfig
|
||||
|
||||
override def write {
|
||||
|
|
|
@ -3,22 +3,15 @@
|
|||
*/
|
||||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import cpw.mods.fml.common.network.PacketDispatcher
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.api.IPowerModule
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import java.io.DataInputStream
|
||||
import java.util.{HashSet, List}
|
||||
|
||||
import net.machinemuse.api.{IPowerModule, ModuleManager}
|
||||
import net.machinemuse.numina.network.{PacketSender, MusePackager, MusePacket}
|
||||
import net.machinemuse.powersuits.common.Config
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP, InventoryPlayer}
|
||||
import net.minecraft.item.ItemStack
|
||||
import java.io.DataInputStream
|
||||
import java.util.HashSet
|
||||
import java.util.List
|
||||
import java.util.Set
|
||||
import scala.Predef._
|
||||
import net.machinemuse.api.ModuleManager.{removeModule, itemHasModule}
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
|
||||
/**
|
||||
* Packet for requesting to purchase an upgrade. Player-to-server. Server
|
||||
|
@ -29,7 +22,7 @@ import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
|||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketSalvageModuleRequest extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
|
||||
val itemSlot = readInt(d)
|
||||
val moduleName = readString(d)
|
||||
|
@ -37,7 +30,7 @@ object MusePacketSalvageModuleRequest extends MusePackager {
|
|||
}
|
||||
}
|
||||
|
||||
class MusePacketSalvageModuleRequest(player: Player, itemSlot: Int, moduleName: String) extends MusePacket(player) {
|
||||
class MusePacketSalvageModuleRequest(player: EntityPlayer, itemSlot: Int, moduleName: String) extends MusePacket {
|
||||
val packager = MusePacketSalvageModuleRequest
|
||||
|
||||
def write {
|
||||
|
@ -52,17 +45,16 @@ class MusePacketSalvageModuleRequest(player: Player, itemSlot: Int, moduleName:
|
|||
val moduleType: IPowerModule = ModuleManager.getModule(moduleName)
|
||||
val refund: List[ItemStack] = moduleType.getInstallCost
|
||||
if (ModuleManager.itemHasModule(stack, moduleName)) {
|
||||
val slots: Set[Integer] = new HashSet[Integer]
|
||||
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)
|
||||
import scala.collection.JavaConversions._
|
||||
for (slotiter <- slots) {
|
||||
val reply: MusePacket = new MusePacketInventoryRefresh(player, slotiter, inventory.getStackInSlot(slotiter))
|
||||
PacketDispatcher.sendPacketToPlayer(reply.getPacket131, player)
|
||||
PacketSender.sendTo(reply, playerEntity)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import java.io.DataInputStream
|
||||
import scala.Predef._
|
||||
|
||||
import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
||||
import net.machinemuse.utils.MuseItemUtils
|
||||
import net.minecraft.entity.player.{EntityPlayer, EntityPlayerMP}
|
||||
|
||||
|
||||
/**
|
||||
|
@ -13,7 +12,7 @@ import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
|||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketToggleRequest extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
|
||||
val module = readString(d)
|
||||
val value = readBoolean(d)
|
||||
|
@ -21,7 +20,7 @@ object MusePacketToggleRequest extends MusePackager {
|
|||
}
|
||||
}
|
||||
|
||||
class MusePacketToggleRequest(player: Player, module: String, active: Boolean) extends MusePacket(player) {
|
||||
class MusePacketToggleRequest(player: EntityPlayer, module: String, active: Boolean) extends MusePacket {
|
||||
val packager = MusePacketToggleRequest
|
||||
|
||||
def write() {
|
||||
|
|
|
@ -3,16 +3,14 @@
|
|||
*/
|
||||
package net.machinemuse.powersuits.network.packets
|
||||
|
||||
import cpw.mods.fml.common.network.Player
|
||||
import net.machinemuse.utils.{MuseItemUtils}
|
||||
import net.minecraft.entity.player.EntityPlayerMP
|
||||
import net.minecraft.nbt.NBTTagCompound
|
||||
import java.io.DataInputStream
|
||||
import scala.Predef._
|
||||
import net.machinemuse.api.ModuleManager.tagHasModule
|
||||
|
||||
import net.machinemuse.api.ModuleManager
|
||||
import net.machinemuse.numina.general.MuseMathUtils
|
||||
import net.machinemuse.numina.network.{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
|
||||
|
@ -23,7 +21,7 @@ import net.machinemuse.numina.network.{MusePackager, MusePacket}
|
|||
* Created: 12:28 PM, 5/6/13
|
||||
*/
|
||||
object MusePacketTweakRequest extends MusePackager {
|
||||
def read(d: DataInputStream, p: Player) = {
|
||||
def read(d: DataInputStream, p: EntityPlayer) = {
|
||||
val itemSlot = readInt(d)
|
||||
val moduleName = readString(d)
|
||||
val tweakName = readString(d)
|
||||
|
@ -32,7 +30,7 @@ object MusePacketTweakRequest extends MusePackager {
|
|||
}
|
||||
}
|
||||
|
||||
class MusePacketTweakRequest(player: Player, itemSlot: Int, moduleName: String, tweakName: String, tweakValue: Double) extends MusePacket(player) {
|
||||
class MusePacketTweakRequest(player: EntityPlayer, itemSlot: Int, moduleName: String, tweakName: String, tweakValue: Double) extends MusePacket {
|
||||
val packager = MusePacketTweakRequest
|
||||
|
||||
def write {
|
||||
|
|
|
@ -7,11 +7,11 @@ import net.machinemuse.general.gui.MuseIcon;
|
|||
import net.machinemuse.numina.render.MuseTextureUtils;
|
||||
import net.machinemuse.powersuits.common.Config;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
|
@ -22,7 +22,7 @@ public abstract class PowerModuleBase implements IPowerModule {
|
|||
protected static Map<String, String> units = new HashMap<String, String>();
|
||||
protected NBTTagCompound defaultTag;
|
||||
protected boolean isAllowed;
|
||||
protected Icon icon;
|
||||
protected IIcon icon;
|
||||
|
||||
public PowerModuleBase(String name, List<IModularItem> validItems) {
|
||||
this.validItems = validItems;
|
||||
|
@ -43,12 +43,12 @@ public abstract class PowerModuleBase implements IPowerModule {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Icon getIcon(ItemStack item) {
|
||||
public IIcon getIcon(ItemStack item) {
|
||||
return icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerIcon(IconRegister register) {
|
||||
public void registerIcon(IIconRegister register) {
|
||||
if (getTextureFile() != null) {
|
||||
this.icon = register.registerIcon(MuseIcon.ICON_PREFIX + getTextureFile());
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ class BinocularsModule(list: java.util.List[IModularItem]) extends PowerModuleBa
|
|||
|
||||
override def onPlayerTickActive(player: EntityPlayer, item: ItemStack) {
|
||||
if (FMLCommonHandler.instance().getEffectiveSide.isClient) {
|
||||
val fov = KeybindKeyHandler.zoom.pressed match {
|
||||
val fov = KeybindKeyHandler.zoom.getIsKeyPressed match {
|
||||
case true => ModuleManager.computeModularProperty(item, FOV_MULTIPLIER).toFloat
|
||||
case false => 0.1f
|
||||
}
|
||||
|
|
|
@ -4,8 +4,6 @@ import net.machinemuse.api.IModularItem;
|
|||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
|
||||
import net.machinemuse.api.moduletrigger.IToggleableModule;
|
||||
import net.machinemuse.numina.sound.Musique;
|
||||
import net.machinemuse.general.sound.SoundLoader;
|
||||
import net.machinemuse.powersuits.item.ItemComponent;
|
||||
import net.machinemuse.powersuits.powermodule.PowerModuleBase;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
|
@ -52,7 +50,7 @@ public class WaterElectrolyzerModule extends PowerModuleBase implements IPlayerT
|
|||
double energy = ElectricItemUtils.getPlayerEnergy(player);
|
||||
double energyConsumption = ModuleManager.computeModularProperty(item, WATERBREATHING_ENERGY_CONSUMPTION);
|
||||
if (energy > energyConsumption && player.getAir() < 10) {
|
||||
Musique.playClientSound(SoundLoader.SOUND_ELECTROLYZER, 1.0f);
|
||||
// Musique.playClientSound(SoundLoader.SOUND_ELECTROLYZER, 1.0f);
|
||||
ElectricItemUtils.drainPlayerEnergy(player, energyConsumption);
|
||||
player.setAir(300);
|
||||
}
|
||||
|
|
|
@ -72,17 +72,17 @@ public class JetPackModule extends PowerModuleBase implements IToggleableModule,
|
|||
thrust *= MusePlayerUtils.getWeightPenaltyRatio(MuseItemUtils.getPlayerWeight(player), 25000);
|
||||
if (hasFlightControl && thrust > 0) {
|
||||
thrust = MusePlayerUtils.thrust(player, thrust, true);
|
||||
Musique.playerSound(player, SoundLoader.SOUND_JETPACK, (float) (thrust*6.25), 1.0f, true);
|
||||
// Musique.playerSound(player, SoundLoader.SOUND_JETPACK, (float) (thrust*6.25), 1.0f, true);
|
||||
ElectricItemUtils.drainPlayerEnergy(player, thrust * jetEnergy);
|
||||
} else if (jumpkey && player.motionY < 0.5) {
|
||||
thrust = MusePlayerUtils.thrust(player, thrust, false);
|
||||
Musique.playerSound(player, SoundLoader.SOUND_JETPACK,(float) (thrust*6.25), 1.0f, true);
|
||||
// Musique.playerSound(player, SoundLoader.SOUND_JETPACK,(float) (thrust*6.25), 1.0f, true);
|
||||
ElectricItemUtils.drainPlayerEnergy(player, thrust * jetEnergy);
|
||||
} else {
|
||||
Musique.stopPlayerSound(player, SoundLoader.SOUND_JETPACK);
|
||||
// Musique.stopPlayerSound(player, SoundLoader.SOUND_JETPACK);
|
||||
}
|
||||
} else {
|
||||
Musique.stopPlayerSound(player, SoundLoader.SOUND_JETPACK);
|
||||
// Musique.stopPlayerSound(player, SoundLoader.SOUND_JETPACK);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,11 +73,11 @@ class SprintAssistModule(validItems: List[IModularItem]) extends PowerModuleBase
|
|||
}
|
||||
|
||||
def setMovementModifier(item: ItemStack, multiplier: Double) {
|
||||
val modifiers: NBTTagList = item.getTagCompound.getTagList("AttributeModifiers")
|
||||
val modifiers: NBTTagList = item.getTagCompound.getTagList("AttributeModifiers", 10.asInstanceOf[Byte]) // Type 10 for tag compound
|
||||
item.getTagCompound.setTag("AttributeModifiers", modifiers)
|
||||
val sprintModifiers =
|
||||
for (i <- 0 until modifiers.tagCount()) yield {
|
||||
val tag = modifiers.tagAt(i).asInstanceOf[NBTTagCompound]
|
||||
val tag = modifiers.getCompoundTagAt(i).asInstanceOf[NBTTagCompound]
|
||||
if (new AttributeModifier(tag).name == "Sprint Assist") {
|
||||
Some(tag)
|
||||
} else None
|
||||
|
@ -93,9 +93,9 @@ class SprintAssistModule(validItems: List[IModularItem]) extends PowerModuleBase
|
|||
def onPlayerTickInactive(player: EntityPlayer, item: ItemStack) {
|
||||
if (item != null) {
|
||||
|
||||
val modifiers: NBTTagList = item.getTagCompound.getTagList("AttributeModifiers")
|
||||
val modifiers: NBTTagList = item.getTagCompound.getTagList("AttributeModifiers", 10.asInstanceOf[Byte])
|
||||
for (i <- 0 until modifiers.tagCount()) yield {
|
||||
val tag = modifiers.tagAt(i).asInstanceOf[NBTTagCompound]
|
||||
val tag = modifiers.getCompoundTagAt(i)
|
||||
if (new AttributeModifier(tag).name == "Sprint Assist") {
|
||||
Some(tag)
|
||||
} else None
|
||||
|
|
|
@ -13,7 +13,7 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -113,7 +113,7 @@ public class HoeModule extends PowerModuleBase implements IPowerModule, IRightCl
|
|||
}
|
||||
|
||||
@Override
|
||||
public Icon getIcon(ItemStack item) {
|
||||
return Item.hoeGold.getIconFromDamage(0);
|
||||
public IIcon getIcon(ItemStack item) {
|
||||
return ((Item) Item.itemRegistry.getObject("golden_hoe")).getIconFromDamage(0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,30 +1,17 @@
|
|||
package net.machinemuse.powersuits.powermodule.tool;
|
||||
|
||||
import cofh.api.tileentity.IReconfigurableFacing;
|
||||
import cpw.mods.fml.client.FMLClientHandler;
|
||||
import cpw.mods.fml.common.FMLCommonHandler;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import ic2.api.energy.tile.IEnergySink;
|
||||
import ic2.api.energy.tile.IEnergySource;
|
||||
import ic2.api.tile.IWrenchable;
|
||||
import mods.mffs.api.IMFFS_Wrench;
|
||||
import net.machinemuse.api.IModularItem;
|
||||
import net.machinemuse.api.moduletrigger.IRightClickModule;
|
||||
import net.machinemuse.powersuits.common.ModCompatability;
|
||||
import net.machinemuse.powersuits.item.ItemComponent;
|
||||
import net.machinemuse.powersuits.powermodule.PowerModuleBase;
|
||||
import net.machinemuse.utils.MuseBlockUtils;
|
||||
import net.machinemuse.utils.MuseCommonStrings;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -81,77 +68,77 @@ public class OmniWrenchModule extends PowerModuleBase implements IRightClickModu
|
|||
|
||||
@Override
|
||||
public boolean onItemUseFirst(ItemStack itemStack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) {
|
||||
int bId = world.getBlockId(x, y, z);
|
||||
int bMeta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
if (MuseBlockUtils.canRotate(bId)) {
|
||||
if (player.isSneaking()) {
|
||||
world.setBlockMetadataWithNotify(x, y, z, MuseBlockUtils.rotateVanillaBlockAlt(world, bId, bMeta, x, y, z), 3);
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
String soundName = Block.blocksList[bId].stepSound.getPlaceSound();
|
||||
FMLClientHandler.instance().getClient().sndManager.playSoundFX(soundName, 1.0F, 0.6F);
|
||||
}
|
||||
} else {
|
||||
world.setBlockMetadataWithNotify(x, y, z, MuseBlockUtils.rotateVanillaBlock(world, bId, bMeta, x, y, z), 3);
|
||||
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
String soundName = Block.blocksList[bId].stepSound.getPlaceSound();
|
||||
FMLClientHandler.instance().getClient().sndManager.playSoundFX(soundName, 1.0F, 0.8F);
|
||||
}
|
||||
}
|
||||
return !world.isRemote;
|
||||
}
|
||||
if ((Block.blocksList[bId] != null) && Block.blocksList[bId].rotateBlock(world, x, y, z, ForgeDirection.getOrientation(side))) {
|
||||
return !world.isRemote;
|
||||
}
|
||||
|
||||
TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||
if ((tile instanceof IWrenchable)) {
|
||||
IWrenchable wrenchTile = (IWrenchable) tile;
|
||||
|
||||
if (player.isSneaking()) {
|
||||
side = OmniWrenchModule.SIDE_OPPOSITE[side];
|
||||
}
|
||||
|
||||
if (((tile instanceof IMFFS_Wrench)) && (!((IMFFS_Wrench) tile).wrenchCanManipulate(player, side))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((side == wrenchTile.getFacing()) && (wrenchTile.wrenchCanRemove(player))) {
|
||||
ItemStack dropBlock = wrenchTile.getWrenchDrop(player);
|
||||
|
||||
if (dropBlock != null) {
|
||||
world.setBlock(x, y, z, 0);
|
||||
if (!world.isRemote) {
|
||||
float f = 0.7F;
|
||||
double x2 = world.rand.nextFloat() * f + (1.0F - f) * 0.5D;
|
||||
double y2 = world.rand.nextFloat() * f + (1.0F - f) * 0.5D;
|
||||
double z2 = world.rand.nextFloat() * f + (1.0F - f) * 0.5D;
|
||||
EntityItem entity = new EntityItem(world, x + x2, y + y2, z + z2, dropBlock);
|
||||
entity.delayBeforeCanPickup = 10;
|
||||
world.spawnEntityInWorld(entity);
|
||||
}
|
||||
}
|
||||
|
||||
return !world.isRemote;
|
||||
}
|
||||
|
||||
if (!world.isRemote) {
|
||||
if ((side == 0) || (side == 1)) {
|
||||
if (((wrenchTile instanceof IEnergySource)) && ((wrenchTile instanceof IEnergySink))) {
|
||||
wrenchTile.setFacing((short) side);
|
||||
}
|
||||
} else {
|
||||
wrenchTile.setFacing((short) side);
|
||||
}
|
||||
}
|
||||
return !world.isRemote;
|
||||
}
|
||||
if ((tile instanceof IReconfigurableFacing)) {
|
||||
if ((!world.isRemote) && (!player.isSneaking())) {
|
||||
return ((IReconfigurableFacing) tile).rotateBlock();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// int bId = world.getBlockId(x, y, z);
|
||||
// int bMeta = world.getBlockMetadata(x, y, z);
|
||||
//
|
||||
// if (MuseBlockUtils.canRotate(bId)) {
|
||||
// if (player.isSneaking()) {
|
||||
// world.setBlockMetadataWithNotify(x, y, z, MuseBlockUtils.rotateVanillaBlockAlt(world, bId, bMeta, x, y, z), 3);
|
||||
// if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
// String soundName = Block.blocksList[bId].stepSound.getPlaceSound();
|
||||
// FMLClientHandler.instance().getClient().sndManager.playSoundFX(soundName, 1.0F, 0.6F);
|
||||
// }
|
||||
// } else {
|
||||
// world.setBlockMetadataWithNotify(x, y, z, MuseBlockUtils.rotateVanillaBlock(world, bId, bMeta, x, y, z), 3);
|
||||
// if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
|
||||
// String soundName = Block.blocksList[bId].stepSound.getPlaceSound();
|
||||
// FMLClientHandler.instance().getClient().sndManager.playSoundFX(soundName, 1.0F, 0.8F);
|
||||
// }
|
||||
// }
|
||||
// return !world.isRemote;
|
||||
// }
|
||||
// if ((Block.blocksList[bId] != null) && Block.blocksList[bId].rotateBlock(world, x, y, z, ForgeDirection.getOrientation(side))) {
|
||||
// return !world.isRemote;
|
||||
// }
|
||||
//
|
||||
// TileEntity tile = world.getBlockTileEntity(x, y, z);
|
||||
// if ((tile instanceof IWrenchable)) {
|
||||
// IWrenchable wrenchTile = (IWrenchable) tile;
|
||||
//
|
||||
// if (player.isSneaking()) {
|
||||
// side = OmniWrenchModule.SIDE_OPPOSITE[side];
|
||||
// }
|
||||
//
|
||||
// if (((tile instanceof IMFFS_Wrench)) && (!((IMFFS_Wrench) tile).wrenchCanManipulate(player, side))) {
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
// if ((side == wrenchTile.getFacing()) && (wrenchTile.wrenchCanRemove(player))) {
|
||||
// ItemStack dropBlock = wrenchTile.getWrenchDrop(player);
|
||||
//
|
||||
// if (dropBlock != null) {
|
||||
// world.setBlock(x, y, z, 0);
|
||||
// if (!world.isRemote) {
|
||||
// float f = 0.7F;
|
||||
// double x2 = world.rand.nextFloat() * f + (1.0F - f) * 0.5D;
|
||||
// double y2 = world.rand.nextFloat() * f + (1.0F - f) * 0.5D;
|
||||
// double z2 = world.rand.nextFloat() * f + (1.0F - f) * 0.5D;
|
||||
// EntityItem entity = new EntityItem(world, x + x2, y + y2, z + z2, dropBlock);
|
||||
// entity.delayBeforeCanPickup = 10;
|
||||
// world.spawnEntityInWorld(entity);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// return !world.isRemote;
|
||||
// }
|
||||
//
|
||||
// if (!world.isRemote) {
|
||||
// if ((side == 0) || (side == 1)) {
|
||||
// if (((wrenchTile instanceof IEnergySource)) && ((wrenchTile instanceof IEnergySink))) {
|
||||
// wrenchTile.setFacing((short) side);
|
||||
// }
|
||||
// } else {
|
||||
// wrenchTile.setFacing((short) side);
|
||||
// }
|
||||
// }
|
||||
// return !world.isRemote;
|
||||
// }
|
||||
// if ((tile instanceof IReconfigurableFacing)) {
|
||||
// if ((!world.isRemote) && (!player.isSneaking())) {
|
||||
// return ((IReconfigurableFacing) tile).rotateBlock();
|
||||
// }
|
||||
// return false;
|
||||
// }
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package net.machinemuse.powersuits.powermodule.tool
|
||||
|
||||
import net.machinemuse.utils.{MuseCommonStrings, MuseItemUtils}
|
||||
import net.machinemuse.powersuits.item.ItemComponent
|
||||
import net.machinemuse.powersuits.powermodule.PowerModuleBase
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.world.World
|
||||
import net.machinemuse.powersuits.common.ModularPowersuits
|
||||
import net.minecraftforge.common.ForgeDirection
|
||||
import net.machinemuse.api.IModularItem
|
||||
import net.machinemuse.api.moduletrigger.IRightClickModule
|
||||
import net.machinemuse.powersuits.common.ModularPowersuits
|
||||
import net.machinemuse.powersuits.item.ItemComponent
|
||||
import net.machinemuse.powersuits.powermodule.PowerModuleBase
|
||||
import net.machinemuse.utils.{MuseCommonStrings, MuseItemUtils}
|
||||
import net.minecraft.entity.player.EntityPlayer
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.util.StatCollector
|
||||
import net.minecraft.world.World
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
|
||||
/**
|
||||
* Author: MachineMuse (Claire Semple)
|
||||
|
@ -36,16 +36,16 @@ class RedstoneLaser(list: java.util.List[IModularItem]) extends PowerModuleBase(
|
|||
}
|
||||
|
||||
def onItemUseFirst(itemStack: ItemStack, player: EntityPlayer, world: World, x: Int, y: Int, z: Int, sideIndex: Int, hitX: Float, hitY: Float, hitZ: Float): Boolean = {
|
||||
val side: ForgeDirection = ForgeDirection.getOrientation(sideIndex)
|
||||
val xo = x + side.offsetX
|
||||
val yo = y + side.offsetY
|
||||
val zo = z + side.offsetZ
|
||||
val redlaserid = 0
|
||||
world.getBlockId(xo, yo, zo) match {
|
||||
case 0 => world.setBlock(xo, yo, zo, redlaserid)
|
||||
case `redlaserid` => world.setBlockMetadataWithNotify(xo,yo,zo,redlaserid,world.getBlockMetadata(xo,yo,zo)+1)
|
||||
case _ =>
|
||||
}
|
||||
// val side: ForgeDirection = ForgeDirection.getOrientation(sideIndex)
|
||||
// val xo = x + side.offsetX
|
||||
// val yo = y + side.offsetY
|
||||
// val zo = z + side.offsetZ
|
||||
// val redlaserid = RedstoneLaser
|
||||
// world.getBlock(xo, yo, zo) match {
|
||||
// case 0 => world.setBlock(xo, yo, zo, redlaserid)
|
||||
// case `redlaserid` => world.setBlockMetadataWithNotify(xo, yo, zo, redlaserid, world.getBlockMetadata(xo, yo, zo) + 1)
|
||||
// case _ =>
|
||||
// }
|
||||
true
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.stats.StatList;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraft.world.World;
|
||||
|
@ -159,7 +159,7 @@ public class ShearsModule extends PowerModuleBase implements IBlockBreakingModul
|
|||
}
|
||||
|
||||
@Override
|
||||
public Icon getIcon(ItemStack item) {
|
||||
public IIcon getIcon(ItemStack item) {
|
||||
return shears.getIconIndex();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
package net.machinemuse.powersuits.powermodule.weapon;
|
||||
|
||||
import cpw.mods.fml.common.network.PacketDispatcher;
|
||||
import cpw.mods.fml.common.network.Player;
|
||||
import net.machinemuse.api.IModularItem;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.api.moduletrigger.IRightClickModule;
|
||||
import net.machinemuse.numina.general.MuseMathUtils;
|
||||
import net.machinemuse.numina.network.PacketSender;
|
||||
import net.machinemuse.powersuits.entity.EntityPlasmaBolt;
|
||||
import net.machinemuse.powersuits.item.ItemComponent;
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketPlasmaBolt;
|
||||
|
@ -97,8 +96,8 @@ public class PlasmaCannonModule extends PowerModuleBase implements IRightClickMo
|
|||
|
||||
EntityPlasmaBolt plasmaBolt = new EntityPlasmaBolt(world, player, explosiveness, damagingness, chargeTicks);
|
||||
world.spawnEntityInWorld(plasmaBolt);
|
||||
MusePacketPlasmaBolt packet = new MusePacketPlasmaBolt((Player) player, plasmaBolt.entityId, plasmaBolt.size);
|
||||
PacketDispatcher.sendPacketToAllPlayers(packet.getPacket131());
|
||||
MusePacketPlasmaBolt packet = new MusePacketPlasmaBolt(player, plasmaBolt.getEntityId(), plasmaBolt.size);
|
||||
PacketSender.sendToAll(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import cpw.mods.fml.common.TickType;
|
|||
import cpw.mods.fml.common.network.Player;
|
||||
import net.machinemuse.general.gui.clickable.ClickableKeybinding;
|
||||
import net.machinemuse.numina.network.MusePacket;
|
||||
import net.machinemuse.numina.network.PacketSender;
|
||||
import net.machinemuse.powersuits.control.KeybindManager;
|
||||
import net.machinemuse.powersuits.control.PlayerInputMap;
|
||||
import net.machinemuse.powersuits.network.packets.MusePacketPlayerUpdate;
|
||||
|
@ -44,8 +45,8 @@ public class ClientTickHandler implements ITickHandler {
|
|||
|
||||
if (inputmap.hasChanged()) {
|
||||
inputmap.refresh();
|
||||
MusePacket inputPacket = new MusePacketPlayerUpdate((Player) player, inputmap);
|
||||
player.sendQueue.addToSendQueue(inputPacket.getPacket131());
|
||||
MusePacket inputPacket = new MusePacketPlayerUpdate(player, inputmap);
|
||||
PacketSender.sendToServer(inputPacket.getPacket131());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,138 +0,0 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package net.machinemuse.powersuits.tick;
|
||||
|
||||
import cpw.mods.fml.common.ITickHandler;
|
||||
import cpw.mods.fml.common.TickType;
|
||||
import net.machinemuse.api.ModuleManager;
|
||||
import net.machinemuse.api.moduletrigger.IPlayerTickModule;
|
||||
import net.machinemuse.general.sound.SoundLoader;
|
||||
import net.machinemuse.numina.general.MuseLogger;
|
||||
import net.machinemuse.numina.general.MuseMathUtils;
|
||||
import net.machinemuse.numina.sound.Musique;
|
||||
import net.machinemuse.powersuits.event.MovementManager;
|
||||
import net.machinemuse.utils.MuseHeatUtils;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.machinemuse.utils.MusePlayerUtils;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Tick handler for Player update step. tickStart() is queued before the entity
|
||||
* is updated, and tickEnd() is queued afterwards.
|
||||
* <p/>
|
||||
* Player update step: "Called to update the entity's position/logic."
|
||||
* <p/>
|
||||
* tickData: EntityPlayer of the entity being updated.
|
||||
*
|
||||
* @author MachineMuse
|
||||
*/
|
||||
public class PlayerTickHandler implements ITickHandler {
|
||||
|
||||
@Override
|
||||
public void tickStart(EnumSet<TickType> type, Object... tickData) {
|
||||
EntityPlayer player = MusePlayerUtils.toPlayer(tickData[0]);
|
||||
handle(player);
|
||||
|
||||
}
|
||||
|
||||
// int gliderTicker = 0, swimTicker = 0;
|
||||
|
||||
public void handle(EntityPlayer player) {
|
||||
List<ItemStack> modularItemsEquipped = MuseItemUtils.modularItemsEquipped(player);
|
||||
|
||||
double totalWeight = MuseItemUtils.getPlayerWeight(player);
|
||||
double weightCapacity = 25000;
|
||||
|
||||
// double totalEnergyDrain = 0;
|
||||
|
||||
for (ItemStack stack : modularItemsEquipped) {
|
||||
if (stack.getTagCompound().hasKey("ench")) {
|
||||
stack.getTagCompound().removeTag("ench");
|
||||
}
|
||||
}
|
||||
|
||||
boolean foundItemWithModule;
|
||||
for (IPlayerTickModule module : ModuleManager.getPlayerTickModules()) {
|
||||
foundItemWithModule = false;
|
||||
for (ItemStack itemStack : modularItemsEquipped) {
|
||||
if (module.isValidForItem(itemStack)) {
|
||||
if (ModuleManager.itemHasActiveModule(itemStack, module.getDataName())) {
|
||||
module.onPlayerTickActive(player, itemStack);
|
||||
foundItemWithModule = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!foundItemWithModule) {
|
||||
for (ItemStack itemStack : modularItemsEquipped) {
|
||||
module.onPlayerTickInactive(player, itemStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean foundItem = modularItemsEquipped.size() > 0;
|
||||
if (foundItem) {
|
||||
player.fallDistance = (float) MovementManager.computeFallHeightFromVelocity(MuseMathUtils.clampDouble(player.motionY, -1000.0, 0.0));
|
||||
|
||||
// Weight movement penalty
|
||||
if (totalWeight > weightCapacity) {
|
||||
player.motionX *= weightCapacity / totalWeight;
|
||||
player.motionZ *= weightCapacity / totalWeight;
|
||||
}
|
||||
MuseHeatUtils.coolPlayer(player, MusePlayerUtils.getPlayerCoolingBasedOnMaterial(player));
|
||||
double maxHeat = MuseHeatUtils.getMaxHeat(player);
|
||||
double currHeat = MuseHeatUtils.getPlayerHeat(player);
|
||||
if (currHeat > maxHeat) {
|
||||
player.attackEntityFrom(MuseHeatUtils.overheatDamage, (int) Math.sqrt(currHeat - maxHeat) / 4);
|
||||
player.setFire(1);
|
||||
} else {
|
||||
player.extinguish();
|
||||
}
|
||||
double velsq2 = MuseMathUtils.sumsq(player.motionX, player.motionY, player.motionZ) - 0.5;
|
||||
if (player.isAirBorne && velsq2 > 0) {
|
||||
Musique.playerSound(player, SoundLoader.SOUND_GLIDER, (float) (velsq2 / 3), 1.0f, true);
|
||||
} else {
|
||||
Musique.stopPlayerSound(player, SoundLoader.SOUND_GLIDER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tickEnd(EnumSet<TickType> type, Object... tickData) {
|
||||
EntityPlayer player = MusePlayerUtils.toPlayer(tickData[0]);
|
||||
List<ItemStack> stacks = MuseItemUtils.getModularItemsInInventory(player.inventory);
|
||||
|
||||
}
|
||||
|
||||
public static World toWorld(Object data) {
|
||||
World world = null;
|
||||
try {
|
||||
world = (World) data;
|
||||
} catch (ClassCastException e) {
|
||||
MuseLogger.logError("MMMPS: Player tick handler received invalid World object");
|
||||
e.printStackTrace();
|
||||
}
|
||||
return world;
|
||||
}
|
||||
|
||||
/**
|
||||
* Type of tick handled by this handler
|
||||
*/
|
||||
@Override
|
||||
public EnumSet<TickType> ticks() {
|
||||
return EnumSet.of(TickType.PLAYER);
|
||||
}
|
||||
|
||||
/**
|
||||
* Profiling label for this handler
|
||||
*/
|
||||
@Override
|
||||
public String getLabel() {
|
||||
return "MMMPS: Player Tick";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
package net.machinemuse.powersuits.tick;
|
||||
|
||||
import cpw.mods.fml.common.ITickHandler;
|
||||
import cpw.mods.fml.common.TickType;
|
||||
import net.machinemuse.general.gui.EnergyMeter;
|
||||
import net.machinemuse.general.gui.HeatMeter;
|
||||
import net.machinemuse.powersuits.block.BlockTinkerTable;
|
||||
import net.machinemuse.powersuits.common.Config;
|
||||
import net.machinemuse.utils.ElectricItemUtils;
|
||||
import net.machinemuse.utils.MuseHeatUtils;
|
||||
import net.machinemuse.utils.MuseItemUtils;
|
||||
import net.machinemuse.utils.MuseStringUtils;
|
||||
import net.machinemuse.utils.render.GlowBuffer;
|
||||
import net.machinemuse.utils.render.MuseRenderer;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.entity.EntityClientPlayerMP;
|
||||
import net.minecraft.client.gui.ScaledResolution;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
/**
|
||||
* Called before and after the 3D world is rendered (tickEnd is called BEFORE
|
||||
* the 2D gui is drawn... I think?).
|
||||
*
|
||||
* @author MachineMuse
|
||||
*/
|
||||
public class RenderTickHandler implements ITickHandler {
|
||||
protected static HeatMeter heat;
|
||||
protected static HeatMeter energy;
|
||||
private int lightningCounter = 0;
|
||||
|
||||
@Override
|
||||
public void tickStart(EnumSet<TickType> type, Object... tickData) {
|
||||
if (Config.canUseShaders) {
|
||||
GlowBuffer.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tickEnd(EnumSet<TickType> type, Object... tickData) {
|
||||
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
|
||||
if (player != null && MuseItemUtils.modularItemsEquipped(player).size() > 0 && Minecraft.getMinecraft().currentScreen == null) {
|
||||
Minecraft mc = Minecraft.getMinecraft();
|
||||
ScaledResolution screen = new ScaledResolution(mc.gameSettings, mc.displayWidth, mc.displayHeight);
|
||||
drawMeters(player, screen);
|
||||
// drawGogglesHUD(player, mc, ((Float) tickData[0]));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void drawMeters(EntityPlayer player, ScaledResolution screen) {
|
||||
|
||||
double currEnergy = ElectricItemUtils.getPlayerEnergy(player);
|
||||
double maxEnergy = ElectricItemUtils.getMaxEnergy(player);
|
||||
double currHeat = MuseHeatUtils.getPlayerHeat(player);
|
||||
double maxHeat = MuseHeatUtils.getMaxHeat(player);
|
||||
if (maxEnergy > 0 && BlockTinkerTable.energyIcon != null) {
|
||||
String currStr = MuseStringUtils.formatNumberShort(currEnergy);
|
||||
String maxStr = MuseStringUtils.formatNumberShort(maxEnergy);
|
||||
String currHeatStr = MuseStringUtils.formatNumberShort(currHeat);
|
||||
String maxHeatStr = MuseStringUtils.formatNumberShort(maxHeat);
|
||||
if (Config.useGraphicalMeters()) {
|
||||
if (energy == null) {
|
||||
energy = new EnergyMeter();
|
||||
heat = new HeatMeter();
|
||||
}
|
||||
double left = screen.getScaledWidth() - 20;
|
||||
double top = screen.getScaledHeight() / 2.0 - 16;
|
||||
energy.draw(left, top, currEnergy / maxEnergy);
|
||||
heat.draw(left + 8, top, currHeat / maxHeat);
|
||||
MuseRenderer.drawRightAlignedString(currStr, left - 2, top + 10);
|
||||
MuseRenderer.drawRightAlignedString(currHeatStr, left - 2, top + 20);
|
||||
} else {
|
||||
MuseRenderer.drawString(currStr + '/' + maxStr + " \u1D60", 1, 1);
|
||||
MuseRenderer.drawString(currHeatStr + '/' + maxHeatStr + " C", 1, 10);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// private void drawGogglesHUD(EntityPlayer player, Minecraft mc, float partialTickTime) {
|
||||
//
|
||||
// if (ModCompatability.isThaumCraftLoaded() && ModCompatability.enableThaumGogglesModule() && player.getCurrentArmor(3) != null && player.getCurrentArmor(3).getItem() instanceof IModularItem && ModuleManager.itemHasActiveModule(player.getCurrentArmor(3), "Aurameter")) {
|
||||
// ThaumRenderEventHandler.renderGogglesHUD(partialTickTime, player, mc.theWorld.getWorldTime());
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
@Override
|
||||
public EnumSet<TickType> ticks() {
|
||||
return EnumSet.of(TickType.RENDER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLabel() {
|
||||
return "MMMPS: Render Tick";
|
||||
}
|
||||
|
||||
}
|
|
@ -1,105 +0,0 @@
|
|||
package net.machinemuse.powersuits.tick;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import cpw.mods.fml.common.ITickHandler;
|
||||
import cpw.mods.fml.common.TickType;
|
||||
|
||||
/**
|
||||
* World tick handler for the mod. This is where you put code that should be
|
||||
* executed once every world tick. ~Not yet used~
|
||||
*
|
||||
* @author MachineMuse
|
||||
*
|
||||
*/
|
||||
public class WorldTickHandler implements ITickHandler {
|
||||
/**
|
||||
* Called at the "start" phase of a tick
|
||||
*
|
||||
* Multiple tick types may fire simultaneously- you will only be called once
|
||||
* with all the firing ticks
|
||||
*/
|
||||
@Override
|
||||
public void tickStart(EnumSet<TickType> type, Object... tickData) {
|
||||
World world;
|
||||
EntityPlayer player;
|
||||
// if (type.contains(TickType.WORLD)) {
|
||||
// world = (World) tickData[0];
|
||||
// }
|
||||
// TODO: Find a better way to handle this^
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Called at the "end" phase of a tick
|
||||
*
|
||||
* Multiple ticks may fire simultaneously- you will only be called once with
|
||||
* all the firing ticks
|
||||
*/
|
||||
@Override
|
||||
public void tickEnd(EnumSet<TickType> type, Object... tickData) {
|
||||
// TODO Auto-generated method stub
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of ticks this tick handler is interested in receiving at
|
||||
* the minute
|
||||
*/
|
||||
@Override
|
||||
public EnumSet<TickType> ticks() {
|
||||
return EnumSet.of(
|
||||
TickType.WORLD,
|
||||
TickType.PLAYER);
|
||||
// return EnumSet.of(TickType.WORLD);
|
||||
}
|
||||
|
||||
/**
|
||||
* A profiling label for this tick handler
|
||||
*/
|
||||
@Override
|
||||
public String getLabel() {
|
||||
return "MMMPS: World Tick";
|
||||
}
|
||||
|
||||
/**
|
||||
* Tick types:
|
||||
*
|
||||
* WORLD - server and client side - Fired during the world evaluation loop
|
||||
*
|
||||
* arg 0 : world object of the world that is ticking
|
||||
*
|
||||
*
|
||||
* RENDER - client side Fired during the render processing phase
|
||||
*
|
||||
* arg 0 : float "partial render time"
|
||||
*
|
||||
* GUI - client side Fired during the render processing phase if a GUI is
|
||||
* open
|
||||
*
|
||||
* arg 0 : float "partial render time"
|
||||
*
|
||||
* arg 1 : the open gui or null if no gui is open
|
||||
*
|
||||
*
|
||||
* CLIENTGUI - client side - Fired during the client evaluation loop arg 0 :
|
||||
* The open gui or null if no gui is open
|
||||
*
|
||||
* WORLDLOAD - server side - Fired once as the world loads from disk
|
||||
*
|
||||
* CLIENT - client side - Fired once per client tick loop.
|
||||
*
|
||||
* PLAYER - client and server side. - Fired whenever the player's update
|
||||
* loop runs.
|
||||
*
|
||||
* arg 0 : the player
|
||||
*
|
||||
* arg 1 : the world the player is in
|
||||
*
|
||||
*
|
||||
* SERVER - server side - This is the server game tick. Fired once per tick
|
||||
* loop on the server.
|
||||
*/
|
||||
|
||||
}
|
|
@ -1,5 +1,7 @@
|
|||
package net.machinemuse.utils;
|
||||
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -173,9 +175,15 @@ public abstract class MuseStringUtils {
|
|||
return strlist;
|
||||
}
|
||||
|
||||
public static String extractName(String resource) {
|
||||
int ix = Math.max(resource.lastIndexOf('/'), resource.lastIndexOf('\\')) + 1;
|
||||
return resource.substring(ix, resource.lastIndexOf('.'));
|
||||
public static String extractName(ResourceLocation resource) {
|
||||
String filename = resource.toString();
|
||||
int ix = Math.max(filename.lastIndexOf('/'), Math.max(filename.lastIndexOf('\\'), filename.lastIndexOf(':'))) + 1;
|
||||
return filename.substring(ix, filename.lastIndexOf('.'));
|
||||
}
|
||||
|
||||
public static String extractName(String filename) {
|
||||
int ix = Math.max(filename.lastIndexOf('/'), Math.max(filename.lastIndexOf('\\'), filename.lastIndexOf(':'))) + 1;
|
||||
return filename.substring(ix, filename.lastIndexOf('.'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package net.machinemuse.utils.render
|
||||
|
||||
import net.minecraft.util.Icon
|
||||
import net.minecraft.util.IIcon
|
||||
import net.machinemuse.powersuits.common.Config
|
||||
import org.lwjgl.opengl.GL11._
|
||||
import net.machinemuse.numina.geometry.Colour
|
||||
|
@ -69,7 +69,7 @@ object GuiIcons {
|
|||
val filepath = Config.TEXTURE_PREFIX + "gui/plussign.png"
|
||||
}
|
||||
|
||||
object GuiIconDrawer extends Icon {
|
||||
object GuiIconDrawer extends IIcon {
|
||||
def getOriginX: Int = 0
|
||||
|
||||
def getOriginY: Int = 0
|
||||
|
|
Loading…
Reference in a new issue