first 1.11.1 attempt

This commit is contained in:
2017-07-08 22:14:01 +02:00
parent 4b256caff9
commit 2e51738c45
48 changed files with 449 additions and 74 deletions

View File

@@ -35,7 +35,7 @@ repositories {
group = "com.sosnitzka" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "taiga"
sourceCompatibility = JavaVersion.VERSION_1_7
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
@@ -64,9 +64,9 @@ task buildInfo {
version = project.buildInfo.revision
minecraft {
version = "1.10.2-12.18.3.2202"
version = "1.11.2-13.20.1.2386"
runDir = "run"
mappings = "stable_29"
mappings = "snapshot_20170612"
replace '@VERSION@', project.version
}
@@ -80,8 +80,8 @@ dependencies {
//deobfCompile "codechicken:NotEnoughItems:1.9-${nei_version}:dev"
deobfCompile "slimeknights.mantle:Mantle:1.10.2-1.1.+:deobf"
//Old: deobfCompile "slimeknights.mantle:Mantle:1.9-0.10.0.jenkins132:deobf"
deobfCompile "mezz.jei:jei_1.10.2:3.+"
deobfCompile "slimeknights:TConstruct:1.10.2-2.6.+:deobf"
deobfCompile "mezz.jei:jei_1.11.2:4.+"
deobfCompile "slimeknights:TConstruct:1.11.2-2.7.+:deobf"
//compile files('libs/TConstruct-1.9-2.3.1.DEV.1d4c1de-deobf.jar')
//compile group: 'com.google.guava', name: 'guava', version: '20.0'
}

View File

@@ -11,6 +11,7 @@ import net.minecraftforge.fml.client.config.GuiConfig;
import net.minecraftforge.fml.client.config.GuiConfigEntries;
import net.minecraftforge.fml.client.config.IConfigElement;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -20,6 +21,16 @@ public class TAIGAGuiFactory implements IModGuiFactory {
public void initialize(Minecraft minecraftInstance) {
}
@Override
public boolean hasConfigGui() {
return true;
}
@Override
public GuiScreen createConfigGui(GuiScreen parentScreen) {
return new TAIGAConfigGui(parentScreen);
}
@Override
public Class<? extends GuiScreen> mainConfigGuiClass() {
return TAIGAConfigGui.class;
@@ -30,6 +41,7 @@ public class TAIGAGuiFactory implements IModGuiFactory {
return null;
}
@Nullable
@Override
public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) {
return null;

View File

@@ -1,4 +1,4 @@
package com.sosnitzka.taiga.traits;
package com.sosnitzka.taiga.generic;
import net.minecraft.entity.Entity;
import net.minecraft.nbt.NBTTagCompound;

View File

@@ -112,10 +112,8 @@ public class ClientProxy extends CommonProxy {
FluidStateMapper mapper = new FluidStateMapper(fluid);
// item-model
if (item != null) {
ModelLoader.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, mapper);
}
ModelLoader.registerItemVariants(item);
ModelLoader.setCustomMeshDefinition(item, mapper);
// block-model
ModelLoader.setCustomStateMapper(block, mapper);
}

View File

@@ -3,6 +3,7 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
@@ -10,10 +11,13 @@ import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.entity.living.LivingExperienceDropEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitAnalysing extends AbstractTrait {
@@ -28,7 +32,6 @@ public class TraitAnalysing extends AbstractTrait {
if (player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier) && event.getDroppedExperience() > 0) {
event.setDroppedExperience(this.getUpdateXP(event.getDroppedExperience()));
}
}
@SubscribeEvent
@@ -37,14 +40,13 @@ public class TraitAnalysing extends AbstractTrait {
if (!event.getWorld().isRemote && player != null && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), this.identifier) && event.getExpToDrop() > 0) {
event.setExpToDrop(this.getUpdateXP(event.getExpToDrop()));
}
}
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (random.nextFloat() < .1f && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (random.nextFloat() < .1f && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (!w.isRemote && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
event.getDrops().clear();
}
@@ -62,4 +64,15 @@ public class TraitAnalysing extends AbstractTrait {
event.getDrops().clear();
}
}
/**
* Called with a set of itemstacks and returns a match which contains the items that match
* and how often the modifier can be applied with them
*
* @param stacks
*/
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,17 +5,21 @@ import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
import static com.sosnitzka.taiga.util.Utils.isNight;
public class TraitArcane extends AbstractTrait {
@@ -45,13 +49,18 @@ public class TraitArcane extends AbstractTrait {
@SubscribeEvent
public void onEntityKill(LivingDeathEvent e) {
World w = e.getEntity().getEntityWorld();
if (!w.isRemote && e.getSource().getEntity() != null) {
if (e.getSource().getEntity() instanceof EntityPlayer && e.getEntity() instanceof EntityCreature) {
ItemStack tool = ((EntityPlayer) e.getSource().getEntity()).getHeldItemMainhand();
if (!w.isRemote && e.getSource().getTrueSource() != null) {
if (e.getSource().getTrueSource() instanceof EntityPlayer && e.getEntity() instanceof EntityCreature) {
ItemStack tool = ((EntityPlayer) e.getSource().getTrueSource()).getHeldItemMainhand();
if (isNight((int) w.getWorldTime()) && random.nextFloat() < 0.1 && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) {
ToolHelper.healTool(tool, random.nextInt(16), null);
}
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,21 +1,26 @@
package com.sosnitzka.taiga.traits;
import com.sosnitzka.taiga.generic.TraitProgressiveStats;
import com.sosnitzka.taiga.util.Utils;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.tools.ToolNBT;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitBerserk extends TraitProgressiveStats {
@@ -103,5 +108,8 @@ public class TraitBerserk extends TraitProgressiveStats {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,11 +5,15 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.MobEffects;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
import static com.sosnitzka.taiga.util.Utils.isNight;
public class TraitBlind extends AbstractTrait {
@@ -39,4 +43,9 @@ public class TraitBlind extends AbstractTrait {
player.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, random.nextInt(400) + 200));
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -4,11 +4,15 @@ import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
import static com.sosnitzka.taiga.util.Utils.isNight;
import static net.minecraft.init.MobEffects.GLOWING;
@@ -37,4 +41,9 @@ public class TraitBright extends AbstractTrait {
player.addPotionEffect(new PotionEffect(GLOWING, 200));
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,10 +3,14 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
public class TraitCarousel extends AbstractTrait {
@@ -21,5 +25,8 @@ public class TraitCarousel extends AbstractTrait {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,12 +3,16 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitCascade extends AbstractTrait {
public TraitCascade() {
@@ -45,4 +49,9 @@ public class TraitCascade extends AbstractTrait {
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -8,6 +8,7 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
@@ -16,11 +17,14 @@ import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitCatcher extends AbstractTrait {
@@ -34,12 +38,12 @@ public class TraitCatcher extends AbstractTrait {
@SubscribeEvent
public void killEntity(LivingDeathEvent event) {
if (!(event.getSource().getEntity() instanceof EntityPlayer))
if (!(event.getSource().getTrueSource() instanceof EntityPlayer))
return;
if (event.getEntityLiving() instanceof EntityPlayer || event.getEntityLiving() instanceof EntityPlayerMP)
return;
World w = event.getSource().getEntity().getEntityWorld();
EntityPlayer p = (EntityPlayer) event.getSource().getEntity();
World w = event.getSource().getTrueSource().getEntityWorld();
EntityPlayer p = (EntityPlayer) event.getSource().getTrueSource();
EntityLivingBase target = event.getEntityLiving();
NBTTagCompound tag = TagUtil.getExtraTag(p.getHeldItemMainhand());
Data data = Data.read(tag);
@@ -52,8 +56,7 @@ public class TraitCatcher extends AbstractTrait {
data.mobClass = target.getClass().getName();
data.mobName = target.getName();
data.write(tag);
if (p.getHeldItemMainhand() != null)
TagUtil.setExtraTag(p.getHeldItemMainhand(), tag);
TagUtil.setExtraTag(p.getHeldItemMainhand(), tag);
p.playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
target.setDropItemsWhenDead(false);
target.setDead();
@@ -117,6 +120,11 @@ public class TraitCatcher extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
public static class Data {
String mobClass;
String mobName;

View File

@@ -6,16 +6,20 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitCongenial extends AbstractTrait {
@@ -27,9 +31,9 @@ public class TraitCongenial extends AbstractTrait {
@SubscribeEvent
public void onEntityKill(LivingDeathEvent e) {
if (e.getSource().getEntity() instanceof EntityPlayer && !e.getSource().getEntity().world.isRemote && e.getEntity() instanceof EntityCreature) {
if (TinkerUtil.hasTrait(TagUtil.getTagSafe(((EntityPlayer) e.getSource().getEntity()).getHeldItemMainhand()), identifier)) {
ItemStack tool = ((EntityPlayer) e.getSource().getEntity()).getHeldItemMainhand();
if (e.getSource().getTrueSource() instanceof EntityPlayer && !e.getSource().getTrueSource().world.isRemote && e.getEntity() instanceof EntityCreature) {
if (TinkerUtil.hasTrait(TagUtil.getTagSafe(((EntityPlayer) e.getSource().getTrueSource()).getHeldItemMainhand()), identifier)) {
ItemStack tool = ((EntityPlayer) e.getSource().getTrueSource()).getHeldItemMainhand();
String name = e.getEntity().getName();
NBTTagCompound tag = TagUtil.getExtraTag(tool);
Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag);
@@ -38,7 +42,6 @@ public class TraitCongenial extends AbstractTrait {
}
data.name = name;
data.write(tag);
assert tool != null;
TagUtil.setExtraTag(tool, tag);
}
}
@@ -75,4 +78,8 @@ public class TraitCongenial extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,10 +3,14 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.event.world.BlockEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
public class TraitCrushing extends AbstractTrait {
public TraitCrushing() {
@@ -32,4 +36,8 @@ public class TraitCrushing extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -6,15 +6,19 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.DamageSource;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitCursed extends AbstractTrait {
@@ -27,7 +31,6 @@ public class TraitCursed extends AbstractTrait {
@Override
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
NBTTagCompound tag = TagUtil.getExtraTag(tool);
Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag);
if (random.nextInt((chance + data.curse) / (data.curse + 1)) == 1) {
@@ -38,8 +41,6 @@ public class TraitCursed extends AbstractTrait {
data.write(tag);
TagUtil.setExtraTag(tool, tag);
}
@SubscribeEvent
@@ -55,4 +56,8 @@ public class TraitCursed extends AbstractTrait {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -11,6 +11,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextFormatting;
@@ -19,11 +20,13 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.List;
import java.util.Optional;
public class TraitCurvature extends AbstractTrait {
@@ -51,12 +54,10 @@ public class TraitCurvature extends AbstractTrait {
event.getDrops().clear();
event.getWorld().setBlockState(cPos, mainstate);
event.getHarvester().playSound(SoundEvents.ENTITY_ENDERMEN_TELEPORT, 1.0F, 1.0F);
event.getHarvester().sendStatusMessage(new TextComponentString("Teleported to: " + x + " " + y + " " + z));
event.getHarvester().sendStatusMessage(new TextComponentString("Teleported to: " + x + " " + y + " " + z), false);
return;
}
}
}
}
@@ -71,8 +72,8 @@ public class TraitCurvature extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (!w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
ItemStack i = new ItemStack(Items.ENDER_PEARL, random.nextInt(2));
event.getDrops().add(0, new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, i));
@@ -86,4 +87,9 @@ public class TraitCurvature extends AbstractTrait {
player.setPosition(tp.getX(), tp.getY(), tp.getZ());
target.setPosition(pp.getX(), pp.getY(), pp.getZ());
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -2,9 +2,13 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
import static com.sosnitzka.taiga.util.Utils.isNight;
@@ -22,4 +26,9 @@ public class TraitDark extends AbstractTrait {
} else newDamage = damage / (1 + random.nextFloat() / 3f);
return super.damage(tool, player, target, damage, newDamage, isCritical);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,17 +1,21 @@
package com.sosnitzka.taiga.traits;
import com.google.common.collect.ImmutableList;
import com.sosnitzka.taiga.generic.TraitProgressiveStats;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.materials.HeadMaterialStats;
import slimeknights.tconstruct.library.tools.ToolNBT;
import slimeknights.tconstruct.library.utils.TagUtil;
import java.util.List;
import java.util.Optional;
/**
* Gives the tool bonus stats on crafting.
@@ -29,6 +33,11 @@ public class TraitDecay extends TraitProgressiveStats {
super("decay", TextFormatting.GREEN);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
@Override
public void applyEffect(NBTTagCompound rootCompound, NBTTagCompound modifierTag) {
// check if we have stats already distributed, and if not add them

View File

@@ -1,8 +1,13 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraftforge.common.MinecraftForge;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTraitLeveled;
import java.util.Optional;
public class TraitDeflection extends AbstractTraitLeveled {
@@ -13,4 +18,8 @@ public class TraitDeflection extends AbstractTraitLeveled {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,14 +3,18 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.block.BlockStone;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitDevelopement extends AbstractTrait {
@@ -29,4 +33,8 @@ public class TraitDevelopement extends AbstractTrait {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,21 +3,22 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
public class TraitDiffuse extends AbstractTrait {
import java.util.Optional;
/**
*
*/
public class TraitDiffuse extends AbstractTrait {
public TraitDiffuse() {
super("diffuse", TextFormatting.DARK_GRAY);
@@ -35,8 +36,8 @@ public class TraitDiffuse extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (!w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (event.getEntity() instanceof EntityCreature && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
event.getDrops().clear();
}
@@ -56,4 +57,9 @@ public class TraitDiffuse extends AbstractTrait {
event.getDrops().clear();
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,14 +1,19 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingExperienceDropEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitDissolving extends AbstractTrait {
@@ -33,4 +38,9 @@ public class TraitDissolving extends AbstractTrait {
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,14 +5,18 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.tools.ToolCore;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitFracture extends AbstractTrait {
public TraitFracture() {
@@ -70,4 +74,9 @@ public class TraitFracture extends AbstractTrait {
int maxDurability = ToolHelper.getMaxDurability(tool);
return (0.4f) / (maxDurability - 50) * (durability) + 0.55f;
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,12 +5,16 @@ import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitFragile extends AbstractTrait {
public TraitFragile() {
@@ -81,4 +85,9 @@ public class TraitFragile extends AbstractTrait {
int maxDurability = ToolHelper.getMaxDurability(tool);
return (0.4f) / (maxDurability - 50) * (durability) + 0.55f;
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -7,17 +7,21 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitGarishly extends AbstractTrait {
public TraitGarishly() {
@@ -28,8 +32,8 @@ public class TraitGarishly extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (!w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
int r = random.nextInt(2);
@@ -63,6 +67,10 @@ public class TraitGarishly extends AbstractTrait {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -7,13 +7,17 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.MobEffects;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitGlimmer extends AbstractTrait {
@@ -45,4 +49,9 @@ public class TraitGlimmer extends AbstractTrait {
player.addPotionEffect(new PotionEffect(MobEffects.NIGHT_VISION, random.nextInt(600) + 300));
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -2,10 +2,14 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitHeroic extends AbstractTrait {
public TraitHeroic() {
@@ -30,4 +34,9 @@ public class TraitHeroic extends AbstractTrait {
return super.damage(tool, player, target, damage, calc, isCritical);
} else return super.damage(tool, player, target, damage, newDamage * 0.9f, isCritical);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -6,15 +6,19 @@ import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
import static com.sosnitzka.taiga.util.Utils.isNight;
public class TraitHollow extends AbstractTrait {
@@ -40,11 +44,16 @@ public class TraitHollow extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (!w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (!w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (random.nextFloat() <= 0.9 && event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
event.getDrops().clear();
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -8,21 +8,23 @@ import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitInstable extends AbstractTrait {
public TraitInstable() {
super("instable", TextFormatting.DARK_RED);
MinecraftForge.EVENT_BUS.register(this);
@@ -56,8 +58,8 @@ public class TraitInstable extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (random.nextFloat() < 0.05 && !w.isRemote && event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (random.nextFloat() < 0.05 && !w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
ItemStack i = new ItemStack(Items.GUNPOWDER, random.nextInt(2));
event.getDrops().add(0, new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, i));
@@ -68,4 +70,9 @@ public class TraitInstable extends AbstractTrait {
private void explode(World w, Entity e, double x, double y, double z) {
w.newExplosion(e, x, y, z, 1.2f + random.nextFloat() * 5, random.nextBoolean(), true);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,8 +1,13 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraftforge.common.MinecraftForge;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTraitLeveled;
import java.util.Optional;
public class TraitLeveled extends AbstractTraitLeveled {
@@ -13,4 +18,8 @@ public class TraitLeveled extends AbstractTraitLeveled {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -2,14 +2,19 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitMelting extends AbstractTrait {
@@ -29,6 +34,11 @@ public class TraitMelting extends AbstractTrait {
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -4,12 +4,15 @@ import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.world.BlockEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.List;
import java.util.Optional;
import static com.google.common.collect.Lists.newArrayList;
@@ -37,6 +40,11 @@ public class TraitMutate extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -4,12 +4,16 @@ import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitNatureBound extends AbstractTrait {
@@ -35,4 +39,9 @@ public class TraitNatureBound extends AbstractTrait {
} else ToolHelper.damageTool(tool, 1, (EntityLivingBase) entity);
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,17 +5,21 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitPorted extends AbstractTrait {
public static int distance = 10;
@@ -64,4 +68,9 @@ public class TraitPorted extends AbstractTrait {
e.setPosition(tPos.getX(), tPos.getY(), tPos.getZ());
ToolHelper.damageTool(e.getHeldItemMainhand(), ToolHelper.getCurrentDurability(e.getHeldItemMainhand()) / 2 + 1, e);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,12 +1,16 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.BlockEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitPulverizing extends AbstractTrait {
public TraitPulverizing() {
@@ -33,4 +37,9 @@ public class TraitPulverizing extends AbstractTrait {
event.getDrops().clear();
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -2,9 +2,13 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
public class TraitResonance extends AbstractTrait {
@@ -20,6 +24,11 @@ public class TraitResonance extends AbstractTrait {
target.knockBack(target, random.nextFloat() * random.nextFloat() * 10, player.posX - target.posX, player.posZ - target.posZ);
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,19 +3,23 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.monster.EntitySkeleton;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitReviving extends AbstractTrait {
@@ -31,21 +35,23 @@ public class TraitReviving extends AbstractTrait {
public void onEntityKill(LivingDeathEvent e) {
BlockPos pos = e.getEntity().getPosition();
World w = e.getEntity().getEntityWorld();
if (!w.isRemote && e.getSource().getEntity() != null) {
if (e.getSource().getEntity() instanceof EntityPlayer && e.getEntity() instanceof EntityCreature) {
if (random.nextFloat() <= chance && TinkerUtil.hasTrait(TagUtil.getTagSafe(((EntityPlayer) e.getSource().getEntity()).getHeldItemMainhand()), identifier)) {
String name = EntityList.getEntityString(e.getEntity());
Entity ent = EntityList.createEntityByName(name, w);
if (!w.isRemote && e.getSource().getTrueSource() != null) {
if (e.getSource().getTrueSource() instanceof EntityPlayer && e.getEntity() instanceof EntityCreature) {
if (random.nextFloat() <= chance && TinkerUtil.hasTrait(TagUtil.getTagSafe(((EntityPlayer) e.getSource().getTrueSource()).getHeldItemMainhand()), identifier)) {
int id = e.getEntity().getEntityId();
Entity ent = EntityList.createEntityByID(id, w);
if (ent != null) {
if (ent instanceof EntitySkeleton && e.getEntity() instanceof EntitySkeleton) {
((EntitySkeleton) ent).setSkeletonType(((EntitySkeleton) e.getEntity()).getSkeletonType());
}
ent.setPosition(pos.getX(), pos.getY(), pos.getZ());
w.spawnEntity(ent);
e.getSource().getEntity().playSound(SoundEvents.AMBIENT_CAVE, 1.0F, 1.0F);
e.getSource().getTrueSource().playSound(SoundEvents.AMBIENT_CAVE, 1.0F, 1.0F);
}
}
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,15 +5,19 @@ import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitSlaughtering extends AbstractTrait {
public TraitSlaughtering() {
@@ -25,12 +29,17 @@ public class TraitSlaughtering extends AbstractTrait {
@SubscribeEvent
public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld();
if (event.getSource().getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getEntity();
if (event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (!w.isRemote && event.getEntity() instanceof EntityLiving && !(event.getEntity() instanceof EntityPlayer) && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
Item i = event.getDrops().get(random.nextInt(event.getDrops().size())).getEntityItem().getItem();
Item i = event.getDrops().get(random.nextInt(event.getDrops().size())).getItem().getItem();
event.getDrops().add(new EntityItem(event.getEntity().getEntityWorld(), event.getEntity().posX, event.getEntity().posY, event.getEntity().posZ, new ItemStack(i, random.nextInt(4) + 1)));
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -2,17 +2,21 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitSofty extends AbstractTrait {
private static final float chance = 0.1f;
@@ -46,6 +50,11 @@ public class TraitSofty extends AbstractTrait {
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -6,16 +6,20 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitSoulEater extends AbstractTrait {
@@ -28,9 +32,9 @@ public class TraitSoulEater extends AbstractTrait {
@SubscribeEvent
public void onTargetKilled(LivingDeathEvent event) {
if (event.getSource().getEntity() instanceof EntityPlayer && event.getEntity() instanceof EntityLiving) {
World w = event.getSource().getEntity().world;
ItemStack tool = ((EntityPlayer) event.getSource().getEntity()).getHeldItemMainhand();
if (event.getSource().getTrueSource() instanceof EntityPlayer && event.getEntity() instanceof EntityLiving) {
World w = event.getSource().getTrueSource().world;
ItemStack tool = ((EntityPlayer) event.getSource().getTrueSource()).getHeldItemMainhand();
if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) {
NBTTagCompound tag = TagUtil.getExtraTag(tool);
Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag);
@@ -67,4 +71,8 @@ public class TraitSoulEater extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,11 +1,13 @@
package com.sosnitzka.taiga.traits;
import com.sosnitzka.taiga.generic.TraitProgressiveStats;
import com.sosnitzka.taiga.util.Utils;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
@@ -13,9 +15,12 @@ import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitSuperHeavy extends TraitProgressiveStats {
@@ -76,5 +81,8 @@ public class TraitSuperHeavy extends TraitProgressiveStats {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -4,6 +4,7 @@ import com.sosnitzka.taiga.util.Utils;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
@@ -12,11 +13,14 @@ import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.common.Sounds;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
import static com.sosnitzka.taiga.Blocks.tiberiumOre;
public class TraitTantrum extends AbstractTrait {
@@ -86,6 +90,11 @@ public class TraitTantrum extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
public static class Data {
float amount;
@@ -101,5 +110,4 @@ public class TraitTantrum extends AbstractTrait {
}
}
}

View File

@@ -1,9 +1,14 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
public class TraitTemplate extends AbstractTrait {
@@ -13,5 +18,8 @@ public class TraitTemplate extends AbstractTrait {
MinecraftForge.EVENT_BUS.register(this);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -3,15 +3,20 @@ package com.sosnitzka.taiga.traits;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.EntityList;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import java.util.Optional;
public class TraitTraditional extends AbstractTrait {
@@ -24,13 +29,18 @@ public class TraitTraditional extends AbstractTrait {
@SubscribeEvent
public void onEntityKill(LivingDeathEvent e) {
World w = e.getEntity().getEntityWorld();
if (!w.isRemote && e.getSource().getEntity() instanceof EntityPlayer && e.getEntity() instanceof EntityCreature) {
if (TinkerUtil.hasTrait(TagUtil.getTagSafe(((EntityPlayer) e.getSource().getEntity()).getHeldItemMainhand()), identifier)) {
if (!w.isRemote && e.getSource().getTrueSource() instanceof EntityPlayer && e.getEntity() instanceof EntityCreature) {
if (TinkerUtil.hasTrait(TagUtil.getTagSafe(((EntityPlayer) e.getSource().getTrueSource()).getHeldItemMainhand()), identifier)) {
String name = EntityList.getEntityString(e.getEntity());
}
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
public static class Data {
String mobname;

View File

@@ -1,9 +1,14 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
public class TraitUncertain extends AbstractTrait {
@@ -12,4 +17,9 @@ public class TraitUncertain extends AbstractTrait {
super(TraitUncertain.class.getName().toLowerCase().substring(4), TextFormatting.RED);
MinecraftForge.EVENT_BUS.register(this);
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -1,9 +1,14 @@
package com.sosnitzka.taiga.traits;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.common.MinecraftForge;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import java.util.Optional;
public class TraitVortex extends AbstractTrait {
@@ -14,4 +19,8 @@ public class TraitVortex extends AbstractTrait {
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -5,6 +5,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.TextFormatting;
@@ -14,11 +15,14 @@ import net.minecraftforge.common.util.FakePlayer;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import slimeknights.mantle.util.RecipeMatch;
import slimeknights.tconstruct.library.traits.AbstractTrait;
import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper;
import java.util.Optional;
public class TraitWhirl extends AbstractTrait {
@@ -94,4 +98,8 @@ public class TraitWhirl extends AbstractTrait {
}
}
@Override
public Optional<RecipeMatch.Match> matches(NonNullList<ItemStack> stacks) {
return null;
}
}

View File

@@ -33,9 +33,9 @@ public class EntityAIPermanentPanic extends EntityAIBase {
if (vec3d == null) {
return false;
} else {
this.randPosX = vec3d.xCoord;
this.randPosY = vec3d.yCoord;
this.randPosZ = vec3d.zCoord;
this.randPosX = vec3d.x;
this.randPosY = vec3d.y;
this.randPosZ = vec3d.z;
if (this.theEntityCreature.isBurning()) {
BlockPos blockpos = this.getRandPos(this.theEntityCreature.world, this.theEntityCreature, 5, 4);