summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemStep.java
diff options
context:
space:
mode:
authorbloodshot <jdroque@gmail.com>2014-01-06 00:17:16 -0500
committerNate Mortensen <nate.richard.mortensen@gmail.com>2014-04-23 21:25:55 -0600
commit576758bc55941e673b1c4bf5727a1e1329ef29cd (patch)
treeb3e114f8d5852efafe2827a9a392d11a7ce519f2 /src/main/java/net/minecraft/server/ItemStep.java
parentde97b62b8945ec7a05c7b6813a6317606f46faaf (diff)
downloadcraftbukkit-576758bc55941e673b1c4bf5727a1e1329ef29cd.tar
craftbukkit-576758bc55941e673b1c4bf5727a1e1329ef29cd.tar.gz
craftbukkit-576758bc55941e673b1c4bf5727a1e1329ef29cd.tar.lz
craftbukkit-576758bc55941e673b1c4bf5727a1e1329ef29cd.tar.xz
craftbukkit-576758bc55941e673b1c4bf5727a1e1329ef29cd.zip
Refactored BlockPlaceEvent and BlockChangeDelegate. Adds BUKKIT-5558
23 classes have been removed as they are no longer needed using the new capture logic. This should help quite a bit with future MC updates. BlockPlaceEvent Refactor Before calling Item.interactWith, a recording flag is turned on for setTypeAndData to capture a blockstate for each block that attempts to be set. When a block place event is cancelled, the recorded blockstate, stack size, and metadata will revert back to the captured state. If the event is not cancelled, a notification will be sent to clients and block physics will be updated. BlockChangeDelegate Refactor Now that we have the ability to capture blockstates through world, there is no need to modify world gen classes with BlockChangeDelegate. Instead we will simply capture blocks during world generation in order to "replay" all of the captured blockstates to send back to delegates. StructureGrowDelegate and BlockSapling.TreeGenerator have also been removed as part of this change. BlockSapling and BlockMushroom will capture blockstates the same as block placement and revert back any grow events if needed.
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemStep.java')
-rw-r--r--src/main/java/net/minecraft/server/ItemStep.java100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/main/java/net/minecraft/server/ItemStep.java b/src/main/java/net/minecraft/server/ItemStep.java
deleted file mode 100644
index 56fb09e1..00000000
--- a/src/main/java/net/minecraft/server/ItemStep.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package net.minecraft.server;
-
-public class ItemStep extends ItemBlock {
-
- private final boolean b;
- private final BlockStepAbstract c;
- private final BlockStepAbstract d;
-
- public ItemStep(Block block, BlockStepAbstract blockstepabstract, BlockStepAbstract blockstepabstract1, boolean flag) {
- super(block);
- this.c = blockstepabstract;
- this.d = blockstepabstract1;
- this.b = flag;
- this.setMaxDurability(0);
- this.a(true);
- }
-
- public int filterData(int i) {
- return i;
- }
-
- public String a(ItemStack itemstack) {
- return this.c.b(itemstack.getData());
- }
-
- public boolean interactWith(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l, float f, float f1, float f2) {
- final int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
- if (this.b) {
- return super.interactWith(itemstack, entityhuman, world, i, j, k, l, f, f1, f2);
- } else if (itemstack.count == 0) {
- return false;
- } else if (!entityhuman.a(i, j, k, l, itemstack)) {
- return false;
- } else {
- Block block = world.getType(i, j, k);
- int i1 = world.getData(i, j, k);
- int j1 = i1 & 7;
- boolean flag = (i1 & 8) != 0;
-
- if ((l == 1 && !flag || l == 0 && flag) && block == this.c && j1 == itemstack.getData()) {
- // CraftBukkit start - world.setTypeIdAndData -> processBlockPlace()
- // if (world.b(this.d.a(world, i, j, k)) && world.setTypeAndData(i, j, k, this.d, j1, 3)) {
- if (world.b(this.d.a(world, i, j, k)) && processBlockPlace(world, entityhuman, null, i, j, k, this.d, j1, clickedX, clickedY, clickedZ)) {
- // world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), this.d.stepSound.getPlaceSound(), (this.d.stepSound.getVolume1() + 1.0F) / 2.0F, this.d.stepSound.getVolume2() * 0.8F);
- // CraftBukkit end
- --itemstack.count;
- }
-
- return true;
- } else {
- return this.a(itemstack, entityhuman, world, i, j, k, l) ? true : super.interactWith(itemstack, entityhuman, world, i, j, k, l, f, f1, f2);
- }
- }
- }
-
- private boolean a(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) {
- final int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit
- if (l == 0) {
- --j;
- }
-
- if (l == 1) {
- ++j;
- }
-
- if (l == 2) {
- --k;
- }
-
- if (l == 3) {
- ++k;
- }
-
- if (l == 4) {
- --i;
- }
-
- if (l == 5) {
- ++i;
- }
-
- Block block = world.getType(i, j, k);
- int i1 = world.getData(i, j, k);
- int j1 = i1 & 7;
-
- if (block == this.c && j1 == itemstack.getData()) {
- // CraftBukkit start - world.setTypeIdAndData -> processBlockPlace()
- // if (world.b(this.d.a(world, i, j, k)) && world.setTypeAndData(i, j, k, this.d, j1, 3)) {
- if (world.b(this.d.a(world, i, j, k)) && processBlockPlace(world, entityhuman, null, i, j, k, this.d, j1, clickedX, clickedY, clickedZ)) {
- // world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), this.d.stepSound.getPlaceSound(), (this.d.stepSound.getVolume1() + 1.0F) / 2.0F, this.d.stepSound.getVolume2() * 0.8F);
- // CraftBukkit end
- --itemstack.count;
- }
-
- return true;
- } else {
- return false;
- }
- }
-}