Now compiles on Spout and basic block setting works

This commit is contained in:
zml2008 2013-01-19 18:29:53 -08:00
parent a800ced4b9
commit 718457b1ff
7 changed files with 58 additions and 30 deletions

View File

@ -279,7 +279,7 @@
<dependency>
<groupId>org.spout</groupId>
<artifactId>vanilla</artifactId>
<version>1.3.2-SNAPSHOT</version>
<version>1.4.7-SNAPSHOT</version>
<optional>true</optional>
</dependency>
</dependencies>

View File

@ -31,15 +31,15 @@ import com.sk89q.worldedit.cui.CUIEvent;
import org.spout.api.Client;
import org.spout.api.chat.style.ChatStyle;
import org.spout.api.component.components.TransformComponent;
import org.spout.api.component.impl.TransformComponent;
import org.spout.api.geo.discrete.Point;
import org.spout.api.inventory.Inventory;
import org.spout.api.inventory.ItemStack;
import org.spout.api.entity.Player;
import org.spout.vanilla.component.inventory.PlayerInventory;
import org.spout.vanilla.component.living.neutral.Human;
import org.spout.vanilla.material.VanillaMaterial;
import org.spout.vanilla.material.VanillaMaterials;
import org.spout.vanilla.api.inventory.Slot;
import org.spout.vanilla.plugin.component.inventory.PlayerInventory;
import org.spout.vanilla.plugin.component.living.neutral.Human;
import org.spout.vanilla.api.material.VanillaMaterial;
import org.spout.vanilla.plugin.material.VanillaMaterials;
public class SpoutPlayer extends LocalPlayer {
private Player player;
@ -55,8 +55,11 @@ public class SpoutPlayer extends LocalPlayer {
@Override
public int getItemInHand() {
if (player.has(Human.class)) {
return ((VanillaMaterial) player.get(PlayerInventory.class).getQuickbar()
.getCurrentItem().getMaterial()).getMinecraftId();
Slot slot = player.get(PlayerInventory.class).getQuickbar().getSelectedSlot();
if (slot.get() == null) {
return 0;
}
return ((VanillaMaterial) slot.get().getMaterial()).getMinecraftId();
} else {
return 0;
}

View File

@ -33,9 +33,9 @@ import org.spout.api.inventory.Inventory;
import org.spout.api.inventory.ItemStack;
import org.spout.api.material.Material;
import org.spout.api.entity.Player;
import org.spout.vanilla.component.inventory.PlayerInventory;
import org.spout.vanilla.component.living.neutral.Human;
import org.spout.vanilla.material.VanillaMaterials;
import org.spout.vanilla.plugin.component.inventory.PlayerInventory;
import org.spout.vanilla.plugin.component.living.neutral.Human;
import org.spout.vanilla.plugin.material.VanillaMaterials;
public class SpoutPlayerBlockBag extends BlockBag {
/**

View File

@ -32,7 +32,7 @@ import org.spout.api.geo.World;
import org.spout.api.material.Material;
import org.spout.api.material.MaterialRegistry;
import org.spout.api.scheduler.TaskPriority;
import org.spout.vanilla.material.VanillaMaterial;
import org.spout.vanilla.api.material.VanillaMaterial;
import java.lang.reflect.Method;
import java.util.ArrayList;
@ -76,7 +76,7 @@ public class SpoutServerInterface extends ServerInterface {
@Override
public int schedule(long delay, long period, Runnable task) {
return game.getScheduler().scheduleSyncRepeatingTask(plugin, task, delay * 50, period * 50, TaskPriority.NORMAL);
return game.getScheduler().scheduleSyncRepeatingTask(plugin, task, delay * 50, period * 50, TaskPriority.NORMAL).getTaskId();
}
@Override

View File

@ -50,17 +50,18 @@ import org.spout.api.inventory.ItemStack;
import org.spout.api.material.BlockMaterial;
import org.spout.api.material.Material;
import org.spout.api.math.Vector3;
import org.spout.vanilla.component.substance.Item;
import org.spout.vanilla.component.substance.Painting;
import org.spout.vanilla.component.substance.XPOrb;
import org.spout.vanilla.component.substance.object.Tnt;
import org.spout.vanilla.component.substance.object.projectile.Arrow;
import org.spout.vanilla.component.substance.object.vehicle.Boat;
import org.spout.vanilla.component.substance.object.vehicle.Minecart;
import org.spout.vanilla.material.VanillaMaterial;
import org.spout.vanilla.material.VanillaMaterials;
import org.spout.vanilla.world.generator.normal.object.tree.TreeObject;
import org.spout.vanilla.world.generator.normal.object.tree.SmallTreeObject;
import org.spout.vanilla.plugin.component.substance.Item;
import org.spout.vanilla.plugin.component.substance.Painting;
import org.spout.vanilla.plugin.component.substance.XPOrb;
import org.spout.vanilla.plugin.component.substance.object.Tnt;
import org.spout.vanilla.plugin.component.substance.object.projectile.Arrow;
import org.spout.vanilla.plugin.component.substance.object.vehicle.Boat;
import org.spout.vanilla.plugin.component.substance.object.vehicle.Minecart;
import org.spout.vanilla.api.material.VanillaMaterial;
import org.spout.vanilla.plugin.material.VanillaMaterials;
import org.spout.vanilla.plugin.world.generator.normal.object.tree.TreeObject;
import org.spout.vanilla.plugin.world.generator.normal.object.tree.SmallTreeObject;
import org.spout.vanilla.plugin.world.generator.object.VanillaObjects;
import javax.annotation.Nullable;
import java.util.ArrayList;
@ -97,6 +98,24 @@ public class SpoutWorld extends LocalWorld {
return world.getName();
}
public Material getSpoutMaterial(int id) {
switch (id) {
case 0:
return BlockMaterial.AIR;
default:
return VanillaMaterials.getMaterial((short) id);
}
}
public Material getSpoutMaterial(int id, int data) {
switch (id) {
case 0:
return BlockMaterial.AIR;
default:
return VanillaMaterials.getMaterial((short) id, (short) data);
}
}
/**
* Set block type.
*
@ -106,7 +125,7 @@ public class SpoutWorld extends LocalWorld {
*/
@Override
public boolean setBlockType(Vector pt, int type) {
Material mat = VanillaMaterials.getMaterial((short) type);
Material mat = getSpoutMaterial(type);
if (mat != null && mat instanceof BlockMaterial) {
final int x = pt.getBlockX();
final int y = pt.getBlockY();
@ -137,7 +156,7 @@ public class SpoutWorld extends LocalWorld {
*/
@Override
public boolean setTypeIdAndData(Vector pt, int type, int data) {
Material mat = VanillaMaterials.getMaterial((short) type, (short) data);
Material mat = getSpoutMaterial(type, data);
if (mat != null && mat instanceof BlockMaterial) {
final int x = pt.getBlockX();
final int y = pt.getBlockY();
@ -454,6 +473,7 @@ public class SpoutWorld extends LocalWorld {
@Override
public boolean generateTree(TreeGenerator.TreeType type, EditSession editSession, Vector pt)
throws MaxChangedBlocksException {
//VanillaObjects.byName()
TreeObject tree = new SmallTreeObject(); //TODO: properly check for tree type
if (!tree.canPlaceObject(world, pt.getBlockX(), pt.getBlockY(), pt.getBlockZ())) {
return false;
@ -722,7 +742,7 @@ public class SpoutWorld extends LocalWorld {
*/
@Override
public boolean isValidBlockType(int type) {
return VanillaMaterials.getMaterial((short)type) instanceof BlockMaterial;
return getSpoutMaterial(type) instanceof BlockMaterial;
}
@Override
@ -745,7 +765,7 @@ public class SpoutWorld extends LocalWorld {
@Override
public int getMaxY() {
return world.getHeight() - 1;
return world.getHeight() - 1; //TODO: We have infinite-height worlds now
}
@Override

View File

@ -51,6 +51,11 @@ public class WorldEditCUIMessage implements Message {
.toString();
}
@Override
public boolean isAsync() {
return false;
}
@Override
public int getChannelId() {
return DEFAULT_CHANNEL;

View File

@ -144,7 +144,7 @@ public class WorldEditListener implements Listener {
public void run() {
ignoreLeftClickAir = false;
}
}, 100, TaskPriority.NORMAL);
}, 100, TaskPriority.NORMAL).getTaskId();
if (taskId != -1) {
ignoreLeftClickAir = true;