mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-25 20:58:34 +01:00
parent
21963f782d
commit
444aae4bea
3 changed files with 22 additions and 3 deletions
|
@ -6,12 +6,14 @@ import de.ellpeck.naturesaura.Helper;
|
||||||
import de.ellpeck.naturesaura.NaturesAura;
|
import de.ellpeck.naturesaura.NaturesAura;
|
||||||
import de.ellpeck.naturesaura.api.NaturesAuraAPI;
|
import de.ellpeck.naturesaura.api.NaturesAuraAPI;
|
||||||
import de.ellpeck.naturesaura.api.aura.chunk.IAuraChunk;
|
import de.ellpeck.naturesaura.api.aura.chunk.IAuraChunk;
|
||||||
|
import de.ellpeck.naturesaura.api.misc.IWorldData;
|
||||||
import de.ellpeck.naturesaura.chunk.AuraChunk;
|
import de.ellpeck.naturesaura.chunk.AuraChunk;
|
||||||
import de.ellpeck.naturesaura.chunk.AuraChunkProvider;
|
import de.ellpeck.naturesaura.chunk.AuraChunkProvider;
|
||||||
import de.ellpeck.naturesaura.commands.CommandAura;
|
import de.ellpeck.naturesaura.commands.CommandAura;
|
||||||
import de.ellpeck.naturesaura.misc.WorldData;
|
import de.ellpeck.naturesaura.misc.WorldData;
|
||||||
import de.ellpeck.naturesaura.packet.PacketHandler;
|
import de.ellpeck.naturesaura.packet.PacketHandler;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.math.ChunkPos;
|
import net.minecraft.util.math.ChunkPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@ -21,6 +23,7 @@ import net.minecraft.world.server.ChunkManager;
|
||||||
import net.minecraft.world.server.ServerChunkProvider;
|
import net.minecraft.world.server.ServerChunkProvider;
|
||||||
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
import net.minecraftforge.event.AttachCapabilitiesEvent;
|
||||||
import net.minecraftforge.event.TickEvent;
|
import net.minecraftforge.event.TickEvent;
|
||||||
|
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
|
||||||
import net.minecraftforge.event.world.ChunkWatchEvent;
|
import net.minecraftforge.event.world.ChunkWatchEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
|
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
|
||||||
|
@ -47,6 +50,18 @@ public class CommonEvents {
|
||||||
event.addCapability(new ResourceLocation(NaturesAura.MOD_ID, "data"), new WorldData());
|
event.addCapability(new ResourceLocation(NaturesAura.MOD_ID, "data"), new WorldData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onItemUse(PlayerInteractEvent.RightClickBlock event) {
|
||||||
|
PlayerEntity player = event.getPlayer();
|
||||||
|
if (player.world.isRemote)
|
||||||
|
return;
|
||||||
|
ItemStack held = event.getItemStack();
|
||||||
|
if (!held.isEmpty() && held.getItem().getRegistryName().getPath().contains("chisel")) {
|
||||||
|
WorldData data = (WorldData) IWorldData.getWorldData(player.world);
|
||||||
|
data.addMossStone(event.getPos());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onWorldTick(TickEvent.WorldTickEvent event) {
|
public void onWorldTick(TickEvent.WorldTickEvent event) {
|
||||||
if (!event.world.isRemote && event.phase == TickEvent.Phase.END) {
|
if (!event.world.isRemote && event.phase == TickEvent.Phase.END) {
|
||||||
|
|
|
@ -55,9 +55,7 @@ public class ItemPickaxe extends PickaxeItem implements IModItem, ICustomItemMod
|
||||||
world.setBlockState(pos, result);
|
world.setBlockState(pos, result);
|
||||||
|
|
||||||
WorldData data = (WorldData) IWorldData.getWorldData(world);
|
WorldData data = (WorldData) IWorldData.getWorldData(world);
|
||||||
data.recentlyConvertedMossStones.add(pos);
|
data.addMossStone(pos);
|
||||||
if (data.recentlyConvertedMossStones.size() > 512)
|
|
||||||
data.recentlyConvertedMossStones.remove(0);
|
|
||||||
}
|
}
|
||||||
world.playSound(player, pos, SoundEvents.BLOCK_STONE_PLACE, SoundCategory.BLOCKS, 1.0F, 1.0F);
|
world.playSound(player, pos, SoundEvents.BLOCK_STONE_PLACE, SoundCategory.BLOCKS, 1.0F, 1.0F);
|
||||||
stack.damageItem(15, player, playerEntity -> playerEntity.sendBreakAnimation(context.getHand()));
|
stack.damageItem(15, player, playerEntity -> playerEntity.sendBreakAnimation(context.getHand()));
|
||||||
|
|
|
@ -90,4 +90,10 @@ public class WorldData implements IWorldData {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addMossStone(BlockPos pos) {
|
||||||
|
this.recentlyConvertedMossStones.add(pos);
|
||||||
|
if (this.recentlyConvertedMossStones.size() > 512)
|
||||||
|
this.recentlyConvertedMossStones.remove(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue