Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Stopped EntityTrapST.java from throwing errors & removed EntityTrap.j…
…ava's need for a chest
- Loading branch information
Showing
2 changed files
with
92 additions
and
99 deletions.
There are no files selected for viewing
143 changes: 67 additions & 76 deletions
143
circuits/src/main/java/com/sk89q/craftbook/gates/world/EntityTrap.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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); | ||
} | ||
} | ||
} |
48 changes: 25 additions & 23 deletions
48
circuits/src/main/java/com/sk89q/craftbook/gates/world/EntityTrapST.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) { | ||
|
||
} | ||
|
||
} |