NoCheatPlus/NCPCore/src/main/java/fr/neatmonster/nocheatplus/compat/blocks/init/vanilla/BlocksMC1_13.java

184 lines
6.9 KiB
Java

/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package fr.neatmonster.nocheatplus.compat.blocks.init.vanilla;
import org.bukkit.Material;
import fr.neatmonster.nocheatplus.compat.BridgeMaterial;
import fr.neatmonster.nocheatplus.compat.blocks.BlockPropertiesSetup;
import fr.neatmonster.nocheatplus.compat.blocks.init.BlockInit;
import fr.neatmonster.nocheatplus.config.WorldConfigProvider;
import fr.neatmonster.nocheatplus.logging.StaticLog;
import fr.neatmonster.nocheatplus.utilities.map.BlockFlags;
import fr.neatmonster.nocheatplus.utilities.map.BlockProperties;
import fr.neatmonster.nocheatplus.utilities.map.BlockProperties.BlockProps;
import fr.neatmonster.nocheatplus.utilities.map.MaterialUtil;
@SuppressWarnings("deprecation")
public class BlocksMC1_13 implements BlockPropertiesSetup {
public BlocksMC1_13() {
BlockInit.assertMaterialExists("LILY_PAD");
BlockInit.assertMaterialExists("CAVE_AIR");
}
@Override
public void setupBlockProperties(WorldConfigProvider<?> worldConfigProvider) {
// Void air.
BlockInit.setAs("VOID_AIR", Material.AIR);
// Cave air.
BlockInit.setAs("CAVE_AIR", Material.AIR);
// Dirt like.
BlockInit.setAs("PODZOL", Material.DIRT);
BlockInit.setAs("COARSE_DIRT", Material.DIRT);
// Coral blocks (dead or alive).
for (Material mat : MaterialUtil.CORAL_BLOCKS) {
BlockInit.setAs(mat, Material.STONE);
}
// Passable (alive) coral parts.
for (Material mat : MaterialUtil.PASSABLE_CORAL_PARTS) {
BlockInit.setInstantAir(mat);
}
// Dead coral parts (solid + ground already set).
for (Material mat : MaterialUtil.DEAD_CORAL_PARTS) {
// (Flags should be set correctly by default.)
BlockInit.setPropsAs(mat, Material.STONE);
}
// Kelp.
BlockInit.setInstantAir("KELP");
// Fern.
BlockInit.setInstantAir("FERN");
// Bubble column.
// TODO: Drag down effect: probably not using velocity.
BlockInit.setAs("BUBBLE_COLUMN", Material.WATER);
// Further melon/pumpkin stems.
BlockInit.setInstantAir("ATTACHED_MELON_STEM");
BlockInit.setInstantAir("ATTACHED_PUMPKIN_STEM");
// Wall torch
BlockInit.setInstantAir("WALL_TORCH");
// Stone types.
for (Material mat : BridgeMaterial.getAll("andesite", "diorite", "granite",
"polished_andesite", "polished_diorite", "polished_granite",
"smooth_stone")) {
BlockInit.setAs(mat, Material.STONE);
}
// Wall heads.
for (Material mat : MaterialUtil.HEADS_WALL) {
BlockInit.setAs(mat, BridgeMaterial.SKELETON_SKULL); // TODO: Test...
}
// Blue ice.
BlockInit.setAs("BLUE_ICE", Material.ICE);
// Grass path.
// TODO: HEIGHT16_15 instead.
BlockFlags.addFlags(Material.GRASS_PATH, BlockProperties.F_MIN_HEIGHT16_15
| BlockProperties.F_HEIGHT100
| BlockProperties.F_GROUND_HEIGHT);
// Wet sponge.
BlockInit.setAs("WET_SPONGE", Material.SPONGE);
// Red sand.
BlockInit.setAs("RED_SAND", Material.SAND);
// Sandstone slabs.
BlockInit.setPropsAs("SANDSTONE_SLAB", Material.SANDSTONE);
BlockInit.setPropsAs("RED_SANDSTONE_SLAB", Material.SANDSTONE);
// More sandstone.
BlockInit.setAs("SMOOTH_SANDSTONE", Material.SANDSTONE);
BlockInit.setAs("SMOOTH_RED_SANDSTONE", Material.SANDSTONE);
BlockInit.setAs("CUT_SANDSTONE", Material.SANDSTONE);
BlockInit.setAs("CUT_RED_SANDSTONE", Material.SANDSTONE);
BlockInit.setAs("CHISELED_SANDSTONE", Material.SANDSTONE);
BlockInit.setAs("CHISELED_RED_SANDSTONE", Material.SANDSTONE);
// More brick slabs.
BlockInit.setAs("COBBLESTONE_SLAB", BridgeMaterial.BRICK_SLAB);
BlockInit.setAs("STONE_BRICK_SLAB", BridgeMaterial.BRICK_SLAB);
BlockInit.setAs("NETHER_BRICK_SLAB", BridgeMaterial.BRICK_SLAB);
BlockInit.setAs("PRISMARINE_BRICK_SLAB", BridgeMaterial.BRICK_SLAB);
// More slabs.
BlockInit.setAs("PRISMARINE_SLAB", BridgeMaterial.STONE_SLAB);
BlockInit.setAs("DARK_PRISMARINE_SLAB", BridgeMaterial.STONE_SLAB);
BlockInit.setAs("QUARTZ_SLAB", BridgeMaterial.STONE_SLAB); // TODO: Test.
BlockInit.setAs("PETRIFIED_OAK_SLAB", BridgeMaterial.STONE_SLAB); // TODO: Test.
// More bricks.
BlockInit.setAs("PRISMARINE_BRICKS", BridgeMaterial.BRICKS);
BlockInit.setAs("MOSSY_STONE_BRICKS", BridgeMaterial.BRICKS);
BlockInit.setAs("CHISELED_STONE_BRICKS", BridgeMaterial.BRICKS);
BlockInit.setAs("CRACKED_STONE_BRICKS", BridgeMaterial.BRICKS);
// More brick stairs.
BlockInit.setAs("PRISMARINE_BRICK_STAIRS", BridgeMaterial.STONE_BRICK_STAIRS);
// More stairs.
BlockInit.setAs("PRISMARINE_STAIRS", Material.COBBLESTONE_STAIRS);
BlockInit.setAs("DARK_PRISMARINE_STAIRS", Material.COBBLESTONE_STAIRS);
// More cobblestone walls.
BlockInit.setAs("MOSSY_COBBLESTONE_WALL", BridgeMaterial.COBBLESTONE_WALL);
// Dark prismarine.
BlockInit.setAs("DARK_PRISMARINE", "PRISMARINE");
// More anvil.
BlockInit.setAs("DAMAGED_ANVIL", "ANVIL");
BlockInit.setAs("CHIPPED_ANVIL", "ANVIL");
// Carved pumpkin.
BlockInit.setAs("CARVED_PUMPKIN", Material.PUMPKIN);
// Mushroom stem: via MaterialUtil collection.
// More quartz blocks.
BlockInit.setAs("SMOOTH_QUARTZ", "QUARTZ_BLOCK");
BlockInit.setAs("CHISELED_QUARTZ_BLOCK", "QUARTZ_BLOCK");
// Quartz pillar.
BlockInit.setPropsAs("QUARTZ_PILLAR", "QUARTZ_BLOCK");
// Dried kelp block.
BlockProperties.setBlockProps("DRIED_KELP_BLOCK", new BlockProps(
BlockProperties.noTool, 0.5f, BlockProperties.secToMs(0.75)));
// Conduit.
BlockProperties.setBlockProps("CONDUIT", BlockProperties.woodDoorType);
// Turtle egg.
BlockProperties.setBlockProps("TURTLE_EGG", new BlockProps(
BlockProperties.noTool, 0.5f, BlockProperties.secToMs(0.7)));
StaticLog.logInfo("Added block-info for Minecraft 1.13 blocks.");
}
}