11 Commits
1.3.2 ... 1.3.3

Author SHA1 Message Date
804a02d3fd prevent TraitCatcher from picking up mobs killed without a weapon with the trait, fixes #177 2018-10-08 03:06:54 +02:00
adf19453c5 updated gradle wrapper 2018-10-08 02:27:26 +02:00
7e4c4baf05 fixed #174: added missing safety factor to division
Signed-off-by: Giovanni Harting <539@idlegandalf.com>
2018-08-26 00:26:43 +02:00
809c10ef51 Merge branch 'master' into 'master'
Add ja_JP.lang

See merge request TeamFRM/TAIGA!169
2018-06-30 13:05:33 +02:00
koh
058ec404a2 Add ja_JP.lang 2018-06-30 09:33:53 +02:00
2227b0017e made naming of Unstable/Instable trait consistent
added translating options for harvest levels

Signed-off-by: Giovanni Harting <539@idlegandalf.com>
2018-06-28 17:03:24 +02:00
05ebd28180 Update README.md 2018-06-17 14:16:33 +02:00
468a5e4aac Update README.md 2018-06-15 21:14:16 +02:00
e98fc61144 general code cleanup
removed some unused classes

Signed-off-by: Giovanni Harting <539@idlegandalf.com>
2018-06-12 18:12:36 +02:00
f4befa63c9 fixed some typos
Signed-off-by: Giovanni Harting <539@idlegandalf.com>
2018-06-12 10:34:55 +02:00
ddb56b6043 added modifier key to right click actions of traits, now requires default LCONTROL to be pressed. fixes #112
Signed-off-by: Giovanni Harting <539@idlegandalf.com>
2018-06-12 10:23:41 +02:00
52 changed files with 537 additions and 451 deletions

View File

@@ -1,10 +1,9 @@
![TAIGA IMAGE](/taiga.png?raw=true) ![TAIGA IMAGE](/taiga.png?raw=true)
Tinkers Alloying Addon(TAIGA) Tinkers Alloying Addon (TAIGA)
=============== ===============
[![][cq img]][cq] [![][license img]][license]
TAIGA is an addon for Tinkers Construct. It aims to find new minable ores, new alloys and a bunch of new tinker traits for them. TAIGA is an addon for Tinkers Construct. It adds new minable ores, new alloys and a bunch of new tinker traits for them.
Included: Included:
* 16 new meltable Ores with 4 new hardness levels (5,6,7,8) * 16 new meltable Ores with 4 new hardness levels (5,6,7,8)
@@ -22,13 +21,9 @@ Download
Dependencies Dependencies
=============== ===============
Necessary: Necessary:
* Tinkers Construct for 1.10.2 + associated version of mantle * Tinkers Construct for 1.12.2 + associated version of mantle
* Minecraft Forge 1.10.2 * Minecraft Forge 1.12.2
Latest tests done with:
* [Tinkers Construct 2.5.5](http://minecraft.curseforge.com/projects/tinkers-construct/files)
* [Minecraft Forge 12.18.2.2107](http://files.minecraftforge.net/)
What's going on? What's going on?
=== ===
@@ -64,9 +59,4 @@ More? Join our community on mumble (ofsg.eu) for questions or to have a nice cha
#### License #### License
This project is licensed under the conditions of the GNU GPL 3.0. This project is licensed under the conditions of the GNU GPL 3.0.
[license]:LICENSE
[license img]:https://img.shields.io/github/license/zkaface/taiga.svg?style=flat-square
[cq]:https://www.codacy.com/app/chefeificationful/TAIGA
[cq img]:https://img.shields.io/codacy/69a9cf26620e4a159c99b62c264d64bb.svg?style=flat-square

Binary file not shown.

View File

@@ -1,6 +1,5 @@
#Wed Jul 20 03:42:23 CEST 2016
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip

26
gradlew vendored
View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash #!/usr/bin/env sh
############################################################################## ##############################################################################
## ##
@@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD="maximum"
warn ( ) { warn () {
echo "$*" echo "$*"
} }
die ( ) { die () {
echo echo
echo "$*" echo "$*"
echo echo
@@ -154,11 +154,19 @@ if $cygwin ; then
esac esac
fi fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules # Escape application args
function splitJvmOpts() { save () {
JVM_OPTS=("$@") for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
} }
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS APP_ARGS=$(save "$@")
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" # Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

6
gradlew.bat vendored
View File

@@ -49,7 +49,6 @@ goto fail
@rem Get command-line arguments, handling Windows variants @rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args :win9xME_args
@rem Slurp the command line arguments. @rem Slurp the command line arguments.
@@ -60,11 +59,6 @@ set _SKIP=2
if "x%~1" == "x" goto execute if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%* set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute :execute
@rem Setup the command line @rem Setup the command line

View File

@@ -24,7 +24,6 @@ import static slimeknights.tconstruct.library.utils.HarvestLevels.*;
public class Blocks { public class Blocks {
// blocks and ores spawned via worldgen // blocks and ores spawned via worldgen
public static Block basaltBlock = new BasicBlock("basalt_block", Material.ROCK, 20.0f, 35.0f, IRON, PREFIX_BLOCK); public static Block basaltBlock = new BasicBlock("basalt_block", Material.ROCK, 20.0f, 35.0f, IRON, PREFIX_BLOCK);
public static Block tiberiumOre = new BlockTiberium(); public static Block tiberiumOre = new BlockTiberium();

View File

@@ -58,7 +58,6 @@ public class Fluids {
public static BasicTinkerFluid nitroniteFluid = new BasicTinkerFluid("nitronite_fluid", 0xFFCCFF00, 3100, 10, 5000); public static BasicTinkerFluid nitroniteFluid = new BasicTinkerFluid("nitronite_fluid", 0xFFCCFF00, 3100, 10, 5000);
// Community // Community
public static BasicTinkerFluid dilithiumFluid = new BasicTinkerFluid("dilithium_fluid", 0xFF79aea6, 1500, 10, 5000); public static BasicTinkerFluid dilithiumFluid = new BasicTinkerFluid("dilithium_fluid", 0xFF79aea6, 1500, 10, 5000);
/** /**
@@ -103,7 +102,6 @@ public class Fluids {
TinkerRegistry.registerMelting(Items.dilithiumCrystal, dilithiumFluid, 72); TinkerRegistry.registerMelting(Items.dilithiumCrystal, dilithiumFluid, 72);
TinkerRegistry.registerMelting(Items.tiberiumCrystal, tiberiumFluid, 72); TinkerRegistry.registerMelting(Items.tiberiumCrystal, tiberiumFluid, 72);
TinkerRegistry.registerSmelteryFuel(new FluidStack(magmaFluid, 50), 100); TinkerRegistry.registerSmelteryFuel(new FluidStack(magmaFluid, 50), 100);
TinkerRegistry.registerSmelteryFuel(new FluidStack(nitroniteFluid, 100), 500); TinkerRegistry.registerSmelteryFuel(new FluidStack(nitroniteFluid, 100), 500);
TinkerRegistry.registerSmelteryFuel(new FluidStack(dilithiumFluid, 50), 100); TinkerRegistry.registerSmelteryFuel(new FluidStack(dilithiumFluid, 50), 100);

View File

@@ -0,0 +1,8 @@
package com.sosnitzka.taiga;
import net.minecraft.client.settings.KeyBinding;
import org.lwjgl.input.Keyboard;
public class Keybindings {
public static KeyBinding altKey = new KeyBinding("key.taiga.alt_action", Keyboard.KEY_LCONTROL, "TAIGA");
}

View File

@@ -19,7 +19,7 @@ public class MaterialTraits {
public static final int VIBRANIUM = 7; public static final int VIBRANIUM = 7;
// Init of new traits // Init of new traits
public static final AbstractTrait instable = new TraitInstable(); public static final AbstractTrait instable = new TraitUnstable();
public static final AbstractTrait naturebound = new TraitNatureBound(); public static final AbstractTrait naturebound = new TraitNatureBound();
public static final AbstractTrait softy = new TraitSofty(); public static final AbstractTrait softy = new TraitSofty();
public static final AbstractTrait curvature = new TraitCurvature(); public static final AbstractTrait curvature = new TraitCurvature();
@@ -56,7 +56,7 @@ public class MaterialTraits {
public static final AbstractTrait mutate = new TraitMutate(); public static final AbstractTrait mutate = new TraitMutate();
/** /*
* Assign traits to related materials. <br> * Assign traits to related materials. <br>
* <p> * <p>
* <p> Example: * <p> Example:

View File

@@ -5,6 +5,7 @@ import com.sosnitzka.taiga.proxy.CommonProxy;
import com.sosnitzka.taiga.recipes.CraftingRegistry; import com.sosnitzka.taiga.recipes.CraftingRegistry;
import com.sosnitzka.taiga.recipes.SmeltingRegistry; import com.sosnitzka.taiga.recipes.SmeltingRegistry;
import com.sosnitzka.taiga.world.WorldGen; import com.sosnitzka.taiga.world.WorldGen;
import net.minecraft.client.resources.I18n;
import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.EventHandler;
@@ -58,15 +59,16 @@ public class TAIGA {
@EventHandler @EventHandler
public void init(FMLInitializationEvent e) { public void init(FMLInitializationEvent e) {
proxy.registerModels(); // Registers models on the client side proxy.registerModels(); // Registers models on the client side
proxy.regsiterKeyBindings();
Fluids.registerfromItem(); // Registers some special smeltery recipes (not alloying) Fluids.registerfromItem(); // Registers some special smeltery recipes (not alloying)
GameRegistry.registerWorldGenerator(WorldGen.getInstance(), 100); // Generates ores GameRegistry.registerWorldGenerator(WorldGen.getInstance(), 100); // Generates ores
// GameRegistry.registerFuelHandler(new FuelHandler()); Registeres fuels' burn times // GameRegistry.registerFuelHandler(new FuelHandler()); Registeres fuels' burn times
// Adds new harvest levels' names // Adds new harvest levels' names
harvestLevelNames.put(DURANITE, TextFormatting.DARK_GREEN + "Duranite"); harvestLevelNames.put(DURANITE, I18n.format("harvestlevel.duranite", TextFormatting.GREEN, TextFormatting.RESET));
harvestLevelNames.put(VALYRIUM, TextFormatting.GOLD + "Valyrium"); harvestLevelNames.put(VALYRIUM, I18n.format("harvestlevel.valyrium", TextFormatting.GOLD, TextFormatting.RESET));
harvestLevelNames.put(VIBRANIUM, TextFormatting.DARK_PURPLE + "Vibranium"); harvestLevelNames.put(VIBRANIUM, I18n.format("harvestlevel.vibranium", TextFormatting.DARK_PURPLE, TextFormatting.RESET));
Blocks.register(true); Blocks.register(true);

View File

@@ -1,34 +0,0 @@
package com.sosnitzka.taiga.blocks;
import com.sosnitzka.taiga.generic.BasicBlock;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.Random;
public class BlockLignite extends BasicBlock {
public BlockLignite() {
super("lignite_ore", Material.ROCK, 4.0f, 5.0f, 1);
}
@Override
public int getExpDrop(IBlockState state, IBlockAccess world, BlockPos pos, int fortune) {
Random rand = world instanceof World ? ((World) world).rand : new Random();
int r = RANDOM.nextInt(11);
if (r > 7) {
return MathHelper.getInt(rand, 0, 10) + fortune;
} else return 0;
}
@Override
@ParametersAreNonnullByDefault
public int quantityDropped(IBlockState state, int fortune, Random random) {
return random.nextInt(3) + 1 + fortune;
}
}

View File

@@ -1,68 +0,0 @@
package com.sosnitzka.taiga.blocks;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IStringSerializable;
import net.minecraft.util.NonNullList;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import slimeknights.mantle.block.EnumBlock;
import java.util.Locale;
public class BlockMetal extends EnumBlock<BlockMetal.MetalTypes> {
public static final PropertyEnum<MetalTypes> TYPE = PropertyEnum.create("type", MetalTypes.class);
public BlockMetal() {
super(Material.IRON, TYPE, MetalTypes.class);
}
@SideOnly(Side.CLIENT)
@Override
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> list) {
for (MetalTypes type : MetalTypes.values()) {
list.add(new ItemStack(this, 1, type.getMeta()));
}
}
public enum MetalTypes implements IStringSerializable, EnumBlock.IEnumMeta {
TIBERIUM,
AURODIUM,
PROMETHEUM,
ARCANITE,
TITANITE,
MYTHRIL,
URU,
VIBRANIUM,
ETERNITE,
FRACTORYTE,
PALLADIUM,
IGNITITE,
BISMUTH,
JAUXITE,
VIOLIUM,
KARMESINE;
public final int meta;
MetalTypes() {
meta = ordinal();
}
@Override
public String getName() {
return this.toString().toLowerCase(Locale.US);
}
@Override
public int getMeta() {
return meta;
}
}
}

View File

@@ -1,68 +0,0 @@
package com.sosnitzka.taiga.blocks;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.IStringSerializable;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import slimeknights.mantle.block.EnumBlock;
import javax.annotation.Nonnull;
import java.util.Locale;
public class BlockOre extends EnumBlock<BlockOre.OreTypes> {
public static final PropertyEnum<OreTypes> TYPE = PropertyEnum.create("type", OreTypes.class);
public BlockOre() {
this(Material.ROCK);
}
public BlockOre(Material material) {
super(material, TYPE, OreTypes.class);
}
@Nonnull
@Override
@SideOnly(Side.CLIENT)
public BlockRenderLayer getBlockLayer() {
return BlockRenderLayer.CUTOUT_MIPPED;
}
public enum OreTypes implements IStringSerializable, EnumBlock.IEnumMeta {
TIBERIUM,
AURODIUM,
PROMETHEUM,
ARCANITE,
TITANITE,
MYTHRIL,
URU,
VIBRANIUM,
ETERNITE,
FRACTORYTE,
PALLADIUM,
IGNITITE,
BISMUTH,
JAUXITE,
VIOLIUM,
KARMESINE;
public final int meta;
OreTypes() {
meta = ordinal();
}
@Override
public String getName() {
return this.toString().toLowerCase(Locale.US);
}
@Override
public int getMeta() {
return meta;
}
}
}

View File

@@ -1,18 +0,0 @@
package com.sosnitzka.taiga.generic;
import net.minecraft.block.Block;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
public class BasicBlockGround extends Block {
public BasicBlockGround(String name, Material material, float hardness, float resistance, int harvest) {
super(material);
setUnlocalizedName(name);
setRegistryName(name);
setHardness(hardness);
setResistance(resistance);
setHarvestLevel("shovel", harvest);
setSoundType(SoundType.GROUND);
}
}

View File

@@ -14,16 +14,6 @@ public class BasicItem extends Item {
this.oreDictPrefix = oreDictPrefix; this.oreDictPrefix = oreDictPrefix;
} }
public BasicItem(String name, String oreDictPrefix, String registryname) {
setUnlocalizedName(name);
setRegistryName(registryname);
this.oreDictPrefix = oreDictPrefix;
}
public BasicItem(String name) {
this(name, null);
}
public boolean isOreDict() { public boolean isOreDict() {
return this.oreDictPrefix != null; return this.oreDictPrefix != null;
} }

View File

@@ -8,9 +8,6 @@ import slimeknights.tconstruct.library.fluid.FluidMolten;
* A "wrapper" for FluidMolten that makes construction and manipulation easier * A "wrapper" for FluidMolten that makes construction and manipulation easier
*/ */
public class BasicTinkerFluid extends FluidMolten { public class BasicTinkerFluid extends FluidMolten {
private boolean toolForge;
public BasicTinkerFluid(String fluidName, int color, int temp, int lumen, int visk) { public BasicTinkerFluid(String fluidName, int color, int temp, int lumen, int visk) {
// Constructs the FluidMolten with textures and color // Constructs the FluidMolten with textures and color
super(fluidName, color, new ResourceLocation("tconstruct:blocks/fluids/molten_metal"), new ResourceLocation super(fluidName, color, new ResourceLocation("tconstruct:blocks/fluids/molten_metal"), new ResourceLocation
@@ -21,11 +18,5 @@ public class BasicTinkerFluid extends FluidMolten {
this.setLuminosity(lumen); this.setLuminosity(lumen);
this.setViscosity(visk); this.setViscosity(visk);
this.setDensity(2000); this.setDensity(2000);
this.toolForge = true;
}
public boolean isToolForge() {
return toolForge;
} }
} }

View File

@@ -17,6 +17,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import slimeknights.mantle.client.book.repository.FileRepository; import slimeknights.mantle.client.book.repository.FileRepository;
import slimeknights.tconstruct.library.book.TinkerBook; import slimeknights.tconstruct.library.book.TinkerBook;
import slimeknights.tconstruct.library.client.MaterialRenderInfo; import slimeknights.tconstruct.library.client.MaterialRenderInfo;
@@ -27,6 +28,7 @@ import javax.annotation.Nonnull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import static com.sosnitzka.taiga.Fluids.*; import static com.sosnitzka.taiga.Fluids.*;
import static com.sosnitzka.taiga.Keybindings.altKey;
import static com.sosnitzka.taiga.MaterialTraits.*; import static com.sosnitzka.taiga.MaterialTraits.*;
import static slimeknights.mantle.client.book.BookLoader.registerPageType; import static slimeknights.mantle.client.book.BookLoader.registerPageType;
@@ -41,6 +43,11 @@ public class ClientProxy extends CommonProxy {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory")); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
} }
@Override
public void regsiterKeyBindings() {
ClientRegistry.registerKeyBinding(altKey);
}
@Override @Override
public void registerModels() { public void registerModels() {
Field[] itemFields = Items.class.getDeclaredFields(); Field[] itemFields = Items.class.getDeclaredFields();

View File

@@ -27,4 +27,8 @@ public class CommonProxy {
public void registerBookPages() { public void registerBookPages() {
} }
public void regsiterKeyBindings() {
}
} }

View File

@@ -48,15 +48,9 @@ public class CraftingRegistry {
convertion(Item.getItemFromBlock(Blocks.blockMeteorite), Items.meteoriteIngot, Items.meteoriteNugget); convertion(Item.getItemFromBlock(Blocks.blockMeteorite), Items.meteoriteIngot, Items.meteoriteNugget);
convertion(Item.getItemFromBlock(Blocks.blockObsidiorite), Items.obsidioriteIngot, Items.obsidioriteNugget); convertion(Item.getItemFromBlock(Blocks.blockObsidiorite), Items.obsidioriteIngot, Items.obsidioriteNugget);
convertion(Item.getItemFromBlock(Blocks.dilithiumBlock), Items.dilithiumIngot, Items.dilithiumNugget); convertion(Item.getItemFromBlock(Blocks.dilithiumBlock), Items.dilithiumIngot, Items.dilithiumNugget);
//convertion(Item.getItemFromBlock(Blocks.), Items., Items.);
} }
public static void convertion(Item block, Item ingot, Item nugget) { public static void convertion(Item block, Item ingot, Item nugget) {
//GameData.register_impl(new ShapedOreRecipe());
//GameData.register_impl(new ShapedOreRecipe(new ResourceLocation(""), new ItemStack(ingot), "###", "###",
// "###", '#', new ItemStack(nugget)));
//GameRegistry.addShapedRecipe(new ResourceLocation(TAIGA.MODID + ":recipe_ingot_from_block_" + block.getUnlocalizedName()), new ResourceLocation(""), new ItemStack(block), "###", "###", "###", '#', new ItemStack(ingot));
GameRegistry.addShapelessRecipe(new ResourceLocation(TAIGA.MODID + ":recipe_ingot_from_block_" + block GameRegistry.addShapelessRecipe(new ResourceLocation(TAIGA.MODID + ":recipe_ingot_from_block_" + block
.getUnlocalizedName()), new ResourceLocation(""), new ItemStack(ingot, 9), Ingredient.fromStacks(new .getUnlocalizedName()), new ResourceLocation(""), new ItemStack(ingot, 9), Ingredient.fromStacks(new
ItemStack(block))); ItemStack(block)));

View File

@@ -3,6 +3,6 @@ package com.sosnitzka.taiga.recipes;
public class SmeltingRegistry { public class SmeltingRegistry {
public static void register() { public static void register() {
// OreDictionary.getOres("nuggetIron").get(OreDictionary.getOres("nuggetIron").size() - 1);
} }
} }

View File

@@ -16,6 +16,8 @@ import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil; import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper; import slimeknights.tconstruct.library.utils.ToolHelper;
import static com.sosnitzka.taiga.Keybindings.altKey;
public class TraitBerserk extends TraitProgressiveStats { public class TraitBerserk extends TraitProgressiveStats {
@@ -43,7 +45,6 @@ public class TraitBerserk extends TraitProgressiveStats {
return newDamage * 4; return newDamage * 4;
} }
@Override @Override
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
if (!world.isRemote) { if (!world.isRemote) {
@@ -53,11 +54,10 @@ public class TraitBerserk extends TraitProgressiveStats {
NBTTagCompound root = TagUtil.getTagSafe(tool); NBTTagCompound root = TagUtil.getTagSafe(tool);
StatNBT distributed = getBonus(root); StatNBT distributed = getBonus(root);
if (data.active) { if (data.active) {
TagUtil.setEnchantEffect(root, true); if (!TagUtil.hasEnchantEffect(root))
if (entity instanceof FakePlayer) { TagUtil.setEnchantEffect(root, true);
return;
} if (entity instanceof FakePlayer || entity.ticksExisted % TICK_PER_STAT != 0) {
if (entity.ticksExisted % TICK_PER_STAT > 0) {
return; return;
} }
@@ -69,7 +69,10 @@ public class TraitBerserk extends TraitProgressiveStats {
ToolHelper.damageTool(tool, 1, player); ToolHelper.damageTool(tool, 1, player);
TagUtil.setToolTag(root, stat.get()); TagUtil.setToolTag(root, stat.get());
setBonus(root, distributed); setBonus(root, distributed);
} else TagUtil.setEnchantEffect(root, false); } else {
if (TagUtil.hasEnchantEffect(root))
TagUtil.setEnchantEffect(root, false);
}
} }
} }
@@ -77,7 +80,7 @@ public class TraitBerserk extends TraitProgressiveStats {
public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { public void onRightClickItem(PlayerInteractEvent.RightClickItem event) {
World w = event.getWorld(); World w = event.getWorld();
ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand();
if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && altKey.isKeyDown()) {
NBTTagCompound tag = TagUtil.getExtraTag(tool); NBTTagCompound tag = TagUtil.getExtraTag(tool);
Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag);
NBTTagCompound root = TagUtil.getTagSafe(tool); NBTTagCompound root = TagUtil.getTagSafe(tool);
@@ -99,7 +102,6 @@ public class TraitBerserk extends TraitProgressiveStats {
TagUtil.setExtraTag(root, tag); TagUtil.setExtraTag(root, tag);
data.write(tag); data.write(tag);
} }
} }
} }
} }

View File

@@ -31,7 +31,6 @@ public class TraitBright extends AbstractTrait {
return super.damage(tool, player, target, damage, newDamage, isCritical); return super.damage(tool, player, target, damage, newDamage, isCritical);
} }
@Override @Override
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase
player, boolean wasEffective) { player, boolean wasEffective) {

View File

@@ -23,6 +23,8 @@ import slimeknights.tconstruct.library.utils.TagUtil;
import slimeknights.tconstruct.library.utils.TinkerUtil; import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper; import slimeknights.tconstruct.library.utils.ToolHelper;
import static com.sosnitzka.taiga.Keybindings.altKey;
public class TraitCatcher extends AbstractTrait { public class TraitCatcher extends AbstractTrait {
@@ -40,16 +42,24 @@ public class TraitCatcher extends AbstractTrait {
return; return;
if (event.getEntityLiving() instanceof EntityPlayer || event.getEntityLiving() instanceof EntityPlayerMP) if (event.getEntityLiving() instanceof EntityPlayer || event.getEntityLiving() instanceof EntityPlayerMP)
return; return;
World w = event.getSource().getTrueSource().getEntityWorld(); World w = event.getSource().getTrueSource().getEntityWorld();
EntityPlayer p = (EntityPlayer) event.getSource().getTrueSource(); EntityPlayer p = (EntityPlayer) event.getSource().getTrueSource();
if (!TinkerUtil.hasTrait(TagUtil.getTagSafe(p.getHeldItemMainhand()), identifier))
return;
EntityLivingBase target = event.getEntityLiving(); EntityLivingBase target = event.getEntityLiving();
NBTTagCompound tag = TagUtil.getExtraTag(p.getHeldItemMainhand()); NBTTagCompound tag = TagUtil.getExtraTag(p.getHeldItemMainhand());
Data data = Data.read(tag); Data data = Data.read(tag);
if (!data.mobClass.isEmpty()) if (!data.mobClass.isEmpty())
return; return;
if (!w.isRemote && random.nextInt((int) target.getMaxHealth()) <= chance && target instanceof EntityLiving) { if (!w.isRemote && random.nextInt((int) target.getMaxHealth()) <= chance && target instanceof EntityLiving) {
event.setCanceled(true); event.setCanceled(true);
target.setDropItemsWhenDead(false); target.setDropItemsWhenDead(false);
if (data.mobClass.isEmpty()) { if (data.mobClass.isEmpty()) {
data.mobClass = target.getClass().getName(); data.mobClass = target.getClass().getName();
data.mobName = target.getName(); data.mobName = target.getName();
@@ -62,7 +72,6 @@ public class TraitCatcher extends AbstractTrait {
} }
} }
@Override @Override
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
if (!world.isRemote) { if (!world.isRemote) {
@@ -75,13 +84,12 @@ public class TraitCatcher extends AbstractTrait {
} }
} }
@SubscribeEvent @SubscribeEvent
public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { public void onRightClickItem(PlayerInteractEvent.RightClickItem event) {
World w = event.getWorld(); World w = event.getWorld();
BlockPos pos = event.getEntityPlayer().getPosition(); BlockPos pos = event.getEntityPlayer().getPosition();
ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand();
if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && altKey.isKeyDown()) {
NBTTagCompound tag = TagUtil.getExtraTag(tool); NBTTagCompound tag = TagUtil.getExtraTag(tool);
Data data = Data.read(tag); Data data = Data.read(tag);
if (!data.mobClass.isEmpty()) { if (!data.mobClass.isEmpty()) {

View File

@@ -20,8 +20,6 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
public class TraitCongenial extends AbstractTrait { public class TraitCongenial extends AbstractTrait {
public TraitCongenial() { public TraitCongenial() {
super(TraitCongenial.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED); super(TraitCongenial.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED);
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);

View File

@@ -13,7 +13,6 @@ public class TraitCrushing extends AbstractTrait {
super(TraitCrushing.class.getSimpleName().toLowerCase().substring(5), TextFormatting.GRAY); super(TraitCrushing.class.getSimpleName().toLowerCase().substring(5), TextFormatting.GRAY);
} }
@Override @Override
public void blockHarvestDrops(ItemStack tool, BlockEvent.HarvestDropsEvent e) { public void blockHarvestDrops(ItemStack tool, BlockEvent.HarvestDropsEvent e) {
if (!e.getWorld().isRemote) { if (!e.getWorld().isRemote) {

View File

@@ -20,8 +20,6 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
public class TraitCursed extends AbstractTrait { public class TraitCursed extends AbstractTrait {
private static int chance = 60 * 1000;
public TraitCursed() { public TraitCursed() {
super(TraitCursed.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED); super(TraitCursed.class.getSimpleName().toLowerCase().substring(5), TextFormatting.RED);
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
@@ -31,6 +29,7 @@ public class TraitCursed extends AbstractTrait {
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
NBTTagCompound tag = TagUtil.getExtraTag(tool); NBTTagCompound tag = TagUtil.getExtraTag(tool);
Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag);
int chance = 60 * 1000;
if (random.nextInt((chance + data.curse) / (data.curse + 1)) == 1) { if (random.nextInt((chance + data.curse) / (data.curse + 1)) == 1) {
if (isSelected) data.curse += 10; if (isSelected) data.curse += 10;
else data.curse++; else data.curse++;

View File

@@ -62,16 +62,7 @@ public class TraitDecay extends TraitProgressiveStats {
@Override @Override
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
if (entity instanceof FakePlayer || entity.world.isRemote) { if (entity instanceof FakePlayer || entity.world.isRemote || entity.ticksExisted % TICK_PER_STAT != 0 || playerIsBreakingBlock(entity)) {
return;
}
// every 3.6 seconds we distribute one stat. This means 1h = 1000 applications
if (entity.ticksExisted % TICK_PER_STAT > 0) {
return;
}
// we don't update if the player is currently breaking a block because that'd reset it
if (playerIsBreakingBlock(entity)) {
return; return;
} }

View File

@@ -24,8 +24,8 @@ public class TraitDiffuse extends AbstractTrait {
@SubscribeEvent @SubscribeEvent
public void onBlockBreak(BlockEvent.BreakEvent event) { public void onBlockBreak(BlockEvent.BreakEvent event) {
EntityPlayer player = event.getPlayer(); EntityPlayer player = event.getPlayer();
if (!player.getEntityWorld().isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()) if (!player.getEntityWorld().isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()),
, this.identifier)) { this.identifier)) {
event.setExpToDrop((int) this.getUpdateXP(event.getExpToDrop())); event.setExpToDrop((int) this.getUpdateXP(event.getExpToDrop()));
} }
} }

View File

@@ -18,7 +18,6 @@ public class TraitDissolving extends AbstractTrait {
} }
// high chance to remove XP, low chance to double,triple or quatruple dropped Experience // high chance to remove XP, low chance to double,triple or quatruple dropped Experience
@SubscribeEvent @SubscribeEvent
public void onXpDrop(LivingExperienceDropEvent event) { public void onXpDrop(LivingExperienceDropEvent event) {
if (!event.getEntity().getEntityWorld().isRemote) { if (!event.getEntity().getEntityWorld().isRemote) {

View File

@@ -16,7 +16,6 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
public class TraitGlimmer extends AbstractTrait { public class TraitGlimmer extends AbstractTrait {
public TraitGlimmer() { public TraitGlimmer() {
super("glimmer", TextFormatting.DARK_GRAY); super("glimmer", TextFormatting.DARK_GRAY);
} }

View File

@@ -13,22 +13,22 @@ public class TraitHeroic extends AbstractTrait {
} }
@Override @Override
public float damage(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, float public float damage(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, float newDamage, boolean isCritical) {
newDamage, boolean isCritical) {
int durability = ToolHelper.getCurrentDurability(tool); int durability = ToolHelper.getCurrentDurability(tool);
int durabilitymax = ToolHelper.getMaxDurability(tool); int durabilitymax = ToolHelper.getMaxDurability(tool);
int safeDenominator = durabilitymax - durability - 1; int safeDenominator = durabilitymax - durability - 1;
if (safeDenominator <= 0) { if (safeDenominator <= 0) {
safeDenominator = 1; safeDenominator = 1;
} }
float calc; float calc;
if ((durability * durabilitymax / (durabilitymax - durability - 1)) != 0) { if ((durability * durabilitymax / (durabilitymax - durability - 1 / safeDenominator)) != 0) {
calc = newDamage + (newDamage / 2) / (durability * durabilitymax / safeDenominator); calc = newDamage + (newDamage / 2) / (durability * durabilitymax / safeDenominator);
} else { } else {
calc = newDamage + (newDamage / 2) / ((durability * durabilitymax / safeDenominator) + 1); calc = newDamage + (newDamage / 2) / ((durability * durabilitymax / safeDenominator) + 1);
} }
if ((float) durability < (float) (0.10 * durabilitymax) || player.getHealth() < player.getMaxHealth() / 8 || if ((float) durability < (float) (0.10 * durabilitymax) || player.getHealth() < player.getMaxHealth() / 8 || (target.getHealth() == target.getMaxHealth() && random.nextFloat() > 0.8)) {
(target.getHealth() == target.getMaxHealth() && random.nextFloat() > 0.8)) {
return super.damage(tool, player, target, damage, calc, isCritical); return super.damage(tool, player, target, damage, calc, isCritical);
} else return super.damage(tool, player, target, damage, newDamage * 0.9f, isCritical); } else return super.damage(tool, player, target, damage, newDamage * 0.9f, isCritical);
} }

View File

@@ -24,7 +24,6 @@ public class TraitHollow extends AbstractTrait {
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
} }
@Override @Override
public void onHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean public void onHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean
isCritical) { isCritical) {

View File

@@ -18,7 +18,6 @@ public class TraitMelting extends AbstractTrait {
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
} }
@SubscribeEvent @SubscribeEvent
public void blockbreak(BlockEvent.BreakEvent e) { public void blockbreak(BlockEvent.BreakEvent e) {
Block b = e.getWorld().getBlockState(e.getPos()).getBlock(); Block b = e.getWorld().getBlockState(e.getPos()).getBlock();

View File

@@ -16,7 +16,6 @@ import static com.google.common.collect.Lists.newArrayList;
public class TraitMutate extends AbstractTrait { public class TraitMutate extends AbstractTrait {
public TraitMutate() { public TraitMutate() {
super(TraitMutate.class.getSimpleName().toLowerCase().substring(5), TextFormatting.YELLOW); super(TraitMutate.class.getSimpleName().toLowerCase().substring(5), TextFormatting.YELLOW);
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
@@ -35,9 +34,7 @@ public class TraitMutate extends AbstractTrait {
event.setCanceled(true); event.setCanceled(true);
event.getWorld().setBlockState(event.getPos(), newState); event.getWorld().setBlockState(event.getPos(), newState);
} }
} }
} }
} }

View File

@@ -1,5 +1,6 @@
package com.sosnitzka.taiga.traits; package com.sosnitzka.taiga.traits;
import com.sosnitzka.taiga.Keybindings;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@@ -18,6 +19,7 @@ import slimeknights.tconstruct.library.utils.ToolHelper;
public class TraitPorted extends AbstractTrait { public class TraitPorted extends AbstractTrait {
public static int distance = 10; public static int distance = 10;
public TraitPorted() { public TraitPorted() {
@@ -28,7 +30,7 @@ public class TraitPorted extends AbstractTrait {
@SubscribeEvent @SubscribeEvent
public void onItemRightClick(PlayerInteractEvent.RightClickItem e) { public void onItemRightClick(PlayerInteractEvent.RightClickItem e) {
ItemStack tool = e.getEntityPlayer().getHeldItemMainhand(); ItemStack tool = e.getEntityPlayer().getHeldItemMainhand();
if (TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) if (TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && Keybindings.altKey.isKeyDown())
teleport(e.getEntityPlayer(), e.getWorld()); teleport(e.getEntityPlayer(), e.getWorld());
} }
@@ -41,7 +43,6 @@ public class TraitPorted extends AbstractTrait {
} }
} }
@Override @Override
public void afterHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean public void afterHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean
wasCritical, boolean wasHit) { wasCritical, boolean wasHit) {

View File

@@ -29,13 +29,6 @@ public abstract class TraitProgressiveStats extends AbstractTrait {
applied_key = identifier + "StatBonus"; applied_key = identifier + "StatBonus";
} }
public TraitProgressiveStats(String identifier, int color) {
super(identifier, color);
pool_key = identifier + "StatPool";
applied_key = identifier + "StatBonus";
}
/* Modifier management */ /* Modifier management */
protected static StatNBT getStats(NBTTagCompound root, String key) { protected static StatNBT getStats(NBTTagCompound root, String key) {

View File

@@ -7,7 +7,6 @@ import slimeknights.tconstruct.library.traits.AbstractTrait;
public class TraitResonance extends AbstractTrait { public class TraitResonance extends AbstractTrait {
public static float chance = 0.33f; public static float chance = 0.33f;
public TraitResonance() { public TraitResonance() {

View File

@@ -18,7 +18,6 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
public class TraitReviving extends AbstractTrait { public class TraitReviving extends AbstractTrait {
public final float chance = 0.15f; public final float chance = 0.15f;
public TraitReviving() { public TraitReviving() {

View File

@@ -20,7 +20,6 @@ public class TraitSlaughtering extends AbstractTrait {
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
} }
@SubscribeEvent @SubscribeEvent
public void onMobDrops(LivingDropsEvent event) { public void onMobDrops(LivingDropsEvent event) {
World w = event.getEntity().getEntityWorld(); World w = event.getEntity().getEntityWorld();

View File

@@ -1,5 +1,6 @@
package com.sosnitzka.taiga.traits; package com.sosnitzka.taiga.traits;
import com.sosnitzka.taiga.Keybindings;
import com.sosnitzka.taiga.util.Utils; import com.sosnitzka.taiga.util.Utils;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -21,12 +22,11 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
import static com.sosnitzka.taiga.Blocks.tiberiumOre; import static com.sosnitzka.taiga.Blocks.tiberiumOre;
/*
* Collects tiberium, to release it for an explosion
*/
public class TraitTantrum extends AbstractTrait { public class TraitTantrum extends AbstractTrait {
/*
* Collects tiberium, to release it for an explosion
*/
public static float max_charges = 12f; public static float max_charges = 12f;
public static float max_power = 5; public static float max_power = 5;
@@ -61,11 +61,11 @@ public class TraitTantrum extends AbstractTrait {
} }
@SubscribeEvent @SubscribeEvent
public void RightClickItem(PlayerInteractEvent.RightClickItem event) { public void rightClickItem(PlayerInteractEvent.RightClickItem event) {
World w = event.getWorld(); World w = event.getWorld();
BlockPos pos = event.getPos(); BlockPos pos = event.getPos();
ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand();
if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && Keybindings.altKey.isKeyDown()) {
NBTTagCompound tag = TagUtil.getExtraTag(tool); NBTTagCompound tag = TagUtil.getExtraTag(tool);
Data data = Data.read(tag); Data data = Data.read(tag);
if (data.amount > 1f) { if (data.amount > 1f) {
@@ -92,7 +92,6 @@ public class TraitTantrum extends AbstractTrait {
} }
public static class Data { public static class Data {
float amount; float amount;
public static Data read(NBTTagCompound tag) { public static Data read(NBTTagCompound tag) {

View File

@@ -20,15 +20,15 @@ import slimeknights.tconstruct.library.utils.TinkerUtil;
import slimeknights.tconstruct.library.utils.ToolHelper; import slimeknights.tconstruct.library.utils.ToolHelper;
public class TraitInstable extends AbstractTrait { public class TraitUnstable extends AbstractTrait {
public TraitInstable() {
super("instable", TextFormatting.DARK_RED); public TraitUnstable() {
super("unstable", TextFormatting.DARK_RED);
MinecraftForge.EVENT_BUS.register(this); MinecraftForge.EVENT_BUS.register(this);
} }
@Override @Override
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase player, boolean wasEffective) {
player, boolean wasEffective) {
if (random.nextFloat() <= 0.03) { if (random.nextFloat() <= 0.03) {
if (!world.isRemote) { if (!world.isRemote) {
if (random.nextBoolean()) { if (random.nextBoolean()) {
@@ -40,8 +40,7 @@ public class TraitInstable extends AbstractTrait {
} }
@Override @Override
public void afterHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean public void afterHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean wasCritical, boolean wasHit) {
wasCritical, boolean wasHit) {
BlockPos pos = target.getPosition(); BlockPos pos = target.getPosition();
if (random.nextFloat() <= 0.04) { if (random.nextFloat() <= 0.04) {
if (!player.getEntityWorld().isRemote) { if (!player.getEntityWorld().isRemote) {
@@ -58,8 +57,7 @@ public class TraitInstable extends AbstractTrait {
World w = event.getEntity().getEntityWorld(); World w = event.getEntity().getEntityWorld();
if (random.nextFloat() < 0.05 && !w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) { if (random.nextFloat() < 0.05 && !w.isRemote && event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player if (event.getEntity() instanceof EntityMob && TinkerUtil.hasTrait(TagUtil.getTagSafe(player.getHeldItemMainhand()), identifier)) {
.getHeldItemMainhand()), identifier)) {
ItemStack i = new ItemStack(Items.GUNPOWDER, random.nextInt(2)); ItemStack i = new ItemStack(Items.GUNPOWDER, random.nextInt(2));
event.getDrops().add(0, new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event event.getDrops().add(0, new EntityItem(w, event.getEntity().posX, event.getEntity().posY, event
.getEntity().posZ, i)); .getEntity().posZ, i));

View File

@@ -1,5 +1,6 @@
package com.sosnitzka.taiga.traits; package com.sosnitzka.taiga.traits;
import com.sosnitzka.taiga.Keybindings;
import com.sosnitzka.taiga.util.Utils; import com.sosnitzka.taiga.util.Utils;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
@@ -33,11 +34,7 @@ public class TraitWhirl extends AbstractTrait {
@Override @Override
public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) { public void onUpdate(ItemStack tool, World world, Entity entity, int itemSlot, boolean isSelected) {
if (entity instanceof FakePlayer || entity.world.isRemote || entity.ticksExisted % TICK_PER_STAT != 0) {
if (entity instanceof FakePlayer || entity.world.isRemote) {
return;
}
if (entity.ticksExisted % TICK_PER_STAT > 0) {
return; return;
} }
@@ -55,7 +52,7 @@ public class TraitWhirl extends AbstractTrait {
public void onRightClickItem(PlayerInteractEvent.RightClickItem event) { public void onRightClickItem(PlayerInteractEvent.RightClickItem event) {
World w = event.getWorld(); World w = event.getWorld();
ItemStack tool = event.getEntityPlayer().getHeldItemMainhand(); ItemStack tool = event.getEntityPlayer().getHeldItemMainhand();
if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier)) { if (!w.isRemote && TinkerUtil.hasTrait(TagUtil.getTagSafe(tool), identifier) && Keybindings.altKey.isKeyDown()) {
NBTTagCompound tag = TagUtil.getExtraTag(tool); NBTTagCompound tag = TagUtil.getExtraTag(tool);
Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag); Utils.GeneralNBTData data = Utils.GeneralNBTData.read(tag);
if ((int) data.radius >= 1) { if ((int) data.radius >= 1) {
@@ -82,7 +79,6 @@ public class TraitWhirl extends AbstractTrait {
TagUtil.setEnchantEffect(tool, false); TagUtil.setEnchantEffect(tool, false);
ToolHelper.damageTool(tool, 2 * r, event.getEntityPlayer()); ToolHelper.damageTool(tool, 2 * r, event.getEntityPlayer());
} }
} }
} }

View File

@@ -1,99 +0,0 @@
package com.sosnitzka.taiga.util;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityCreature;
import net.minecraft.entity.ai.EntityAIBase;
import net.minecraft.entity.ai.RandomPositionGenerator;
import net.minecraft.init.Blocks;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World;
public class EntityAIPermanentPanic extends EntityAIBase {
private EntityCreature theEntityCreature;
private double speed;
private double randPosX;
private double randPosY;
private double randPosZ;
public EntityAIPermanentPanic(EntityCreature creature, double speedIn) {
this.theEntityCreature = creature;
this.speed = speedIn;
}
/**
* Returns whether the EntityAIBase should begin execution.
*/
public boolean shouldExecute() {
Vec3d vec3d = RandomPositionGenerator.findRandomTarget(this.theEntityCreature, 5, 4);
if (vec3d == null) {
return false;
} else {
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);
if (blockpos != null) {
this.randPosX = (double) blockpos.getX();
this.randPosY = (double) blockpos.getY();
this.randPosZ = (double) blockpos.getZ();
}
}
return true;
}
}
/**
* Execute a one shot task or start executing a continuous task
*/
public void startExecuting() {
this.theEntityCreature.getNavigator().tryMoveToXYZ(this.randPosX, this.randPosY, this.randPosZ, this.speed);
}
/**
* Returns whether an in-progress EntityAIBase should continue executing
*/
public boolean continueExecuting() {
return !this.theEntityCreature.getNavigator().noPath();
}
private BlockPos getRandPos(World worldIn, Entity entityIn, int horizontalRange, int verticalRange) {
BlockPos blockpos = new BlockPos(entityIn);
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos();
int i = blockpos.getX();
int j = blockpos.getY();
int k = blockpos.getZ();
float f = (float) (horizontalRange * horizontalRange * verticalRange * 2);
BlockPos blockpos1 = null;
for (int l = i - horizontalRange; l <= i + horizontalRange; ++l) {
for (int i1 = j - verticalRange; i1 <= j + verticalRange; ++i1) {
for (int j1 = k - horizontalRange; j1 <= k + horizontalRange; ++j1) {
blockpos$mutableblockpos.setPos(l, i1, j1);
IBlockState iblockstate = worldIn.getBlockState(blockpos$mutableblockpos);
Block block = iblockstate.getBlock();
if (block == Blocks.WATER || block == Blocks.FLOWING_WATER) {
float f1 = (float) ((l - i) * (l - i) + (i1 - j) * (i1 - j) + (j1 - k) * (j1 - k));
if (f1 < f) {
f = f1;
blockpos1 = new BlockPos(blockpos$mutableblockpos);
}
}
}
}
}
return blockpos1;
}
}

View File

@@ -54,7 +54,6 @@ public class Generator {
.generate(world, random, new BlockPos(posX, posY, posZ)); .generate(world, random, new BlockPos(posX, posY, posZ));
} }
} }
} }
} }
@@ -64,7 +63,6 @@ public class Generator {
generateOreDescending(replaceBlockList, replacementBlock, random, chunkX, chunkZ, world, count, minY, maxY); generateOreDescending(replaceBlockList, replacementBlock, random, chunkX, chunkZ, world, count, minY, maxY);
} }
public static void generateOreDescending(List<IBlockState> replaceBlockList, IBlockState replacementBlock, Random public static void generateOreDescending(List<IBlockState> replaceBlockList, IBlockState replacementBlock, Random
random, int chunkX, int chunkZ, World world, int count, int minY, int maxY) { random, int chunkX, int chunkZ, World world, int count, int minY, int maxY) {
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {
@@ -195,7 +193,6 @@ public class Generator {
} }
} }
public static int generateMeteor(IBlockState centerBlock, IBlockState hullBlock, Random random, int chunkX, int public static int generateMeteor(IBlockState centerBlock, IBlockState hullBlock, Random random, int chunkX, int
chunkZ, World world, int count, int chance, int minY, int maxY) { chunkZ, World world, int count, int chance, int minY, int maxY) {
Set<Item> validSurface = new HashSet<Item>(); Set<Item> validSurface = new HashSet<Item>();

View File

@@ -26,10 +26,9 @@ public class StateMatcher implements Predicate<IBlockState> {
if (state != null) { if (state != null) {
if (property != null && value != null) { if (property != null && value != null) {
if (state.getBlock() == this.state.getBlock()) if (state.getBlock() == this.state.getBlock())
if (checkLayerForBlocks(3, 3, -1, world, pos) || return checkLayerForBlocks(3, 3, -1, world, pos) ||
checkLayerForBlocks(3, 3, 0, world, pos) || checkLayerForBlocks(3, 3, 0, world, pos) ||
checkLayerForBlocks(3, 3, 1, world, pos)) checkLayerForBlocks(3, 3, 1, world, pos);
return true;
} else } else
return state.getBlock() == this.state.getBlock(); return state.getBlock() == this.state.getBlock();

View File

@@ -12,9 +12,8 @@ import java.util.function.Predicate;
public class WorldGenMinable extends net.minecraft.world.gen.feature.WorldGenMinable { public class WorldGenMinable extends net.minecraft.world.gen.feature.WorldGenMinable {
private final IBlockState oreBlock; private final IBlockState oreBlock;
/**
* The number of com.sosnitzka.taiga.blocks to generate. // The number of com.sosnitzka.taiga.blocks to generate.
*/
private final int numberOfBlocks; private final int numberOfBlocks;
private final Predicate<IBlockState> predicate; private final Predicate<IBlockState> predicate;

View File

@@ -309,8 +309,8 @@ modifier.heroic.name=Heldenhaft
modifier.heroic.desc=§oBis zum Tod.§r\Am Ende wirst du stark! modifier.heroic.desc=§oBis zum Tod.§r\Am Ende wirst du stark!
modifier.hollow.name=Hohl modifier.hollow.name=Hohl
modifier.hollow.desc=§oBraindead!§r\Gehirnmatsche modifier.hollow.desc=§oBraindead!§r\Gehirnmatsche
modifier.instable.name=Instabil modifier.unstable.name=Instabil
modifier.instable.desc=§oWTF?§r\Es ist so instabil und brennt auf der Haut. modifier.unstable.desc=§oWTF?§r\Es ist so instabil und brennt auf der Haut.
modifier.naturebound.name=Naturverbunden modifier.naturebound.name=Naturverbunden
modifier.naturebound.desc=§oDu bist eins mit der Natur!§r\Repariert und so. modifier.naturebound.desc=§oDu bist eins mit der Natur!§r\Repariert und so.
modifier.pulverizing.name=Pulverisierend modifier.pulverizing.name=Pulverisierend

View File

@@ -325,8 +325,8 @@ modifier.heroic.name=Heroic
modifier.heroic.desc=§oUntil you'll die.§r\nWhen the end is near, you grow stronger. modifier.heroic.desc=§oUntil you'll die.§r\nWhen the end is near, you grow stronger.
modifier.hollow.name=Hollow modifier.hollow.name=Hollow
modifier.hollow.desc=§oBraindead!§r\nMakes your enemies brainless. modifier.hollow.desc=§oBraindead!§r\nMakes your enemies brainless.
modifier.instable.name=Unstable modifier.unstable.name=Unstable
modifier.instable.desc=§oCan you feel this?§r\nSeriously, this is completely unstable! Expect explosions! modifier.unstable.desc=§oCan you feel this?§r\nSeriously, this is completely unstable! Expect explosions!
modifier.naturebound.name=Naturebound modifier.naturebound.name=Naturebound
modifier.naturebound.desc=§oYou are one with your surrounding!§r\nRepairs the tool on several blocks. modifier.naturebound.desc=§oYou are one with your surrounding!§r\nRepairs the tool on several blocks.
modifier.pulverizing.name=Pulverizing modifier.pulverizing.name=Pulverizing
@@ -351,8 +351,8 @@ modifier.whirl.name=Whirl
modifier.whirl.desc=§oLike a sponge!§r\nRemove water at a gained radius. modifier.whirl.desc=§oLike a sponge!§r\nRemove water at a gained radius.
modifier.souleater.name=Soul Eater modifier.souleater.name=Soul Eater
modifier.souleater.desc=§oKill a lot, be a veteran§r\nIf you kill a lot of enemies, your weapon will get stronger. modifier.souleater.desc=§oKill a lot, be a veteran§r\nIf you kill a lot of enemies, your weapon will get stronger.
modifier.beserk.name=BESERK modifier.berserk.name=BERSERK
modifier.beserk.desc=§oBecome the Hulk!§r\nActivate the life consumption and be three times faster and stronger. modifier.berserk.desc=§oBecome the Hulk!§r\nActivate the life consumption and be three times faster and stronger.
modifier.tantrum.name=Tantrum modifier.tantrum.name=Tantrum
modifier.tantrum.desc=§oCast an explosion!§r\nIf you activate the stacked explosion you won't get hurt. modifier.tantrum.desc=§oCast an explosion!§r\nIf you activate the stacked explosion you won't get hurt.
modifier.decay.name=Decay modifier.decay.name=Decay
@@ -366,4 +366,10 @@ modifier.crushing.desc=WIP
gui.taiga_configuration.mainTitle=TAIGA Configuration gui.taiga_configuration.mainTitle=TAIGA Configuration
itemGroup.taiga_block=TAIGA Blocks itemGroup.taiga_block=TAIGA Blocks
itemGroup.taiga_item=TAIGA Items itemGroup.taiga_item=TAIGA Items
key.taiga.alt_action=Mod Tool
harvestlevel.valyrium=%1$sValyrium%2$s
harvestlevel.duranite=%1$sDuranite%2$s
harvestlevel.vibranium=%1$sVibranium%2$s

View File

@@ -0,0 +1,415 @@
modifier.informations=情報
material.basalt.name=玄武岩
material.dilithium.name=ダイリチウム
material.tiberium.name=ティベリウム
material.aurorium.name=オーロリウム
material.prometheum.name=プロメチウム
material.duranite.name=デュラナイト
material.valyrium.name=ヴァリリウム
material.vibranium.name=ヴィブラニウム
material.karmesine.name=カルメシン
material.jauxum.name=ジャクサム
material.ovium.name=オヴィアム
material.terrax.name=テラックス
material.palladium.name=パラジウム
material.uru.name=ウル
material.osram.name=オスラム
material.abyssum.name=アビサム
material.eezo.name=エレメントゼロ
material.triberium.name=トリベリウム
material.fractum.name=フラクタム
material.violium.name=ヴァイオリウム
material.proxii.name=プロッキー
material.tritonite.name=トリトナイト
material.ignitz.name=イグナイツ
material.imperomite.name=インペロマイト
material.solarium.name=ソラリウム
material.nihilite.name=ニヒライト
material.adamant.name=アダマント
material.dyonite.name=ディオナイト
material.nucleum.name=ニュークラム
material.lumix.name=ルミックス
material.seismum.name=サイサム
material.astrium.name=アストリウム
material.niob.name=ニオブ
material.yrdeen.name=イェルデン
material.iox.name=イオクス
material.meteorite.name=メテオライト
material.obsidiorite.name=オブシディオライト
material.magma.name=マグマ
material.nitronite.name=ニトロナイト
material.basalt.prefix=玄武岩の%s
material.dilithium.prefix=ダイリチウムの%s
material.tiberium.prefix=ティベリウムの%s
material.aurorium.prefix=オーロリウムの%s
material.prometheum.prefix=プロメチウムの%s
material.duranite.prefix=デュラナイトの%s
material.valyrium.prefix=ヴァリリウムの%s
material.vibranium.prefix=ヴィブラニウムの%s
material.karmesine.prefix=カルメシンの%s
material.jauxum.prefix=ジャクサムの%s
material.ovium.prefix=オヴィアムの%s
material.terrax.prefix=テラックスの%s
material.palladium.prefix=パラジウムの%s
material.uru.prefix=ウルの%s
material.osram.prefix=オスラムの%s
material.abyssum.prefix=アビサムの%s
material.eezo.prefix=エレメントゼロの%s
material.triberium.prefix=トリベリウムの%s
material.fractum.prefix=フラクタムの%s
material.violium.prefix=ヴァイオリウムの%s
material.proxii.prefix=プロッキーの%s
material.tritonite.prefix=トリトナイトの%s
material.ignitz.prefix=イグナイツの%s
material.imperomite.prefix=インペロマイトの%s
material.solarium.prefix=ソラリウムの%s
material.nihilite.prefix=ニヒライトの%s
material.adamant.prefix=アダマントの%s
material.dyonite.prefix=ディオナイトの%s
material.nucleum.prefix=ニュークラムの%s
material.lumix.prefix=ルミックスの%s
material.seismum.prefix=サイサムの%s
material.astrium.prefix=アストリウムの%s
material.niob.prefix=ニオブの%s
material.yrdeen.prefix=イェルデンの%s
material.iox.prefix=イオクスの%s
material.meteorite.prefix=メテオライトの%s
material.obsidiorite.prefix=オブシディオライトの%s
material.magma.prefix=マグマの%s
material.nitronite.prefix=ニトロナイトの%s
tile.basalt_block.name=玄武岩ブロック
tile.dilithium_block.name=ダイリチウムブロック
tile.tiberium_block.name=ティベリウムブロック
tile.aurorium_block.name=オーロリウムブロック
tile.prometheum_block.name=プロメチウムブロック
tile.duranite_block.name=デュラナイトブロック
tile.valyrium_block.name=ヴァリリウムブロック
tile.vibranium_block.name=ヴィブラニウムブロック
tile.karmesine_block.name=カルメシンブロック
tile.jauxum_block.name=ジャクサムブロック
tile.ovium_block.name=オヴィアムブロック
tile.terrax_block.name=テラックスブロック
tile.palladium_block.name=パラジウムブロック
tile.uru_block.name=ウルブロック
tile.osram_block.name=オスラムブロック
tile.abyssum_block.name=アビサムブロック
tile.eezo_block.name=エレメントゼロブロック
tile.triberium_block.name=トリベリウムブロック
tile.fractum_block.name=フラクタムブロック
tile.violium_block.name=ヴァイオリウムブロック
tile.proxii_block.name=プロッキーブロック
tile.tritonite_block.name=トリトナイトブロック
tile.ignitz_block.name=イグナイツブロック
tile.imperomite_block.name=インペロマイトブロック
tile.solarium_block.name=ソラリウムブロック
tile.nihilite_block.name=ニヒライトブロック
tile.adamant_block.name=アダマントブロック
tile.dyonite_block.name=ディオナイトブロック
tile.nucleum_block.name=ニュークラムブロック
tile.lumix_block.name=ルミックスブロック
tile.seismum_block.name=サイサムブロック
tile.astrium_block.name=アストリウムブロック
tile.niob_block.name=ニオブブロック
tile.yrdeen_block.name=イェルデンブロック
tile.iox_block.name=イオクスブロック
tile.meteorite_block.name=メテオライトブロック
tile.obsidiorite_block.name=オブシディオライトブロック
tile.magma_block.name=マグマブロック
tile.nitronite_block.name=ニトロナイトブロック
tile.meteoritecobble_block.name=メテオライト玉石ブロック
tile.obsidioritecobble_block.name=オブシディオライト玉石ブロック
tile.basalt_ore.name=玄武岩鉱石
tile.tiberium_ore.name=ティベリウム鉱石
tile.dilithium_ore.name=ダイチリウム鉱石
tile.aurorium_ore.name=オーロリウム鉱石
tile.prometheum_ore.name=プロメチウム鉱石
tile.duranite_ore.name=デュラナイト鉱石
tile.valyrium_ore.name=ヴァリリウム鉱石
tile.vibranium_ore.name=ヴィブラニウム鉱石
tile.karmesine_ore.name=カルメシン鉱石
tile.jauxum_ore.name=ジャクサム鉱石
tile.ovium_ore.name=オヴィアム鉱石
tile.terrax_ore.name=テラックス鉱石
tile.palladium_ore.name=パラジウム鉱石
tile.uru_ore.name=ウル鉱石
tile.osram_ore.name=オスラム鉱石
tile.abyssum_ore.name=アビサム鉱石
tile.eezo_ore.name=エレメントゼロ鉱石
tile.triberium_ore.name=トリベリウム鉱石
tile.fractum_ore.name=フラクタム鉱石
tile.violium_ore.name=ヴァイオリウム鉱石
tile.proxii_ore.name=プロッキー鉱石
tile.tritonite_ore.name=トリトナイト鉱石
tile.ignitz_ore.name=イグナイツ鉱石
tile.imperomite_ore.name=インペロマイト鉱石
tile.solarium_ore.name=ソラリウム鉱石
tile.nihilite_ore.name=ニヒライト鉱石
tile.adamant_ore.name=アダマント鉱石
tile.dyonite_ore.name=ディオナイト鉱石
tile.nucleum_ore.name=ニュークラム鉱石
tile.lumix_ore.name=ルミックス鉱石
tile.seismum_ore.name=サイサム鉱石
tile.astrium_ore.name=アストリウム鉱石
tile.niob_ore.name=ニオブ鉱石
tile.yrdeen_ore.name=イェルデン鉱石
tile.iox_ore.name=イオクス鉱石
tile.meteorite_ore.name=メテオライト鉱石
tile.obsidiorite_ore.name=オブシディオライト鉱石
tile.magma_ore.name=マグマ鉱石
tile.nitronite_ore.name=ニトロナイト鉱石
item.dilithium_crystal.name=ダイリチウムの結晶
item.tiberium_crystal.name=ティベリウムの結晶
item.basalt_nugget.name=玄武岩塊
item.dilithium_nugget.name=ダイリチウム塊
item.tiberium_nugget.name=ティベリウム塊
item.aurorium_nugget.name=オーロリウム塊
item.prometheum_nugget.name=プロメチウム塊
item.duranite_nugget.name=デュラナイト塊
item.valyrium_nugget.name=ヴァリリウム塊
item.vibranium_nugget.name=ヴィブラニウム塊
item.karmesine_nugget.name=カルメシン塊
item.jauxum_nugget.name=ジャクサム塊
item.ovium_nugget.name=オヴィアム塊
item.terrax_nugget.name=テラックス塊
item.palladium_nugget.name=パラジウム塊
item.uru_nugget.name=ウル塊
item.osram_nugget.name=オスラム塊
item.abyssum_nugget.name=アビサム塊
item.eezo_nugget.name=エレメントゼロ塊
item.triberium_nugget.name=トリベリウム塊
item.fractum_nugget.name=フラクタム塊
item.violium_nugget.name=ヴァイオリウム塊
item.proxii_nugget.name=プロッキー塊
item.tritonite_nugget.name=トリトナイト塊
item.ignitz_nugget.name=イグナイツ塊
item.imperomite_nugget.name=インペロマイト塊
item.solarium_nugget.name=ソラリウム塊
item.nihilite_nugget.name=ニヒライト塊
item.adamant_nugget.name=アダマント塊
item.dyonite_nugget.name=ディオナイト塊
item.nucleum_nugget.name=ニュークラム塊
item.lumix_nugget.name=ルミックス塊
item.seismum_nugget.name=サイサム塊
item.astrium_nugget.name=アストリウム塊
item.niob_nugget.name=ニオブ塊
item.yrdeen_nugget.name=イェルデン塊
item.iox_nugget.name=イオクス塊
item.meteorite_nugget.name=メテオライト塊
item.obsidiorite_nugget.name=オブシディオライト塊
item.magma_nugget.name=マグマ塊
item.nitronite_nugget.name=ニトロナイト塊
item.iron_nugget.name=鉄塊
item.basalt_dust.name=玄武岩の粉末
item.tiberium_dust.name=ティベリウムの粉末
item.dilithium_dust.name=ダイリチウムの粉末
item.aurorium_dust.name=オーロリウムの粉末
item.prometheum_dust.name=プロメチウムの粉末
item.duranite_dust.name=デュラナイトの粉末
item.valyrium_dust.name=ヴァリリウムの粉末
item.vibranium_dust.name=ヴィブラニウムの粉末
item.karmesine_dust.name=カルメシンの粉末
item.jauxum_dust.name=ジャクサムの粉末
item.ovium_dust.name=オヴィアムの粉末
item.terrax_dust.name=テラックスの粉末
item.palladium_dust.name=パラジウムの粉末
item.uru_dust.name=ウルの粉末
item.osram_dust.name=オスラムの粉末
item.abyssum_dust.name=アビサムの粉末
item.eezo_dust.name=エレメントゼロの粉末
item.triberium_dust.name=トリベリウムの粉末
item.fractum_dust.name=フラクタムの粉末
item.violium_dust.name=ヴァイオリウムの粉末
item.proxii_dust.name=プロッキーの粉末
item.tritonite_dust.name=トリトナイトの粉末
item.ignitz_dust.name=イグナイツの粉末
item.imperomite_dust.name=インペロマイトの粉末
item.solarium_dust.name=ソラリウムの粉末
item.nihilite_dust.name=ニヒライトの粉末
item.adamant_dust.name=アダマントの粉末
item.dyonite_dust.name=ディオナイトの粉末
item.nucleum_dust.name=ニュークラムの粉末
item.lumix_dust.name=ルミックスの粉末
item.seismum_dust.name=サイサムの粉末
item.astrium_dust.name=アストリウムの粉末
item.niob_dust.name=ニオブの粉末
item.yrdeen_dust.name=イェルデンの粉末
item.iox_dust.name=イオクスの粉末
item.meteorite_dust.name=メテオライトの粉末
item.obsidiorite_dust.name=オブシディオライトの粉末
item.magma_dust.name=マグマの粉末
item.nitronite_dust.name=ニトロナイトの粉末
item.basalt_ingot.name=玄武岩インゴット
item.tiberium_ingot.name=ティベリウムインゴット
item.dilithium_ingot.name=ダイリチウムインゴット
item.aurorium_ingot.name=オーロリウムインゴット
item.prometheum_ingot.name=プロメチウムインゴット
item.duranite_ingot.name=デュラナイトインゴット
item.valyrium_ingot.name=ヴァリリウムインゴット
item.vibranium_ingot.name=ヴィブラニウムインゴット
item.karmesine_ingot.name=カルメシンインゴット
item.jauxum_ingot.name=ジャクサムインゴット
item.ovium_ingot.name=オヴィアムインゴット
item.terrax_ingot.name=テラックスインゴット
item.palladium_ingot.name=パラジウムインゴット
item.uru_ingot.name=ウルインゴット
item.osram_ingot.name=オスラムインゴット
item.abyssum_ingot.name=アビサムインゴット
item.eezo_ingot.name=エレメントゼロインゴット
item.triberium_ingot.name=トリベリウムインゴット
item.fractum_ingot.name=フラクタムインゴット
item.violium_ingot.name=ヴァイオリウムインゴット
item.proxii_ingot.name=プロッキーインゴット
item.tritonite_ingot.name=トリトナイトインゴット
item.ignitz_ingot.name=イグナイツインゴット
item.imperomite_ingot.name=インペロマイトインゴット
item.solarium_ingot.name=ソラリウムインゴット
item.nihilite_ingot.name=ニヒライトインゴット
item.adamant_ingot.name=アダマントインゴット
item.dyonite_ingot.name=ディオナイトインゴット
item.nucleum_ingot.name=ニュークラムインゴット
item.lumix_ingot.name=ルミックスインゴット
item.seismum_ingot.name=サイサムインゴット
item.astrium_ingot.name=アストリウムインゴット
item.niob_ingot.name=ニオブインゴット
item.yrdeen_ingot.name=イェルデンインゴット
item.iox_ingot.name=イオクスインゴット
item.meteorite_ingot.name=メテオライトインゴット
item.obsidiorite_ingot.name=オブシディオライトインゴット
item.magma_ingot.name=マグマインゴット
item.nitronite_ingot.name=ニトロナイトインゴット
fluid.tconstruct.basalt_fluid.name=溶融玄武岩
fluid.tconstruct.tiberium_fluid.name=溶融ティベリウム
fluid.tconstruct.dilithium_fluid.name=溶融ダイリチウム
fluid.tconstruct.aurorium_fluid.name=溶融オーロリウム
fluid.tconstruct.prometheum_fluid.name=溶融プロメチウム
fluid.tconstruct.duranite_fluid.name=溶融デュラナイト
fluid.tconstruct.valyrium_fluid.name=溶融ヴァリリウム
fluid.tconstruct.vibranium_fluid.name=溶融ヴィブラニウム
fluid.tconstruct.karmesine_fluid.name=溶融カルメシン
fluid.tconstruct.jauxum_fluid.name=溶融ジャクサム
fluid.tconstruct.ovium_fluid.name=溶融オヴィアム
fluid.tconstruct.terrax_fluid.name=溶融テラックス
fluid.tconstruct.palladium_fluid.name=溶融パラジウム
fluid.tconstruct.uru_fluid.name=溶融ウル
fluid.tconstruct.osram_fluid.name=溶融オスラム
fluid.tconstruct.abyssum_fluid.name=溶融アビサム
fluid.tconstruct.eezo_fluid.name=溶融エレメントゼロ
fluid.tconstruct.triberium_fluid.name=溶融トリベリウム
fluid.tconstruct.fractum_fluid.name=溶融フラクタム
fluid.tconstruct.violium_fluid.name=溶融ヴァイオリウム
fluid.tconstruct.proxii_fluid.name=溶融プロッキー
fluid.tconstruct.tritonite_fluid.name=溶融トリトナイト
fluid.tconstruct.ignitz_fluid.name=溶融イグナイツ
fluid.tconstruct.imperomite_fluid.name=溶融インペロマイト
fluid.tconstruct.solarium_fluid.name=溶融ソラリウム
fluid.tconstruct.nihilite_fluid.name=溶融ニヒライト
fluid.tconstruct.adamant_fluid.name=溶融アダマント
fluid.tconstruct.dyonite_fluid.name=溶融ディオナイト
fluid.tconstruct.nucleum_fluid.name=溶融ニュークラム
fluid.tconstruct.lumix_fluid.name=溶融ルミックス
fluid.tconstruct.seismum_fluid.name=溶融サイサム
fluid.tconstruct.astrium_fluid.name=溶融アストリウム
fluid.tconstruct.niob_fluid.name=溶融ニオブ
fluid.tconstruct.yrdeen_fluid.name=溶融イェルデン
fluid.tconstruct.iox_fluid.name=溶融イオクス
fluid.tconstruct.meteorite_fluid.name=溶融メテオライト
fluid.tconstruct.obsidiorite_fluid.name=溶融オブシディオライト
fluid.tconstruct.magma_fluid.name=溶融マグマ
fluid.tconstruct.nitronite_fluid.name=溶融ニトロナイト
modifier.catcher.name=キャッチャー
modifier.catcher.desc=§oゲットだぜ§r\nランダムにMobを捕まえて保持し...解き放つ!
modifier.analysing.name=分析
modifier.analysing.desc=§o私はあなたを知っている§r\nドロップが減る代わりに入手経験値が増える
modifier.congenial.name=会心
modifier.congenial.desc=§oあなたは私のライバルだ§r\n既に知っている敵に対してダメージが増加する。
modifier.arcane.name=秘儀
modifier.arcane.desc=§o外出しよう真っ暗だ§r\n夜間は道具の長持ちに良い。
modifier.blind.name=盲目
modifier.blind.desc=§o真夜中に、私は見ることができない§r\n暗闇は弱さとさらなる闇をもたらす。
modifier.bright.name=まぶしい
modifier.bright.desc=§o明るい日だ、強くなったように感じる§r\n昼間に輝く。
modifier.cascade.name=カスケード
modifier.cascade.desc=§o壁を通して§r\nさまよう地震のようにブロックを壊す。
modifier.curvature.name=屈曲
modifier.curvature.desc=§o私を引っ張る§r\n時々あなたやあなたの周辺をテレポートさせる。
modifier.dark.name=暗闇
modifier.dark.desc=§o外は暗い、戦おう§r\n夜間にあなたは強くなる。
modifier.diffuse.name=拡散
modifier.diffuse.desc=§o学ぶことはたくさんある§r\n通常のブロックが経験値を出すが、ドロップがなくなることがある。
modifier.dissolving.name=溶解
modifier.dissolving.desc=§oこれはたくさんあるようだ§r\n時々経験値を落とさない代わりに莫大な見返りがある。
modifier.fracture.name=破壊
modifier.fracture.desc=§o破裂§r\nブロックを一直線に破壊する。
modifier.fragile.name=脆い
modifier.fragile.desc=§o地震§r\nブロックにヒビが入り、道具の耐久度が落ちる。
modifier.garishly.name=ギラギラ
modifier.garishly.desc=§oとても暑い。§r\n本当に燃えるものをドロップする。
modifier.glimmer.name=煌めき
modifier.glimmer.desc=§o私には暗闇がない§r\n時々暗視の効果が付く。
modifier.heroic.name=勇敢
modifier.heroic.desc=§oあなたが死ぬまで。§r\nジ・エンドに近づくと、あなたは強くなる。
modifier.hollow.name=虚ろ
modifier.hollow.desc=§o脳死§r\nあなたの敵は愚かになる。
modifier.unstable.name=不安定
modifier.unstable.desc=§oこれを感じられる§r\n残念ながら、これは完全に不安定だ。爆発するかも
modifier.naturebound.name=ネイチャーバウンド
modifier.naturebound.desc=§o自然と一体化§r\nいくつかのブロックで道具が修復される。
modifier.pulverizing.name=粉砕
modifier.pulverizing.desc=§o粉々だ§r\n多くのドロップを破壊する。
modifier.resonance.name=共振
modifier.resonance.desc=§o振動を感じる§r\n敵がダメージを受けると遠くに飛ぶことがある。
modifier.slaughtering.name=虐殺
modifier.slaughtering.desc=§oおいしい§r\nあなたが肉をもっとたくさん食べられるなら、誰が経験値を必要とするのか
modifier.softy.name=柔らかい
modifier.softy.desc=§o私は土を愛している§r\n土を掘ると癒される
modifier.uncertain.name=不確実
modifier.uncertain.desc=§o使うのはちょっと危険。§r\n少なくとも不安定ではないが...あるいは?
modifier.reviving.name=復活
modifier.reviving.desc=§o既に倒しているのに§r\nゾンビのように復活する
modifier.melting.name=溶融
modifier.melting.desc=§oひどく熱い§r\nブロックを溶岩に変化させる
modifier.cursed.name=呪い
modifier.cursed.desc=§o具合がよくない§r\n多くの敵を倒すほど、ランダムダメージを受ける可能性が増える。
modifier.superheavy.name=超重量
modifier.superheavy.desc=§o重さは9000以上§r\nたくさん採掘すると、より疲れる。
modifier.whirl.name=渦
modifier.whirl.desc=§oスポンジのようだ§r\n周囲の水を除去する。
modifier.souleater.name=ソウルイーター
modifier.souleater.desc=§oたくさん倒してベテランになる§r\n多くの敵を倒すと、武器が強くなる。
modifier.berserk.name=バーサーク
modifier.berserk.desc=§oハルクになる§r\n生命力を消費して、3倍の速さと強さを得る。
modifier.tantrum.name=癇癪
modifier.tantrum.desc=§o爆発をキャスト§r\n積み重ねた爆発物を起動させても、傷つくことはない。
modifier.decay.name=減衰
modifier.decay.desc=§o放射性§r\nあなたの道具は時間経過と共に消えていく。
modifier.ported.name=転送
modifier.ported.desc=§o私をテレポートさせろ§r\n右クリックで洞窟からの脱出を試みる。何度かの思考が必要。
modifier.crushing.name=圧砕
modifier.crushing.desc=石を採掘すると砂、砂利、丸石、石のいずれかが落ちる。
modifier.crushing.name=平準化
modifier.crushing.desc=制作中
gui.taiga_configuration.mainTitle=TAIGA 設定
itemGroup.taiga_block=TAIGA ブロック
itemGroup.taiga_item=TAIGA アイテム
key.taiga.alt_action=Modの道具
harvestlevel.valyrium=%1$sヴァリリウム%2$s
harvestlevel.duranite=%1$sデュラナイト%2$s
harvestlevel.vibranium=%1$sヴィブラニウム%2$s

View File

@@ -325,8 +325,8 @@ modifier.heroic.name=英勇
modifier.heroic.desc=§o至死方休。§r\n在生命结束前你会变得更强壮。 modifier.heroic.desc=§o至死方休。§r\n在生命结束前你会变得更强壮。
modifier.hollow.name=虚伪 modifier.hollow.name=虚伪
modifier.hollow.desc=§o吃掉了你的脑子§r\n粉碎脑子 modifier.hollow.desc=§o吃掉了你的脑子§r\n粉碎脑子
modifier.instable.name=不稳定 modifier.unstable.name=不稳定
modifier.instable.desc=§o你真的这么觉得§r\n真的它很不稳定 modifier.unstable.desc=§o你真的这么觉得§r\n真的它很不稳定
modifier.naturebound.name=自然之束 modifier.naturebound.name=自然之束
modifier.naturebound.desc=§o你与自然融为一体§r\n以自然之名复原。 modifier.naturebound.desc=§o你与自然融为一体§r\n以自然之名复原。
modifier.pulverizing.name=摧毁 modifier.pulverizing.name=摧毁

View File

@@ -325,8 +325,8 @@ modifier.heroic.name=英勇
modifier.heroic.desc=§o至死不屈。§r\n當末日來臨 你將變得更強。 modifier.heroic.desc=§o至死不屈。§r\n當末日來臨 你將變得更強。
modifier.hollow.name=中空 modifier.hollow.name=中空
modifier.hollow.desc=§o腦死§r\n讓你的敵人變笨。 modifier.hollow.desc=§o腦死§r\n讓你的敵人變笨。
modifier.instable.name=不穩定 modifier.unstable.name=不穩定
modifier.instable.desc=§o你感覺得到嗎§r\n說真的 這東西十分不穩定! 有可能會爆炸! modifier.unstable.desc=§o你感覺得到嗎§r\n說真的 這東西十分不穩定! 有可能會爆炸!
modifier.naturebound.name=自然綁定 modifier.naturebound.name=自然綁定
modifier.naturebound.desc=§o你是周遭的一份子§r\n在幾個方塊上修復工具。 modifier.naturebound.desc=§o你是周遭的一份子§r\n在幾個方塊上修復工具。
modifier.pulverizing.name=粉碎 modifier.pulverizing.name=粉碎

View File

@@ -4,7 +4,7 @@
"description": "An addon for Tinkers' Construct! 32 New Materials including 16 various alloys.", "description": "An addon for Tinkers' Construct! 32 New Materials including 16 various alloys.",
"version": "${version}", "version": "${version}",
"mcversion": "${mcversion}", "mcversion": "${mcversion}",
"url": "https://github.com/Zkaface/TAIGA", "url": "https://gitlab.harting.hosting/TeamFRM/TAIGA",
"updateUrl": "", "updateUrl": "",
"authorList": ["Zkaface", "Chefe"], "authorList": ["Zkaface", "Chefe"],
"credits": "Chefe. He's there, if you need him. Sometimes.", "credits": "Chefe. He's there, if you need him. Sometimes.",