This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
ScriptCraft/scriptcraft/src/main/java/com/thebrokenrail/scriptcraft/api/bridge/RegistryBridges.java

48 lines
2.6 KiB
Java
Raw Normal View History

2020-04-28 00:15:24 +00:00
package com.thebrokenrail.scriptcraft.api.bridge;
2020-04-25 13:33:17 +00:00
2020-04-28 00:15:24 +00:00
import com.thebrokenrail.scriptcraft.api.block.CustomBlock;
import com.thebrokenrail.scriptcraft.api.block.CustomBlockEntity;
import com.thebrokenrail.scriptcraft.api.block.CustomBlockWithEntity;
import com.thebrokenrail.scriptcraft.api.item.CustomItem;
import com.thebrokenrail.scriptcraft.core.ScriptCraftCore;
2020-04-25 13:33:17 +00:00
import net.minecraft.block.Block;
2020-04-26 17:23:16 +00:00
import net.minecraft.block.entity.BlockEntityType;
2020-04-25 13:33:17 +00:00
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
2020-08-25 01:28:06 +00:00
class RegistryBridges {
2020-04-25 13:33:17 +00:00
static void register() {
2020-04-28 00:15:24 +00:00
ScriptCraftCore.addBridge("Registry.registerBlock", args -> {
2020-08-26 21:52:17 +00:00
CustomBlock.BlockStatePropertyBuilder builder = (CustomBlock.BlockStatePropertyBuilder) args[2];
Registry.register(Registry.BLOCK, new Identifier((String) args[0]), new CustomBlock((Block.Settings) args[1], new Identifier((String) args[0])) {
@Override
protected BlockStatePropertyBuilder getPropertyBuilder() {
return builder;
}
});
2020-04-25 13:33:17 +00:00
return null;
});
2020-04-28 00:15:24 +00:00
ScriptCraftCore.addBridge("Registry.registerBlockWithEntity", args -> {
2020-08-26 21:52:17 +00:00
CustomBlock.BlockStatePropertyBuilder builder = (CustomBlock.BlockStatePropertyBuilder) args[2];
Registry.register(Registry.BLOCK, new Identifier((String) args[0]), new CustomBlockWithEntity((Block.Settings) args[1], new Identifier((String) args[0])) {
@Override
protected BlockStatePropertyBuilder getPropertyBuilder() {
return builder;
}
});
2020-04-26 17:23:16 +00:00
Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier((String) args[0]), BlockEntityType.Builder.create(() -> new CustomBlockEntity(Registry.BLOCK_ENTITY_TYPE.get(new Identifier((String) args[0])), new Identifier((String) args[0])), Registry.BLOCK.get(new Identifier((String) args[0]))).build(null));
return null;
});
2020-04-28 00:15:24 +00:00
ScriptCraftCore.addBridge("Registry.registerItem", args -> {
2020-04-25 13:33:17 +00:00
Registry.register(Registry.ITEM, new Identifier((String) args[0]), new CustomItem((Item.Settings) args[1], new Identifier((String) args[0])));
return null;
});
2020-04-28 00:15:24 +00:00
ScriptCraftCore.addBridge("Registry.registerBlockItem", args -> {
2020-04-25 13:33:17 +00:00
Registry.register(Registry.ITEM, new Identifier((String) args[0]), new BlockItem(Registry.BLOCK.get(new Identifier((String) args[2])), (Item.Settings) args[1]));
return null;
});
}
}