mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-25 21:40:08 +00:00
add spawner state info
This commit is contained in:
1 parent
aa406d9b8b
commit
d0a24f7041
2 files changed
+130
No files matched your search
+2
@@ -6,6 +6,7 @@ import com.dfsek.terra.api.platform.block.state.BlockState;
|
|||||||
import com.dfsek.terra.bukkit.world.block.BukkitBlock;
|
import com.dfsek.terra.bukkit.world.block.BukkitBlock;
|
||||||
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
||||||
import org.bukkit.block.Container;
|
import org.bukkit.block.Container;
|
||||||
|
import org.bukkit.block.CreatureSpawner;
|
||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
|
|
||||||
public class BukkitBlockState implements BlockState {
|
public class BukkitBlockState implements BlockState {
|
||||||
@@ -18,6 +19,7 @@ public class BukkitBlockState implements BlockState {
|
|||||||
public static BukkitBlockState newInstance(org.bukkit.block.BlockState block) {
|
public static BukkitBlockState newInstance(org.bukkit.block.BlockState block) {
|
||||||
if(block instanceof Container) return new BukkitContainer((Container) block);
|
if(block instanceof Container) return new BukkitContainer((Container) block);
|
||||||
if(block instanceof Sign) return new BukkitSign((Sign) block);
|
if(block instanceof Sign) return new BukkitSign((Sign) block);
|
||||||
|
if(block instanceof CreatureSpawner) return new BukkitMobSpawner((CreatureSpawner) block);
|
||||||
return new BukkitBlockState(block);
|
return new BukkitBlockState(block);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+128
@@ -0,0 +1,128 @@
|
|||||||
|
package com.dfsek.terra.bukkit.world.block.state;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.block.state.MobSpawner;
|
||||||
|
import com.dfsek.terra.api.platform.block.state.SerialState;
|
||||||
|
import com.dfsek.terra.api.platform.world.entity.EntityType;
|
||||||
|
import com.dfsek.terra.bukkit.world.entity.BukkitEntityType;
|
||||||
|
import org.bukkit.block.CreatureSpawner;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
public class BukkitMobSpawner extends BukkitBlockState implements MobSpawner {
|
||||||
|
protected BukkitMobSpawner(CreatureSpawner block) {
|
||||||
|
super(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityType getSpawnedType() {
|
||||||
|
return new BukkitEntityType(((CreatureSpawner) getHandle()).getSpawnedType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSpawnedType(@NotNull EntityType creatureType) {
|
||||||
|
((CreatureSpawner) getHandle()).setSpawnedType(((BukkitEntityType) creatureType).getHandle());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDelay() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getDelay();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDelay(int delay) {
|
||||||
|
((CreatureSpawner) getHandle()).setDelay(delay);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMinSpawnDelay() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getMinSpawnDelay();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMinSpawnDelay(int delay) {
|
||||||
|
((CreatureSpawner) getHandle()).setMinSpawnDelay(delay);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxSpawnDelay() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getMaxSpawnDelay();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaxSpawnDelay(int delay) {
|
||||||
|
((CreatureSpawner) getHandle()).setMaxSpawnDelay(delay);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSpawnCount() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getSpawnCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSpawnCount(int spawnCount) {
|
||||||
|
((CreatureSpawner) getHandle()).setSpawnCount(spawnCount);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxNearbyEntities() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getMaxNearbyEntities();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMaxNearbyEntities(int maxNearbyEntities) {
|
||||||
|
((CreatureSpawner) getHandle()).setMaxNearbyEntities(maxNearbyEntities);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRequiredPlayerRange() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getRequiredPlayerRange();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setRequiredPlayerRange(int requiredPlayerRange) {
|
||||||
|
((CreatureSpawner) getHandle()).setRequiredPlayerRange(requiredPlayerRange);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSpawnRange() {
|
||||||
|
return ((CreatureSpawner) getHandle()).getSpawnRange();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSpawnRange(int spawnRange) {
|
||||||
|
((CreatureSpawner) getHandle()).setSpawnRange(spawnRange);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyState(String state) {
|
||||||
|
SerialState.parse(state).forEach((k, v) -> {
|
||||||
|
switch(k) {
|
||||||
|
case "type":
|
||||||
|
setSpawnedType(new BukkitEntityType(org.bukkit.entity.EntityType.valueOf(v)));
|
||||||
|
return;
|
||||||
|
case "delay":
|
||||||
|
setDelay(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
case "min_delay":
|
||||||
|
setMinSpawnDelay(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
case "max_delay":
|
||||||
|
setMaxSpawnDelay(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
case "count":
|
||||||
|
setSpawnCount(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
case "range":
|
||||||
|
setSpawnRange(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
case "max_nearby":
|
||||||
|
setMaxNearbyEntities(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
case "activate":
|
||||||
|
setRequiredPlayerRange(Integer.parseInt(v));
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Invalid property: " + k);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user