初始化反编译源码

This commit is contained in:
layue13 committed 2026-06-30 04:06:03 +08:00
commit 7fe6c7074f
26 files changed
+129556

No files matched your search

+1
View File
@@ -0,0 +1 @@
5fu/mods/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar
+13
View File
@@ -0,0 +1,13 @@
# foxex-decompiled
Fallback decompile of `5fu/mods/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar`.
- Detected modid(s): `foxex`
- Original jar: `original/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar`
- Decompiled Java: `src/main/java`
- Extracted resources: `src/main/resources`
Build entries:
- `./build.sh` reliably recreates `build/libs/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar` from the preserved original jar.
- `./compile-decompiled.sh` attempts to compile the CFR output with Java 8 using jars from `../5fu/mods` and `../_downloaded-deps` as classpath. CFR output for old obfuscated/private mods may require manual cleanup before this succeeds.
Executable
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
if [[ ! -x ./compile-decompiled.sh ]]; then
echo "Missing full-source build entry: ./compile-decompiled.sh" >&2
exit 2
fi
exec ./compile-decompiled.sh "$@"
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
mkdir -p build/classes build/logs build/libs
ROOT="$(pwd)"
TDLM_ROOT="$(cd "$ROOT/../.." && pwd)"
CP="${CP:-}"
if [ -z "$CP" ]; then
CP_ENTRIES=()
for jar in \
"$TDLM_ROOT/modsource/IndustrialCraft2/build/rfg/srg_patched_minecraft-classes.jar" \
"$TDLM_ROOT/Uranium/eclipse/cauldron/build/libs/cauldron.jar" \
"$TDLM_ROOT/Uranium/build/tmp/deobfuscateJar/deobfed.jar" \
"$TDLM_ROOT/modsource/CodeChickenCore/build/rfg/srg_merged_minecraft.jar"; do
[ -f "$jar" ] && CP_ENTRIES+=("$jar")
done
for dir in "$TDLM_ROOT/Uranium/build/bundle/libraries" "$TDLM_ROOT/Uranium-server-run/mods" "$TDLM_ROOT/client/mods" "$TDLM_ROOT/_downloaded-deps" "$TDLM_ROOT/modsource/ImmersiveEngineering/externalLibs" "$TDLM_ROOT/modsource/CodeChickenCore/run/client/mods" "$TDLM_ROOT/modsource/CodeChickenCore/run/mods" "$TDLM_ROOT/modsource/Mekanism-Community-Edition/libs" "$TDLM_ROOT/modsource/ExtraBotany/libs"; do
if [ -d "$dir" ]; then
while IFS= read -r jar; do
case "$jar" in
*-deobf.jar) continue ;;
esac
CP_ENTRIES+=("$jar")
done < <(find "$dir" -name '*.jar' -type f | sort)
fi
done
if [ ${#CP_ENTRIES[@]} -eq 0 ]; then
echo "no dependency jars found for decompiled build" >&2
exit 1
fi
CP="$(IFS=:; echo "${CP_ENTRIES[*]}")"
fi
find src/main/java -name '*.java' > build/sources.list
if [ ! -s build/sources.list ]; then
echo "no decompiled java sources found" >&2
exit 1
fi
javac -source 8 -target 8 -encoding UTF-8 -cp "$CP" -d build/classes @build/sources.list 2>&1 | tee build/logs/javac.log
if [ -d src/main/resources ]; then
( cd src/main/resources && tar cf - . ) | ( cd build/classes && tar xf - )
fi
jar cf "build/libs/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar" -C build/classes .
echo "compiled build/libs/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar"
View File
Whitespace-only changes.
@@ -0,0 +1,36 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.event.FMLInitializationEvent
* cpw.mods.fml.common.event.FMLPostInitializationEvent
* cpw.mods.fml.common.event.FMLPreInitializationEvent
*/
package net.lrsoft.foxbladeex;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.lrsoft.foxbladeex.CommonProxy;
public class ClientProxy
extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
}
public void initializeItemRenderer() {
}
@Override
public void init(FMLInitializationEvent event) {
super.init(event);
}
@Override
public void postInit(FMLPostInitializationEvent event) {
super.postInit(event);
}
}
@@ -0,0 +1,33 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.event.FMLInitializationEvent
* cpw.mods.fml.common.event.FMLPostInitializationEvent
* cpw.mods.fml.common.event.FMLPreInitializationEvent
* mods.flammpfeil.slashblade.SlashBlade
*/
package net.lrsoft.foxbladeex;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import mods.flammpfeil.slashblade.SlashBlade;
import net.lrsoft.foxbladeex.ItemSlashblade_finalfox;
import net.lrsoft.foxbladeex.ItemSlashblade_foxex;
import net.lrsoft.foxbladeex.ItemSlashblade_foxex2;
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {
SlashBlade.InitEventBus.register((Object)new ItemSlashblade_foxex());
SlashBlade.InitEventBus.register((Object)new ItemSlashblade_foxex2());
SlashBlade.InitEventBus.register((Object)new ItemSlashblade_finalfox());
}
public void init(FMLInitializationEvent event) {
}
public void postInit(FMLPostInitializationEvent event) {
}
}
@@ -0,0 +1,100 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.eventhandler.SubscribeEvent
* cpw.mods.fml.common.registry.GameRegistry
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBladeNamed
* mods.flammpfeil.slashblade.RecipeAwakeBlade
* mods.flammpfeil.slashblade.SlashBlade
* mods.flammpfeil.slashblade.named.NamedBladeManager
* mods.flammpfeil.slashblade.named.event.LoadEvent$InitEvent
* mods.flammpfeil.slashblade.specialeffect.ISpecialEffect
* mods.flammpfeil.slashblade.specialeffect.SpecialEffects
* mods.flammpfeil.slashblade.stats.AchievementList
* net.minecraft.enchantment.Enchantment
* net.minecraft.init.Blocks
* net.minecraft.item.Item
* net.minecraft.item.ItemStack
* net.minecraft.item.crafting.IRecipe
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.stats.Achievement
*/
package net.lrsoft.foxbladeex;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.ItemSlashBladeNamed;
import mods.flammpfeil.slashblade.RecipeAwakeBlade;
import mods.flammpfeil.slashblade.SlashBlade;
import mods.flammpfeil.slashblade.named.NamedBladeManager;
import mods.flammpfeil.slashblade.named.event.LoadEvent;
import mods.flammpfeil.slashblade.specialeffect.ISpecialEffect;
import mods.flammpfeil.slashblade.specialeffect.SpecialEffects;
import mods.flammpfeil.slashblade.stats.AchievementList;
import net.lrsoft.foxbladeex.SAsakuraend_ex;
import net.lrsoft.foxbladeex.hypersystem.HS_advance;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.stats.Achievement;
public class ItemSlashblade_finalfox {
public static ItemSlashBladeNamed bladeNamed;
public static ISpecialEffect HS_advance;
@SubscribeEvent
public void init(LoadEvent.InitEvent event) {
String name2 = "flammpfeil.slashblade.named.foxex2";
String name1 = "flammpfeil.slashblade.named.foxex";
String name = "flammpfeil.slashblade.named.foxfinal";
ItemStack customblade = new ItemStack((Item)SlashBlade.bladeNamed, 1, 0);
ItemSlashBlade.specialAttacks.put(12077, new SAsakuraend_ex());
NBTTagCompound tag = new NBTTagCompound();
customblade.func_77982_d(tag);
ItemSlashBladeNamed.CurrentItemName.set(tag, name);
ItemSlashBladeNamed.CustomMaxDamage.set(tag, Integer.valueOf(242));
ItemSlashBlade.setBaseAttackModifier((NBTTagCompound)tag, (float)15.0f);
ItemSlashBladeNamed.IsDefaultBewitched.set(tag, Boolean.valueOf(true));
ItemSlashBlade.TextureName.set(tag, "named/foxex/texture3");
ItemSlashBlade.ModelName.set(tag, "named/foxex/model2");
ItemSlashBlade.SpecialAttackType.set(tag, Integer.valueOf(12077));
ItemSlashBlade.StandbyRenderType.set(tag, Integer.valueOf(1));
ItemSlashBlade.SummonedSwordColor.set(tag, Integer.valueOf(2302862));
SpecialEffects.addEffect((ItemStack)customblade, (ISpecialEffect)HS_advance);
GameRegistry.registerCustomItemStack((String)name, (ItemStack)customblade);
ItemSlashBladeNamed.NamedBlades.add(name);
customblade.func_77966_a(Enchantment.field_77339_k, 10);
customblade.func_77966_a(Enchantment.field_77336_l, 10);
customblade.func_77966_a(Enchantment.field_77338_j, 8);
customblade.func_77966_a(Enchantment.field_77345_t, 5);
customblade.func_77966_a(Enchantment.field_77334_n, 5);
customblade.func_77966_a(Enchantment.field_77347_r, 3);
ItemStack need1 = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)name1, (int)0);
NBTTagCompound reqTag = ItemSlashBlade.getItemTagCompound((ItemStack)need1);
ItemSlashBlade.KillCount.set(reqTag, Integer.valueOf(4500));
ItemSlashBlade.RepairCount.set(reqTag, Integer.valueOf(18));
ItemSlashBladeNamed.IsDefaultBewitched.set(reqTag, Boolean.valueOf(true));
ItemStack need2 = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)name2, (int)1);
NBTTagCompound reqTag2 = ItemSlashBlade.getItemTagCompound((ItemStack)need2);
ItemSlashBlade.KillCount.set(reqTag2, Integer.valueOf(4500));
ItemSlashBlade.RepairCount.set(reqTag2, Integer.valueOf(18));
ItemSlashBladeNamed.IsDefaultBewitched.set(reqTag2, Boolean.valueOf(true));
ItemStack foxex = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)name, (int)1);
NBTTagCompound reqTag3 = ItemSlashBlade.getItemTagCompound((ItemStack)foxex);
SlashBlade.addRecipe((String)name, (IRecipe)new RecipeAwakeBlade(foxex, need1, new Object[]{"CXC", "ABA", "CEC", Character.valueOf('X'), new ItemStack(Blocks.field_150380_bt), Character.valueOf('B'), need1, Character.valueOf('C'), new ItemStack(Blocks.field_150484_ah), Character.valueOf('E'), new ItemStack(Blocks.field_150426_aN), Character.valueOf('A'), new ItemStack(Blocks.field_150343_Z)}));
SlashBlade.addRecipe((String)name, (IRecipe)new RecipeAwakeBlade(foxex, need2, new Object[]{"CXC", "ABA", "CEC", Character.valueOf('X'), new ItemStack(Blocks.field_150380_bt), Character.valueOf('B'), need2, Character.valueOf('C'), new ItemStack(Blocks.field_150484_ah), Character.valueOf('A'), new ItemStack(Blocks.field_150426_aN), Character.valueOf('E'), new ItemStack(Blocks.field_150343_Z)}));
NamedBladeManager.registerBladeSoul((NBTTagCompound)tag, (String)"foxfinal");
AchievementList.registerCraftingAchievement((String)name, (ItemStack)customblade, (Achievement)AchievementList.getAchievement((String)name));
}
static {
HS_advance = SpecialEffects.register((ISpecialEffect)new HS_advance());
}
}
@@ -0,0 +1,92 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.eventhandler.SubscribeEvent
* cpw.mods.fml.common.registry.GameRegistry
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBladeNamed
* mods.flammpfeil.slashblade.RecipeAwakeBlade
* mods.flammpfeil.slashblade.SlashBlade
* mods.flammpfeil.slashblade.named.NamedBladeManager
* mods.flammpfeil.slashblade.named.event.LoadEvent$InitEvent
* mods.flammpfeil.slashblade.specialeffect.ISpecialEffect
* mods.flammpfeil.slashblade.specialeffect.SpecialEffects
* mods.flammpfeil.slashblade.stats.AchievementList
* net.minecraft.enchantment.Enchantment
* net.minecraft.init.Blocks
* net.minecraft.init.Items
* net.minecraft.item.Item
* net.minecraft.item.ItemStack
* net.minecraft.item.crafting.IRecipe
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.stats.Achievement
*/
package net.lrsoft.foxbladeex;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.ItemSlashBladeNamed;
import mods.flammpfeil.slashblade.RecipeAwakeBlade;
import mods.flammpfeil.slashblade.SlashBlade;
import mods.flammpfeil.slashblade.named.NamedBladeManager;
import mods.flammpfeil.slashblade.named.event.LoadEvent;
import mods.flammpfeil.slashblade.specialeffect.ISpecialEffect;
import mods.flammpfeil.slashblade.specialeffect.SpecialEffects;
import mods.flammpfeil.slashblade.stats.AchievementList;
import net.lrsoft.foxbladeex.SAslashdimension_ex;
import net.lrsoft.foxbladeex.hypersystem.HS_basic;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.stats.Achievement;
public class ItemSlashblade_foxex {
public static ItemSlashBladeNamed bladeNamed;
public static ISpecialEffect HS_potion;
@SubscribeEvent
public void init(LoadEvent.InitEvent event) {
String name = "flammpfeil.slashblade.named.foxex";
ItemStack customblade = new ItemStack((Item)SlashBlade.bladeNamed, 1, 0);
ItemSlashBlade.specialAttacks.put(12075, new SAslashdimension_ex());
NBTTagCompound tag = new NBTTagCompound();
customblade.func_77982_d(tag);
ItemSlashBladeNamed.CurrentItemName.set(tag, name);
ItemSlashBladeNamed.CustomMaxDamage.set(tag, Integer.valueOf(141));
ItemSlashBlade.setBaseAttackModifier((NBTTagCompound)tag, (float)12.0f);
ItemSlashBladeNamed.IsDefaultBewitched.set(tag, Boolean.valueOf(true));
ItemSlashBlade.TextureName.set(tag, "named/foxex/texture");
ItemSlashBlade.ModelName.set(tag, "named/foxex/model");
ItemSlashBlade.SpecialAttackType.set(tag, Integer.valueOf(12075));
ItemSlashBlade.StandbyRenderType.set(tag, Integer.valueOf(1));
ItemSlashBlade.SummonedSwordColor.set(tag, Integer.valueOf(0xFF00FF));
SpecialEffects.addEffect((ItemStack)customblade, (ISpecialEffect)HS_potion);
GameRegistry.registerCustomItemStack((String)name, (ItemStack)customblade);
ItemSlashBladeNamed.NamedBlades.add(name);
customblade.func_77966_a(Enchantment.field_77345_t, 3);
customblade.func_77966_a(Enchantment.field_77347_r, 3);
customblade.func_77966_a(Enchantment.field_77335_o, 3);
customblade.func_77966_a(Enchantment.field_77338_j, 6);
ItemStack custombladeReqired2 = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)"flammpfeil.slashblade.named.fox.white", (int)1);
NBTTagCompound reqTag2 = ItemSlashBlade.getItemTagCompound((ItemStack)custombladeReqired2);
ItemSlashBlade.KillCount.set(reqTag2, Integer.valueOf(1000));
ItemSlashBlade.ProudSoul.set(reqTag2, Integer.valueOf(12000));
ItemSlashBlade.RepairCount.set(reqTag2, Integer.valueOf(6));
ItemSlashBladeNamed.IsDefaultBewitched.set(reqTag2, Boolean.valueOf(true));
ItemStack foxex = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)name, (int)1);
SlashBlade.addRecipe((String)name, (IRecipe)new RecipeAwakeBlade(foxex, custombladeReqired2, new Object[]{"CAC", "XBX", "CXC", Character.valueOf('A'), new ItemStack(Items.field_151156_bN), Character.valueOf('B'), custombladeReqired2, Character.valueOf('C'), new ItemStack(Blocks.field_150426_aN), Character.valueOf('X'), new ItemStack(Blocks.field_150484_ah)}));
NamedBladeManager.registerBladeSoul((NBTTagCompound)tag, (String)"foxex");
AchievementList.registerCraftingAchievement((String)name, (ItemStack)customblade, (Achievement)AchievementList.getAchievement((String)name));
}
static {
HS_potion = SpecialEffects.register((ISpecialEffect)new HS_basic());
}
}
@@ -0,0 +1,91 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.eventhandler.SubscribeEvent
* cpw.mods.fml.common.registry.GameRegistry
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBladeNamed
* mods.flammpfeil.slashblade.RecipeAwakeBlade
* mods.flammpfeil.slashblade.SlashBlade
* mods.flammpfeil.slashblade.named.NamedBladeManager
* mods.flammpfeil.slashblade.named.event.LoadEvent$InitEvent
* mods.flammpfeil.slashblade.specialeffect.ISpecialEffect
* mods.flammpfeil.slashblade.specialeffect.SpecialEffects
* mods.flammpfeil.slashblade.stats.AchievementList
* net.minecraft.enchantment.Enchantment
* net.minecraft.init.Blocks
* net.minecraft.init.Items
* net.minecraft.item.Item
* net.minecraft.item.ItemStack
* net.minecraft.item.crafting.IRecipe
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.stats.Achievement
*/
package net.lrsoft.foxbladeex;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.registry.GameRegistry;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.ItemSlashBladeNamed;
import mods.flammpfeil.slashblade.RecipeAwakeBlade;
import mods.flammpfeil.slashblade.SlashBlade;
import mods.flammpfeil.slashblade.named.NamedBladeManager;
import mods.flammpfeil.slashblade.named.event.LoadEvent;
import mods.flammpfeil.slashblade.specialeffect.ISpecialEffect;
import mods.flammpfeil.slashblade.specialeffect.SpecialEffects;
import mods.flammpfeil.slashblade.stats.AchievementList;
import net.lrsoft.foxbladeex.SAspear_ex;
import net.lrsoft.foxbladeex.hypersystem.HS_basic;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.stats.Achievement;
public class ItemSlashblade_foxex2 {
public static ItemSlashBladeNamed bladeNamed;
public static ISpecialEffect HS_potion;
@SubscribeEvent
public void init(LoadEvent.InitEvent event) {
String name = "flammpfeil.slashblade.named.foxex2";
ItemStack customblade = new ItemStack((Item)SlashBlade.bladeNamed, 1, 0);
ItemSlashBlade.specialAttacks.put(12076, new SAspear_ex());
NBTTagCompound tag = new NBTTagCompound();
customblade.func_77982_d(tag);
ItemSlashBladeNamed.CurrentItemName.set(tag, name);
ItemSlashBladeNamed.CustomMaxDamage.set(tag, Integer.valueOf(141));
ItemSlashBlade.setBaseAttackModifier((NBTTagCompound)tag, (float)12.0f);
ItemSlashBladeNamed.IsDefaultBewitched.set(tag, Boolean.valueOf(true));
ItemSlashBlade.TextureName.set(tag, "named/foxex/texture2");
ItemSlashBlade.ModelName.set(tag, "named/foxex/model");
ItemSlashBlade.SpecialAttackType.set(tag, Integer.valueOf(12076));
ItemSlashBlade.StandbyRenderType.set(tag, Integer.valueOf(1));
SpecialEffects.addEffect((ItemStack)customblade, (ISpecialEffect)HS_potion);
GameRegistry.registerCustomItemStack((String)name, (ItemStack)customblade);
ItemSlashBladeNamed.NamedBlades.add(name);
customblade.func_77966_a(Enchantment.field_77345_t, 3);
customblade.func_77966_a(Enchantment.field_77339_k, 5);
customblade.func_77966_a(Enchantment.field_77336_l, 5);
customblade.func_77966_a(Enchantment.field_77347_r, 3);
ItemStack custombladeReqired2 = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)"flammpfeil.slashblade.named.fox.black", (int)1);
NBTTagCompound reqTag2 = ItemSlashBlade.getItemTagCompound((ItemStack)custombladeReqired2);
ItemSlashBlade.KillCount.set(reqTag2, Integer.valueOf(1000));
ItemSlashBlade.ProudSoul.set(reqTag2, Integer.valueOf(12000));
ItemSlashBlade.RepairCount.set(reqTag2, Integer.valueOf(6));
ItemSlashBladeNamed.IsDefaultBewitched.set(reqTag2, Boolean.valueOf(true));
ItemStack foxex = GameRegistry.findItemStack((String)"flammpfeil.slashblade", (String)name, (int)1);
SlashBlade.addRecipe((String)name, (IRecipe)new RecipeAwakeBlade(foxex, custombladeReqired2, new Object[]{"CAC", "XBX", "CXC", Character.valueOf('A'), new ItemStack(Items.field_151156_bN), Character.valueOf('B'), custombladeReqired2, Character.valueOf('C'), new ItemStack(Blocks.field_150343_Z), Character.valueOf('X'), new ItemStack(Blocks.field_150484_ah)}));
NamedBladeManager.registerBladeSoul((NBTTagCompound)tag, (String)"foxex2");
AchievementList.registerCraftingAchievement((String)name, (ItemStack)customblade, (Achievement)AchievementList.getAchievement((String)name));
}
static {
HS_potion = SpecialEffects.register((ISpecialEffect)new HS_basic());
}
}
@@ -0,0 +1,57 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBlade$ComboSequence
* mods.flammpfeil.slashblade.entity.EntitySakuraEndManager
* mods.flammpfeil.slashblade.specialattack.SpecialAttackBase
* net.minecraft.entity.Entity
* net.minecraft.entity.EntityLivingBase
* net.minecraft.entity.player.EntityPlayer
* net.minecraft.item.ItemStack
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.potion.Potion
* net.minecraft.potion.PotionEffect
* net.minecraft.world.World
*/
package net.lrsoft.foxbladeex;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.entity.EntitySakuraEndManager;
import mods.flammpfeil.slashblade.specialattack.SpecialAttackBase;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
public class SAsakuraend_ex
extends SpecialAttackBase {
public String toString() {
return "sakuraend_ex";
}
public void doSpacialAttack(ItemStack stack, EntityPlayer player) {
World world = player.field_70170_p;
NBTTagCompound tag = ItemSlashBlade.getItemTagCompound((ItemStack)stack);
if (!world.field_72995_K) {
int cost = -15;
if (!ItemSlashBlade.ProudSoul.tryAdd(tag, Integer.valueOf(-15), false)) {
ItemSlashBlade.damageItem((ItemStack)stack, (int)10, (EntityLivingBase)player);
}
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 80, 2, true));
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 200, 2, true));
ItemSlashBlade blade = (ItemSlashBlade)stack.func_77973_b();
EntitySakuraEndManager entityDA = new EntitySakuraEndManager(world, (EntityLivingBase)player);
if (entityDA != null) {
world.func_72838_d((Entity)entityDA);
}
}
ItemSlashBlade.setComboSequence((NBTTagCompound)tag, (ItemSlashBlade.ComboSequence)ItemSlashBlade.ComboSequence.SlashEdge);
}
}
@@ -0,0 +1,316 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* mods.flammpfeil.slashblade.EntityDrive
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBlade$ComboSequence
* mods.flammpfeil.slashblade.ItemSlashBlade$SwordType
* mods.flammpfeil.slashblade.ability.StylishRankManager
* mods.flammpfeil.slashblade.ability.StylishRankManager$AttackTypes
* mods.flammpfeil.slashblade.ability.UntouchableTime
* mods.flammpfeil.slashblade.entity.EntityJudgmentCutManager
* mods.flammpfeil.slashblade.entity.EntitySlashDimension
* mods.flammpfeil.slashblade.specialattack.IJustSpecialAttack
* mods.flammpfeil.slashblade.specialattack.ISuperSpecialAttack
* mods.flammpfeil.slashblade.specialattack.SpecialAttackBase
* net.minecraft.block.Block
* net.minecraft.enchantment.Enchantment
* net.minecraft.enchantment.EnchantmentHelper
* net.minecraft.entity.Entity
* net.minecraft.entity.EntityLivingBase
* net.minecraft.entity.player.EntityPlayer
* net.minecraft.item.ItemStack
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.potion.Potion
* net.minecraft.potion.PotionEffect
* net.minecraft.util.AxisAlignedBB
* net.minecraft.util.MathHelper
* net.minecraft.util.MovingObjectPosition
* net.minecraft.util.MovingObjectPosition$MovingObjectType
* net.minecraft.util.Vec3
* net.minecraft.world.World
*/
package net.lrsoft.foxbladeex;
import java.util.EnumSet;
import java.util.List;
import mods.flammpfeil.slashblade.EntityDrive;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.ability.StylishRankManager;
import mods.flammpfeil.slashblade.ability.UntouchableTime;
import mods.flammpfeil.slashblade.entity.EntityJudgmentCutManager;
import mods.flammpfeil.slashblade.entity.EntitySlashDimension;
import mods.flammpfeil.slashblade.specialattack.IJustSpecialAttack;
import mods.flammpfeil.slashblade.specialattack.ISuperSpecialAttack;
import mods.flammpfeil.slashblade.specialattack.SpecialAttackBase;
import net.minecraft.block.Block;
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class SAslashdimension_ex
extends SpecialAttackBase
implements IJustSpecialAttack,
ISuperSpecialAttack {
public String toString() {
return "SAslashdimension_ex";
}
public void doSpacialAttack(ItemStack stack, EntityPlayer player) {
Entity tmp;
World world = player.field_70170_p;
NBTTagCompound tag = ItemSlashBlade.getItemTagCompound((ItemStack)stack);
Entity target = null;
int entityId = ItemSlashBlade.TargetEntityId.get(tag);
if (entityId != 0 && (tmp = world.func_73045_a(entityId)) != null && tmp.func_70032_d((Entity)player) < 60.0f) {
target = tmp;
}
if (target == null) {
target = this.getEntityToWatch(player);
}
if (target == null) {
ItemSlashBlade.setComboSequence((NBTTagCompound)tag, (ItemSlashBlade.ComboSequence)ItemSlashBlade.ComboSequence.SlashDim);
player.func_85030_a("mob.endermen.portal", 0.5f, 1.0f);
int cost = -20;
if (!ItemSlashBlade.ProudSoul.tryAdd(tag, Integer.valueOf(-20), false)) {
ItemSlashBlade.damageItem((ItemStack)stack, (int)10, (EntityLivingBase)player);
}
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 150, 1, true));
if (!player.field_70170_p.field_72995_K) {
int level = EnchantmentHelper.func_77506_a((int)Enchantment.field_77345_t.field_77352_x, (ItemStack)stack);
float magicDamage = 2.0f + ItemSlashBlade.AttackAmplifier.get(tag).floatValue() * (0.5f + (float)level / 5.0f);
EntitySlashDimension dim = new EntitySlashDimension(world, (EntityLivingBase)player, magicDamage);
if (dim != null) {
Vec3 tmppos;
Block block;
Vec3 pos = player.func_70040_Z();
float scale = 5.0f;
pos.field_72450_a *= (double)scale;
pos.field_72448_b *= (double)scale;
pos.field_72449_c *= (double)scale;
pos = pos.func_72441_c(player.field_70165_t, player.field_70163_u, player.field_70161_v);
pos = pos.func_72441_c(0.0, (double)player.func_70047_e(), 0.0);
Vec3 offset = Vec3.func_72443_a((double)player.field_70165_t, (double)player.field_70163_u, (double)player.field_70161_v).func_72441_c(0.0, (double)player.func_70047_e(), 0.0);
Vec3 look = player.func_70040_Z();
Vec3 offsettedLook = offset.func_72441_c(look.field_72450_a * 5.0, look.field_72448_b * 5.0, look.field_72449_c * 5.0);
MovingObjectPosition movingobjectposition = world.func_72933_a(offset, offsettedLook);
if (movingobjectposition != null && movingobjectposition.field_72313_a == MovingObjectPosition.MovingObjectType.BLOCK && (block = world.func_147439_a(movingobjectposition.field_72311_b, movingobjectposition.field_72312_c, movingobjectposition.field_72309_d)) != null && block.func_149703_v() && 1.0 < (tmppos = Vec3.func_72443_a((double)movingobjectposition.field_72307_f.field_72450_a, (double)movingobjectposition.field_72307_f.field_72448_b, (double)movingobjectposition.field_72307_f.field_72449_c)).func_72438_d(Vec3.func_72443_a((double)player.field_70165_t, (double)player.field_70163_u, (double)player.field_70161_v))) {
pos = tmppos;
}
dim.func_70107_b(pos.field_72450_a, pos.field_72448_b, pos.field_72449_c);
dim.setLifeTime(10);
dim.setIsSlashDimension(true);
world.func_72838_d((Entity)dim);
}
}
} else {
ItemSlashBlade.setComboSequence((NBTTagCompound)tag, (ItemSlashBlade.ComboSequence)ItemSlashBlade.ComboSequence.SlashDim);
this.spawnParticle(world, target);
player.field_70170_p.func_72908_a(player.field_70165_t, player.field_70163_u, player.field_70161_v, "mob.endermen.portal", 0.5f, 1.0f);
int cost = -20;
if (!ItemSlashBlade.ProudSoul.tryAdd(tag, Integer.valueOf(-20), false)) {
ItemSlashBlade.damageItem((ItemStack)stack, (int)10, (EntityLivingBase)player);
}
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 150, 1, true));
AxisAlignedBB bb = target.field_70121_D.func_72329_c();
bb = bb.func_72314_b(4.0, 0.25, 4.0);
List list = world.func_94576_a((Entity)player, bb, ItemSlashBlade.AttackableSelector);
if (!ItemSlashBlade.AttackableSelector.func_82704_a(target)) {
list.add(target);
}
ItemSlashBlade blade = (ItemSlashBlade)stack.func_77973_b();
for (Entity curEntity : (java.util.List<Entity>)(java.util.List<?>)list) {
StylishRankManager.setNextAttackType((Entity)player, (String)StylishRankManager.AttackTypes.SlashDim);
blade.attackTargetEntity(stack, curEntity, player, Boolean.valueOf(true));
}
if (!target.field_70170_p.field_72995_K) {
int level = EnchantmentHelper.func_77506_a((int)Enchantment.field_77345_t.field_77352_x, (ItemStack)stack);
float magicDamage = 2.0f + ItemSlashBlade.AttackAmplifier.get(tag).floatValue() * ((float)level / 5.0f);
EntitySlashDimension dim = new EntitySlashDimension(world, (EntityLivingBase)player, magicDamage);
if (dim != null) {
dim.func_70107_b(target.field_70165_t, target.field_70163_u + (double)target.field_70131_O / 2.0, target.field_70161_v);
dim.setLifeTime(30);
world.func_72838_d((Entity)dim);
}
}
}
}
private Entity getEntityToWatch(EntityPlayer player) {
World world = player.field_70170_p;
Entity target = null;
for (int dist = 2; dist < 20; dist += 2) {
AxisAlignedBB bb = player.field_70121_D.func_72329_c();
Vec3 vec = player.func_70040_Z();
vec = vec.func_72432_b();
bb = bb.func_72314_b(2.0, 0.25, 2.0);
bb = bb.func_72317_d(vec.field_72450_a * (double)dist, vec.field_72448_b * (double)dist, vec.field_72449_c * (double)dist);
List list = world.func_94576_a((Entity)player, bb, ItemSlashBlade.AttackableSelector);
float distance = 30.0f;
for (Entity curEntity : (java.util.List<Entity>)(java.util.List<?>)list) {
float curDist = curEntity.func_70032_d((Entity)player);
if (!(curDist < distance)) continue;
target = curEntity;
distance = curDist;
}
if (target != null) break;
}
return target;
}
private void spawnParticle(World world, Entity target) {
world.func_72869_a("largeexplode", target.field_70165_t, target.field_70163_u + (double)target.field_70131_O, target.field_70161_v, 3.0, 3.0, 3.0);
world.func_72869_a("largeexplode", target.field_70165_t + 1.0, target.field_70163_u + (double)target.field_70131_O + 1.0, target.field_70161_v, 3.0, 3.0, 3.0);
world.func_72869_a("largeexplode", target.field_70165_t, target.field_70163_u + (double)target.field_70131_O + 0.5, target.field_70161_v + 1.0, 3.0, 3.0, 3.0);
}
public void doJustSpacialAttack(ItemStack stack, EntityPlayer player) {
Entity tmp;
World world = player.field_70170_p;
NBTTagCompound tag = ItemSlashBlade.getItemTagCompound((ItemStack)stack);
Entity target = null;
int entityId = ItemSlashBlade.TargetEntityId.get(tag);
if (entityId != 0 && (tmp = world.func_73045_a(entityId)) != null && tmp.func_70032_d((Entity)player) < 30.0f) {
target = tmp;
}
if (target == null) {
target = this.getEntityToWatch(player);
}
if (target == null) {
ItemSlashBlade.setComboSequence((NBTTagCompound)tag, (ItemSlashBlade.ComboSequence)ItemSlashBlade.ComboSequence.SlashDim);
player.func_85030_a("mob.endermen.portal", 0.5f, 1.0f);
int cost = -20;
if (!ItemSlashBlade.ProudSoul.tryAdd(tag, Integer.valueOf(-20), false)) {
ItemSlashBlade.damageItem((ItemStack)stack, (int)10, (EntityLivingBase)player);
}
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 150, 1, true));
if (!player.field_70170_p.field_72995_K) {
Vec3 tmppos;
Block block;
Vec3 pos = player.func_70040_Z();
float scale = 5.0f;
pos.field_72450_a *= (double)scale;
pos.field_72448_b *= (double)scale;
pos.field_72449_c *= (double)scale;
pos = pos.func_72441_c(player.field_70165_t, player.field_70163_u, player.field_70161_v);
pos = pos.func_72441_c(0.0, (double)player.func_70047_e(), 0.0);
ItemSlashBlade blade = (ItemSlashBlade)stack.func_77973_b();
Vec3 offset = Vec3.func_72443_a((double)player.field_70165_t, (double)player.field_70163_u, (double)player.field_70161_v).func_72441_c(0.0, (double)player.func_70047_e(), 0.0);
Vec3 look = player.func_70040_Z();
Vec3 offsettedLook = offset.func_72441_c(look.field_72450_a * 5.0, look.field_72448_b * 5.0, look.field_72449_c * 5.0);
MovingObjectPosition movingobjectposition = world.func_72933_a(offset, offsettedLook);
if (movingobjectposition != null && movingobjectposition.field_72313_a == MovingObjectPosition.MovingObjectType.BLOCK && (block = world.func_147439_a(movingobjectposition.field_72311_b, movingobjectposition.field_72312_c, movingobjectposition.field_72309_d)) != null && block.func_149703_v() && 1.0 < (tmppos = Vec3.func_72443_a((double)movingobjectposition.field_72307_f.field_72450_a, (double)movingobjectposition.field_72307_f.field_72448_b, (double)movingobjectposition.field_72307_f.field_72449_c)).func_72438_d(Vec3.func_72443_a((double)player.field_70165_t, (double)player.field_70163_u, (double)player.field_70161_v))) {
pos = tmppos;
}
int level = EnchantmentHelper.func_77506_a((int)Enchantment.field_77345_t.field_77352_x, (ItemStack)stack);
float magicDamage = 2.0f + ItemSlashBlade.AttackAmplifier.get(tag).floatValue() * (0.5f + (float)level / 5.0f);
EntitySlashDimension dim = new EntitySlashDimension(world, (EntityLivingBase)player, magicDamage);
if (dim != null) {
dim.func_70107_b(pos.field_72450_a, pos.field_72448_b, pos.field_72449_c);
dim.setLifeTime(10);
dim.setIsSlashDimension(true);
world.func_72838_d((Entity)dim);
}
magicDamage = 2.0f + ItemSlashBlade.AttackAmplifier.get(tag).floatValue() * ((float)level / 5.0f);
for (int i = 0; i < 5; ++i) {
EntityDrive entityDrive = new EntityDrive(world, (EntityLivingBase)player, Math.min(1.0f, magicDamage / 3.0f), false, 0.0f);
float rotationYaw = (float)(60 * i) + (entityDrive.getRand().nextFloat() - 0.5f) * 60.0f;
float rotationPitch = (entityDrive.getRand().nextFloat() - 0.5f) * 60.0f;
float fYawDtoR = rotationYaw / 180.0f * (float)Math.PI;
float fPitDtoR = rotationPitch / 180.0f * (float)Math.PI;
float fYVecOfst = 0.5f;
float motionX = -MathHelper.func_76126_a((float)fYawDtoR) * MathHelper.func_76134_b((float)fPitDtoR) * fYVecOfst * 2.0f;
float motionY = -MathHelper.func_76126_a((float)fPitDtoR) * fYVecOfst;
float motionZ = MathHelper.func_76134_b((float)fYawDtoR) * MathHelper.func_76134_b((float)fPitDtoR) * fYVecOfst * 2.0f;
entityDrive.func_70012_b(pos.field_72450_a - (double)motionX, pos.field_72448_b - (double)motionY, pos.field_72449_c - (double)motionZ, rotationYaw, rotationPitch);
entityDrive.setDriveVector(fYVecOfst);
entityDrive.setLifeTime(8);
entityDrive.setIsMultiHit(false);
int rank = StylishRankManager.getStylishRank((Entity)player);
if (5 <= rank) {
EnumSet type = blade.getSwordType(stack);
entityDrive.setIsSlashDimension(type.contains(ItemSlashBlade.SwordType.FiercerEdge));
}
entityDrive.setRoll(90.0f + 120.0f * (entityDrive.getRand().nextFloat() - 0.5f));
if (entityDrive == null) continue;
world.func_72838_d((Entity)entityDrive);
}
}
} else {
EntitySlashDimension dim;
ItemSlashBlade.setComboSequence((NBTTagCompound)tag, (ItemSlashBlade.ComboSequence)ItemSlashBlade.ComboSequence.SlashDim);
player.field_70170_p.func_72908_a(player.field_70165_t, player.field_70163_u, player.field_70161_v, "mob.endermen.portal", 0.5f, 1.0f);
int cost = -20;
if (!ItemSlashBlade.ProudSoul.tryAdd(tag, Integer.valueOf(-20), false)) {
ItemSlashBlade.damageItem((ItemStack)stack, (int)10, (EntityLivingBase)player);
}
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 150, 1, true));
AxisAlignedBB bb = target.field_70121_D.func_72329_c();
bb = bb.func_72314_b(2.0, 0.25, 2.0);
List list = world.func_94576_a((Entity)player, bb, ItemSlashBlade.AttackableSelector);
if (!ItemSlashBlade.AttackableSelector.func_82704_a(target)) {
list.add(target);
}
ItemSlashBlade blade = (ItemSlashBlade)stack.func_77973_b();
for (Entity curEntity : (java.util.List<Entity>)(java.util.List<?>)list) {
StylishRankManager.setNextAttackType((Entity)player, (String)StylishRankManager.AttackTypes.SlashDim);
blade.attackTargetEntity(stack, curEntity, player, Boolean.valueOf(true));
player.func_71047_c(curEntity);
}
int level = EnchantmentHelper.func_77506_a((int)Enchantment.field_77345_t.field_77352_x, (ItemStack)stack);
float magicDamage = 2.0f + ItemSlashBlade.AttackAmplifier.get(tag).floatValue() * ((float)level / 5.0f);
if (0 < level) {
for (int i = 0; i < 5; ++i) {
EntityDrive entityDrive = new EntityDrive(world, (EntityLivingBase)player, Math.min(1.0f, magicDamage / 3.0f), false, 0.0f);
float rotationYaw = target.field_70177_z + (float)(60 * i) + (entityDrive.getRand().nextFloat() - 0.5f) * 60.0f;
float rotationPitch = (entityDrive.getRand().nextFloat() - 0.5f) * 60.0f;
float fYawDtoR = rotationYaw / 180.0f * (float)Math.PI;
float fPitDtoR = rotationPitch / 180.0f * (float)Math.PI;
float fYVecOfst = 0.5f;
float motionX = -MathHelper.func_76126_a((float)fYawDtoR) * MathHelper.func_76134_b((float)fPitDtoR) * fYVecOfst * 2.0f;
float motionY = -MathHelper.func_76126_a((float)fPitDtoR) * fYVecOfst;
float motionZ = MathHelper.func_76134_b((float)fYawDtoR) * MathHelper.func_76134_b((float)fPitDtoR) * fYVecOfst * 2.0f;
entityDrive.func_70012_b(target.field_70165_t - (double)motionX, target.field_70163_u + (double)target.func_70047_e() / 2.0 - (double)motionY, target.field_70161_v - (double)motionZ, rotationYaw, rotationPitch);
entityDrive.setDriveVector(fYVecOfst);
entityDrive.setLifeTime(8);
entityDrive.setIsMultiHit(false);
int rank = StylishRankManager.getStylishRank((Entity)player);
if (5 <= rank) {
EnumSet type = blade.getSwordType(stack);
entityDrive.setIsSlashDimension(type.contains(ItemSlashBlade.SwordType.FiercerEdge));
}
entityDrive.setRoll(90.0f + 120.0f * (entityDrive.getRand().nextFloat() - 0.5f));
if (entityDrive == null) continue;
world.func_72838_d((Entity)entityDrive);
}
}
if (!target.field_70170_p.field_72995_K && (dim = new EntitySlashDimension(world, (EntityLivingBase)player, magicDamage)) != null) {
dim.func_70107_b(target.field_70165_t, target.field_70163_u + (double)target.field_70131_O / 2.0, target.field_70161_v);
dim.setLifeTime(10);
dim.setIsSlashDimension(true);
world.func_72838_d((Entity)dim);
}
}
}
public void doSuperSpecialAttack(ItemStack stack, EntityPlayer player) {
EntityJudgmentCutManager entityDA = new EntityJudgmentCutManager(player.field_70170_p, (EntityLivingBase)player);
if (entityDA != null) {
player.field_70170_p.func_72838_d((Entity)entityDA);
}
UntouchableTime.setUntouchableTime((Entity)player, (int)30, (boolean)true);
}
}
@@ -0,0 +1,67 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* mods.flammpfeil.slashblade.EntityDirectAttackDummy
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBlade$ComboSequence
* mods.flammpfeil.slashblade.specialattack.SpecialAttackBase
* net.minecraft.entity.Entity
* net.minecraft.entity.EntityLivingBase
* net.minecraft.entity.player.EntityPlayer
* net.minecraft.item.ItemStack
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.potion.Potion
* net.minecraft.potion.PotionEffect
* net.minecraft.world.World
*/
package net.lrsoft.foxbladeex;
import mods.flammpfeil.slashblade.EntityDirectAttackDummy;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.specialattack.SpecialAttackBase;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
public class SAspear_ex
extends SpecialAttackBase {
public String toString() {
return "spearex";
}
public void doSpacialAttack(ItemStack stack, EntityPlayer player) {
World world = player.field_70170_p;
NBTTagCompound tag = ItemSlashBlade.getItemTagCompound((ItemStack)stack);
double playerDist = 7.0;
float attackDist = (float)(playerDist / 3.0);
if (!player.field_70122_E) {
playerDist *= (double)0.35f;
}
player.field_70159_w = -Math.sin(Math.toRadians(player.field_70177_z)) * playerDist;
player.field_70179_y = Math.cos(Math.toRadians(player.field_70177_z)) * playerDist;
if (!world.field_72995_K) {
int cost = -20;
if (!ItemSlashBlade.ProudSoul.tryAdd(tag, Integer.valueOf(-20), false)) {
ItemSlashBlade.damageItem((ItemStack)stack, (int)10, (EntityLivingBase)player);
}
ItemSlashBlade blade = (ItemSlashBlade)stack.func_77973_b();
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 300, 1, true));
player.func_70690_d(new PotionEffect(Potion.field_76429_m.func_76396_c(), 300, 1, true));
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 250, 1, true));
EntityDirectAttackDummy entityDA = new EntityDirectAttackDummy(world, (EntityLivingBase)player, false);
entityDA.setLifeTime(7);
if (entityDA != null) {
world.func_72838_d((Entity)entityDA);
}
}
world.func_72956_a((Entity)player, "random.explode", 2.5f, 1.0f);
ItemSlashBlade.setComboSequence((NBTTagCompound)tag, (ItemSlashBlade.ComboSequence)ItemSlashBlade.ComboSequence.HiraTuki);
}
}
@@ -0,0 +1,41 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.Mod
* cpw.mods.fml.common.Mod$EventHandler
* cpw.mods.fml.common.SidedProxy
* cpw.mods.fml.common.event.FMLInitializationEvent
* cpw.mods.fml.common.event.FMLPostInitializationEvent
* cpw.mods.fml.common.event.FMLPreInitializationEvent
*/
package net.lrsoft.foxbladeex;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.lrsoft.foxbladeex.CommonProxy;
@Mod(modid="foxex", name="FoxBlade Extra", version="1.1.2", dependencies="required-after:flammpfeil.slashblade")
public class foxaddon {
@SidedProxy(clientSide="net.lrsoft.foxbladeex.ClientProxy", serverSide="net.lrsoft.foxbladeex.CommonProxy")
public static CommonProxy proxy;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
proxy.preInit(event);
}
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
proxy.init(event);
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent event) {
proxy.postInit(event);
}
}
@@ -0,0 +1,105 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.eventhandler.SubscribeEvent
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBlade$ComboSequence
* mods.flammpfeil.slashblade.entity.EntityWitherSword
* mods.flammpfeil.slashblade.specialeffect.ISpecialEffect
* mods.flammpfeil.slashblade.specialeffect.SpecialEffects
* mods.flammpfeil.slashblade.util.SlashBladeEvent$OnUpdateEvent
* mods.flammpfeil.slashblade.util.SlashBladeHooks
* net.minecraft.entity.Entity
* net.minecraft.entity.EntityLivingBase
* net.minecraft.entity.player.EntityPlayer
* net.minecraft.item.ItemStack
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.potion.Potion
* net.minecraft.potion.PotionEffect
* net.minecraft.world.World
*/
package net.lrsoft.foxbladeex.hypersystem;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.entity.EntityWitherSword;
import mods.flammpfeil.slashblade.specialeffect.ISpecialEffect;
import mods.flammpfeil.slashblade.specialeffect.SpecialEffects;
import mods.flammpfeil.slashblade.util.SlashBladeEvent;
import mods.flammpfeil.slashblade.util.SlashBladeHooks;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
public class HS_advance
implements ISpecialEffect {
private static final String EffectKey = "HS_advance";
private boolean useBlade(ItemSlashBlade.ComboSequence sequence) {
if (sequence.useScabbard) {
return false;
}
if (sequence == ItemSlashBlade.ComboSequence.None) {
return false;
}
return sequence != ItemSlashBlade.ComboSequence.Noutou;
}
@SubscribeEvent
public void onUpdateItemSlashBlade(SlashBladeEvent.OnUpdateEvent event) {
if (!SpecialEffects.isPlayer((Entity)event.entity)) {
return;
}
EntityPlayer player = (EntityPlayer)event.entity;
World world = player.field_70170_p;
NBTTagCompound tag = ItemSlashBlade.getItemTagCompound((ItemStack)event.blade);
if (!this.useBlade(ItemSlashBlade.getComboSequence((NBTTagCompound)tag))) {
return;
}
switch (SpecialEffects.isEffective((EntityPlayer)player, (ItemStack)event.blade, (ISpecialEffect)this)) {
case None: {
return;
}
case NonEffective: {
if (player.func_70681_au().nextInt(4) == 0) break;
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 80, 2));
return;
}
case Effective: {
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 100, 3));
player.func_70690_d(new PotionEffect(Potion.field_76432_h.func_76396_c(), 100, 3));
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 100, 3));
if (world.field_72995_K) break;
ItemSlashBlade blade = (ItemSlashBlade)event.blade.func_77973_b();
boolean isBurst = false;
EntityWitherSword entityDrive = new EntityWitherSword(world, (EntityLivingBase)player, 1.0f, (float)(ItemSlashBlade.RepairCount.get(tag) * 2));
if (entityDrive == null) break;
entityDrive.setInterval(16);
entityDrive.setLifeTime(35);
int color = isBurst ? -16775920 : -16777215;
entityDrive.setColor(color);
entityDrive.setBurst(isBurst);
world.func_72838_d((Entity)entityDrive);
}
}
}
public void register() {
SlashBladeHooks.EventBus.register((Object)this);
}
public int getDefaultRequiredLevel() {
return 60;
}
public String getEffectKey() {
return EffectKey;
}
}
@@ -0,0 +1,92 @@
/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* cpw.mods.fml.common.eventhandler.SubscribeEvent
* mods.flammpfeil.slashblade.ItemSlashBlade
* mods.flammpfeil.slashblade.ItemSlashBlade$ComboSequence
* mods.flammpfeil.slashblade.specialeffect.ISpecialEffect
* mods.flammpfeil.slashblade.specialeffect.SpecialEffects
* mods.flammpfeil.slashblade.util.SlashBladeEvent$OnUpdateEvent
* mods.flammpfeil.slashblade.util.SlashBladeHooks
* net.minecraft.entity.Entity
* net.minecraft.entity.player.EntityPlayer
* net.minecraft.item.ItemStack
* net.minecraft.nbt.NBTTagCompound
* net.minecraft.potion.Potion
* net.minecraft.potion.PotionEffect
* net.minecraft.world.World
*/
package net.lrsoft.foxbladeex.hypersystem;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import mods.flammpfeil.slashblade.ItemSlashBlade;
import mods.flammpfeil.slashblade.specialeffect.ISpecialEffect;
import mods.flammpfeil.slashblade.specialeffect.SpecialEffects;
import mods.flammpfeil.slashblade.util.SlashBladeEvent;
import mods.flammpfeil.slashblade.util.SlashBladeHooks;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.world.World;
public class HS_basic
implements ISpecialEffect {
private static final String EffectKey = "HS_potion";
private boolean useBlade(ItemSlashBlade.ComboSequence sequence) {
if (sequence.useScabbard) {
return false;
}
if (sequence == ItemSlashBlade.ComboSequence.None) {
return false;
}
return sequence != ItemSlashBlade.ComboSequence.Noutou;
}
@SubscribeEvent
public void onUpdateItemSlashBlade(SlashBladeEvent.OnUpdateEvent event) {
if (!SpecialEffects.isPlayer((Entity)event.entity)) {
return;
}
EntityPlayer player = (EntityPlayer)event.entity;
World world = player.field_70170_p;
NBTTagCompound tag = ItemSlashBlade.getItemTagCompound((ItemStack)event.blade);
if (!this.useBlade(ItemSlashBlade.getComboSequence((NBTTagCompound)tag))) {
return;
}
switch (SpecialEffects.isEffective((EntityPlayer)player, (ItemStack)event.blade, (ISpecialEffect)this)) {
case None: {
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 25, 1));
return;
}
case NonEffective: {
if (player.func_70681_au().nextInt(4) == 0) break;
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 100, 2));
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 100, 2));
return;
}
case Effective: {
player.func_70690_d(new PotionEffect(Potion.field_76420_g.func_76396_c(), 50, 2));
player.func_70690_d(new PotionEffect(Potion.field_76432_h.func_76396_c(), 50, 2));
player.func_70690_d(new PotionEffect(Potion.field_76424_c.func_76396_c(), 50, 2));
}
}
}
public void register() {
SlashBladeHooks.EventBus.register((Object)this);
}
public int getDefaultRequiredLevel() {
return 40;
}
public String getEffectKey() {
return EffectKey;
}
}
+2
View File
@@ -0,0 +1,2 @@
Summary for /Users/yudiwang/TDLM/5fu/mods/【拔刀附属】狐月刀改FoxExtrav1.1.2(MC1710).jar
Decompiled with CFR 0.152
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@@ -0,0 +1,10 @@
item.flammpfeil.slashblade.named.foxex.name=Crescent-Weiss Fox-Hyper
item.flammpfeil.slashblade.named.foxex2.name=Crescent-Haze Fox-Hyper
item.flammpfeil.slashblade.named.foxfinal.name=Crescent Fox
flammpfeil.slashblade.specialattack.SAslashdimension_ex=Super Slashdimension
flammpfeil.slashblade.specialattack.spearex=Super Spear
flammpfeil.slashblade.specialattack.sakuraend_ex=SakuraEnd-
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxex=§fCrescent-Weiss Fox-Hyper
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxex2=§fCrescent-Haze Fox-Hyper
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxfinal=§fCrescent Fox
@@ -0,0 +1,15 @@
item.flammpfeil.slashblade.named.foxex.name=狐月刀「仙狐」
item.flammpfeil.slashblade.named.foxex2.name=狐月刀「灵狐」
item.flammpfeil.slashblade.named.foxfinal.name=灵刃「狐月刀」
flammpfeil.slashblade.specialattack.SAslashdimension_ex=次元斩·改
flammpfeil.slashblade.specialattack.spearex=平突·改
flammpfeil.slashblade.specialattack.sakuraend_ex=终焉樱·散
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxex=§f狐月刀「仙狐」
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxex.desc=§8§l§o寄宿这仙狐的力量<br>带有破裂虚空之力的仙狐
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxex2=§f狐月刀「灵狐」
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxex2.desc=§8§l§o寄宿这灵狐的力量<br>蕴涵无尽破魔之力的灵狐
achievement.flammpfeil.slashblade.flammpfeil.slashblade.named.foxfinal=§f灵刃「狐月刀」
slashblade.seffect.name.HS_potion=§e神狐祝福
slashblade.seffect.name.HS_advance=§e幻影破魔矢
+17
View File
@@ -0,0 +1,17 @@
[
{
"modid": "foxex",
"name": "FoxBlade Extra",
"description":"ExtraMod for SlashBlade",
"version": "1.1.2",
"mcversion": "1.7.10",
"url": "http://lrsoft.azurewebsites.net/",
"updateUrl": "",
"authorList": [ "LT_lrsoft"],
"credits": "",
"logoFile": "",
"screenshots": [],
"requiredMods": [],
"dependencies": []
}
]