Skip to content

Commit

Permalink
Stopped EntityTrapST.java from throwing errors & removed EntityTrap.j…
Browse files Browse the repository at this point in the history
…ava's need for a chest
  • Loading branch information
DarkArc committed May 11, 2012
1 parent b0c703e commit 7700368
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 99 deletions.
143 changes: 67 additions & 76 deletions circuits/src/main/java/com/sk89q/craftbook/gates/world/EntityTrap.java
@@ -1,109 +1,100 @@
package com.sk89q.craftbook.gates.world;

import com.sk89q.craftbook.ic.*;
import com.sk89q.craftbook.util.SignUtil;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.Chest;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;

import com.sk89q.craftbook.ic.AbstractIC;
import com.sk89q.craftbook.ic.AbstractICFactory;
import com.sk89q.craftbook.ic.ChipState;
import com.sk89q.craftbook.ic.IC;
import com.sk89q.craftbook.ic.RestrictedIC;
import com.sk89q.craftbook.util.SignUtil;
public class EntityTrap extends AbstractIC {

protected boolean risingEdge;

public class EntityTrap extends AbstractIC{
public EntityTrap(Server server, Sign sign, boolean risingEdge) {

super(server, sign);
this.risingEdge = risingEdge;
}

protected boolean risingEdge;
@Override
public String getTitle() {

public EntityTrap(Server server, Sign sign, boolean risingEdge) {
super(server, sign);
this.risingEdge = risingEdge;
}
return "Entity Trap";
}

@Override
public String getTitle() {
return "Entity Trap";
}
@Override
public String getSignTitle() {

@Override
public String getSignTitle() {
return "ENTITY TRAP";
}
return "ENTITY TRAP";
}

@Override
public void trigger(ChipState chip) {

if (risingEdge && chip.getInput(0) || (!risingEdge && !chip.getInput(0))) {
chip.setOutput(0, hurt());
}
}

/**
* Returns true if the sign has water at the specified location.
*
*
* @return
*/
protected boolean hurt() {

Block b = SignUtil.getBackBlock(getSign().getBlock());

int x = b.getX();
int y = b.getY()+1;
int z = b.getZ();
Block bl = getSign().getBlock().getWorld().getBlockAt(x, y, z);
World w = getSign().getBlock().getWorld();
for(Player p : w.getEntitiesByClass(Player.class))
{
int ix = p.getLocation().getBlockX();
int iy = p.getLocation().getBlockY();
int iz = p.getLocation().getBlockZ();
if(ix == x && iy == y && iz == z)
{
if(((Chest) bl.getState()).getInventory().firstEmpty()!=-1)
{
int damage = 2;
try
{
damage = Integer.parseInt(getSign().getLine(2));
}
catch(Exception e){}
p.damage(damage);
return true;
}
}
if(ix == x && iy == y+1 && iz == z)
{
if(((Chest) bl.getState()).getInventory().firstEmpty()!=-1)
{
int damage = 2;
try
{
damage = Integer.parseInt(getSign().getLine(2));
}
catch(Exception e){}
p.damage(damage);
return true;
}
}
}
return false;
Block b = SignUtil.getBackBlock(getSign().getBlock());

int x = b.getX();
int y = b.getY() + 1;
int z = b.getZ();
Block bl = getSign().getBlock().getWorld().getBlockAt(x, y, z);
World w = getSign().getBlock().getWorld();
for (Player p : w.getEntitiesByClass(Player.class)) {
int ix = p.getLocation().getBlockX();
int iy = p.getLocation().getBlockY();
int iz = p.getLocation().getBlockZ();
if (ix == x && iy == y && iz == z) {
int damage = 2;
try {
damage = Integer.parseInt(getSign().getLine(2));
} catch (Exception e) {
}
p.damage(damage);
return true;

}
if (ix == x && iy == y + 1 && iz == z) {
int damage = 2;
try {
damage = Integer.parseInt(getSign().getLine(2));
} catch (Exception e) {
}
p.damage(damage);
return true;

}
}
return false;
}

public static class Factory extends AbstractICFactory implements
RestrictedIC {
public static class Factory extends AbstractICFactory implements
RestrictedIC {

protected boolean risingEdge;
protected boolean risingEdge;

public Factory(Server server, boolean risingEdge) {
super(server);
this.risingEdge = risingEdge;
}
public Factory(Server server, boolean risingEdge) {

@Override
public IC create(Sign sign) {
return new EntityTrap(getServer(), sign, risingEdge);
}
}
super(server);
this.risingEdge = risingEdge;
}

@Override
public IC create(Sign sign) {

return new EntityTrap(getServer(), sign, risingEdge);
}
}
}
@@ -1,60 +1,62 @@
package com.sk89q.craftbook.gates.world;

import com.sk89q.craftbook.ic.*;
import org.bukkit.Server;
import org.bukkit.block.Sign;

import com.sk89q.craftbook.ic.AbstractICFactory;
import com.sk89q.craftbook.ic.ChipState;
import com.sk89q.craftbook.ic.IC;
import com.sk89q.craftbook.ic.RestrictedIC;
import com.sk89q.craftbook.ic.SelfTriggeredIC;
public class EntityTrapST extends EntityTrap implements SelfTriggeredIC {

public class EntityTrapST extends EntityTrap implements SelfTriggeredIC{
public EntityTrapST(Server server, Sign sign, boolean risingEdge) {

public EntityTrapST(Server server, Sign sign, boolean risingEdge) {
super(server, sign, risingEdge);
}
super(server, sign, risingEdge);
}

@Override
public String getTitle() {

return "Self-triggered Entity Trap";
}

@Override
public String getSignTitle() {

return "ST ENTITY TRAP";
}

@Override
public void think(ChipState chip) {
chip.setOutput(0, hurt());

chip.setOutput(0, hurt());
}


public static class Factory extends AbstractICFactory implements
RestrictedIC {

public static class Factory extends AbstractICFactory implements
RestrictedIC {
protected boolean risingEdge;

protected boolean risingEdge;
public Factory(Server server, boolean risingEdge) {

public Factory(Server server, boolean risingEdge) {
super(server);
this.risingEdge = risingEdge;
}
super(server);
this.risingEdge = risingEdge;
}

@Override
public IC create(Sign sign) {
return new EntityTrapST(getServer(), sign, risingEdge);
}
}
@Override
public IC create(Sign sign) {

return new EntityTrapST(getServer(), sign, risingEdge);
}
}

@Override
public boolean isActive() {

return true;
}

@Override
public void trigger(ChipState chip) {

}

}

0 comments on commit 7700368

Please sign in to comment.