Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Ender Ores (Enderitum, Titanium) #3953

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 6 additions & 0 deletions resources/assets/tconstruct/blockstates/fluid_block.json
Expand Up @@ -28,6 +28,12 @@
"manyullyn": [{
"custom": { "fluid": "manyullyn" }
}],
"enderitum": [{
"custom": { "fluid": "enderitum" }
}],
"titanium": [{
"custom": { "fluid": "titanium" }
}],
"knightslime": [{
"custom": { "fluid": "knightslime" }
}],
Expand Down
2 changes: 2 additions & 0 deletions resources/assets/tconstruct/blockstates/ingots.json
Expand Up @@ -8,6 +8,8 @@
"cobalt": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_cobalt" }}],
"ardite": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_ardite" }}],
"manyullyn": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_manyullyn" }}],
"enderitum": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_enderitum" }}],
"titanium": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_titanium" }}],
"pigiron": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_pigiron" }}],
"knightslime": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_knightslime" }}],
"alubrass": [{ "textures": { "layer0": "tconstruct:items/materials/ingot_alubrass" }}]
Expand Down
6 changes: 6 additions & 0 deletions resources/assets/tconstruct/blockstates/metal.json
Expand Up @@ -15,6 +15,12 @@
"manyullyn": {
"textures": { "all": "tconstruct:blocks/block_manyullyn" }
},
"enderitum": {
"textures": { "all": "tconstruct:blocks/block_enderitum" }
},
"titanium": {
"textures": { "all": "tconstruct:blocks/block_titanium" }
},
"knightslime": {
"textures": { "all": "tconstruct:blocks/block_knightslime" }
},
Expand Down
2 changes: 2 additions & 0 deletions resources/assets/tconstruct/blockstates/nuggets.json
Expand Up @@ -8,6 +8,8 @@
"cobalt": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_cobalt" }}],
"ardite": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_ardite" }}],
"manyullyn": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_manyullyn" }}],
"enderitum": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_enderitum" }}],
"titanium": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_titanium" }}],
"pigiron": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_pigiron" }}],
"knightslime": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_knightslime" }}],
"alubrass": [{ "textures": { "layer0": "tconstruct:items/materials/nugget_alubrass" }}]
Expand Down
18 changes: 18 additions & 0 deletions resources/assets/tconstruct/blockstates/ore_2.json
@@ -0,0 +1,18 @@
{
"forge_marker": 1,
"defaults": {
"transform": "forge:default-block",
"model": "tconstruct:cube_overlay_all",
"textures": { "all": "minecraft:blocks/end_stone" }
},
"variants": {
"type": {
"enderitum": {
"textures": { "overlay": "tconstruct:blocks/ore_enderitum" }
},
"titanium": {
"textures": { "overlay": "tconstruct:blocks/ore_titanium" }
}
}
}
}
16 changes: 16 additions & 0 deletions resources/assets/tconstruct/lang/en_us.lang
Expand Up @@ -31,11 +31,15 @@ tile.tconstruct.mudbrick_stairs.name=Mud Bricks Stairs

tile.tconstruct.ore.cobalt.name=Cobalt Ore
tile.tconstruct.ore.ardite.name=Ardite Ore
tile.tconstruct.ore_2.enderitum.name=Enderitum Ore
tile.tconstruct.ore_2.titanium.name=Titanium Ore

tile.tconstruct.metal.tooltip=Can be used as beacon base
tile.tconstruct.metal.cobalt.name=Block of Cobalt
tile.tconstruct.metal.ardite.name=Block of Ardite
tile.tconstruct.metal.manyullyn.name=Block of Manyullyn
tile.tconstruct.metal.enderitum.name=Block of Enderitum
tile.tconstruct.metal.titanium.name=Block of Titanium
tile.tconstruct.metal.knightslime.name=Block of Knightslime
tile.tconstruct.metal.pigiron.name=Block of Pigiron
tile.tconstruct.metal.alubrass.name=Block of Aluminum Brass
Expand Down Expand Up @@ -313,13 +317,17 @@ item.tconstruct.ingots.knightslime.tooltip=Slimy yet metallic but also stone? Fa
item.tconstruct.ingots.pigiron.name=Pigiron Ingot
item.tconstruct.ingots.pigiron.tooltip=Oink!
item.tconstruct.ingots.alubrass.name=Aluminum Brass Ingot
item.tconstruct.ingots.enderitum.name=Enderitum Ingot
item.tconstruct.ingots.titanium.name=Titanium Ingot

item.tconstruct.nuggets.cobalt.name=Cobalt Nugget
item.tconstruct.nuggets.ardite.name=Ardite Nugget
item.tconstruct.nuggets.manyullyn.name=Manyullyn Nugget
item.tconstruct.nuggets.knightslime.name=Knightslime Nugget
item.tconstruct.nuggets.pigiron.name=Pigiron Nugget
item.tconstruct.nuggets.alubrass.name=Aluminum Brass Nugget
item.tconstruct.nuggets.enderitum.name=Enderitum Nugget
item.tconstruct.nuggets.titanium.name=Titanium Nugget

item.tconstruct.pattern.blank=Blank Pattern
item.tconstruct.pattern.name=%s Pattern
Expand Down Expand Up @@ -440,6 +448,7 @@ item.tconstruct.fancy_frame.alubrass.name=Aluminium Brass Item Frame
item.tconstruct.fancy_frame.cobalt.name=Cobalt Item Frame
item.tconstruct.fancy_frame.ardite.name=Ardite Item Frame
item.tconstruct.fancy_frame.manyullyn.name=Manyullyn Item Frame
item.tconstruct.fancy_frame.enderitum.name=Enderitum Item Frame
item.tconstruct.fancy_frame.gold.name=Golden Item Frame
item.tconstruct.fancy_frame.clear.name=Clear Item Frame

Expand Down Expand Up @@ -493,6 +502,8 @@ fluid.tconstruct.cobalt.name=Molten Cobalt
fluid.tconstruct.ardite.name=Molten Ardite
fluid.tconstruct.manyullyn.name=Molten Manyullyn
fluid.tconstruct.knightslime.name=Molten Knightslime
fluid.tconstruct.enderitum.name=Molten Enderitum
fluid.tconstruct.titanium.name=Molten Titanium
fluid.tconstruct.emerald.name=Molten Emerald
fluid.tconstruct.glass.name=Molten Glass
fluid.tconstruct.blood.name=Blood
Expand Down Expand Up @@ -546,6 +557,8 @@ material.magmaslime.name=Magma Slime
material.ardite.name=Ardite
material.cobalt.name=Cobalt
material.manyullyn.name=Manyullyn
material.enderitum.name=Enderitum
material.titanium.name=Titanium
material.iron.name=Iron
material.pigiron.name=Pig Iron
material.copper.name=Copper
Expand Down Expand Up @@ -691,6 +704,8 @@ modifier.poisonous.name=Poisonous
modifier.poisonous.desc=§oNot exactly lead-free!§r\nPoisons enemies on hit.
modifier.prickly.name=Prickly
modifier.prickly.desc=§oOuch!§r\nNobody is safe from those thorns, they always hurt.
modifier.resistent.name=Resistent
modifier.resistent.desc=§oThis one is strong, I feel it...§r
modifier.sharp.name=Sharp
modifier.sharp.desc=§oCan even cut words!§r\nHitting an enemy leaves them bleeding for a short time.
modifier.shocking.name=Shocking
Expand Down Expand Up @@ -865,6 +880,7 @@ ui.mininglevel.iron=Iron
ui.mininglevel.diamond=Diamond
ui.mininglevel.obsidian=Obsidian
ui.mininglevel.cobalt=Cobalt
ui.mininglevel.enderitum=Enderitum

# Death messages
death.attack.smeltery=%s tried to create molten player
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/main/java/slimeknights/tconstruct/TinkerIntegration.java
Expand Up @@ -64,6 +64,8 @@ public void preInit(FMLPreInitializationEvent event) {
integrate(TinkerMaterials.cobalt, TinkerFluids.cobalt, "Cobalt").toolforge();
integrate(TinkerMaterials.ardite, TinkerFluids.ardite, "Ardite").toolforge();
integrate(TinkerMaterials.manyullyn, TinkerFluids.manyullyn, "Manyullyn").toolforge();
integrate(TinkerMaterials.enderitum, TinkerFluids.enderitum, "Enderitum").toolforge();
integrate(TinkerMaterials.titanium, TinkerFluids.titanium, "Titanium").toolforge();

// mod integrations
integrate(TinkerMaterials.copper, TinkerFluids.copper, "Copper").toolforge();
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/slimeknights/tconstruct/common/TinkerOredict.java
Expand Up @@ -29,12 +29,16 @@
import static slimeknights.tconstruct.shared.TinkerCommons.blockPigIron;
import static slimeknights.tconstruct.shared.TinkerCommons.blockSlime;
import static slimeknights.tconstruct.shared.TinkerCommons.blockSlimeCongealed;
import static slimeknights.tconstruct.shared.TinkerCommons.blockEnderitum;
import static slimeknights.tconstruct.shared.TinkerCommons.blockTitanium;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotAlubrass;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotArdite;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotCobalt;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotKnightSlime;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotManyullyn;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotPigIron;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotEnderitum;
import static slimeknights.tconstruct.shared.TinkerCommons.ingotTitanium;
import static slimeknights.tconstruct.shared.TinkerCommons.matNecroticBone;
import static slimeknights.tconstruct.shared.TinkerCommons.matSlimeBallBlood;
import static slimeknights.tconstruct.shared.TinkerCommons.matSlimeBallBlue;
Expand All @@ -50,8 +54,12 @@
import static slimeknights.tconstruct.shared.TinkerCommons.nuggetKnightSlime;
import static slimeknights.tconstruct.shared.TinkerCommons.nuggetManyullyn;
import static slimeknights.tconstruct.shared.TinkerCommons.nuggetPigIron;
import static slimeknights.tconstruct.shared.TinkerCommons.nuggetEnderitum;
import static slimeknights.tconstruct.shared.TinkerCommons.nuggetTitanium;
import static slimeknights.tconstruct.shared.TinkerCommons.oreArdite;
import static slimeknights.tconstruct.shared.TinkerCommons.oreCobalt;
import static slimeknights.tconstruct.shared.TinkerCommons.oreEnderitum;
import static slimeknights.tconstruct.shared.TinkerCommons.oreTitanium;
import static slimeknights.tconstruct.shared.TinkerCommons.searedBrick;
import static slimeknights.tconstruct.tools.TinkerTools.binding;
import static slimeknights.tconstruct.tools.TinkerTools.pattern;
Expand Down Expand Up @@ -166,6 +174,8 @@ private static void registerCommon() {
oredictNIB(nuggetCobalt, ingotCobalt, blockCobalt, "Cobalt");
oredictNIB(nuggetArdite, ingotArdite, blockArdite, "Ardite");
oredictNIB(nuggetManyullyn, ingotManyullyn, blockManyullyn, "Manyullyn");
oredictNIB(nuggetEnderitum, ingotEnderitum, blockEnderitum, "Enderitum");
oredictNIB(nuggetTitanium, ingotTitanium, blockTitanium, "Titanium");
oredictNIB(nuggetKnightSlime, ingotKnightSlime, blockKnightSlime, "Knightslime");
oredictNIB(nuggetPigIron, ingotPigIron, blockPigIron, "Pigiron");
oredictNIB(nuggetAlubrass, ingotAlubrass, blockAlubrass, "Alubrass");
Expand All @@ -184,6 +194,8 @@ private static void registerCommon() {
// Ores
oredict(oreCobalt, "oreCobalt");
oredict(oreArdite, "oreArdite");
oredict(oreEnderitum, "oreEnderitum");
oredict(oreTitanium, "oreTitanium");

// glass
oredict(blockClearGlass, "blockGlass"); // no blockGlassColorless as then it is assumed as available for staining
Expand Down
20 changes: 20 additions & 0 deletions src/main/java/slimeknights/tconstruct/common/config/Config.java
Expand Up @@ -78,6 +78,10 @@ private Config() {
public static int cobaltRate = 20; // max. cobalt per chunk
public static boolean genArdite = true;
public static int arditeRate = 20; // max. ardite per chunk
public static boolean genEnderitum = true;
public static int enderitumRate = 3; // max. enderitum per chunk
public static boolean genTitanium = true;
public static int titaniumRate = 1; // max. enderitum per chunk

// Clientside configs
public static boolean renderTableItems = true;
Expand Down Expand Up @@ -286,6 +290,14 @@ public static boolean syncConfig() {
genArdite = prop.getBoolean();
propOrder.add(prop.getName());

prop = configFile.get(cat, "genEnderitum", genEnderitum);
genEnderitum = prop.getBoolean();
propOrder.add(prop.getName());

prop = configFile.get(cat, "genTitanium", genTitanium);
genTitanium = prop.getBoolean();
propOrder.add(prop.getName());

prop = configFile.get(cat, "cobaltRate", cobaltRate);
prop.setComment("Approx Ores per chunk");
cobaltRate = prop.getInt();
Expand All @@ -295,6 +307,14 @@ public static boolean syncConfig() {
arditeRate = prop.getInt();
propOrder.add(prop.getName());

prop = configFile.get(cat, "enderitumRate", enderitumRate);
enderitumRate = prop.getInt();
propOrder.add(prop.getName());

prop = configFile.get(cat, "titaniumRate", titaniumRate);
titaniumRate = prop.getInt();
propOrder.add(prop.getName());

Worldgen.setPropertyOrder(propOrder);
}
// Clientside
Expand Down
Expand Up @@ -115,6 +115,7 @@ public enum FrameType {
COBALT,
ARDITE,
MANYULLYN,
ENDERITUM,
GOLD,
CLEAR;

Expand Down
Expand Up @@ -17,6 +17,7 @@ public class HarvestLevels {
public static final int DIAMOND = 2;
public static final int OBSIDIAN = 3;
public static final int COBALT = 4;
public static final int ENDERITUM = 5;

private HarvestLevels() {
} // non-instantiable
Expand All @@ -33,6 +34,7 @@ public static void init() {
harvestLevelNames.put(DIAMOND, TextFormatting.AQUA + Util.translate("ui.mininglevel.diamond"));
harvestLevelNames.put(OBSIDIAN, TinkerMaterials.obsidian.getTextColor() + Util.translate("ui.mininglevel.obsidian"));
harvestLevelNames.put(COBALT, TinkerMaterials.cobalt.getTextColor() + Util.translate("ui.mininglevel.cobalt"));
harvestLevelNames.put(ENDERITUM, TinkerMaterials.enderitum.getTextColor() + Util.translate("ui.mininglevel.enderitum"));

// custom names via resource pack.. deprecated
String base = "gui.mining";
Expand Down
Expand Up @@ -26,6 +26,7 @@
import static slimeknights.tconstruct.shared.TinkerCommons.blockFirewood;
import static slimeknights.tconstruct.shared.TinkerCommons.blockMetal;
import static slimeknights.tconstruct.shared.TinkerCommons.blockOre;
import static slimeknights.tconstruct.shared.TinkerCommons.blockOre2;
import static slimeknights.tconstruct.shared.TinkerCommons.blockSlime;
import static slimeknights.tconstruct.shared.TinkerCommons.blockSlimeCongealed;
import static slimeknights.tconstruct.shared.TinkerCommons.blockSoil;
Expand Down Expand Up @@ -88,6 +89,7 @@ public void registerModels() {
registerItemBlockMeta(blockMetal);
registerItemBlockMeta(blockSoil);
registerItemBlockMeta(blockOre);
registerItemBlockMeta(blockOre2);
registerItemBlockMeta(blockFirewood);
registerItemBlockMeta(blockSlime);
registerItemBlockMeta(blockSlimeCongealed);
Expand Down
25 changes: 25 additions & 0 deletions src/main/java/slimeknights/tconstruct/shared/TinkerCommons.java
Expand Up @@ -34,6 +34,7 @@
import slimeknights.tconstruct.library.ShapedFallbackRecipe;
import slimeknights.tconstruct.library.TinkerRegistry;
import slimeknights.tconstruct.library.Util;
import slimeknights.tconstruct.library.utils.HarvestLevels;
import slimeknights.tconstruct.plugin.quark.QuarkPlugin;
import slimeknights.tconstruct.shared.block.BlockClearGlass;
import slimeknights.tconstruct.shared.block.BlockClearStainedGlass;
Expand All @@ -44,10 +45,12 @@
import slimeknights.tconstruct.shared.block.BlockGlow;
import slimeknights.tconstruct.shared.block.BlockMetal;
import slimeknights.tconstruct.shared.block.BlockOre;
import slimeknights.tconstruct.shared.block.BlockOre2;
import slimeknights.tconstruct.shared.block.BlockSlime;
import slimeknights.tconstruct.shared.block.BlockSlimeCongealed;
import slimeknights.tconstruct.shared.block.BlockSoil;
import slimeknights.tconstruct.shared.item.ItemMetaDynamicTinkers;
import slimeknights.tconstruct.shared.worldgen.EndOreGenerator;
import slimeknights.tconstruct.shared.worldgen.NetherOreGenerator;

/**
Expand All @@ -64,6 +67,7 @@ public class TinkerCommons extends TinkerPulse {

public static BlockSoil blockSoil;
public static BlockOre blockOre;
public static BlockOre2 blockOre2;
public static BlockMetal blockMetal;
public static BlockFirewood blockFirewood;
public static BlockGlow blockGlow;
Expand Down Expand Up @@ -97,6 +101,8 @@ public class TinkerCommons extends TinkerPulse {

public static ItemStack oreCobalt;
public static ItemStack oreArdite;
public static ItemStack oreEnderitum;
public static ItemStack oreTitanium;

public static ItemStack blockCobalt;
public static ItemStack blockArdite;
Expand All @@ -105,6 +111,8 @@ public class TinkerCommons extends TinkerPulse {
public static ItemStack blockKnightSlime;
public static ItemStack blockSilkyJewel;
public static ItemStack blockAlubrass;
public static ItemStack blockEnderitum;
public static ItemStack blockTitanium;

public static ItemStack lavawood;
public static ItemStack firewood;
Expand All @@ -123,6 +131,8 @@ public class TinkerCommons extends TinkerPulse {
public static ItemStack nuggetPigIron;
public static ItemStack nuggetKnightSlime;
public static ItemStack nuggetAlubrass;
public static ItemStack nuggetEnderitum;
public static ItemStack nuggetTitanium;

// Ingot Itemstacks
public static ItemStack ingotCobalt;
Expand All @@ -131,6 +141,8 @@ public class TinkerCommons extends TinkerPulse {
public static ItemStack ingotPigIron;
public static ItemStack ingotKnightSlime;
public static ItemStack ingotAlubrass;
public static ItemStack ingotEnderitum;
public static ItemStack ingotTitanium;

// Material Itemstacks
public static ItemStack searedBrick;
Expand Down Expand Up @@ -197,6 +209,7 @@ public void registerBlocks(Register<Block> event) {

// Ores
blockOre = registerBlock(registry, new BlockOre(), "ore");
blockOre2 = registerBlock(registry, new BlockOre2(), "ore_2");

// Firewood
blockFirewood = registerBlock(registry, new BlockFirewood(), "firewood");
Expand Down Expand Up @@ -251,9 +264,12 @@ public void registerItems(Register<Item> event) {

// Ores
blockOre = registerEnumItemBlock(registry, blockOre);
blockOre2 = registerEnumItemBlock(registry, blockOre2);

oreCobalt = new ItemStack(blockOre, 1, BlockOre.OreTypes.COBALT.getMeta());
oreArdite = new ItemStack(blockOre, 1, BlockOre.OreTypes.ARDITE.getMeta());
oreEnderitum = new ItemStack(blockOre2, 1, BlockOre2.OreTypes.ENDERITUM.getMeta());
oreTitanium = new ItemStack(blockOre2, 1, BlockOre2.OreTypes.TITANIUM.getMeta());

// Firewood
blockFirewood = registerEnumItemBlock(registry, blockFirewood);
Expand Down Expand Up @@ -320,6 +336,12 @@ public void registerItems(Register<Item> event) {
nuggetAlubrass = nuggets.addMeta(5, "alubrass");
ingotAlubrass = ingots.addMeta(5, "alubrass");

nuggetEnderitum = nuggets.addMeta(6, "enderitum");
ingotEnderitum = ingots.addMeta(6, "enderitum");

nuggetTitanium = nuggets.addMeta(7, "titanium");
ingotTitanium = ingots.addMeta(7, "titanium");

blockMetal = registerEnumItemBlock(registry, blockMetal);

blockCobalt = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.COBALT.getMeta());
Expand All @@ -328,6 +350,8 @@ public void registerItems(Register<Item> event) {
blockKnightSlime = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.KNIGHTSLIME.getMeta());
blockPigIron = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.PIGIRON.getMeta());
blockAlubrass = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.ALUBRASS.getMeta());
blockEnderitum = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.ENDERITUM.getMeta());
blockTitanium = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.TITANIUM.getMeta());
blockSilkyJewel = new ItemStack(blockMetal, 1, BlockMetal.MetalTypes.SILKY_JEWEL.getMeta());
}

Expand Down Expand Up @@ -413,6 +437,7 @@ public void init(FMLInitializationEvent event) {
proxy.init();

GameRegistry.registerWorldGenerator(NetherOreGenerator.INSTANCE, 0);
GameRegistry.registerWorldGenerator(EndOreGenerator.INSTANCE, 0);

MinecraftForge.EVENT_BUS.register(new AchievementEvents());
MinecraftForge.EVENT_BUS.register(new BlockEvents());
Expand Down