summaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/sosnitzka/taiga/Blocks.java5
-rw-r--r--src/main/java/com/sosnitzka/taiga/Items.java2
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java5
-rw-r--r--src/main/java/com/sosnitzka/taiga/util/TickTask.java28
-rw-r--r--src/main/java/com/sosnitzka/taiga/util/TickTaskHandler.java39
5 files changed, 72 insertions, 7 deletions
diff --git a/src/main/java/com/sosnitzka/taiga/Blocks.java b/src/main/java/com/sosnitzka/taiga/Blocks.java
index 9773e4b..37dbd49 100644
--- a/src/main/java/com/sosnitzka/taiga/Blocks.java
+++ b/src/main/java/com/sosnitzka/taiga/Blocks.java
@@ -15,7 +15,8 @@ import java.lang.reflect.Field;
import java.util.Arrays;
import static com.sosnitzka.taiga.MaterialTraits.*;
-import static com.sosnitzka.taiga.util.Utils.*;
+import static com.sosnitzka.taiga.util.Utils.PREFIX_BLOCK;
+import static com.sosnitzka.taiga.util.Utils.PREFIX_ORE;
import static slimeknights.tconstruct.library.utils.HarvestLevels.*;
public class Blocks {
@@ -90,8 +91,6 @@ public class Blocks {
public static Block proxideumBlock = new BasicBlock("proxideum_block", Material.ROCK, 25.0f, 25.0f, 4, PREFIX_BLOCK);
public static Block astriumBlock = new BasicBlock("astrium_block", Material.ROCK, 55.0f, 400.0f, 7, PREFIX_BLOCK);
- //public static Block fluidBlock = new BlockMolten(Fluids.astriumFluid);
-
public static void register() {
Field[] declaredFields = Blocks.class.getDeclaredFields();
diff --git a/src/main/java/com/sosnitzka/taiga/Items.java b/src/main/java/com/sosnitzka/taiga/Items.java
index 2f91b35..99e4e45 100644
--- a/src/main/java/com/sosnitzka/taiga/Items.java
+++ b/src/main/java/com/sosnitzka/taiga/Items.java
@@ -102,10 +102,10 @@ public class Items {
}
}
}
+
OreDictionary.registerOre("nuggetIron", iron_nugget);
OreDictionary.registerOre("ingotIron", slagironIngot);
OreDictionary.registerOre("ingotGold", slaggoldIngot);
-
}
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
index c49de62..618d249 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
@@ -19,11 +19,13 @@ public class TraitCascade extends AbstractTrait {
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase player, boolean wasEffective) {
float f = random.nextFloat();
float b = 0.99F * calcBonus(tool);
+
if (!world.isRemote && tool.canHarvestBlock(state) && f <= b) {
double x, y, z, sx, sy, sz;
sx = x = pos.getX();
sy = y = pos.getY();
sz = z = pos.getZ();
+
for (int i = random.nextInt(ToolHelper.getCurrentDurability(tool)); i > 0; i--) {
int r = random.nextInt(3);
int d = random.nextBoolean() ? 1 : -1;
@@ -42,11 +44,8 @@ public class TraitCascade extends AbstractTrait {
y = sy;
z = sz;
}
-
}
-
}
-
}
private float calcBonus(ItemStack tool) {
diff --git a/src/main/java/com/sosnitzka/taiga/util/TickTask.java b/src/main/java/com/sosnitzka/taiga/util/TickTask.java
new file mode 100644
index 0000000..a928c68
--- /dev/null
+++ b/src/main/java/com/sosnitzka/taiga/util/TickTask.java
@@ -0,0 +1,28 @@
+package com.sosnitzka.taiga.util;
+
+
+public class TickTask {
+ private Runnable task;
+ private int targetTicks = 0;
+ private int ticks;
+
+ public TickTask(int targetTicks, Runnable runnable) {
+ this.task = runnable;
+ this.targetTicks = targetTicks;
+ }
+
+ public TickTask(Runnable runnable) {
+ this.task = runnable;
+ this.targetTicks = 1;
+ }
+
+ public boolean tickRun() {
+ ticks++;
+
+ if (ticks >= targetTicks) {
+ this.task.run();
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/sosnitzka/taiga/util/TickTaskHandler.java b/src/main/java/com/sosnitzka/taiga/util/TickTaskHandler.java
new file mode 100644
index 0000000..c11921e
--- /dev/null
+++ b/src/main/java/com/sosnitzka/taiga/util/TickTaskHandler.java
@@ -0,0 +1,39 @@
+package com.sosnitzka.taiga.util;
+
+
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+public class TickTaskHandler {
+ private List<TickTask> tickTasks = new ArrayList<TickTask>();
+
+
+ private TickTaskHandler() {
+ }
+
+ public static TickTaskHandler getInstance() {
+ return InstanceHolder.INSTANCE;
+ }
+
+ @SubscribeEvent
+ public void onTick(TickEvent.ServerTickEvent e) {
+ for (Iterator<TickTask> iterator = tickTasks.iterator(); iterator.hasNext(); ) {
+ TickTask task = iterator.next();
+ if (task.tickRun()) {
+ iterator.remove();
+ }
+ }
+ }
+
+ public void addTask(TickTask tickTask) {
+ tickTasks.add(tickTask);
+ }
+
+ private static final class InstanceHolder {
+ static final TickTaskHandler INSTANCE = new TickTaskHandler();
+ }
+}