Move utility methods for altering flags to the BlockFlags utility class.

This commit is contained in:
asofold 2013-03-13 22:06:55 +01:00
parent 1eb7dbacf1
commit 15bf8e3ece
2 changed files with 53 additions and 29 deletions

View File

@ -4,6 +4,7 @@ import org.bukkit.Material;
import fr.neatmonster.nocheatplus.compat.BlockPropertiesSetup; import fr.neatmonster.nocheatplus.compat.BlockPropertiesSetup;
import fr.neatmonster.nocheatplus.config.WorldConfigProvider; import fr.neatmonster.nocheatplus.config.WorldConfigProvider;
import fr.neatmonster.nocheatplus.utilities.BlockFlags;
import fr.neatmonster.nocheatplus.utilities.BlockProperties; import fr.neatmonster.nocheatplus.utilities.BlockProperties;
/** /**
@ -33,63 +34,46 @@ public class BlocksMC1_5 implements BlockPropertiesSetup {
//////////////////// ////////////////////
// 146 Trapped Chest // 146 Trapped Chest
setFlagsAs(146, Material.CHEST); BlockFlags.setFlagsAs(146, Material.CHEST);
BlockProperties.setBlockProps(146, BlockProperties.getBlockProps(Material.CHEST.getId())); BlockProperties.setBlockProps(146, BlockProperties.getBlockProps(Material.CHEST.getId()));
// 147 Weighted Pressure Plate (Light) // 147 Weighted Pressure Plate (Light)
// 148 Weighted Pressure Plate (Heavy) // 148 Weighted Pressure Plate (Heavy)
addFlags(147, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); BlockFlags.addFlags(147, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT);
addFlags(148, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); BlockFlags.addFlags(148, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT);
// 149 Redstone Comparator (inactive) // 149 Redstone Comparator (inactive)
// 150 Redstone Comparator (active) // 150 Redstone Comparator (active)
addFlags(149, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); BlockFlags.addFlags(149, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT);
addFlags(150, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); BlockFlags.addFlags(150, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT);
// 151 Daylight Sensor // 151 Daylight Sensor
addFlags(151, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT); BlockFlags.addFlags(151, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND | BlockProperties.F_GROUND_HEIGHT);
// 152 Block of Redstone // 152 Block of Redstone
// 153 Nether Quartz Ore // 153 Nether Quartz Ore
// 155 Block of Quartz // 155 Block of Quartz
// 154 Hopper // 154 Hopper
addFlags(144, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND_HEIGHT); BlockFlags.addFlags(144, BlockProperties.F_IGN_PASSABLE | BlockProperties.F_GROUND_HEIGHT);
// 158 Dropper // 158 Dropper
setFlagsAs(158, Material.DISPENSER); BlockFlags.setFlagsAs(158, Material.DISPENSER);
// 156 Quartz Stairs // 156 Quartz Stairs
setFlagsAs(156, Material.COBBLESTONE_STAIRS); BlockFlags.setFlagsAs(156, Material.COBBLESTONE_STAIRS);
// 157 Activator Rail // 157 Activator Rail
setFlagsAs(157, Material.DETECTOR_RAIL); BlockFlags.setFlagsAs(157, Material.DETECTOR_RAIL);
///////////////////// /////////////////////
// Changed blocks // Changed blocks
//////////////////// ////////////////////
// 78 Snow // 78 Snow
addFlags(78, BlockProperties.F_HEIGHT_8_INC); BlockFlags.addFlags(78, BlockProperties.F_HEIGHT_8_INC);
removeFlags(78, BlockProperties.F_HEIGHT_8SIM_INC); BlockFlags.removeFlags(78, BlockProperties.F_HEIGHT_8SIM_INC);
} }
/**
* Set flags of id same as with material.
* @param id
* @param mat
*/
public static void setFlagsAs(int id, Material mat){
BlockProperties.setBlockFlags(id, BlockProperties.getBlockFlags(mat.getId()));
}
public static void addFlags(int id, long flags){
BlockProperties.setBlockFlags(id, BlockProperties.getBlockFlags(id) | flags);
}
public static void removeFlags(int id, long flags){
BlockProperties.setBlockFlags(id, BlockProperties.getBlockFlags(id) & ~flags);
}
} }

View File

@ -0,0 +1,40 @@
package fr.neatmonster.nocheatplus.utilities;
import org.bukkit.Material;
/**
* Utilities for block-flags.<br>
* Later the flag constant definitions and parsing might be moved here.
* @author mc_dev
*
*/
public class BlockFlags {
/**
* Set flags of id same as already set with flags for the given material. (Uses BlockProperties.)
* @param id
* @param mat
*/
public static void setFlagsAs(int id, Material mat){
BlockProperties.setBlockFlags(id, BlockProperties.getBlockFlags(mat.getId()));
}
/**
* Add flags to existent flags. (Uses BlockProperties.)
* @param id
* @param flags
*/
public static void addFlags(int id, long flags){
BlockProperties.setBlockFlags(id, BlockProperties.getBlockFlags(id) | flags);
}
/**
* Remove the given flags from existent flags. (Uses BlockProperties.)
* @param id
* @param flags
*/
public static void removeFlags(int id, long flags){
BlockProperties.setBlockFlags(id, BlockProperties.getBlockFlags(id) & ~flags);
}
}