Fixed unported stuff, tree cutter now does sound effects at the right probability again
This commit is contained in:
parent
2613c5be89
commit
ac8c1e1468
3 changed files with 14 additions and 13 deletions
|
@ -1,15 +1,13 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.pulley;
|
||||
|
||||
import net.minecraft.client.renderer.Vector3f;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.ILightReader;
|
||||
import net.minecraft.util.math.vector.Vector3f;
|
||||
import net.minecraft.world.IBlockDisplayReader;
|
||||
import net.minecraft.world.LightType;
|
||||
|
||||
import java.util.Arrays;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
|
||||
import com.simibubi.create.foundation.render.backend.core.OrientedData;
|
||||
|
@ -20,7 +18,6 @@ import com.simibubi.create.foundation.render.backend.instancing.util.SelectInsta
|
|||
import com.simibubi.create.foundation.render.backend.light.GridAlignedBB;
|
||||
import com.simibubi.create.foundation.render.backend.light.LightUpdateListener;
|
||||
import com.simibubi.create.foundation.render.backend.light.LightUpdater;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
public abstract class AbstractPulleyInstance extends ShaftInstance implements IDynamicInstance, LightUpdateListener {
|
||||
|
||||
|
@ -175,7 +172,7 @@ public abstract class AbstractPulleyInstance extends ShaftInstance implements ID
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean onLightUpdate(ILightReader world, LightType type, GridAlignedBB changed) {
|
||||
public boolean onLightUpdate(IBlockDisplayReader world, LightType type, GridAlignedBB changed) {
|
||||
changed.intersectAssign(volume);
|
||||
|
||||
initLight(world, changed);
|
||||
|
@ -183,7 +180,7 @@ public abstract class AbstractPulleyInstance extends ShaftInstance implements ID
|
|||
return false;
|
||||
}
|
||||
|
||||
private void initLight(ILightReader world, GridAlignedBB changed) {
|
||||
private void initLight(IBlockDisplayReader world, GridAlignedBB changed) {
|
||||
int top = this.pos.getY();
|
||||
BlockPos.Mutable pos = new BlockPos.Mutable();
|
||||
changed.forEachContained((x, y, z) -> {
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.pulley;
|
||||
|
||||
import net.minecraft.world.ILightReader;
|
||||
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.foundation.render.backend.core.OrientedData;
|
||||
import com.simibubi.create.foundation.render.backend.instancing.InstancedModel;
|
||||
import com.simibubi.create.foundation.render.backend.instancing.InstancedTileRenderer;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.simibubi.create.foundation.utility;
|
||||
|
||||
import com.google.common.collect.Iterators;
|
||||
import com.simibubi.create.AllTags;
|
||||
import net.minecraft.block.*;
|
||||
import net.minecraft.entity.LivingEntity;
|
||||
|
@ -18,6 +17,7 @@ import javax.annotation.Nonnull;
|
|||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class TreeCutter {
|
||||
|
@ -221,12 +221,18 @@ public class TreeCutter {
|
|||
public void destroyBlocks(World world, @Nullable LivingEntity entity, BiConsumer<BlockPos, ItemStack> drop) {
|
||||
PlayerEntity playerEntity = entity instanceof PlayerEntity ? ((PlayerEntity) entity) : null;
|
||||
ItemStack toDamage = playerEntity != null && !playerEntity.isCreative() ? playerEntity.getHeldItemMainhand() : ItemStack.EMPTY;
|
||||
Iterators.concat(logs.iterator(), leaves.iterator()).forEachRemaining(pos -> {
|
||||
|
||||
logs.forEach(makeCallbackFor(world, 1/2f, toDamage, playerEntity, drop));
|
||||
leaves.forEach(makeCallbackFor(world, 1/8f, toDamage, playerEntity, drop));
|
||||
}
|
||||
|
||||
private Consumer<BlockPos> makeCallbackFor(World world, float effectChance, ItemStack toDamage, @Nullable PlayerEntity playerEntity, BiConsumer<BlockPos, ItemStack> drop) {
|
||||
return pos -> {
|
||||
ItemStack usedTool = toDamage.copy();
|
||||
BlockHelper.destroyBlockAs(world, pos, playerEntity, toDamage, 1 / 2f, stack -> drop.accept(pos, stack));
|
||||
BlockHelper.destroyBlockAs(world, pos, playerEntity, toDamage, effectChance, stack -> drop.accept(pos, stack));
|
||||
if (toDamage.isEmpty() && !usedTool.isEmpty())
|
||||
ForgeEventFactory.onPlayerDestroyItem(playerEntity, usedTool, Hand.MAIN_HAND);
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue