Move registry to kotlin
This commit is contained in:
parent
db5775c90b
commit
d49c679253
@ -4,8 +4,6 @@ import net.minecraft.core.Direction
|
||||
import net.minecraft.data.recipes.ShapedRecipeBuilder
|
||||
import net.minecraft.data.recipes.ShapelessRecipeBuilder
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.tags.Tag
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.IronBarsBlock
|
||||
@ -16,7 +14,6 @@ import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.fml.common.Mod
|
||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.registry.Registry
|
||||
import ru.dbotthepony.mc.otm.registry.MBlocks
|
||||
import ru.dbotthepony.mc.otm.registry.MItems
|
||||
import ru.dbotthepony.mc.otm.block.DriveViewerBlock
|
||||
@ -50,17 +47,22 @@ object DataGen {
|
||||
|
||||
private fun decorativeCubeAll(vararg blocks: Block) {
|
||||
blockModelProvider.decorativeCubeAll(*blocks)
|
||||
blockStateProvider.block(*blocks)
|
||||
blockStateProvider.simpleBlockM(*blocks)
|
||||
}
|
||||
|
||||
private fun decorativeCubeAll(blocks: List<Block>) {
|
||||
blockModelProvider.decorativeCubeAll(blocks)
|
||||
blockStateProvider.simpleBlockM(blocks)
|
||||
}
|
||||
|
||||
private fun resourceCubeAll(vararg blocks: Block) {
|
||||
blockModelProvider.resourceCubeAll(*blocks)
|
||||
blockStateProvider.block(*blocks)
|
||||
blockStateProvider.simpleBlockM(*blocks)
|
||||
}
|
||||
|
||||
private fun decorativeColumn(block: Block, side: String, end: String) {
|
||||
blockModelProvider.decorativeColumn(block, side, end)
|
||||
blockStateProvider.block(block)
|
||||
blockStateProvider.simpleBlockM(block)
|
||||
}
|
||||
|
||||
private fun pane(block: Block, textureSide: ResourceLocation, textureRailing: ResourceLocation) {
|
||||
@ -126,12 +128,12 @@ object DataGen {
|
||||
event.generator.addProvider(lootTableProvider)
|
||||
event.generator.addProvider(lootModifier)
|
||||
|
||||
decorativeCubeAll(*MBlocks.CRATES)
|
||||
decorativeCubeAll(MBlocks.CRATE_LIST)
|
||||
decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK)
|
||||
decorativeCubeAll(MBlocks.TRITANIUM_BLOCK)
|
||||
|
||||
for (glass in Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
decorativeCubeAll(glass.block)
|
||||
for (glass in MBlocks.INDUSTRIAL_GLASS_LIST) {
|
||||
decorativeCubeAll(glass)
|
||||
}
|
||||
|
||||
blockModelProvider.resourceCubeAll(MBlocks.TRITANIUM_ORE)
|
||||
@ -140,11 +142,11 @@ object DataGen {
|
||||
|
||||
decorativeColumn(MBlocks.TRITANIUM_STRIPED_BLOCK, "tritanium_striped_block", "tritanium_block")
|
||||
|
||||
for (glass in Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
val name = glass.block.registryName?.path ?: throw IllegalStateException("Invalid state of glass block ${glass.block}")
|
||||
for ((i, glass) in MBlocks.INDUSTRIAL_GLASS_PANE_LIST.withIndex()) {
|
||||
val name = MBlocks.INDUSTRIAL_GLASS_LIST[i].registryName!!.path
|
||||
val textureSide = ResourceLocation(MOD_ID, "block/decorative/$name")
|
||||
val textureRailing = textureSide
|
||||
pane(glass.pane, textureSide, textureRailing)
|
||||
pane(glass, textureSide, textureRailing)
|
||||
}
|
||||
|
||||
with(blockModelProvider) {
|
||||
@ -207,14 +209,17 @@ object DataGen {
|
||||
block(MItems.ITEM_MONITOR)
|
||||
block(MItems.TRITANIUM_BLOCK)
|
||||
|
||||
for (glass in Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
block(glass.item)
|
||||
generated(glass.paneItem, ResourceLocation(MOD_ID, "block/decorative/${glass.item.registryName!!.path}"))
|
||||
for (glass in MItems.INDUSTRIAL_GLASS_LIST) {
|
||||
block(glass)
|
||||
}
|
||||
|
||||
blocks(*MItems.CRATES)
|
||||
for ((i, glass) in MItems.INDUSTRIAL_GLASS_PANE_LIST.withIndex()) {
|
||||
generated(glass, ResourceLocation(MOD_ID, "block/decorative/${MItems.INDUSTRIAL_GLASS_LIST[i].registryName!!.path}"))
|
||||
}
|
||||
|
||||
components(*MItems.DATAGEN_COMPONENTS)
|
||||
blocks(MItems.CRATE_LIST)
|
||||
|
||||
components(MItems.DATAGEN_COMPONENTS)
|
||||
|
||||
generated(MItems.PILL_ANDROID)
|
||||
generated(MItems.PILL_HUMANE)
|
||||
@ -224,8 +229,8 @@ object DataGen {
|
||||
component(MItems.TRITANIUM_INGOT)
|
||||
resource(MItems.TRITANIUM_ORE_CLUMP)
|
||||
|
||||
handheld(*MItems.TRITANIUM_TOOLS)
|
||||
generated(*MItems.TRITANIUM_ARMOR)
|
||||
handheld(MItems.TRITANIUM_TOOLS)
|
||||
generated(MItems.TRITANIUM_ARMOR)
|
||||
|
||||
generatedTiered(MItems.BATTERIES, "battery_tier")
|
||||
generated(MItems.BATTERY_CREATIVE)
|
||||
@ -339,7 +344,7 @@ object DataGen {
|
||||
)
|
||||
|
||||
with(lootTableProvider) {
|
||||
simpleBlocks(*MBlocks.CRATES)
|
||||
simpleBlocks(MBlocks.CRATE_LIST)
|
||||
simpleBlock(MBlocks.CARGO_CRATE)
|
||||
simpleBlock(MBlocks.CARBON_FIBRE_BLOCK)
|
||||
simpleBlock(MBlocks.TRITANIUM_RAW_BLOCK)
|
||||
@ -385,56 +390,59 @@ object DataGen {
|
||||
}
|
||||
|
||||
lambda { _, consumer ->
|
||||
ShapelessRecipeBuilder(Registry.INDUSTRIAL_GLASS.item, 8)
|
||||
ShapelessRecipeBuilder(MItems.INDUSTRIAL_GLASS, 8)
|
||||
.requires(net.minecraft.world.item.Items.GLASS, 8)
|
||||
.requires(MTags.Items.PLATE_TRITANIUM)
|
||||
.unlockedBy("has_plate", has(MTags.Items.PLATE_TRITANIUM))
|
||||
.unlockedBy("has_glass", has(net.minecraft.world.item.Items.GLASS))
|
||||
.save(consumer)
|
||||
|
||||
ShapedRecipeBuilder(Registry.INDUSTRIAL_GLASS.paneItem, 16)
|
||||
.define('#', Registry.INDUSTRIAL_GLASS.item)
|
||||
ShapedRecipeBuilder(MItems.INDUSTRIAL_GLASS_PANE, 16)
|
||||
.define('#', MItems.INDUSTRIAL_GLASS)
|
||||
.pattern("###").pattern("###")
|
||||
.unlockedBy("has_tritanium_glass", has(Registry.INDUSTRIAL_GLASS.item))
|
||||
.unlockedBy("has_tritanium_glass", has(MItems.INDUSTRIAL_GLASS))
|
||||
.save(consumer)
|
||||
|
||||
val mapping = mapOf<Registry.IndustrialGlassProps, Tag<Item>>(
|
||||
Registry.INDUSTRIAL_GLASS_BLACK to Tags.Items.DYES_BLACK,
|
||||
Registry.INDUSTRIAL_GLASS_RED to Tags.Items.DYES_RED,
|
||||
Registry.INDUSTRIAL_GLASS_GREEN to Tags.Items.DYES_GREEN,
|
||||
Registry.INDUSTRIAL_GLASS_BROWN to Tags.Items.DYES_BROWN,
|
||||
Registry.INDUSTRIAL_GLASS_BLUE to Tags.Items.DYES_BLUE,
|
||||
Registry.INDUSTRIAL_GLASS_PURPLE to Tags.Items.DYES_PURPLE,
|
||||
Registry.INDUSTRIAL_GLASS_CYAN to Tags.Items.DYES_CYAN,
|
||||
Registry.INDUSTRIAL_GLASS_LIGHT_GRAY to Tags.Items.DYES_LIGHT_GRAY,
|
||||
Registry.INDUSTRIAL_GLASS_GRAY to Tags.Items.DYES_GRAY,
|
||||
Registry.INDUSTRIAL_GLASS_PINK to Tags.Items.DYES_PINK,
|
||||
Registry.INDUSTRIAL_GLASS_LIME to Tags.Items.DYES_LIME,
|
||||
Registry.INDUSTRIAL_GLASS_YELLOW to Tags.Items.DYES_YELLOW,
|
||||
Registry.INDUSTRIAL_GLASS_LIGHT_BLUE to Tags.Items.DYES_LIGHT_BLUE,
|
||||
Registry.INDUSTRIAL_GLASS_MAGENTA to Tags.Items.DYES_MAGENTA,
|
||||
Registry.INDUSTRIAL_GLASS_ORANGE to Tags.Items.DYES_ORANGE,
|
||||
Registry.INDUSTRIAL_GLASS_WHITE to Tags.Items.DYES_WHITE,
|
||||
val mapping = listOf(
|
||||
Tags.Items.DYES_WHITE,
|
||||
Tags.Items.DYES_ORANGE,
|
||||
Tags.Items.DYES_MAGENTA,
|
||||
Tags.Items.DYES_LIGHT_BLUE,
|
||||
Tags.Items.DYES_YELLOW,
|
||||
Tags.Items.DYES_LIME,
|
||||
Tags.Items.DYES_PINK,
|
||||
Tags.Items.DYES_GRAY,
|
||||
Tags.Items.DYES_LIGHT_GRAY,
|
||||
Tags.Items.DYES_CYAN,
|
||||
Tags.Items.DYES_PURPLE,
|
||||
Tags.Items.DYES_BLUE,
|
||||
Tags.Items.DYES_BROWN,
|
||||
Tags.Items.DYES_GREEN,
|
||||
Tags.Items.DYES_RED,
|
||||
Tags.Items.DYES_BLACK,
|
||||
)
|
||||
|
||||
for ((item, tag) in mapping) {
|
||||
ShapelessRecipeBuilder(item.item, 8)
|
||||
.requires(Registry.INDUSTRIAL_GLASS.item, 8)
|
||||
for ((i, tag) in mapping.withIndex()) {
|
||||
val item = MItems.INDUSTRIAL_GLASS_LIST[i + 1]
|
||||
val paneItem = MItems.INDUSTRIAL_GLASS_PANE_LIST[i + 1]
|
||||
|
||||
ShapelessRecipeBuilder(item, 8)
|
||||
.requires(MItems.INDUSTRIAL_GLASS, 8)
|
||||
.requires(tag)
|
||||
.unlockedBy("has_tritanium_glass", has(Registry.INDUSTRIAL_GLASS.item))
|
||||
.unlockedBy("has_tritanium_glass", has(MItems.INDUSTRIAL_GLASS))
|
||||
.save(consumer)
|
||||
|
||||
ShapelessRecipeBuilder(item.paneItem, 8)
|
||||
.requires(Registry.INDUSTRIAL_GLASS.paneItem, 8)
|
||||
ShapelessRecipeBuilder(paneItem, 8)
|
||||
.requires(MItems.INDUSTRIAL_GLASS_PANE, 8)
|
||||
.requires(tag)
|
||||
.unlockedBy("has_tritanium_glass_pane", has(Registry.INDUSTRIAL_GLASS.paneItem))
|
||||
.unlockedBy("has_tritanium_glass_pane", has(MItems.INDUSTRIAL_GLASS_PANE))
|
||||
.save(consumer)
|
||||
|
||||
ShapedRecipeBuilder(item.paneItem, 16)
|
||||
.define('#', item.item)
|
||||
ShapedRecipeBuilder(paneItem, 16)
|
||||
.define('#', item)
|
||||
.pattern("###").pattern("###")
|
||||
.unlockedBy("has_colored_tritanium_glass", has(item.paneItem))
|
||||
.save(consumer, ResourceLocation(MOD_ID, "${item.namePane.path}_alt"))
|
||||
.unlockedBy("has_colored_tritanium_glass", has(paneItem))
|
||||
.save(consumer, ResourceLocation(MOD_ID, "${paneItem.registryName!!.path}_alt"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -15,10 +15,10 @@ import ru.dbotthepony.mc.otm.datagen.toXRotBlockstate
|
||||
import ru.dbotthepony.mc.otm.datagen.toYRotBlockstate
|
||||
|
||||
typealias AdvancedBlockStateFunction = (BlockState, ConfiguredModel.Builder<*>, String) -> String?
|
||||
private data class AdvancedBlockStateEntry(val block: BlockMattery, val func: AdvancedBlockStateFunction)
|
||||
private data class AdvancedBlockStateEntry(val block: Block, val func: AdvancedBlockStateFunction)
|
||||
|
||||
private fun initialTransform(it: BlockState, modelPath: String, builder: ConfiguredModel.Builder<*>): String {
|
||||
var modelPath = modelPath
|
||||
@Suppress("NAME_SHADOWING") var modelPath = modelPath
|
||||
|
||||
it.getValueNullable(BlockMatteryRotatable.FACING)?.let {
|
||||
builder.rotationY(it.toYRotBlockstate())
|
||||
@ -45,14 +45,24 @@ private typealias Lambda = (MatteryBlockStateProvider) -> Unit
|
||||
class MatteryBlockStateProvider(event: GatherDataEvent) : BlockStateProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) {
|
||||
private val blocks = ArrayList<AdvancedBlockStateEntry>()
|
||||
|
||||
fun block(block: BlockMattery) = blocks.add(AdvancedBlockStateEntry(block) { _, _, _ -> null })
|
||||
fun block(block: BlockMattery, func: AdvancedBlockStateFunction) = blocks.add(AdvancedBlockStateEntry(block, func))
|
||||
fun block(vararg block: Block) = block.forEach { blocks.add(AdvancedBlockStateEntry(it) { _, _, _ -> null }) }
|
||||
fun block(block: Block, func: AdvancedBlockStateFunction) = blocks.add(AdvancedBlockStateEntry(block, func))
|
||||
|
||||
fun block(blocks: List<Block>) {
|
||||
for (block in blocks) {
|
||||
this.blocks.add(AdvancedBlockStateEntry(block) { _, _, _ -> null })
|
||||
}
|
||||
}
|
||||
|
||||
private val simpleBlocks = ArrayList<Block>()
|
||||
private val ores = ArrayList<Block>()
|
||||
private val lambdas = ArrayList<Lambda>()
|
||||
|
||||
fun block(vararg blocks: Block) {
|
||||
fun simpleBlockM(vararg blocks: Block) {
|
||||
this.simpleBlocks.addAll(blocks)
|
||||
}
|
||||
|
||||
fun simpleBlockM(blocks: List<Block>) {
|
||||
this.simpleBlocks.addAll(blocks)
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,7 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event
|
||||
fun block(item: Item) = delegates.add(SimpleItemModel(item.registryName!!.path, ResourceLocation(DataGen.MOD_ID, "block/${item.registryName!!.path}")))
|
||||
fun block(item: Item, path: String) = delegates.add(SimpleItemModel(item.registryName!!.path, ResourceLocation(DataGen.MOD_ID, "block/$path")))
|
||||
fun blocks(vararg items: Item) = items.forEach(this::block)
|
||||
fun blocks(items: List<Item>) = items.forEach(this::block)
|
||||
|
||||
fun generated(item: Item, texture: ResourceLocation) {
|
||||
generated.add(SimpleItemModel(item.registryName!!.path, texture))
|
||||
@ -40,15 +41,18 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event
|
||||
}
|
||||
|
||||
fun generated(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
|
||||
fun generated(items: List<Item>) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
|
||||
fun generatedBlock(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "block/${it.registryName!!.path}")) }
|
||||
fun generatedBlockDecorative(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "block/decorative/${it.registryName!!.path}")) }
|
||||
fun handheld(vararg items: Item) = items.forEach { handheld(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
|
||||
fun handheld(items: List<Item>) = items.forEach { handheld(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
|
||||
|
||||
fun generated(item: Item, prefix: String) = generated(item, ResourceLocation(DataGen.MOD_ID, "item/${prefix}${item.registryName!!.path}"))
|
||||
fun handheld(item: Item, prefix: String) = handheld(item, ResourceLocation(DataGen.MOD_ID, "item/${prefix}${item.registryName!!.path}"))
|
||||
|
||||
fun component(item: Item) = generated(item, "component/")
|
||||
fun components(vararg items: Item) = items.forEach(this::component)
|
||||
fun components(items: List<Item>) = items.forEach(this::component)
|
||||
fun resource(item: Item) = generated(item, "resources/")
|
||||
fun resources(vararg items: Item) = items.forEach(this::resource)
|
||||
|
||||
@ -61,6 +65,15 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event
|
||||
}
|
||||
}
|
||||
|
||||
fun generatedTiered(items: List<Item>, prefix: String) {
|
||||
var i = 0
|
||||
|
||||
for (item in items) {
|
||||
generated(item, ResourceLocation(DataGen.MOD_ID, "item/$prefix$i"))
|
||||
i++
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val GENERATED = ResourceLocation("minecraft", "item/generated")
|
||||
private val HANDHELD = ResourceLocation("minecraft", "item/handheld")
|
||||
|
@ -54,6 +54,10 @@ class LootTables(generator: DataGenerator) : LootTableProvider(generator) {
|
||||
blocks.forEach(this::simpleBlock)
|
||||
}
|
||||
|
||||
fun simpleBlocks(blocks: List<Block>) {
|
||||
blocks.forEach(this::simpleBlock)
|
||||
}
|
||||
|
||||
fun tile(block: Block, f: (CopyNbtFunction.Builder) -> Unit = {}) {
|
||||
block {
|
||||
it.accept(block.lootTable, singleLootPool {
|
||||
|
@ -80,6 +80,12 @@ class BlockMatteryModelProvider(event: GatherDataEvent) : MatteryModelProvider(e
|
||||
}
|
||||
}
|
||||
|
||||
fun decorativeCubeAll(blocks: List<Block>) {
|
||||
for (it in blocks) {
|
||||
cubeAll.add(CubeAllEntry(it.registryName!!.path, ResourceLocation("overdrive_that_matters:block/decorative/${it.registryName!!.path}")))
|
||||
}
|
||||
}
|
||||
|
||||
fun column(it: Block, end: String, side: String) {
|
||||
cubeColumn.add(CubeColumnEntry(it.registryName!!.path, ResourceLocation(DataGen.MOD_ID, end), ResourceLocation(DataGen.MOD_ID, side)))
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package ru.dbotthepony.mc.otm;
|
||||
|
||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
@ -44,10 +45,14 @@ public final class OverdriveThatMatters {
|
||||
public AndroidGui ANDROID_GUI;
|
||||
public StorageObjectTuple<ItemStackWrapper> ITEM_STORAGE;
|
||||
|
||||
public static ResourceLocation loc(String path) {
|
||||
return new ResourceLocation(MOD_ID, path);
|
||||
}
|
||||
|
||||
public final CreativeModeTab CREATIVE_TAB = new CreativeModeTab("otm") {
|
||||
@Override
|
||||
public ItemStack makeIcon() {
|
||||
return new ItemStack(MItems.BATTERY_CREATIVE, 1);
|
||||
return new ItemStack(MItems.INSTANCE.getBATTERY_CREATIVE(), 1);
|
||||
}
|
||||
};
|
||||
|
||||
@ -58,7 +63,8 @@ public final class OverdriveThatMatters {
|
||||
|
||||
INSTANCE = this;
|
||||
|
||||
// Register the setup method for modloading
|
||||
MRegistry.INSTANCE.initialize(FMLJavaModLoadingContext.get());
|
||||
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setupClient);
|
||||
|
||||
@ -73,23 +79,12 @@ public final class OverdriveThatMatters {
|
||||
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MatteryCapability.class);
|
||||
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MItems.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MBlocks.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MBlockEntities.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MMenus.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(AndroidFeatures.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(AndroidResearch.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MStats.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(MRecipes.class);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().register(LootModifiers.INSTANCE);
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(DrivePool.INSTANCE);
|
||||
MinecraftForge.EVENT_BUS.register(PortableCondensationDriveItem.Companion);
|
||||
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(AndroidCapability::registerEffects);
|
||||
|
||||
// force Registry static initializer to be called
|
||||
Registry.dummy();
|
||||
}
|
||||
|
||||
private void setup(final FMLCommonSetupEvent event) {
|
||||
|
@ -8,8 +8,8 @@ import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraftforge.registries.RegistryManager;
|
||||
import ru.dbotthepony.mc.otm.registry.Registry;
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement;
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
@ -181,7 +181,7 @@ public class AndroidResearchBuilder {
|
||||
var list = new ArrayList<AndroidResearchType<?>>();
|
||||
|
||||
for (var entry : prerequisites) {
|
||||
var get = Registry.ANDROID_RESEARCH.getValue(entry);
|
||||
var get = MRegistry.INSTANCE.getANDROID_RESEARCH().getValue(entry);
|
||||
|
||||
if (get != null) {
|
||||
list.add(get);
|
||||
@ -193,7 +193,7 @@ public class AndroidResearchBuilder {
|
||||
resolved_preq = List.copyOf(list);
|
||||
|
||||
for (var entry : feature_results) {
|
||||
var get = Registry.ANDROID_FEATURES.getValue(entry.id);
|
||||
var get = MRegistry.INSTANCE.getANDROID_FEATURES().getValue(entry.id);
|
||||
|
||||
if (get != null) {
|
||||
resolved_features.add(new ResolvedFeature(get, entry.level, entry.callback));
|
||||
|
@ -3,8 +3,8 @@ package ru.dbotthepony.mc.otm.android;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraftforge.registries.ForgeRegistryEntry;
|
||||
import ru.dbotthepony.mc.otm.registry.Registry;
|
||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer;
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -27,7 +27,7 @@ public class AndroidResearchType<T extends AndroidResearch> extends ForgeRegistr
|
||||
if (blocking == null) {
|
||||
var list = new ArrayList<AndroidResearchType<?>>();
|
||||
|
||||
for (var type : Registry.ANDROID_RESEARCH) {
|
||||
for (var type : MRegistry.INSTANCE.getANDROID_RESEARCH()) {
|
||||
if (type.getBlockedBy().contains(this)) {
|
||||
list.add(type);
|
||||
}
|
||||
@ -46,7 +46,7 @@ public class AndroidResearchType<T extends AndroidResearch> extends ForgeRegistr
|
||||
if (unlocks == null) {
|
||||
var list = new ArrayList<AndroidResearchType<?>>();
|
||||
|
||||
for (var type : Registry.ANDROID_RESEARCH) {
|
||||
for (var type : MRegistry.INSTANCE.getANDROID_RESEARCH()) {
|
||||
if (type.getPrerequisites().contains(this)) {
|
||||
list.add(type);
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ public class AndroidExtendedReach extends AndroidFeature {
|
||||
public static final UUID MODIFIER_ID = UUID.fromString("4a3fae46-47a8-a03f-857d-f5c2b2c8f2f2");
|
||||
|
||||
public AndroidExtendedReach(IAndroidCapability capability) {
|
||||
super(AndroidFeatures.EXTENDED_REACH, capability);
|
||||
super(AndroidFeatures.INSTANCE.getEXTENDED_REACH(), capability);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -12,7 +12,7 @@ public class AndroidLimbOverclocking extends AndroidFeature {
|
||||
public static final UUID MODIFIER_ID = UUID.fromString("4a3fae46-e57b-4e20-857d-f5c2b2c8f2f2");
|
||||
|
||||
public AndroidLimbOverclocking(IAndroidCapability capability) {
|
||||
super(AndroidFeatures.LIMB_OVERCLOCKING, capability);
|
||||
super(AndroidFeatures.INSTANCE.getLIMB_OVERCLOCKING(), capability);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -8,10 +8,11 @@ import ru.dbotthepony.mc.otm.capability.android.IAndroidCapability;
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction;
|
||||
import ru.dbotthepony.mc.otm.registry.AndroidFeatures;
|
||||
import ru.dbotthepony.mc.otm.registry.MNames;
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames;
|
||||
|
||||
public class AndroidNanobotsArmor extends AndroidFeature {
|
||||
public AndroidNanobotsArmor(IAndroidCapability capability) {
|
||||
super(AndroidFeatures.NANOBOTS_ARMOR, capability);
|
||||
super(AndroidFeatures.INSTANCE.getNANOBOTS_ARMOR(), capability);
|
||||
}
|
||||
|
||||
public int getStrength() {
|
||||
@ -81,7 +82,7 @@ public class AndroidNanobotsArmor extends AndroidFeature {
|
||||
event.setAmount(event.getAmount() - real_absorbed);
|
||||
|
||||
if (capability.getEntity() instanceof ServerPlayer ply) {
|
||||
ply.awardStat(MNames.DAMAGE_ABSORBED, Math.round(real_absorbed * 10f));
|
||||
ply.awardStat(StatNames.INSTANCE.getDAMAGE_ABSORBED(), Math.round(real_absorbed * 10f));
|
||||
}
|
||||
|
||||
layers--;
|
||||
|
@ -8,10 +8,11 @@ import ru.dbotthepony.mc.otm.capability.android.IAndroidCapability;
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction;
|
||||
import ru.dbotthepony.mc.otm.registry.AndroidFeatures;
|
||||
import ru.dbotthepony.mc.otm.registry.MNames;
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames;
|
||||
|
||||
public class AndroidNanobotsRegeneration extends AndroidFeature {
|
||||
public AndroidNanobotsRegeneration(IAndroidCapability capability) {
|
||||
super(AndroidFeatures.NANOBOTS_REGENERATION, capability);
|
||||
super(AndroidFeatures.INSTANCE.getNANOBOTS_REGENERATION(), capability);
|
||||
}
|
||||
|
||||
protected int ticks_passed = 0;
|
||||
@ -45,7 +46,7 @@ public class AndroidNanobotsRegeneration extends AndroidFeature {
|
||||
ent.heal(heal);
|
||||
|
||||
if (capability.getEntity() instanceof ServerPlayer ply) {
|
||||
ply.awardStat(MNames.HEALTH_REGENERATED, Math.round(heal * 10f));
|
||||
ply.awardStat(StatNames.INSTANCE.getHEALTH_REGENERATED(), Math.round(heal * 10f));
|
||||
}
|
||||
|
||||
ticks_passed = 0;
|
||||
|
@ -16,7 +16,7 @@ public class EventHandler {
|
||||
if (!(_cap instanceof AndroidCapabilityPlayer cap))
|
||||
return;
|
||||
|
||||
if (cap.hasFeature(AndroidFeatures.AIR_BAGS))
|
||||
if (cap.hasFeature(AndroidFeatures.INSTANCE.getAIR_BAGS()))
|
||||
return;
|
||||
|
||||
if (ply.getAbilities().mayfly) {
|
||||
|
@ -5,10 +5,11 @@ import net.minecraft.client.model.geom.ModelLayerLocation;
|
||||
import net.minecraft.client.model.geom.PartPose;
|
||||
import net.minecraft.client.model.geom.builders.*;
|
||||
import net.minecraftforge.client.ForgeHooksClient;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.registry.MNames;
|
||||
|
||||
public class GravitationStabilizerModel {
|
||||
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(MNames.PORTABLE_GRAVITATION_STABILIZER, "main");
|
||||
public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(OverdriveThatMatters.loc(MNames.PORTABLE_GRAVITATION_STABILIZER), "main");
|
||||
|
||||
private static HumanoidModel<?> model;
|
||||
private static LayerDefinition def;
|
||||
|
@ -5,11 +5,11 @@ import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
import ru.dbotthepony.mc.otm.registry.Registry;
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability;
|
||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeature;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType;
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Supplier;
|
||||
@ -26,7 +26,7 @@ public record AndroidFeaturePacket(boolean is_added, AndroidFeatureType<?> featu
|
||||
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeBoolean(is_added);
|
||||
buffer.writeInt(Registry.ANDROID_FEATURES.getID(feature));
|
||||
buffer.writeInt(MRegistry.INSTANCE.getANDROID_FEATURES().getID(feature));
|
||||
}
|
||||
|
||||
public void play(Supplier<NetworkEvent.Context> context) {
|
||||
@ -50,7 +50,7 @@ public record AndroidFeaturePacket(boolean is_added, AndroidFeatureType<?> featu
|
||||
|
||||
public static AndroidFeaturePacket read(FriendlyByteBuf buffer) {
|
||||
var is_added = buffer.readBoolean();
|
||||
var feature = Objects.requireNonNull(Registry.ANDROID_FEATURES.getValue(buffer.readInt()));
|
||||
var feature = Objects.requireNonNull(MRegistry.INSTANCE.getANDROID_FEATURES().getValue(buffer.readInt()));
|
||||
|
||||
return new AndroidFeaturePacket(is_added, feature);
|
||||
}
|
||||
|
@ -6,11 +6,11 @@ import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
import ru.dbotthepony.mc.otm.registry.Registry;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearch;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType;
|
||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer;
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability;
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@ -20,12 +20,12 @@ public record AndroidResearchPacket(AndroidResearchType<?> type, CompoundTag pay
|
||||
}
|
||||
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(Registry.ANDROID_RESEARCH.getID(type));
|
||||
buffer.writeInt(MRegistry.INSTANCE.getANDROID_RESEARCH().getID(type));
|
||||
buffer.writeNbt(payload);
|
||||
}
|
||||
|
||||
public static AndroidResearchPacket read(FriendlyByteBuf buffer) {
|
||||
return new AndroidResearchPacket(Registry.ANDROID_RESEARCH.getValue(buffer.readInt()), buffer.readNbt());
|
||||
return new AndroidResearchPacket(MRegistry.INSTANCE.getANDROID_RESEARCH().getValue(buffer.readInt()), buffer.readNbt());
|
||||
}
|
||||
|
||||
public void play(Supplier<NetworkEvent.Context> context) {
|
||||
|
@ -3,12 +3,12 @@ package ru.dbotthepony.mc.otm.network.android;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
import ru.dbotthepony.mc.otm.registry.Registry;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearch;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType;
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability;
|
||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer;
|
||||
import ru.dbotthepony.mc.otm.menu.AndroidStationMenu;
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.function.Supplier;
|
||||
@ -23,7 +23,7 @@ public record AndroidResearchRequestPacket(AndroidResearchType<?> research) {
|
||||
}
|
||||
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(Registry.ANDROID_RESEARCH.getID(research));
|
||||
buffer.writeInt(MRegistry.INSTANCE.getANDROID_RESEARCH().getID(research));
|
||||
}
|
||||
|
||||
public void play(Supplier<NetworkEvent.Context> context) {
|
||||
@ -40,6 +40,6 @@ public record AndroidResearchRequestPacket(AndroidResearchType<?> research) {
|
||||
}
|
||||
|
||||
public static AndroidResearchRequestPacket read(FriendlyByteBuf buffer) {
|
||||
return new AndroidResearchRequestPacket(Objects.requireNonNull(Registry.ANDROID_RESEARCH.getValue(buffer.readInt())));
|
||||
return new AndroidResearchRequestPacket(Objects.requireNonNull(MRegistry.INSTANCE.getANDROID_RESEARCH().getValue(buffer.readInt())));
|
||||
}
|
||||
}
|
||||
|
@ -1,36 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeature;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType;
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidExtendedReach;
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidLimbOverclocking;
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsArmor;
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsRegeneration;
|
||||
|
||||
public class AndroidFeatures {
|
||||
public static final AndroidFeatureType<AndroidFeature> AIR_BAGS = new AndroidFeatureType<>(AndroidFeature::new);
|
||||
public static final AndroidFeatureType<AndroidLimbOverclocking> LIMB_OVERCLOCKING = new AndroidFeatureType<>(AndroidLimbOverclocking::new);
|
||||
public static final AndroidFeatureType<AndroidNanobotsRegeneration> NANOBOTS_REGENERATION = new AndroidFeatureType<>(AndroidNanobotsRegeneration::new);
|
||||
public static final AndroidFeatureType<AndroidNanobotsArmor> NANOBOTS_ARMOR = new AndroidFeatureType<>(AndroidNanobotsArmor::new);
|
||||
public static final AndroidFeatureType<AndroidExtendedReach> EXTENDED_REACH = new AndroidFeatureType<>(AndroidExtendedReach::new);
|
||||
|
||||
static {
|
||||
AIR_BAGS.setRegistryName(MNames.AIR_BAGS);
|
||||
LIMB_OVERCLOCKING.setRegistryName(MNames.LIMB_OVERCLOCKING);
|
||||
NANOBOTS_REGENERATION.setRegistryName(MNames.NANOBOTS_REGENERATION);
|
||||
NANOBOTS_ARMOR.setRegistryName(MNames.NANOBOTS_ARMOR);
|
||||
EXTENDED_REACH.setRegistryName(MNames.EXTENDED_REACH);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<AndroidFeatureType<?>> event) {
|
||||
event.getRegistry().register(AIR_BAGS);
|
||||
event.getRegistry().register(LIMB_OVERCLOCKING);
|
||||
event.getRegistry().register(NANOBOTS_REGENERATION);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR);
|
||||
event.getRegistry().register(EXTENDED_REACH);
|
||||
}
|
||||
}
|
@ -1,247 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType;
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsArmor;
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement;
|
||||
|
||||
public class AndroidResearch {
|
||||
public static final ResourceLocation ICONS = new ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/gui/android_upgrades.png");
|
||||
public static final SkinElement ICON_TRANSFER;
|
||||
public static final SkinElement ICON_ATTACK_BOOST;
|
||||
public static final SkinElement ICON_PLASMA_SHIELD_BOOST;
|
||||
public static final SkinElement ICON_CLOAK;
|
||||
public static final SkinElement ICON_GRAVITATIONAL_STABILIZER;
|
||||
public static final SkinElement ICON_AIR_BAGS;
|
||||
public static final SkinElement ICON_JUMP_BOOST;
|
||||
|
||||
public static final SkinElement ICON_FEATHER_FALLING;
|
||||
public static final SkinElement ICON_ARC;
|
||||
public static final SkinElement ICON_ARROW;
|
||||
public static final SkinElement ICON_ARMOR;
|
||||
public static final SkinElement ICON_NANOBOTS;
|
||||
public static final SkinElement ICON_NIGHT_VISION;
|
||||
public static final SkinElement ICON_OXYGEN_SUPPLY;
|
||||
|
||||
public static final SkinElement ICON_PLASMA_SHIELD;
|
||||
public static final SkinElement ICON_SHOCKWAVE;
|
||||
public static final SkinElement ICON_LIMB_OVERCLOCKING;
|
||||
public static final SkinElement ICON_STEP_ASSIST;
|
||||
public static final SkinElement ICON_ENDER_TELEPORT;
|
||||
public static final SkinElement ICON_WIRELESS_CHARGING;
|
||||
public static final SkinElement ICON_UNKNOWN;
|
||||
|
||||
public static final SkinElement ICON_EXTENDED_REACH;
|
||||
|
||||
static {
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
|
||||
ICON_TRANSFER = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_ATTACK_BOOST = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_PLASMA_SHIELD_BOOST = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_CLOAK = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_GRAVITATIONAL_STABILIZER = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_AIR_BAGS = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_JUMP_BOOST = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
|
||||
y += 18;
|
||||
x = 0;
|
||||
|
||||
ICON_FEATHER_FALLING = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_ARC = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_ARROW = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_ARMOR = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_NANOBOTS = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_NIGHT_VISION = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_OXYGEN_SUPPLY = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
|
||||
y += 18;
|
||||
x = 0;
|
||||
|
||||
ICON_PLASMA_SHIELD = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_SHOCKWAVE = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_LIMB_OVERCLOCKING = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_STEP_ASSIST = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_ENDER_TELEPORT = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_WIRELESS_CHARGING = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
ICON_UNKNOWN = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
|
||||
y += 18;
|
||||
x = 0;
|
||||
|
||||
ICON_EXTENDED_REACH = new SkinElement(ICONS, x, y, 18, 18, 126, 126);
|
||||
x += 18;
|
||||
}
|
||||
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch> AIR_BAGS =
|
||||
new AndroidResearchBuilder()
|
||||
.setExperienceCost(18)
|
||||
.addFeatureResult(AndroidFeatures.AIR_BAGS)
|
||||
.withDescription()
|
||||
.withIcon(ICON_AIR_BAGS)
|
||||
.build();
|
||||
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch> EXTENDED_REACH =
|
||||
new AndroidResearchBuilder()
|
||||
.setExperienceCost(40)
|
||||
.addFeatureResult(AndroidFeatures.EXTENDED_REACH)
|
||||
.withDescription()
|
||||
.withIcon(ICON_EXTENDED_REACH)
|
||||
.build();
|
||||
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch>[] LIMB_OVERCLOCKING = new AndroidResearchType[4];
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch>[] NANOBOTS_REGENERATION = new AndroidResearchType[4];
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch>[] NANOBOTS_ARMOR_STRENGTH = new AndroidResearchType[3];
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch>[] NANOBOTS_ARMOR_SPEED = new AndroidResearchType[3];
|
||||
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch> NANOBOTS =
|
||||
new AndroidResearchBuilder()
|
||||
.setExperienceCost(15)
|
||||
.withDescription()
|
||||
.withIcon(ICON_NANOBOTS)
|
||||
.build();
|
||||
|
||||
public static final AndroidResearchType<ru.dbotthepony.mc.otm.android.AndroidResearch> NANOBOTS_ARMOR =
|
||||
new AndroidResearchBuilder()
|
||||
.setExperienceCost(25)
|
||||
.withDescription()
|
||||
.addPrerequisite(MNames.NANOBOTS)
|
||||
.addFeatureResult(MNames.NANOBOTS_ARMOR)
|
||||
.withIcon(ICON_ARMOR)
|
||||
.build();
|
||||
|
||||
static {
|
||||
AIR_BAGS.setRegistryName(MNames.AIR_BAGS);
|
||||
NANOBOTS.setRegistryName(MNames.NANOBOTS);
|
||||
NANOBOTS_ARMOR.setRegistryName(MNames.NANOBOTS_ARMOR);
|
||||
EXTENDED_REACH.setRegistryName(MNames.EXTENDED_REACH);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
var limbs = new AndroidResearchBuilder()
|
||||
.setExperienceCost(18 + i * 8)
|
||||
.withIconText(new TextComponent(String.valueOf(i + 1)))
|
||||
.withIcon(ICON_LIMB_OVERCLOCKING)
|
||||
.withName(new TranslatableComponent("android_research.overdrive_that_matters.limb_overclocking", i + 1))
|
||||
.withDescription(new TranslatableComponent("android_research.overdrive_that_matters.limb_overclocking.description", (i + 1) * 8, (i + 1) * 6))
|
||||
.addFeatureResult(MNames.LIMB_OVERCLOCKING, i);
|
||||
|
||||
var regeneration = new AndroidResearchBuilder()
|
||||
.setExperienceCost(20 + i * 6)
|
||||
.withIconText(new TextComponent(String.valueOf(i + 1)))
|
||||
.withIcon(ICON_NANOBOTS)
|
||||
.withName(new TranslatableComponent("android_research.overdrive_that_matters.nanobots_regeneration", i + 1))
|
||||
.withDescription(
|
||||
i > 0 ? new TranslatableComponent("android_research.overdrive_that_matters.nanobots_regeneration.description_improve") : new TranslatableComponent("android_research.overdrive_that_matters.nanobots_regeneration.description"))
|
||||
.addFeatureResult(MNames.NANOBOTS_REGENERATION, i);
|
||||
|
||||
if (i > 0) {
|
||||
limbs.addPrerequisite(MNames.LIMB_OVERCLOCKING_LIST[i - 1]);
|
||||
regeneration.addPrerequisite(MNames.NANOBOTS_REGENERATION_LIST[i - 1]);
|
||||
} else {
|
||||
regeneration.addPrerequisite(MNames.NANOBOTS);
|
||||
}
|
||||
|
||||
LIMB_OVERCLOCKING[i] = limbs.build();
|
||||
NANOBOTS_REGENERATION[i] = regeneration.build();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
final int level = i + 1;
|
||||
|
||||
NANOBOTS_ARMOR_STRENGTH[i] = new AndroidResearchBuilder()
|
||||
.setExperienceCost(20 + i * 8)
|
||||
.withIconText(new TextComponent(String.valueOf(i + 1)))
|
||||
.withIcon(ICON_ARMOR)
|
||||
.addPrerequisite(i > 0 ? MNames.NANOBOTS_ARMOR_STRENGTH_LIST[i - 1] : MNames.NANOBOTS_ARMOR)
|
||||
.withName(new TranslatableComponent("android_research.overdrive_that_matters.nanobots_armor_strength", i + 1))
|
||||
.withDescription(new TranslatableComponent("android_research.overdrive_that_matters.nanobots_armor_strength.description", (i + 1) * 8, (i + 1) * 6))
|
||||
.addFeatureResult(MNames.NANOBOTS_ARMOR, 0, (feature) -> {
|
||||
if (((AndroidNanobotsArmor) feature).getStrength() < level)
|
||||
((AndroidNanobotsArmor) feature).setStrength(level);
|
||||
})
|
||||
.build();
|
||||
|
||||
NANOBOTS_ARMOR_SPEED[i] = new AndroidResearchBuilder()
|
||||
.setExperienceCost(20 + i * 8)
|
||||
.withIconText(new TextComponent(String.valueOf(i + 1)))
|
||||
.withIcon(ICON_ARMOR)
|
||||
.addPrerequisite(i > 0 ? MNames.NANOBOTS_ARMOR_SPEED_LIST[i - 1] : MNames.NANOBOTS_ARMOR)
|
||||
.withName(new TranslatableComponent("android_research.overdrive_that_matters.nanobots_armor_speed", i + 1))
|
||||
.withDescription(new TranslatableComponent("android_research.overdrive_that_matters.nanobots_armor_speed.description", (i + 1) * 8, (i + 1) * 6))
|
||||
.addFeatureResult(MNames.NANOBOTS_ARMOR, 0, (feature) -> {
|
||||
if (((AndroidNanobotsArmor) feature).getSpeed() < level)
|
||||
((AndroidNanobotsArmor) feature).setSpeed(level);
|
||||
})
|
||||
.build();
|
||||
}
|
||||
|
||||
LIMB_OVERCLOCKING[0].setRegistryName(MNames.LIMB_OVERCLOCKING_1);
|
||||
LIMB_OVERCLOCKING[1].setRegistryName(MNames.LIMB_OVERCLOCKING_2);
|
||||
LIMB_OVERCLOCKING[2].setRegistryName(MNames.LIMB_OVERCLOCKING_3);
|
||||
LIMB_OVERCLOCKING[3].setRegistryName(MNames.LIMB_OVERCLOCKING_4);
|
||||
|
||||
NANOBOTS_ARMOR_SPEED[0].setRegistryName(MNames.NANOBOTS_ARMOR_SPEED_1);
|
||||
NANOBOTS_ARMOR_SPEED[1].setRegistryName(MNames.NANOBOTS_ARMOR_SPEED_2);
|
||||
NANOBOTS_ARMOR_SPEED[2].setRegistryName(MNames.NANOBOTS_ARMOR_SPEED_3);
|
||||
|
||||
NANOBOTS_ARMOR_STRENGTH[0].setRegistryName(MNames.NANOBOTS_ARMOR_STRENGTH_1);
|
||||
NANOBOTS_ARMOR_STRENGTH[1].setRegistryName(MNames.NANOBOTS_ARMOR_STRENGTH_2);
|
||||
NANOBOTS_ARMOR_STRENGTH[2].setRegistryName(MNames.NANOBOTS_ARMOR_STRENGTH_3);
|
||||
|
||||
NANOBOTS_REGENERATION[0].setRegistryName(MNames.NANOBOTS_REGENERATION_1);
|
||||
NANOBOTS_REGENERATION[1].setRegistryName(MNames.NANOBOTS_REGENERATION_2);
|
||||
NANOBOTS_REGENERATION[2].setRegistryName(MNames.NANOBOTS_REGENERATION_3);
|
||||
NANOBOTS_REGENERATION[3].setRegistryName(MNames.NANOBOTS_REGENERATION_4);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<AndroidResearchType<?>> event) {
|
||||
event.getRegistry().register(AIR_BAGS);
|
||||
event.getRegistry().register(NANOBOTS);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR);
|
||||
event.getRegistry().register(EXTENDED_REACH);
|
||||
|
||||
event.getRegistry().register(LIMB_OVERCLOCKING[0]);
|
||||
event.getRegistry().register(LIMB_OVERCLOCKING[1]);
|
||||
event.getRegistry().register(LIMB_OVERCLOCKING[2]);
|
||||
event.getRegistry().register(LIMB_OVERCLOCKING[3]);
|
||||
|
||||
event.getRegistry().register(NANOBOTS_ARMOR_SPEED[0]);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR_SPEED[1]);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR_SPEED[2]);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR_STRENGTH[0]);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR_STRENGTH[1]);
|
||||
event.getRegistry().register(NANOBOTS_ARMOR_STRENGTH[2]);
|
||||
|
||||
event.getRegistry().register(NANOBOTS_REGENERATION[0]);
|
||||
event.getRegistry().register(NANOBOTS_REGENERATION[1]);
|
||||
event.getRegistry().register(NANOBOTS_REGENERATION[2]);
|
||||
event.getRegistry().register(NANOBOTS_REGENERATION[3]);
|
||||
}
|
||||
}
|
@ -1,105 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import ru.dbotthepony.mc.otm.block.entity.*;
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity;
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntityExplosionDebugger;
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntitySphereDebugger;
|
||||
import ru.dbotthepony.mc.otm.client.render.BlackHoleRenderer;
|
||||
import ru.dbotthepony.mc.otm.client.render.EnergyCounterRenderer;
|
||||
import ru.dbotthepony.mc.otm.client.render.GravitationStabilizerRenderer;
|
||||
|
||||
public class MBlockEntities {
|
||||
public static final BlockEntityType<AndroidStationBlockEntity> ANDROID_STATION = BlockEntityType.Builder.of(AndroidStationBlockEntity::new, MBlocks.ANDROID_STATION).build(null);
|
||||
public static final BlockEntityType<BatteryBankBlockEntity> BATTERY_BANK = BlockEntityType.Builder.of(BatteryBankBlockEntity::new, MBlocks.BATTERY_BANK).build(null);
|
||||
public static final BlockEntityType<MatterDecomposerBlockEntity> MATTER_DECOMPOSER = BlockEntityType.Builder.of(MatterDecomposerBlockEntity::new, MBlocks.MATTER_DECOMPOSER).build(null);
|
||||
public static final BlockEntityType<MatterCapacitorBankBlockEntity> MATTER_CAPACITOR_BANK = BlockEntityType.Builder.of(MatterCapacitorBankBlockEntity::new, MBlocks.MATTER_CAPACITOR_BANK).build(null);
|
||||
public static final BlockEntityType<MatterCableBlockEntity> MATTER_CABLE = BlockEntityType.Builder.of(MatterCableBlockEntity::new, MBlocks.MATTER_CABLE).build(null);
|
||||
public static final BlockEntityType<PatternStorageBlockEntity> PATTERN_STORAGE = BlockEntityType.Builder.of(PatternStorageBlockEntity::new, MBlocks.PATTERN_STORAGE).build(null);
|
||||
public static final BlockEntityType<MatterScannerBlockEntity> MATTER_SCANNER = BlockEntityType.Builder.of(MatterScannerBlockEntity::new, MBlocks.MATTER_SCANNER).build(null);
|
||||
public static final BlockEntityType<MatterPanelBlockEntity> MATTER_PANEL = BlockEntityType.Builder.of(MatterPanelBlockEntity::new, MBlocks.MATTER_PANEL).build(null);
|
||||
public static final BlockEntityType<MatterReplicatorBlockEntity> MATTER_REPLICATOR = BlockEntityType.Builder.of(MatterReplicatorBlockEntity::new, MBlocks.MATTER_REPLICATOR).build(null);
|
||||
public static final BlockEntityType<MatterBottlerBlockEntity> MATTER_BOTTLER = BlockEntityType.Builder.of(MatterBottlerBlockEntity::new, MBlocks.MATTER_BOTTLER).build(null);
|
||||
public static final BlockEntityType<DriveViewerBlockEntity> DRIVE_VIEWER = BlockEntityType.Builder.of(DriveViewerBlockEntity::new, MBlocks.DRIVE_VIEWER).build(null);
|
||||
public static final BlockEntityType<BlackHoleBlockEntity> BLACK_HOLE = BlockEntityType.Builder.of(BlackHoleBlockEntity::new, MBlocks.BLACK_HOLE).build(null);
|
||||
public static final BlockEntityType<CargoCrateBlockEntity> CARGO_CRATE = BlockEntityType.Builder.of(CargoCrateBlockEntity::new, MBlocks.CARGO_CRATE).build(null);
|
||||
public static final BlockEntityType<DriveRackBlockEntity> DRIVE_RACK = BlockEntityType.Builder.of(DriveRackBlockEntity::new, MBlocks.DRIVE_RACK).build(null);
|
||||
public static final BlockEntityType<ItemMonitorBlockEntity> ITEM_MONITOR = BlockEntityType.Builder.of(ItemMonitorBlockEntity::new, MBlocks.ITEM_MONITOR).build(null);
|
||||
public static final BlockEntityType<BlockEntityEnergyCounter> ENERGY_COUNTER = BlockEntityType.Builder.of(BlockEntityEnergyCounter::new, MBlocks.ENERGY_COUNTER).build(null);
|
||||
public static final BlockEntityType<ChemicalGeneratorBlockEntity> CHEMICAL_GENERATOR = BlockEntityType.Builder.of(ChemicalGeneratorBlockEntity::new, MBlocks.CHEMICAL_GENERATOR).build(null);
|
||||
public static final BlockEntityType<PlatePressBlockEntity> PLATE_PRESS = BlockEntityType.Builder.of(PlatePressBlockEntity::new, MBlocks.PLATE_PRESS).build(null);
|
||||
public static final BlockEntityType<GravitationStabilizerBlockEntity> GRAVITATION_STABILIZER = BlockEntityType.Builder.of(GravitationStabilizerBlockEntity::new, MBlocks.GRAVITATION_STABILIZER).build(null);
|
||||
public static final BlockEntityType<MatterRecyclerBlockEntity> MATTER_RECYCLER = BlockEntityType.Builder.of(MatterRecyclerBlockEntity::new, MBlocks.MATTER_RECYCLER).build(null);
|
||||
|
||||
public static final BlockEntityType<BlockEntityExplosionDebugger> DEBUG_EXPLOSION_SMALL = BlockEntityType.Builder.of(BlockEntityExplosionDebugger::new, MBlocks.DEBUG_EXPLOSION_SMALL).build(null);
|
||||
public static final BlockEntityType<BlockEntitySphereDebugger> DEBUG_SPHERE_POINTS = BlockEntityType.Builder.of(BlockEntitySphereDebugger::new, MBlocks.DEBUG_SPHERE_POINTS).build(null);
|
||||
|
||||
static {
|
||||
ANDROID_STATION.setRegistryName(MNames.ANDROID_STATION);
|
||||
BATTERY_BANK.setRegistryName(MNames.BATTERY_BANK);
|
||||
MATTER_DECOMPOSER.setRegistryName(MNames.MATTER_DECOMPOSER);
|
||||
MATTER_CAPACITOR_BANK.setRegistryName(MNames.MATTER_CAPACITOR_BANK);
|
||||
MATTER_CABLE.setRegistryName(MNames.MATTER_CABLE);
|
||||
PATTERN_STORAGE.setRegistryName(MNames.PATTERN_STORAGE);
|
||||
MATTER_SCANNER.setRegistryName(MNames.MATTER_SCANNER);
|
||||
MATTER_PANEL.setRegistryName(MNames.MATTER_PANEL);
|
||||
MATTER_REPLICATOR.setRegistryName(MNames.MATTER_REPLICATOR);
|
||||
MATTER_BOTTLER.setRegistryName(MNames.MATTER_BOTTLER);
|
||||
DRIVE_VIEWER.setRegistryName(MNames.DRIVE_VIEWER);
|
||||
BLACK_HOLE.setRegistryName(MNames.BLACK_HOLE);
|
||||
CARGO_CRATE.setRegistryName(MNames.CARGO_CRATE);
|
||||
DRIVE_RACK.setRegistryName(MNames.DRIVE_RACK);
|
||||
ITEM_MONITOR.setRegistryName(MNames.ITEM_MONITOR);
|
||||
ENERGY_COUNTER.setRegistryName(MNames.ENERGY_COUNTER);
|
||||
CHEMICAL_GENERATOR.setRegistryName(MNames.CHEMICAL_GENERATOR);
|
||||
PLATE_PRESS.setRegistryName(MNames.PLATE_PRESS);
|
||||
GRAVITATION_STABILIZER.setRegistryName(MNames.GRAVITATION_STABILIZER);
|
||||
MATTER_RECYCLER.setRegistryName(MNames.MATTER_RECYCLER);
|
||||
|
||||
DEBUG_EXPLOSION_SMALL.setRegistryName(MNames.DEBUG_EXPLOSION_SMALL);
|
||||
DEBUG_SPHERE_POINTS.setRegistryName(MNames.DEBUG_SPHERE_POINTS);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<BlockEntityType<?>> event) {
|
||||
event.getRegistry().register(ANDROID_STATION);
|
||||
event.getRegistry().register(BATTERY_BANK);
|
||||
event.getRegistry().register(MATTER_DECOMPOSER);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_BANK);
|
||||
event.getRegistry().register(MATTER_CABLE);
|
||||
event.getRegistry().register(PATTERN_STORAGE);
|
||||
event.getRegistry().register(MATTER_SCANNER);
|
||||
event.getRegistry().register(MATTER_PANEL);
|
||||
event.getRegistry().register(MATTER_REPLICATOR);
|
||||
event.getRegistry().register(MATTER_BOTTLER);
|
||||
event.getRegistry().register(DRIVE_VIEWER);
|
||||
event.getRegistry().register(BLACK_HOLE);
|
||||
event.getRegistry().register(CARGO_CRATE);
|
||||
event.getRegistry().register(DRIVE_RACK);
|
||||
event.getRegistry().register(ITEM_MONITOR);
|
||||
event.getRegistry().register(ENERGY_COUNTER);
|
||||
event.getRegistry().register(CHEMICAL_GENERATOR);
|
||||
event.getRegistry().register(PLATE_PRESS);
|
||||
event.getRegistry().register(GRAVITATION_STABILIZER);
|
||||
event.getRegistry().register(MATTER_RECYCLER);
|
||||
|
||||
event.getRegistry().register(DEBUG_EXPLOSION_SMALL);
|
||||
event.getRegistry().register(DEBUG_SPHERE_POINTS);
|
||||
|
||||
// OverdriveThatMatters.LOGGER.info("Registered block entities");
|
||||
}
|
||||
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void registerRenderers(final FMLClientSetupEvent event) {
|
||||
BlockEntityRenderers.register(BLACK_HOLE, BlackHoleRenderer::new);
|
||||
BlockEntityRenderers.register(GRAVITATION_STABILIZER, GravitationStabilizerRenderer::new);
|
||||
BlockEntityRenderers.register(ENERGY_COUNTER, EnergyCounterRenderer::new);
|
||||
}
|
||||
}
|
@ -1,190 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.client.renderer.ItemBlockRenderTypes;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.util.valueproviders.UniformInt;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.OreBlock;
|
||||
import net.minecraft.world.level.block.SoundType;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import ru.dbotthepony.mc.otm.block.*;
|
||||
|
||||
public class MBlocks {
|
||||
public static final AndroidStationBlock ANDROID_STATION = new AndroidStationBlock();
|
||||
public static final BatteryBankBlock BATTERY_BANK = new BatteryBankBlock();
|
||||
public static final MatterDecomposerBlock MATTER_DECOMPOSER = new MatterDecomposerBlock();
|
||||
public static final MatterCapacitorBankBlock MATTER_CAPACITOR_BANK = new MatterCapacitorBankBlock();
|
||||
public static final BlockMatterCable MATTER_CABLE = new BlockMatterCable();
|
||||
public static final PatternStorageBlock PATTERN_STORAGE = new PatternStorageBlock();
|
||||
public static final MatterScannerBlock MATTER_SCANNER = new MatterScannerBlock();
|
||||
public static final MatterPanelBlock MATTER_PANEL = new MatterPanelBlock();
|
||||
public static final MatterReplicatorBlock MATTER_REPLICATOR = new MatterReplicatorBlock();
|
||||
public static final MatterBottlerBlock MATTER_BOTTLER = new MatterBottlerBlock();
|
||||
public static final DriveViewerBlock DRIVE_VIEWER = new DriveViewerBlock();
|
||||
public static final CargoCrateBlock CARGO_CRATE = new CargoCrateBlock();
|
||||
public static final DriveRackBlock DRIVE_RACK = new DriveRackBlock();
|
||||
public static final ItemMonitorBlock ITEM_MONITOR = new ItemMonitorBlock();
|
||||
public static final EnergyCounterBlock ENERGY_COUNTER = new EnergyCounterBlock();
|
||||
public static final ChemicalGeneratorBlock CHEMICAL_GENERATOR = new ChemicalGeneratorBlock();
|
||||
public static final PlatePressBlock PLATE_PRESS = new PlatePressBlock();
|
||||
public static final MatterRecyclerBlock MATTER_RECYCLER = new MatterRecyclerBlock();
|
||||
|
||||
public static final BlockExplosionDebugger DEBUG_EXPLOSION_SMALL = new BlockExplosionDebugger();
|
||||
public static final BlockSphereDebugger DEBUG_SPHERE_POINTS = new BlockSphereDebugger();
|
||||
|
||||
public static final BlackHoleBlock BLACK_HOLE = new BlackHoleBlock();
|
||||
public static final BlockGravitationStabilizer GRAVITATION_STABILIZER = new BlockGravitationStabilizer();
|
||||
public static final BlockGravitationStabilizerLens GRAVITATION_STABILIZER_LENS = new BlockGravitationStabilizerLens();
|
||||
|
||||
public static final Block TRITANIUM_ORE = new OreBlock(
|
||||
BlockBehaviour.Properties.of(Material.STONE)
|
||||
.strength(3.25F, 6.0F)
|
||||
.requiresCorrectToolForDrops(),
|
||||
UniformInt.of(0, 3)
|
||||
);
|
||||
|
||||
public static final Block DEEPSLATE_TRITANIUM_ORE = new OreBlock(
|
||||
BlockBehaviour.Properties.of(Material.STONE)
|
||||
.strength(4.75F, 6.5F)
|
||||
.requiresCorrectToolForDrops(),
|
||||
UniformInt.of(0, 3)
|
||||
);
|
||||
|
||||
public static final Block TRITANIUM_RAW_BLOCK = new Block(
|
||||
BlockBehaviour.Properties.of(Material.STONE)
|
||||
.strength(8.0F, 10F)
|
||||
.requiresCorrectToolForDrops()
|
||||
);
|
||||
|
||||
public static final Block[] CRATES = new Block[Registry.CRATES.length];
|
||||
|
||||
public static final Block TRITANIUM_BLOCK = new Block(
|
||||
BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_LIGHT_BLUE)
|
||||
.sound(SoundType.BASALT)
|
||||
.requiresCorrectToolForDrops()
|
||||
.explosionResistance(80)
|
||||
.strength(4)
|
||||
);
|
||||
|
||||
public static final Block TRITANIUM_STRIPED_BLOCK = new Block(
|
||||
BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_LIGHT_BLUE)
|
||||
.sound(SoundType.BASALT)
|
||||
.requiresCorrectToolForDrops()
|
||||
.explosionResistance(80)
|
||||
.strength(4)
|
||||
);
|
||||
|
||||
public static final Block CARBON_FIBRE_BLOCK = new Block(
|
||||
BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_LIGHT_BLUE)
|
||||
.sound(SoundType.BASALT)
|
||||
.requiresCorrectToolForDrops()
|
||||
.explosionResistance(40)
|
||||
.strength(3)
|
||||
);
|
||||
|
||||
static {
|
||||
for (int i = 0; i < Registry.CRATES.length; i++) {
|
||||
CRATES[i] = new Block(BlockBehaviour.Properties.of(Material.METAL, Registry.CRATES[i].color())
|
||||
.sound(SoundType.METAL)
|
||||
.requiresCorrectToolForDrops()
|
||||
.strength(5.0F, 6.0F));
|
||||
|
||||
CRATES[i].setRegistryName(Registry.CRATES[i].name());
|
||||
}
|
||||
|
||||
TRITANIUM_ORE.setRegistryName(MNames.TRITANIUM_ORE);
|
||||
DEEPSLATE_TRITANIUM_ORE.setRegistryName(MNames.DEEPSLATE_TRITANIUM_ORE);
|
||||
TRITANIUM_RAW_BLOCK.setRegistryName(MNames.TRITANIUM_RAW_BLOCK);
|
||||
ANDROID_STATION.setRegistryName(MNames.ANDROID_STATION);
|
||||
BATTERY_BANK.setRegistryName(MNames.BATTERY_BANK);
|
||||
MATTER_DECOMPOSER.setRegistryName(MNames.MATTER_DECOMPOSER);
|
||||
MATTER_CAPACITOR_BANK.setRegistryName(MNames.MATTER_CAPACITOR_BANK);
|
||||
MATTER_CABLE.setRegistryName(MNames.MATTER_CABLE);
|
||||
PATTERN_STORAGE.setRegistryName(MNames.PATTERN_STORAGE);
|
||||
MATTER_SCANNER.setRegistryName(MNames.MATTER_SCANNER);
|
||||
MATTER_PANEL.setRegistryName(MNames.MATTER_PANEL);
|
||||
MATTER_REPLICATOR.setRegistryName(MNames.MATTER_REPLICATOR);
|
||||
MATTER_BOTTLER.setRegistryName(MNames.MATTER_BOTTLER);
|
||||
DRIVE_VIEWER.setRegistryName(MNames.DRIVE_VIEWER);
|
||||
BLACK_HOLE.setRegistryName(MNames.BLACK_HOLE);
|
||||
CARGO_CRATE.setRegistryName(MNames.CARGO_CRATE);
|
||||
DRIVE_RACK.setRegistryName(MNames.DRIVE_RACK);
|
||||
ITEM_MONITOR.setRegistryName(MNames.ITEM_MONITOR);
|
||||
ENERGY_COUNTER.setRegistryName(MNames.ENERGY_COUNTER);
|
||||
CHEMICAL_GENERATOR.setRegistryName(MNames.CHEMICAL_GENERATOR);
|
||||
PLATE_PRESS.setRegistryName(MNames.PLATE_PRESS);
|
||||
MATTER_RECYCLER.setRegistryName(MNames.MATTER_RECYCLER);
|
||||
|
||||
GRAVITATION_STABILIZER.setRegistryName(MNames.GRAVITATION_STABILIZER);
|
||||
GRAVITATION_STABILIZER_LENS.setRegistryName(MNames.GRAVITATION_STABILIZER_LENS);
|
||||
|
||||
DEBUG_EXPLOSION_SMALL.setRegistryName(MNames.DEBUG_EXPLOSION_SMALL);
|
||||
DEBUG_SPHERE_POINTS.setRegistryName(MNames.DEBUG_SPHERE_POINTS);
|
||||
|
||||
TRITANIUM_BLOCK.setRegistryName(MNames.TRITANIUM_BLOCK);
|
||||
TRITANIUM_STRIPED_BLOCK.setRegistryName(MNames.TRITANIUM_STRIPED_BLOCK);
|
||||
CARBON_FIBRE_BLOCK.setRegistryName(MNames.CARBON_FIBRE_BLOCK);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<Block> event) {
|
||||
event.getRegistry().register(ANDROID_STATION);
|
||||
event.getRegistry().register(BATTERY_BANK);
|
||||
event.getRegistry().register(MATTER_DECOMPOSER);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_BANK);
|
||||
event.getRegistry().register(MATTER_CABLE);
|
||||
event.getRegistry().register(PATTERN_STORAGE);
|
||||
event.getRegistry().register(MATTER_SCANNER);
|
||||
event.getRegistry().register(MATTER_PANEL);
|
||||
event.getRegistry().register(MATTER_REPLICATOR);
|
||||
event.getRegistry().register(MATTER_BOTTLER);
|
||||
event.getRegistry().register(DRIVE_VIEWER);
|
||||
event.getRegistry().register(TRITANIUM_BLOCK);
|
||||
event.getRegistry().register(TRITANIUM_STRIPED_BLOCK);
|
||||
event.getRegistry().register(CARBON_FIBRE_BLOCK);
|
||||
event.getRegistry().register(BLACK_HOLE);
|
||||
event.getRegistry().register(CARGO_CRATE);
|
||||
event.getRegistry().register(TRITANIUM_ORE);
|
||||
event.getRegistry().register(DEEPSLATE_TRITANIUM_ORE);
|
||||
event.getRegistry().register(TRITANIUM_RAW_BLOCK);
|
||||
event.getRegistry().register(DRIVE_RACK);
|
||||
event.getRegistry().register(ITEM_MONITOR);
|
||||
event.getRegistry().register(ENERGY_COUNTER);
|
||||
event.getRegistry().register(CHEMICAL_GENERATOR);
|
||||
event.getRegistry().register(PLATE_PRESS);
|
||||
event.getRegistry().register(GRAVITATION_STABILIZER);
|
||||
event.getRegistry().register(GRAVITATION_STABILIZER_LENS);
|
||||
event.getRegistry().register(MATTER_RECYCLER);
|
||||
|
||||
event.getRegistry().register(DEBUG_EXPLOSION_SMALL);
|
||||
event.getRegistry().register(DEBUG_SPHERE_POINTS);
|
||||
|
||||
for (var crate : CRATES) {
|
||||
event.getRegistry().register(crate);
|
||||
}
|
||||
|
||||
for (var glass : Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
event.getRegistry().register(glass.block());
|
||||
event.getRegistry().register(glass.pane());
|
||||
}
|
||||
|
||||
// OverdriveThatMatters.LOGGER.info("Registered blocks");
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void registerClient(final FMLClientSetupEvent event) {
|
||||
final var translucent = RenderType.translucent();
|
||||
|
||||
for (var glass : Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
ItemBlockRenderTypes.setRenderLayer(glass.block(), translucent);
|
||||
ItemBlockRenderTypes.setRenderLayer(glass.pane(), translucent);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,413 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.food.FoodProperties;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.common.ForgeTier;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction;
|
||||
import ru.dbotthepony.mc.otm.item.*;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.List;
|
||||
|
||||
public class MItems {
|
||||
static {
|
||||
if (OverdriveThatMatters.INSTANCE == null) {
|
||||
throw new ConcurrentModificationException("Accessing Registry before OverdriveThatMatters class is initialized. This is not supported! If no other mods are installed this is a bug.");
|
||||
}
|
||||
}
|
||||
|
||||
private static final Item.Properties DEFAULT_PROPERTIES = new Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB);
|
||||
|
||||
public static final BlockItem ANDROID_STATION = new BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem BATTERY_BANK = new BlockItem(MBlocks.BATTERY_BANK, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_DECOMPOSER = new BlockItem(MBlocks.MATTER_DECOMPOSER, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_CAPACITOR_BANK = new BlockItem(MBlocks.MATTER_CAPACITOR_BANK, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_CABLE = new BlockItem(MBlocks.MATTER_CABLE, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem PATTERN_STORAGE = new BlockItem(MBlocks.PATTERN_STORAGE, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_SCANNER = new BlockItem(MBlocks.MATTER_SCANNER, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_PANEL = new BlockItem(MBlocks.MATTER_PANEL, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_REPLICATOR = new BlockItem(MBlocks.MATTER_REPLICATOR, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_BOTTLER = new BlockItem(MBlocks.MATTER_BOTTLER, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem DRIVE_VIEWER = new BlockItem(MBlocks.DRIVE_VIEWER, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem CARGO_CRATE = new BlockItem(MBlocks.CARGO_CRATE, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem TRITANIUM_ORE = new BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem DEEPSLATE_TRITANIUM_ORE = new BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem TRITANIUM_RAW_BLOCK = new BlockItem(MBlocks.TRITANIUM_RAW_BLOCK, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem DRIVE_RACK = new BlockItem(MBlocks.DRIVE_RACK, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem ITEM_MONITOR = new BlockItem(MBlocks.ITEM_MONITOR, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem ENERGY_COUNTER = new BlockItem(MBlocks.ENERGY_COUNTER, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem CHEMICAL_GENERATOR = new BlockItem(MBlocks.CHEMICAL_GENERATOR, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem PLATE_PRESS = new BlockItem(MBlocks.PLATE_PRESS, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem MATTER_RECYCLER = new BlockItem(MBlocks.MATTER_RECYCLER, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem GRAVITATION_STABILIZER = new BlockItem(MBlocks.GRAVITATION_STABILIZER, DEFAULT_PROPERTIES) {
|
||||
@Override
|
||||
public void appendHoverText(@Nonnull ItemStack p_40572_, @Nullable Level p_40573_, @Nonnull List<Component> p_40574_, @Nonnull TooltipFlag p_40575_) {
|
||||
super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_);
|
||||
|
||||
p_40574_.add(new TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc").withStyle(ChatFormatting.GRAY));
|
||||
p_40574_.add(new TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc2").withStyle(ChatFormatting.DARK_GRAY));
|
||||
p_40574_.add(new TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc3").withStyle(ChatFormatting.DARK_GRAY));
|
||||
p_40574_.add(new TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc4").withStyle(ChatFormatting.DARK_GRAY));
|
||||
}
|
||||
};
|
||||
|
||||
public static final BlockItem DEBUG_EXPLOSION_SMALL = new BlockItem(MBlocks.DEBUG_EXPLOSION_SMALL, DEFAULT_PROPERTIES);
|
||||
public static final BlockItem DEBUG_SPHERE_POINTS = new BlockItem(MBlocks.DEBUG_SPHERE_POINTS, DEFAULT_PROPERTIES);
|
||||
|
||||
public static final MatterDustItem MATTER_DUST = new MatterDustItem();
|
||||
|
||||
public static final Item TRITANIUM_ORE_CLUMP = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item TRITANIUM_INGOT = new Item(DEFAULT_PROPERTIES);
|
||||
|
||||
public static final ForgeTier TRITANIUM_COMPONENT;
|
||||
|
||||
static {
|
||||
final var component = Ingredient.of(TRITANIUM_INGOT);
|
||||
|
||||
TRITANIUM_COMPONENT = new ForgeTier(
|
||||
Tiers.IRON.getLevel(),
|
||||
3072,
|
||||
Tiers.IRON.getSpeed() * 1.1f,
|
||||
3.5f,
|
||||
16,
|
||||
BlockTags.NEEDS_IRON_TOOL,
|
||||
() -> component
|
||||
);
|
||||
}
|
||||
|
||||
private static final Item.Properties TOOLS_PROPRTIES = new Item.Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB);
|
||||
public static final SwordItem TRITANIUM_SWORD = new SwordItem(TRITANIUM_COMPONENT, 4, -2.7f, TOOLS_PROPRTIES);
|
||||
public static final ShovelItem TRITANIUM_SHOVEL = new ShovelItem(TRITANIUM_COMPONENT, 1.5f, -2.4f, TOOLS_PROPRTIES);
|
||||
public static final AxeItem TRITANIUM_AXE = new AxeItem(TRITANIUM_COMPONENT, 8.5f, -3.4f, TOOLS_PROPRTIES);
|
||||
public static final PickaxeItem TRITANIUM_PICKAXE = new PickaxeItem(TRITANIUM_COMPONENT, 2, -2.8f, TOOLS_PROPRTIES);
|
||||
public static final HoeItem TRITANIUM_HOE = new HoeItem(TRITANIUM_COMPONENT, 0, -3.4f, TOOLS_PROPRTIES);
|
||||
|
||||
public static final Item[] TRITANIUM_TOOLS = new Item[]{
|
||||
TRITANIUM_SWORD,
|
||||
TRITANIUM_SHOVEL,
|
||||
TRITANIUM_AXE,
|
||||
TRITANIUM_PICKAXE,
|
||||
TRITANIUM_HOE
|
||||
};
|
||||
|
||||
public static final EnergySwordItem ENERGY_SWORD = new EnergySwordItem();
|
||||
|
||||
public static final ItemTritaniumArmor TRITANIUM_HELMET = new ItemTritaniumArmor(EquipmentSlot.HEAD);
|
||||
public static final ItemTritaniumArmor TRITANIUM_CHESTPLATE = new ItemTritaniumArmor(EquipmentSlot.CHEST);
|
||||
public static final ItemTritaniumArmor TRITANIUM_PANTS = new ItemTritaniumArmor(EquipmentSlot.LEGS);
|
||||
public static final ItemTritaniumArmor TRITANIUM_BOOTS = new ItemTritaniumArmor(EquipmentSlot.FEET);
|
||||
|
||||
public static final Item[] TRITANIUM_ARMOR = new Item[]{
|
||||
TRITANIUM_HELMET,
|
||||
TRITANIUM_CHESTPLATE,
|
||||
TRITANIUM_PANTS,
|
||||
TRITANIUM_BOOTS
|
||||
};
|
||||
|
||||
public static final Item MATTER_IO_PORT = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item MATTER_TRANSFORM_MATRIX = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item ENERGY_BUS = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item ELECTRIC_PARTS = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item MACHINE_FRAME = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item TRITANIUM_PLATE = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item IRON_PLATE = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item COPPER_WIRING = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item GOLD_WIRING = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item PORTABLE_CONDENSATION_DRIVE_CASING = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item PORTABLE_DENSE_CONDENSATION_DRIVE_CASING = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item CIRCUIT_PLATING = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item BASIC_CONTROL_CIRCUIT = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item ADVANCED_CONTROL_CIRCUIT = new Item(DEFAULT_PROPERTIES);
|
||||
|
||||
public static final Item BLACK_HOLE_SCANNER = new Item(DEFAULT_PROPERTIES) {
|
||||
@Override
|
||||
public void appendHoverText(@Nonnull ItemStack p_40572_, @Nullable Level p_40573_, @Nonnull List<Component> p_40574_, @Nonnull TooltipFlag p_40575_) {
|
||||
super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_);
|
||||
|
||||
p_40574_.add(new TranslatableComponent("item.overdrive_that_matters.black_hole_scanner.desc").withStyle(ChatFormatting.GRAY));
|
||||
p_40574_.add(new TranslatableComponent("item.overdrive_that_matters.black_hole_scanner.desc2").withStyle(ChatFormatting.DARK_GRAY));
|
||||
}
|
||||
};
|
||||
public static final Item GRAVITATION_FIELD_LIMITER = new Item(DEFAULT_PROPERTIES);
|
||||
public static final Item GRAVITATION_FIELD_SENSOR = new Item(DEFAULT_PROPERTIES);
|
||||
public static final ItemPortableGravitationStabilizer PORTABLE_GRAVITATION_STABILIZER = new ItemPortableGravitationStabilizer();
|
||||
|
||||
public static final BlockItem BLACK_HOLE = new BlockItem(MBlocks.BLACK_HOLE, DEFAULT_PROPERTIES);
|
||||
|
||||
public static final GravitationalDisruptorItem GRAVITATIONAL_DISRUPTOR = new GravitationalDisruptorItem();
|
||||
|
||||
public static final PillItem PILL_ANDROID = new PillItem(PillType.BECOME_ANDROID);
|
||||
public static final PillItem PILL_HUMANE = new PillItem(PillType.BECOME_HUMANE);
|
||||
public static final PillItem PILL_OBLIVION = new PillItem(PillType.OBLIVION);
|
||||
public static final HealPillItem PILL_HEAL = new HealPillItem();
|
||||
|
||||
public static final BatteryItem BATTERY_CRUDE = new BatteryItem(new ImpreciseFraction(30_000), new ImpreciseFraction(150), new ImpreciseFraction(150));
|
||||
public static final BatteryItem BATTERY_BASIC = new BatteryItem(new ImpreciseFraction(60_000), new ImpreciseFraction(300), new ImpreciseFraction(300));
|
||||
public static final BatteryItem BATTERY_NORMAL = new BatteryItem(new ImpreciseFraction(250_000), new ImpreciseFraction(1000), new ImpreciseFraction(1000));
|
||||
public static final BatteryItem BATTERY_DENSE = new BatteryItem(new ImpreciseFraction(1_000_000), new ImpreciseFraction(2000), new ImpreciseFraction(2000));
|
||||
public static final BatteryItem BATTERY_CAPACITOR = new BatteryItem(new ImpreciseFraction(150_000), new ImpreciseFraction(15000), new ImpreciseFraction(15000));
|
||||
public static final BatteryItem BATTERY_CREATIVE = new BatteryItem();
|
||||
|
||||
public static final BatteryItem[] BATTERIES = {
|
||||
BATTERY_CRUDE,
|
||||
BATTERY_BASIC,
|
||||
BATTERY_NORMAL,
|
||||
BATTERY_DENSE,
|
||||
BATTERY_CAPACITOR,
|
||||
};
|
||||
|
||||
public static final Item MATTER_CAPACITOR_PARTS = new Item(new Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB));
|
||||
|
||||
public static final Item[] DATAGEN_COMPONENTS = {
|
||||
ENERGY_BUS,
|
||||
ELECTRIC_PARTS,
|
||||
TRITANIUM_PLATE,
|
||||
IRON_PLATE,
|
||||
COPPER_WIRING,
|
||||
GOLD_WIRING,
|
||||
CIRCUIT_PLATING,
|
||||
BASIC_CONTROL_CIRCUIT,
|
||||
ADVANCED_CONTROL_CIRCUIT,
|
||||
MATTER_CAPACITOR_PARTS,
|
||||
MATTER_IO_PORT,
|
||||
MATTER_TRANSFORM_MATRIX,
|
||||
};
|
||||
|
||||
public static final MatterCapacitorItem MATTER_CAPACITOR_BASIC = new MatterCapacitorItem(new ImpreciseFraction("4"));
|
||||
public static final MatterCapacitorItem MATTER_CAPACITOR_NORMAL = new MatterCapacitorItem(new ImpreciseFraction("10"));
|
||||
public static final MatterCapacitorItem MATTER_CAPACITOR_DENSE = new MatterCapacitorItem(new ImpreciseFraction("40"));
|
||||
public static final MatterCapacitorItem MATTER_CAPACITOR_CREATIVE = new MatterCapacitorItem();
|
||||
|
||||
public static final PatternStorageItem PATTERN_DRIVE_NORMAL = new PatternStorageItem(4);
|
||||
public static final PatternStorageItem PATTERN_DRIVE_CREATIVE = new PatternStorageItem();
|
||||
|
||||
public static final PortableCondensationDriveItem PORTABLE_CONDENSATION_DRIVE = new PortableCondensationDriveItem(4000);
|
||||
public static final PortableCondensationDriveItem PORTABLE_DENSE_CONDENSATION_DRIVE = new PortableCondensationDriveItem(25000);
|
||||
|
||||
public static final Item NUTRIENT_PASTE = new Item(new Item.Properties().stacksTo(64).food(new FoodProperties.Builder().meat().nutrition(8).saturationMod(0.9F).build()).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB));
|
||||
|
||||
public static final Item[] CRATES = new Item[Registry.CRATES.length];
|
||||
|
||||
public static final Item TRITANIUM_BLOCK = new BlockItem(MBlocks.TRITANIUM_BLOCK, DEFAULT_PROPERTIES);
|
||||
public static final Item TRITANIUM_STRIPED_BLOCK = new BlockItem(MBlocks.TRITANIUM_STRIPED_BLOCK, DEFAULT_PROPERTIES);
|
||||
public static final Item CARBON_FIBRE_BLOCK = new BlockItem(MBlocks.CARBON_FIBRE_BLOCK, DEFAULT_PROPERTIES);
|
||||
|
||||
static {
|
||||
for (int i = 0; i < Registry.CRATES.length; i++) {
|
||||
CRATES[i] = new BlockItem(MBlocks.CRATES[i], new Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB));
|
||||
CRATES[i].setRegistryName(Registry.CRATES[i].name());
|
||||
}
|
||||
|
||||
ANDROID_STATION.setRegistryName(MNames.ANDROID_STATION);
|
||||
BATTERY_BANK.setRegistryName(MNames.BATTERY_BANK);
|
||||
MATTER_DECOMPOSER.setRegistryName(MNames.MATTER_DECOMPOSER);
|
||||
MATTER_CAPACITOR_BANK.setRegistryName(MNames.MATTER_CAPACITOR_BANK);
|
||||
MATTER_CABLE.setRegistryName(MNames.MATTER_CABLE);
|
||||
PATTERN_STORAGE.setRegistryName(MNames.PATTERN_STORAGE);
|
||||
MATTER_SCANNER.setRegistryName(MNames.MATTER_SCANNER);
|
||||
MATTER_PANEL.setRegistryName(MNames.MATTER_PANEL);
|
||||
MATTER_REPLICATOR.setRegistryName(MNames.MATTER_REPLICATOR);
|
||||
MATTER_BOTTLER.setRegistryName(MNames.MATTER_BOTTLER);
|
||||
DRIVE_VIEWER.setRegistryName(MNames.DRIVE_VIEWER);
|
||||
BLACK_HOLE.setRegistryName(MNames.BLACK_HOLE);
|
||||
CARGO_CRATE.setRegistryName(MNames.CARGO_CRATE);
|
||||
DRIVE_RACK.setRegistryName(MNames.DRIVE_RACK);
|
||||
ITEM_MONITOR.setRegistryName(MNames.ITEM_MONITOR);
|
||||
ENERGY_COUNTER.setRegistryName(MNames.ENERGY_COUNTER);
|
||||
CHEMICAL_GENERATOR.setRegistryName(MNames.CHEMICAL_GENERATOR);
|
||||
PLATE_PRESS.setRegistryName(MNames.PLATE_PRESS);
|
||||
GRAVITATION_STABILIZER.setRegistryName(MNames.GRAVITATION_STABILIZER);
|
||||
MATTER_RECYCLER.setRegistryName(MNames.MATTER_RECYCLER);
|
||||
MATTER_DUST.setRegistryName(MNames.MATTER_DUST);
|
||||
|
||||
DEBUG_EXPLOSION_SMALL.setRegistryName(MNames.DEBUG_EXPLOSION_SMALL);
|
||||
DEBUG_SPHERE_POINTS.setRegistryName(MNames.DEBUG_SPHERE_POINTS);
|
||||
|
||||
TRITANIUM_ORE.setRegistryName(MNames.TRITANIUM_ORE);
|
||||
DEEPSLATE_TRITANIUM_ORE.setRegistryName(MNames.DEEPSLATE_TRITANIUM_ORE);
|
||||
TRITANIUM_RAW_BLOCK.setRegistryName(MNames.TRITANIUM_RAW_BLOCK);
|
||||
TRITANIUM_ORE_CLUMP.setRegistryName(MNames.TRITANIUM_ORE_CLUMP);
|
||||
TRITANIUM_INGOT.setRegistryName(MNames.TRITANIUM_INGOT);
|
||||
MATTER_IO_PORT.setRegistryName(MNames.MATTER_IO_PORT);
|
||||
MATTER_TRANSFORM_MATRIX.setRegistryName(MNames.MATTER_TRANSFORM_MATRIX);
|
||||
ENERGY_BUS.setRegistryName(MNames.ENERGY_BUS);
|
||||
ELECTRIC_PARTS.setRegistryName(MNames.ELECTRIC_PARTS);
|
||||
MACHINE_FRAME.setRegistryName(MNames.MACHINE_FRAME);
|
||||
TRITANIUM_PLATE.setRegistryName(MNames.TRITANIUM_PLATE);
|
||||
IRON_PLATE.setRegistryName(MNames.IRON_PLATE);
|
||||
COPPER_WIRING.setRegistryName(MNames.COPPER_WIRING);
|
||||
GOLD_WIRING.setRegistryName(MNames.GOLD_WIRING);
|
||||
PORTABLE_CONDENSATION_DRIVE_CASING.setRegistryName(MNames.PORTABLE_CONDENSATION_DRIVE_CASING);
|
||||
PORTABLE_DENSE_CONDENSATION_DRIVE_CASING.setRegistryName(MNames.PORTABLE_DENSE_CONDENSATION_DRIVE_CASING);
|
||||
CIRCUIT_PLATING.setRegistryName(MNames.CIRCUIT_PLATING);
|
||||
BASIC_CONTROL_CIRCUIT.setRegistryName(MNames.BASIC_CONTROL_CIRCUIT);
|
||||
ADVANCED_CONTROL_CIRCUIT.setRegistryName(MNames.ADVANCED_CONTROL_CIRCUIT);
|
||||
|
||||
BLACK_HOLE_SCANNER.setRegistryName(MNames.BLACK_HOLE_SCANNER);
|
||||
GRAVITATION_FIELD_LIMITER.setRegistryName(MNames.GRAVITATION_FIELD_LIMITER);
|
||||
GRAVITATION_FIELD_SENSOR.setRegistryName(MNames.GRAVITATION_FIELD_SENSOR);
|
||||
PORTABLE_GRAVITATION_STABILIZER.setRegistryName(MNames.PORTABLE_GRAVITATION_STABILIZER);
|
||||
|
||||
GRAVITATIONAL_DISRUPTOR.setRegistryName(MNames.GRAVITATIONAL_DISRUPTOR);
|
||||
PILL_ANDROID.setRegistryName(MNames.PILL_ANDROID);
|
||||
PILL_HUMANE.setRegistryName(MNames.PILL_HUMANE);
|
||||
PILL_OBLIVION.setRegistryName(MNames.PILL_OBLIVION);
|
||||
PILL_HEAL.setRegistryName(MNames.PILL_HEAL);
|
||||
BATTERY_CRUDE.setRegistryName(MNames.BATTERY_CRUDE);
|
||||
BATTERY_BASIC.setRegistryName(MNames.BATTERY_BASIC);
|
||||
BATTERY_NORMAL.setRegistryName(MNames.BATTERY_NORMAL);
|
||||
BATTERY_DENSE.setRegistryName(MNames.BATTERY_DENSE);
|
||||
BATTERY_CAPACITOR.setRegistryName(MNames.BATTERY_CAPACITOR);
|
||||
BATTERY_CREATIVE.setRegistryName(MNames.BATTERY_CREATIVE);
|
||||
|
||||
MATTER_CAPACITOR_PARTS.setRegistryName(MNames.MATTER_CAPACITOR_PARTS);
|
||||
MATTER_CAPACITOR_BASIC.setRegistryName(MNames.MATTER_CAPACITOR_BASIC);
|
||||
MATTER_CAPACITOR_NORMAL.setRegistryName(MNames.MATTER_CAPACITOR_NORMAL);
|
||||
MATTER_CAPACITOR_DENSE.setRegistryName(MNames.MATTER_CAPACITOR_DENSE);
|
||||
MATTER_CAPACITOR_CREATIVE.setRegistryName(MNames.MATTER_CAPACITOR_CREATIVE);
|
||||
|
||||
PATTERN_DRIVE_NORMAL.setRegistryName(MNames.PATTERN_DRIVE_NORMAL);
|
||||
PATTERN_DRIVE_CREATIVE.setRegistryName(MNames.PATTERN_DRIVE_CREATIVE);
|
||||
PORTABLE_CONDENSATION_DRIVE.setRegistryName(MNames.PORTABLE_CONDENSATION_DRIVE);
|
||||
PORTABLE_DENSE_CONDENSATION_DRIVE.setRegistryName(MNames.PORTABLE_DENSE_CONDENSATION_DRIVE);
|
||||
|
||||
NUTRIENT_PASTE.setRegistryName(MNames.NUTRIENT_PASTE);
|
||||
|
||||
TRITANIUM_BLOCK.setRegistryName(MNames.TRITANIUM_BLOCK);
|
||||
TRITANIUM_STRIPED_BLOCK.setRegistryName(MNames.TRITANIUM_STRIPED_BLOCK);
|
||||
CARBON_FIBRE_BLOCK.setRegistryName(MNames.CARBON_FIBRE_BLOCK);
|
||||
|
||||
TRITANIUM_SWORD.setRegistryName(MNames.TRITANIUM_SWORD);
|
||||
TRITANIUM_PICKAXE.setRegistryName(MNames.TRITANIUM_PICKAXE);
|
||||
TRITANIUM_SHOVEL.setRegistryName(MNames.TRITANIUM_SHOVEL);
|
||||
TRITANIUM_AXE.setRegistryName(MNames.TRITANIUM_AXE);
|
||||
TRITANIUM_HOE.setRegistryName(MNames.TRITANIUM_HOE);
|
||||
|
||||
TRITANIUM_HELMET.setRegistryName(MNames.TRITANIUM_HELMET);
|
||||
TRITANIUM_CHESTPLATE.setRegistryName(MNames.TRITANIUM_CHESTPLATE);
|
||||
TRITANIUM_PANTS.setRegistryName(MNames.TRITANIUM_PANTS);
|
||||
TRITANIUM_BOOTS.setRegistryName(MNames.TRITANIUM_BOOTS);
|
||||
|
||||
ENERGY_SWORD.setRegistryName(MNames.ENERGY_SWORD);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<Item> event) {
|
||||
event.getRegistry().register(ANDROID_STATION);
|
||||
event.getRegistry().register(BATTERY_BANK);
|
||||
event.getRegistry().register(MATTER_DECOMPOSER);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_BANK);
|
||||
event.getRegistry().register(MATTER_CABLE);
|
||||
event.getRegistry().register(PATTERN_STORAGE);
|
||||
event.getRegistry().register(MATTER_SCANNER);
|
||||
event.getRegistry().register(MATTER_PANEL);
|
||||
event.getRegistry().register(MATTER_REPLICATOR);
|
||||
event.getRegistry().register(MATTER_BOTTLER);
|
||||
event.getRegistry().register(DRIVE_VIEWER);
|
||||
event.getRegistry().register(BLACK_HOLE);
|
||||
event.getRegistry().register(CARGO_CRATE);
|
||||
event.getRegistry().register(DRIVE_RACK);
|
||||
event.getRegistry().register(ITEM_MONITOR);
|
||||
event.getRegistry().register(ENERGY_COUNTER);
|
||||
event.getRegistry().register(CHEMICAL_GENERATOR);
|
||||
event.getRegistry().register(PLATE_PRESS);
|
||||
event.getRegistry().register(GRAVITATION_STABILIZER);
|
||||
event.getRegistry().register(MATTER_DUST);
|
||||
event.getRegistry().register(MATTER_RECYCLER);
|
||||
|
||||
event.getRegistry().register(DEBUG_EXPLOSION_SMALL);
|
||||
event.getRegistry().register(DEBUG_SPHERE_POINTS);
|
||||
|
||||
event.getRegistry().register(TRITANIUM_ORE);
|
||||
event.getRegistry().register(DEEPSLATE_TRITANIUM_ORE);
|
||||
event.getRegistry().register(TRITANIUM_RAW_BLOCK);
|
||||
|
||||
event.getRegistry().register(TRITANIUM_ORE_CLUMP);
|
||||
event.getRegistry().register(TRITANIUM_INGOT);
|
||||
event.getRegistry().register(MATTER_IO_PORT);
|
||||
event.getRegistry().register(MATTER_TRANSFORM_MATRIX);
|
||||
event.getRegistry().register(ENERGY_BUS);
|
||||
event.getRegistry().register(ELECTRIC_PARTS);
|
||||
event.getRegistry().register(MACHINE_FRAME);
|
||||
event.getRegistry().register(TRITANIUM_PLATE);
|
||||
event.getRegistry().register(IRON_PLATE);
|
||||
event.getRegistry().register(COPPER_WIRING);
|
||||
event.getRegistry().register(GOLD_WIRING);
|
||||
event.getRegistry().register(PORTABLE_CONDENSATION_DRIVE_CASING);
|
||||
event.getRegistry().register(PORTABLE_DENSE_CONDENSATION_DRIVE_CASING);
|
||||
event.getRegistry().register(CIRCUIT_PLATING);
|
||||
event.getRegistry().register(BASIC_CONTROL_CIRCUIT);
|
||||
event.getRegistry().register(ADVANCED_CONTROL_CIRCUIT);
|
||||
|
||||
event.getRegistry().register(BLACK_HOLE_SCANNER);
|
||||
event.getRegistry().register(GRAVITATION_FIELD_LIMITER);
|
||||
event.getRegistry().register(GRAVITATION_FIELD_SENSOR);
|
||||
event.getRegistry().register(PORTABLE_GRAVITATION_STABILIZER);
|
||||
|
||||
event.getRegistry().register(GRAVITATIONAL_DISRUPTOR);
|
||||
event.getRegistry().register(PILL_ANDROID);
|
||||
event.getRegistry().register(PILL_HUMANE);
|
||||
event.getRegistry().register(PILL_OBLIVION);
|
||||
event.getRegistry().register(PILL_HEAL);
|
||||
event.getRegistry().register(BATTERY_CRUDE);
|
||||
event.getRegistry().register(BATTERY_BASIC);
|
||||
event.getRegistry().register(BATTERY_NORMAL);
|
||||
event.getRegistry().register(BATTERY_DENSE);
|
||||
event.getRegistry().register(BATTERY_CAPACITOR);
|
||||
event.getRegistry().register(BATTERY_CREATIVE);
|
||||
|
||||
event.getRegistry().register(MATTER_CAPACITOR_PARTS);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_BASIC);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_NORMAL);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_DENSE);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_CREATIVE);
|
||||
|
||||
event.getRegistry().register(PATTERN_DRIVE_NORMAL);
|
||||
event.getRegistry().register(PATTERN_DRIVE_CREATIVE);
|
||||
event.getRegistry().register(PORTABLE_CONDENSATION_DRIVE);
|
||||
event.getRegistry().register(PORTABLE_DENSE_CONDENSATION_DRIVE);
|
||||
|
||||
event.getRegistry().register(NUTRIENT_PASTE);
|
||||
|
||||
event.getRegistry().register(TRITANIUM_BLOCK);
|
||||
event.getRegistry().register(TRITANIUM_STRIPED_BLOCK);
|
||||
event.getRegistry().register(CARBON_FIBRE_BLOCK);
|
||||
|
||||
for (var crate : CRATES) {
|
||||
event.getRegistry().register(crate);
|
||||
}
|
||||
|
||||
for (var glass : Registry.INDUSTRIAL_GLASS_LIST) {
|
||||
event.getRegistry().register(glass.item());
|
||||
event.getRegistry().register(glass.paneItem());
|
||||
}
|
||||
|
||||
event.getRegistry().register(TRITANIUM_SWORD);
|
||||
event.getRegistry().register(TRITANIUM_SHOVEL);
|
||||
event.getRegistry().register(TRITANIUM_AXE);
|
||||
event.getRegistry().register(TRITANIUM_PICKAXE);
|
||||
event.getRegistry().register(TRITANIUM_HOE);
|
||||
|
||||
event.getRegistry().register(TRITANIUM_HELMET);
|
||||
event.getRegistry().register(TRITANIUM_CHESTPLATE);
|
||||
event.getRegistry().register(TRITANIUM_PANTS);
|
||||
event.getRegistry().register(TRITANIUM_BOOTS);
|
||||
|
||||
event.getRegistry().register(ENERGY_SWORD);
|
||||
|
||||
// OverdriveThatMatters.LOGGER.info("Registered items");
|
||||
}
|
||||
}
|
@ -1,97 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.client.gui.screens.MenuScreens;
|
||||
import net.minecraft.world.inventory.MenuType;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import ru.dbotthepony.mc.otm.client.screen.*;
|
||||
import ru.dbotthepony.mc.otm.menu.*;
|
||||
|
||||
public class MMenus {
|
||||
public static final MenuType<AndroidStationMenu> ANDROID_STATION = new MenuType<>(AndroidStationMenu::new);
|
||||
public static final MenuType<BatteryBankMenu> BATTERY_BANK = new MenuType<>(BatteryBankMenu::new);
|
||||
public static final MenuType<MatterDecomposerMenu> MATTER_DECOMPOSER = new MenuType<>(MatterDecomposerMenu::new);
|
||||
public static final MenuType<MatterCapacitorMenu> MATTER_CAPACITOR_BANK = new MenuType<>(MatterCapacitorMenu::new);
|
||||
public static final MenuType<PatternStorageMenu> PATTERN_STORAGE = new MenuType<>(PatternStorageMenu::new);
|
||||
public static final MenuType<MatterScannerMenu> MATTER_SCANNER = new MenuType<>(MatterScannerMenu::new);
|
||||
public static final MenuType<MatterPanelMenu> MATTER_PANEL = new MenuType<>(MatterPanelMenu::new);
|
||||
public static final MenuType<MatterReplicatorMenu> MATTER_REPLICATOR = new MenuType<>(MatterReplicatorMenu::new);
|
||||
public static final MenuType<MatterBottlerMenu> MATTER_BOTTLER = new MenuType<>(MatterBottlerMenu::new);
|
||||
public static final MenuType<DriveViewerMenu> DRIVE_VIEWER = new MenuType<>(DriveViewerMenu::new);
|
||||
public static final MenuType<CargoCrateMenu> CARGO_CRATE = new MenuType<>(CargoCrateMenu::new);
|
||||
public static final MenuType<DriveRackMenu> DRIVE_RACK = new MenuType<>(DriveRackMenu::new);
|
||||
public static final MenuType<ItemMonitorMenu> ITEM_MONITOR = new MenuType<>(ItemMonitorMenu::new);
|
||||
public static final MenuType<EnergyCounterMenu> ENERGY_COUNTER = new MenuType<>(EnergyCounterMenu::new);
|
||||
public static final MenuType<ChemicalGeneratorMenu> CHEMICAL_GENERATOR = new MenuType<>(ChemicalGeneratorMenu::new);
|
||||
public static final MenuType<MenuPlatePress> PLATE_PRESS = new MenuType<>(MenuPlatePress::new);
|
||||
public static final MenuType<MatterRecyclerMenu> MATTER_RECYCLER = new MenuType<>(MatterRecyclerMenu::new);
|
||||
|
||||
static {
|
||||
ANDROID_STATION.setRegistryName(MNames.ANDROID_STATION);
|
||||
BATTERY_BANK.setRegistryName(MNames.BATTERY_BANK);
|
||||
MATTER_DECOMPOSER.setRegistryName(MNames.MATTER_DECOMPOSER);
|
||||
MATTER_CAPACITOR_BANK.setRegistryName(MNames.MATTER_CAPACITOR_BANK);
|
||||
PATTERN_STORAGE.setRegistryName(MNames.PATTERN_STORAGE);
|
||||
MATTER_SCANNER.setRegistryName(MNames.MATTER_SCANNER);
|
||||
MATTER_PANEL.setRegistryName(MNames.MATTER_PANEL);
|
||||
MATTER_REPLICATOR.setRegistryName(MNames.MATTER_REPLICATOR);
|
||||
MATTER_BOTTLER.setRegistryName(MNames.MATTER_BOTTLER);
|
||||
DRIVE_VIEWER.setRegistryName(MNames.DRIVE_VIEWER);
|
||||
CARGO_CRATE.setRegistryName(MNames.CARGO_CRATE);
|
||||
DRIVE_RACK.setRegistryName(MNames.DRIVE_RACK);
|
||||
ITEM_MONITOR.setRegistryName(MNames.ITEM_MONITOR);
|
||||
ENERGY_COUNTER.setRegistryName(MNames.ENERGY_COUNTER);
|
||||
CHEMICAL_GENERATOR.setRegistryName(MNames.CHEMICAL_GENERATOR);
|
||||
PLATE_PRESS.setRegistryName(MNames.PLATE_PRESS);
|
||||
MATTER_RECYCLER.setRegistryName(MNames.MATTER_RECYCLER);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<MenuType<?>> event) {
|
||||
event.getRegistry().register(ANDROID_STATION);
|
||||
event.getRegistry().register(BATTERY_BANK);
|
||||
event.getRegistry().register(MATTER_DECOMPOSER);
|
||||
event.getRegistry().register(MATTER_CAPACITOR_BANK);
|
||||
event.getRegistry().register(PATTERN_STORAGE);
|
||||
event.getRegistry().register(MATTER_SCANNER);
|
||||
event.getRegistry().register(MATTER_PANEL);
|
||||
event.getRegistry().register(MATTER_REPLICATOR);
|
||||
event.getRegistry().register(MATTER_BOTTLER);
|
||||
event.getRegistry().register(DRIVE_VIEWER);
|
||||
event.getRegistry().register(CARGO_CRATE);
|
||||
event.getRegistry().register(DRIVE_RACK);
|
||||
event.getRegistry().register(ITEM_MONITOR);
|
||||
event.getRegistry().register(ENERGY_COUNTER);
|
||||
event.getRegistry().register(CHEMICAL_GENERATOR);
|
||||
event.getRegistry().register(PLATE_PRESS);
|
||||
event.getRegistry().register(MATTER_RECYCLER);
|
||||
|
||||
// OverdriveThatMatters.LOGGER.info("Registered menus");
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void registerScreens(final FMLClientSetupEvent event) {
|
||||
MenuScreens.register(ANDROID_STATION, AndroidStationScreen::new);
|
||||
MenuScreens.register(BATTERY_BANK, BatteryBankScreen::new);
|
||||
MenuScreens.register(MATTER_DECOMPOSER, MatterDecomposerScreen::new);
|
||||
MenuScreens.register(MATTER_CAPACITOR_BANK, MatterCapacitorBankScreen::new);
|
||||
MenuScreens.register(PATTERN_STORAGE, PatternStorageScreen::new);
|
||||
MenuScreens.register(MATTER_SCANNER, MatterScannerScreen::new);
|
||||
MenuScreens.register(MATTER_PANEL, MatterPanelScreen::new);
|
||||
MenuScreens.register(MATTER_REPLICATOR, MatterReplicatorScreen::new);
|
||||
MenuScreens.register(MATTER_BOTTLER, MatterBottlerScreen::new);
|
||||
MenuScreens.register(DRIVE_VIEWER, DriveViewerScreen::new);
|
||||
MenuScreens.register(CARGO_CRATE, CargoCrateScreen::new);
|
||||
MenuScreens.register(DRIVE_RACK, DriveRackScreen::new);
|
||||
MenuScreens.register(ITEM_MONITOR, ItemMonitorScreen::new);
|
||||
MenuScreens.register(ENERGY_COUNTER, EnergyCounterScreen::new);
|
||||
MenuScreens.register(CHEMICAL_GENERATOR, ChemicalGeneratorScreen::new);
|
||||
MenuScreens.register(PLATE_PRESS, PlatePressScreen::new);
|
||||
MenuScreens.register(MATTER_RECYCLER, MatterRecyclerScreen::new);
|
||||
|
||||
// OverdriveThatMatters.LOGGER.info("Registered screens");
|
||||
}
|
||||
}
|
@ -1,175 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
|
||||
public class MNames {
|
||||
private static ResourceLocation loc(String path) {
|
||||
return new ResourceLocation(OverdriveThatMatters.MOD_ID, path);
|
||||
}
|
||||
|
||||
// blocks
|
||||
public static final ResourceLocation ANDROID_STATION = loc("android_station"); // без рецепта
|
||||
public static final ResourceLocation BATTERY_BANK = loc("battery_bank"); // нужен рецепт
|
||||
public static final ResourceLocation MATTER_DECOMPOSER = loc("matter_decomposer"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_CAPACITOR_BANK = loc("matter_capacitor_bank"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_CABLE = loc("matter_cable"); // есть рецепт
|
||||
public static final ResourceLocation PATTERN_STORAGE = loc("pattern_storage"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_SCANNER = loc("matter_scanner"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_PANEL = loc("matter_panel"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_REPLICATOR = loc("matter_replicator"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_BOTTLER = loc("matter_bottler"); // есть рецепт
|
||||
public static final ResourceLocation DRIVE_VIEWER = loc("drive_viewer"); // есть рецепт
|
||||
public static final ResourceLocation DRIVE_RACK = loc("drive_rack"); // нужен рецепт (после улучшений)
|
||||
public static final ResourceLocation ITEM_MONITOR = loc("item_monitor"); // нужен рецепт (после улучшений)
|
||||
public static final ResourceLocation ENERGY_COUNTER = loc("energy_counter"); // есть рецепт
|
||||
public static final ResourceLocation CHEMICAL_GENERATOR = loc("chemical_generator"); // есть рецепт
|
||||
public static final ResourceLocation PLATE_PRESS = loc("plate_press"); // есть рецепт
|
||||
public static final ResourceLocation MATTER_RECYCLER = loc("matter_recycler"); // нужен рецепт
|
||||
|
||||
public static final ResourceLocation DEBUG_EXPLOSION_SMALL = loc("debug_explosion_small");
|
||||
public static final ResourceLocation DEBUG_SPHERE_POINTS = loc("debug_sphere_points");
|
||||
|
||||
public static final ResourceLocation BLACK_HOLE = loc("black_hole");
|
||||
public static final ResourceLocation GRAVITATION_STABILIZER = loc("gravitation_stabilizer"); // нужен рецепт
|
||||
public static final ResourceLocation GRAVITATION_STABILIZER_LENS = loc("gravitation_stabilizer_lens");
|
||||
public static final ResourceLocation CARGO_CRATE = loc("cargo_crate"); // нужен рецепт?
|
||||
|
||||
// building blocks
|
||||
public static final ResourceLocation TRITANIUM_BLOCK = loc("tritanium_block");
|
||||
public static final ResourceLocation TRITANIUM_STRIPED_BLOCK = loc("tritanium_striped_block");
|
||||
|
||||
public static final ResourceLocation CARBON_FIBRE_BLOCK = loc("carbon_fibre_block");
|
||||
|
||||
// capabilities
|
||||
public static final ResourceLocation ANDROID_CAPABILITY = loc("android_capability");
|
||||
|
||||
// items
|
||||
public static final ResourceLocation GRAVITATIONAL_DISRUPTOR = loc("gravitational_disruptor");
|
||||
public static final ResourceLocation MATTER_DUST = loc("matter_dust");
|
||||
|
||||
public static final ResourceLocation PILL_ANDROID = loc("pill_android");
|
||||
public static final ResourceLocation PILL_HUMANE = loc("pill_humane");
|
||||
public static final ResourceLocation PILL_OBLIVION = loc("pill_oblivion");
|
||||
public static final ResourceLocation PILL_HEAL = loc("pill_heal");
|
||||
|
||||
public static final ResourceLocation BATTERY_CRUDE = loc("battery_crude");
|
||||
public static final ResourceLocation BATTERY_BASIC = loc("battery_basic");
|
||||
public static final ResourceLocation BATTERY_NORMAL = loc("battery_normal");
|
||||
public static final ResourceLocation BATTERY_DENSE = loc("battery_dense");
|
||||
public static final ResourceLocation BATTERY_CAPACITOR = loc("battery_capacitor");
|
||||
public static final ResourceLocation BATTERY_CREATIVE = loc("battery_creative");
|
||||
|
||||
public static final ResourceLocation MATTER_CAPACITOR_PARTS = loc("matter_capacitor_parts");
|
||||
public static final ResourceLocation MATTER_CAPACITOR_BASIC = loc("matter_capacitor_basic");
|
||||
public static final ResourceLocation MATTER_CAPACITOR_NORMAL = loc("matter_capacitor_normal");
|
||||
public static final ResourceLocation MATTER_CAPACITOR_DENSE = loc("matter_capacitor_dense");
|
||||
public static final ResourceLocation MATTER_CAPACITOR_CREATIVE = loc("matter_capacitor_creative");
|
||||
|
||||
public static final ResourceLocation PATTERN_DRIVE_NORMAL = loc("pattern_drive_normal");
|
||||
public static final ResourceLocation PATTERN_DRIVE_CREATIVE = loc("pattern_drive_creative");
|
||||
|
||||
public static final ResourceLocation NUTRIENT_PASTE = loc("nutrient_paste");
|
||||
|
||||
public static final ResourceLocation PORTABLE_CONDENSATION_DRIVE = loc("portable_condensation_drive");
|
||||
public static final ResourceLocation PORTABLE_DENSE_CONDENSATION_DRIVE = loc("portable_dense_condensation_drive");
|
||||
|
||||
public static final ResourceLocation BLACK_HOLE_SCANNER = loc("black_hole_scanner");
|
||||
public static final ResourceLocation GRAVITATION_FIELD_LIMITER = loc("gravitation_field_limiter");
|
||||
public static final ResourceLocation GRAVITATION_FIELD_SENSOR = loc("graivtation_field_sensor");
|
||||
public static final ResourceLocation PORTABLE_GRAVITATION_STABILIZER = loc("portable_gravitation_stabilizer");
|
||||
|
||||
// armor
|
||||
public static final ResourceLocation TRITANIUM_HELMET = loc("tritanium_helmet");
|
||||
public static final ResourceLocation TRITANIUM_CHESTPLATE = loc("tritanium_chestplate");
|
||||
public static final ResourceLocation TRITANIUM_PANTS = loc("tritanium_pants");
|
||||
public static final ResourceLocation TRITANIUM_BOOTS = loc("tritanium_boots");
|
||||
|
||||
// tools
|
||||
public static final ResourceLocation TRITANIUM_SWORD = loc("tritanium_sword");
|
||||
public static final ResourceLocation TRITANIUM_AXE = loc("tritanium_axe");
|
||||
public static final ResourceLocation TRITANIUM_PICKAXE = loc("tritanium_pickaxe");
|
||||
public static final ResourceLocation TRITANIUM_SHOVEL = loc("tritanium_shovel");
|
||||
public static final ResourceLocation TRITANIUM_HOE = loc("tritanium_hoe");
|
||||
|
||||
public static final ResourceLocation ENERGY_SWORD = loc("energy_sword");
|
||||
|
||||
// items: crafting components
|
||||
public static final ResourceLocation TRITANIUM_INGOT = loc("tritanium_ingot");
|
||||
|
||||
public static final ResourceLocation MATTER_IO_PORT = loc("matter_io_port");
|
||||
public static final ResourceLocation MATTER_TRANSFORM_MATRIX = loc("matter_transform_matrix");
|
||||
|
||||
public static final ResourceLocation ENERGY_BUS = loc("energy_bus");
|
||||
public static final ResourceLocation ELECTRIC_PARTS = loc("electric_parts");
|
||||
|
||||
public static final ResourceLocation MACHINE_FRAME = loc("machine_frame");
|
||||
public static final ResourceLocation TRITANIUM_PLATE = loc("tritanium_plate");
|
||||
public static final ResourceLocation IRON_PLATE = loc("iron_plate");
|
||||
public static final ResourceLocation COPPER_WIRING = loc("copper_wiring");
|
||||
public static final ResourceLocation GOLD_WIRING = loc("gold_wiring");
|
||||
|
||||
public static final ResourceLocation PORTABLE_CONDENSATION_DRIVE_CASING = loc("portable_condensation_drive_casing");
|
||||
public static final ResourceLocation PORTABLE_DENSE_CONDENSATION_DRIVE_CASING = loc("portable_dense_condensation_drive_casing");
|
||||
|
||||
public static final ResourceLocation CIRCUIT_PLATING = loc("circuit_plating");
|
||||
public static final ResourceLocation BASIC_CONTROL_CIRCUIT = loc("basic_control_circuit");
|
||||
public static final ResourceLocation ADVANCED_CONTROL_CIRCUIT = loc("advanced_control_circuit");
|
||||
|
||||
public static final ResourceLocation TRITANIUM_ORE = loc("tritanium_ore");
|
||||
public static final ResourceLocation DEEPSLATE_TRITANIUM_ORE = loc("deepslate_tritanium_ore");
|
||||
public static final ResourceLocation TRITANIUM_RAW_BLOCK = loc("tritanium_raw_block");
|
||||
public static final ResourceLocation TRITANIUM_ORE_CLUMP = loc("tritanium_ore_clump");
|
||||
|
||||
// android features and research
|
||||
public static final ResourceLocation AIR_BAGS = loc("air_bags");
|
||||
|
||||
public static final ResourceLocation LIMB_OVERCLOCKING = loc("limb_overclocking");
|
||||
public static final ResourceLocation LIMB_OVERCLOCKING_1 = loc("limb_overclocking_1");
|
||||
public static final ResourceLocation LIMB_OVERCLOCKING_2 = loc("limb_overclocking_2");
|
||||
public static final ResourceLocation LIMB_OVERCLOCKING_3 = loc("limb_overclocking_3");
|
||||
public static final ResourceLocation LIMB_OVERCLOCKING_4 = loc("limb_overclocking_4");
|
||||
|
||||
public static final ResourceLocation[] LIMB_OVERCLOCKING_LIST = new ResourceLocation[]{LIMB_OVERCLOCKING_1, LIMB_OVERCLOCKING_2, LIMB_OVERCLOCKING_3, LIMB_OVERCLOCKING_4};
|
||||
|
||||
public static final ResourceLocation NANOBOTS = loc("nanobots");
|
||||
public static final ResourceLocation NANOBOTS_REGENERATION = loc("nanobots_regeneration");
|
||||
public static final ResourceLocation NANOBOTS_REGENERATION_1 = loc("nanobots_regeneration_1");
|
||||
public static final ResourceLocation NANOBOTS_REGENERATION_2 = loc("nanobots_regeneration_2");
|
||||
public static final ResourceLocation NANOBOTS_REGENERATION_3 = loc("nanobots_regeneration_3");
|
||||
public static final ResourceLocation NANOBOTS_REGENERATION_4 = loc("nanobots_regeneration_4");
|
||||
|
||||
public static final ResourceLocation[] NANOBOTS_REGENERATION_LIST = new ResourceLocation[]{NANOBOTS_REGENERATION_1, NANOBOTS_REGENERATION_2, NANOBOTS_REGENERATION_3, NANOBOTS_REGENERATION_4};
|
||||
|
||||
public static final ResourceLocation NANOBOTS_ARMOR = loc("nanobots_armor");
|
||||
|
||||
public static final ResourceLocation NANOBOTS_ARMOR_STRENGTH_1 = loc("nanobots_armor_strength_1");
|
||||
public static final ResourceLocation NANOBOTS_ARMOR_STRENGTH_2 = loc("nanobots_armor_strength_2");
|
||||
public static final ResourceLocation NANOBOTS_ARMOR_STRENGTH_3 = loc("nanobots_armor_strength_3");
|
||||
public static final ResourceLocation[] NANOBOTS_ARMOR_STRENGTH_LIST = new ResourceLocation[]{
|
||||
NANOBOTS_ARMOR_STRENGTH_1,
|
||||
NANOBOTS_ARMOR_STRENGTH_2,
|
||||
NANOBOTS_ARMOR_STRENGTH_3,
|
||||
};
|
||||
|
||||
public static final ResourceLocation NANOBOTS_ARMOR_SPEED_1 = loc("nanobots_armor_speed_1");
|
||||
public static final ResourceLocation NANOBOTS_ARMOR_SPEED_2 = loc("nanobots_armor_speed_2");
|
||||
public static final ResourceLocation NANOBOTS_ARMOR_SPEED_3 = loc("nanobots_armor_speed_3");
|
||||
public static final ResourceLocation[] NANOBOTS_ARMOR_SPEED_LIST = new ResourceLocation[]{
|
||||
NANOBOTS_ARMOR_SPEED_1,
|
||||
NANOBOTS_ARMOR_SPEED_2,
|
||||
NANOBOTS_ARMOR_SPEED_3,
|
||||
};
|
||||
|
||||
public static final ResourceLocation HYDRAULICS_OVERLOAD = loc("hydraulics_overload");
|
||||
public static final ResourceLocation HYDRAULICS_OVERLOAD_1 = loc("hydraulics_overload_1");
|
||||
public static final ResourceLocation HYDRAULICS_OVERLOAD_2 = loc("hydraulics_overload_2");
|
||||
public static final ResourceLocation HYDRAULICS_OVERLOAD_3 = loc("hydraulics_overload_3");
|
||||
|
||||
public static final ResourceLocation EXTENDED_REACH = loc("extended_reach");
|
||||
|
||||
// stats
|
||||
public static final ResourceLocation DAMAGE_ABSORBED = loc("damage_absorbed");
|
||||
public static final ResourceLocation HEALTH_REGENERATED = loc("health_regenerated");
|
||||
public static final ResourceLocation POWER_CONSUMED = loc("power_consumed");
|
||||
}
|
@ -7,6 +7,7 @@ import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe;
|
||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipeFactory;
|
||||
|
||||
@ -28,7 +29,7 @@ public class MRecipes {
|
||||
}
|
||||
}
|
||||
|
||||
public static final MatteryRecipeType<PlatePressRecipe> PLATE_PRESS = new MatteryRecipeType<>(MNames.PLATE_PRESS);
|
||||
public static final MatteryRecipeType<PlatePressRecipe> PLATE_PRESS = new MatteryRecipeType<>(OverdriveThatMatters.loc(MNames.PLATE_PRESS));
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
|
@ -1,19 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.stats.StatFormatter;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
|
||||
public class MStats {
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void registerVanilla(final FMLCommonSetupEvent event) {
|
||||
net.minecraft.core.Registry.register(net.minecraft.core.Registry.CUSTOM_STAT, MNames.DAMAGE_ABSORBED, MNames.DAMAGE_ABSORBED);
|
||||
net.minecraft.core.Registry.register(net.minecraft.core.Registry.CUSTOM_STAT, MNames.HEALTH_REGENERATED, MNames.HEALTH_REGENERATED);
|
||||
net.minecraft.core.Registry.register(net.minecraft.core.Registry.CUSTOM_STAT, MNames.POWER_CONSUMED, MNames.POWER_CONSUMED);
|
||||
|
||||
net.minecraft.stats.Stats.CUSTOM.get(MNames.DAMAGE_ABSORBED, StatFormatter.DIVIDE_BY_TEN);
|
||||
net.minecraft.stats.Stats.CUSTOM.get(MNames.HEALTH_REGENERATED, StatFormatter.DIVIDE_BY_TEN);
|
||||
net.minecraft.stats.Stats.CUSTOM.get(MNames.POWER_CONSUMED, StatFormatter.DIVIDE_BY_TEN);
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ import java.util.Set;
|
||||
|
||||
public class MTags {
|
||||
public static class Items {
|
||||
public static final Tags.IOptionalNamedTag<Item> INGOT_TRITANIUM = ItemTags.createOptional(new ResourceLocation("forge", "ingots/tritanium"), Set.of(() -> MItems.TRITANIUM_INGOT));
|
||||
public static final Tags.IOptionalNamedTag<Item> PLATE_TRITANIUM = ItemTags.createOptional(new ResourceLocation("forge", "plates/tritanium"), Set.of(() -> MItems.TRITANIUM_PLATE));
|
||||
public static final Tags.IOptionalNamedTag<Item> INGOT_TRITANIUM = ItemTags.createOptional(new ResourceLocation("forge", "ingots/tritanium"), Set.of(MItems.INSTANCE::getTRITANIUM_INGOT));
|
||||
public static final Tags.IOptionalNamedTag<Item> PLATE_TRITANIUM = ItemTags.createOptional(new ResourceLocation("forge", "plates/tritanium"), Set.of(MItems.INSTANCE::getTRITANIUM_PLATE));
|
||||
}
|
||||
}
|
||||
|
@ -1,210 +0,0 @@
|
||||
package ru.dbotthepony.mc.otm.registry;
|
||||
|
||||
import net.minecraft.client.gui.screens.MenuScreens;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.stats.StatFormatter;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.inventory.MenuType;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.item.crafting.Recipe;
|
||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraft.world.level.block.*;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.registries.ForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryBuilder;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType;
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsArmor;
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType;
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement;
|
||||
import ru.dbotthepony.mc.otm.menu.*;
|
||||
import ru.dbotthepony.mc.otm.client.screen.*;
|
||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe;
|
||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipeFactory;
|
||||
|
||||
import net.minecraftforge.common.Tags.IOptionalNamedTag;
|
||||
import ru.dbotthepony.mc.otm.registry.AndroidFeatures;
|
||||
import ru.dbotthepony.mc.otm.registry.MItems;
|
||||
import ru.dbotthepony.mc.otm.registry.MNames;
|
||||
|
||||
import java.util.ConcurrentModificationException;
|
||||
import java.util.Set;
|
||||
|
||||
public class Registry {
|
||||
static {
|
||||
if (OverdriveThatMatters.INSTANCE == null) {
|
||||
throw new ConcurrentModificationException("Accessing Registry before OverdriveThatMatters class is initialized. This is not supported! If no other mods are installed this is a bug.");
|
||||
}
|
||||
}
|
||||
|
||||
public static final DamageSource DAMAGE_BECOME_ANDROID = new DamageSource("otm_become_android");
|
||||
public static final DamageSource DAMAGE_BECOME_HUMANE = new DamageSource("otm_become_humane");
|
||||
public static final DamageSource DAMAGE_EVENT_HORIZON = new DamageSource("otm_event_horizon");
|
||||
public static final DamageSource DAMAGE_HAWKING_RADIATION = new DamageSource("otm_hawking_radiation");
|
||||
public static final String DAMAGE_EMP_NAME = "otm_emp";
|
||||
public static final DamageSource DAMAGE_EMP = new EMPDamageSource();
|
||||
|
||||
static {
|
||||
DAMAGE_BECOME_ANDROID.bypassArmor().bypassInvul().bypassMagic();
|
||||
DAMAGE_BECOME_HUMANE.bypassArmor().bypassInvul().bypassMagic();
|
||||
DAMAGE_EVENT_HORIZON.bypassMagic().bypassArmor();
|
||||
DAMAGE_EMP.bypassMagic().bypassArmor();
|
||||
// DAMAGE_HAWKING_RADIATION.bypassMagic().bypassArmor();
|
||||
}
|
||||
|
||||
public static final ForgeRegistry<AndroidFeatureType<?>> ANDROID_FEATURES;
|
||||
public static final ForgeRegistry<AndroidResearchType<?>> ANDROID_RESEARCH;
|
||||
|
||||
static {
|
||||
var builder = new RegistryBuilder<AndroidFeatureType<?>>();
|
||||
builder.setName(new ResourceLocation(OverdriveThatMatters.MOD_ID, "android_features"));
|
||||
|
||||
// make it shut up
|
||||
builder.setType(c(AndroidFeatureType.class));
|
||||
ANDROID_FEATURES = (ForgeRegistry<AndroidFeatureType<?>>) builder.create();
|
||||
|
||||
var builder2 = new RegistryBuilder<AndroidResearchType<?>>();
|
||||
builder2.setName(new ResourceLocation(OverdriveThatMatters.MOD_ID, "android_research"));
|
||||
|
||||
// make it shut up
|
||||
builder2.setType(c(AndroidResearchType.class));
|
||||
ANDROID_RESEARCH = (ForgeRegistry<AndroidResearchType<?>>) builder2.create();
|
||||
}
|
||||
|
||||
public static void dummy() {}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <T> Class<T> c(Class<?> cls) { return (Class<T>) cls; }
|
||||
|
||||
record CrateProps(MaterialColor color, ResourceLocation name) {
|
||||
public CrateProps(MaterialColor color, String name) {
|
||||
this(color, new ResourceLocation(OverdriveThatMatters.MOD_ID, "crate_" + name));
|
||||
}
|
||||
}
|
||||
|
||||
public static final CrateProps[] CRATES = new CrateProps[] {
|
||||
new CrateProps(MaterialColor.COLOR_RED, "red"),
|
||||
new CrateProps(MaterialColor.COLOR_BLUE, "blue"),
|
||||
new CrateProps(MaterialColor.COLOR_YELLOW, "yellow"),
|
||||
new CrateProps(MaterialColor.COLOR_GREEN, "green"),
|
||||
new CrateProps(MaterialColor.COLOR_BLACK, "black"),
|
||||
new CrateProps(MaterialColor.COLOR_PINK, "pink"),
|
||||
new CrateProps(MaterialColor.COLOR_PURPLE, "purple"),
|
||||
};
|
||||
|
||||
public record IndustrialGlassProps(@Nullable DyeColor color, ResourceLocation name, ResourceLocation namePane, Block block, Block pane, BlockItem item, BlockItem paneItem) {
|
||||
public IndustrialGlassProps(@Nullable DyeColor color, ResourceLocation name, ResourceLocation namePane, Block block, Block pane, BlockItem item, BlockItem paneItem) {
|
||||
this.color = color;
|
||||
this.name = name;
|
||||
this.namePane = namePane;
|
||||
this.block = block;
|
||||
this.pane = pane;
|
||||
this.item = item;
|
||||
this.paneItem = paneItem;
|
||||
|
||||
this.block.setRegistryName(this.name);
|
||||
this.pane.setRegistryName(this.namePane);
|
||||
this.item.setRegistryName(this.name);
|
||||
this.paneItem.setRegistryName(this.namePane);
|
||||
}
|
||||
|
||||
IndustrialGlassProps(@Nullable DyeColor color, ResourceLocation name, ResourceLocation namePane, Block block, Block pane) {
|
||||
this(color, name, namePane, block, pane,
|
||||
new BlockItem(block, new Item.Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(64)),
|
||||
new BlockItem(pane, new Item.Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(64)));
|
||||
}
|
||||
|
||||
IndustrialGlassProps(@Nullable DyeColor color, ResourceLocation name, ResourceLocation namePane) {
|
||||
this(color, name, namePane,
|
||||
glass(color, BlockBehaviour.Properties.of(Material.GLASS, color != null ? color.getMaterialColor() : MaterialColor.NONE)
|
||||
.strength(1.5F, 5.0F)
|
||||
.requiresCorrectToolForDrops()
|
||||
.sound(SoundType.GLASS)
|
||||
.noOcclusion()
|
||||
.isValidSpawn((_a, _b, _c, _d) -> false)
|
||||
.isRedstoneConductor((_a, _b, _c) -> false)
|
||||
.isSuffocating((_a, _b, _c) -> false)
|
||||
.isViewBlocking((_a, _b, _c) -> false)),
|
||||
pane(color, BlockBehaviour.Properties.of(Material.GLASS, color != null ? color.getMaterialColor() : MaterialColor.NONE)
|
||||
.strength(1.25F, 5.0F)
|
||||
.requiresCorrectToolForDrops()
|
||||
.sound(SoundType.GLASS)
|
||||
.noOcclusion())
|
||||
);
|
||||
}
|
||||
|
||||
private static Block glass(@Nullable DyeColor color, BlockBehaviour.Properties props) {
|
||||
if (color == null) {
|
||||
return new GlassBlock(props);
|
||||
}
|
||||
|
||||
return new StainedGlassBlock(color, props);
|
||||
}
|
||||
|
||||
private static Block pane(@Nullable DyeColor color, BlockBehaviour.Properties props) {
|
||||
if (color == null) {
|
||||
return new IronBarsBlock(props);
|
||||
}
|
||||
|
||||
return new StainedGlassPaneBlock(color, props);
|
||||
}
|
||||
|
||||
IndustrialGlassProps(@Nullable DyeColor color) {
|
||||
this(color,
|
||||
new ResourceLocation(OverdriveThatMatters.MOD_ID, color != null ? "industrial_glass_" + color.getName() : "industrial_glass"),
|
||||
new ResourceLocation(OverdriveThatMatters.MOD_ID, color != null ? "industrial_glass_pane_" + color.getName() : "industrial_glass_pane")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS = new IndustrialGlassProps(null);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_WHITE = new IndustrialGlassProps(DyeColor.WHITE);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_ORANGE = new IndustrialGlassProps(DyeColor.ORANGE);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_MAGENTA = new IndustrialGlassProps(DyeColor.MAGENTA);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_LIGHT_BLUE = new IndustrialGlassProps(DyeColor.LIGHT_BLUE);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_YELLOW = new IndustrialGlassProps(DyeColor.YELLOW);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_LIME = new IndustrialGlassProps(DyeColor.LIME);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_PINK = new IndustrialGlassProps(DyeColor.PINK);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_GRAY = new IndustrialGlassProps(DyeColor.GRAY);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_LIGHT_GRAY = new IndustrialGlassProps(DyeColor.LIGHT_GRAY);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_CYAN = new IndustrialGlassProps(DyeColor.CYAN);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_PURPLE = new IndustrialGlassProps(DyeColor.PURPLE);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_BLUE = new IndustrialGlassProps(DyeColor.BLUE);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_BROWN = new IndustrialGlassProps(DyeColor.BROWN);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_GREEN = new IndustrialGlassProps(DyeColor.GREEN);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_RED = new IndustrialGlassProps(DyeColor.RED);
|
||||
public static final IndustrialGlassProps INDUSTRIAL_GLASS_BLACK = new IndustrialGlassProps(DyeColor.BLACK);
|
||||
|
||||
public static final IndustrialGlassProps[] INDUSTRIAL_GLASS_LIST = new IndustrialGlassProps[] {
|
||||
INDUSTRIAL_GLASS,
|
||||
INDUSTRIAL_GLASS_WHITE,
|
||||
INDUSTRIAL_GLASS_ORANGE,
|
||||
INDUSTRIAL_GLASS_MAGENTA,
|
||||
INDUSTRIAL_GLASS_LIGHT_BLUE,
|
||||
INDUSTRIAL_GLASS_YELLOW,
|
||||
INDUSTRIAL_GLASS_LIME,
|
||||
INDUSTRIAL_GLASS_PINK,
|
||||
INDUSTRIAL_GLASS_GRAY,
|
||||
INDUSTRIAL_GLASS_LIGHT_GRAY,
|
||||
INDUSTRIAL_GLASS_CYAN,
|
||||
INDUSTRIAL_GLASS_PURPLE,
|
||||
INDUSTRIAL_GLASS_BLUE,
|
||||
INDUSTRIAL_GLASS_BROWN,
|
||||
INDUSTRIAL_GLASS_GREEN,
|
||||
INDUSTRIAL_GLASS_RED,
|
||||
INDUSTRIAL_GLASS_BLACK,
|
||||
};
|
||||
|
||||
}
|
@ -15,13 +15,13 @@ import net.minecraft.world.level.block.state.StateDefinition
|
||||
import net.minecraft.world.level.block.state.properties.EnumProperty
|
||||
import net.minecraft.world.phys.shapes.CollisionContext
|
||||
import net.minecraft.world.phys.shapes.VoxelShape
|
||||
import ru.dbotthepony.mc.otm.block.entity.BlockEntityEnergyCounter
|
||||
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||
import ru.dbotthepony.mc.otm.shapes.BlockShapes
|
||||
|
||||
class EnergyCounterBlock : BlockMattery(), EntityBlock {
|
||||
override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity {
|
||||
return BlockEntityEnergyCounter(blockPos, blockState)
|
||||
return EnergyCounterBlockEntity(blockPos, blockState)
|
||||
}
|
||||
|
||||
override fun <T : BlockEntity?> getTicker(
|
||||
@ -33,9 +33,9 @@ class EnergyCounterBlock : BlockMattery(), EntityBlock {
|
||||
return null
|
||||
|
||||
if (level.isClientSide)
|
||||
return BlockEntityTicker { _, _, _, tile -> if (tile is BlockEntityEnergyCounter) tile.clientTick() }
|
||||
return BlockEntityTicker { _, _, _, tile -> if (tile is EnergyCounterBlockEntity) tile.clientTick() }
|
||||
|
||||
return BlockEntityTicker { _, _, _, tile -> if (tile is BlockEntityEnergyCounter) tile.tick() }
|
||||
return BlockEntityTicker { _, _, _, tile -> if (tile is EnergyCounterBlockEntity) tile.tick() }
|
||||
}
|
||||
|
||||
override fun getStateForPlacement(context: BlockPlaceContext): BlockState? {
|
||||
@ -71,7 +71,7 @@ class EnergyCounterBlock : BlockMattery(), EntityBlock {
|
||||
super.neighborChanged(state, level, pos, sender, sender_pos, flag)
|
||||
|
||||
if (!level.isClientSide) {
|
||||
(level.getBlockEntity(pos) as? BlockEntityEnergyCounter)?.checkSurroundings(level)
|
||||
(level.getBlockEntity(pos) as? EnergyCounterBlockEntity)?.checkSurroundings(level)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ data class EnergyCounterPacket(val pos: BlockPos, val thisTick: ImpreciseFractio
|
||||
context.get().enqueueWork {
|
||||
val ply = Minecraft.getInstance().player ?: return@enqueueWork
|
||||
val level = ply.level ?: return@enqueueWork
|
||||
val tile = level.getBlockEntity(pos) as? BlockEntityEnergyCounter ?: return@enqueueWork
|
||||
val tile = level.getBlockEntity(pos) as? EnergyCounterBlockEntity ?: return@enqueueWork
|
||||
|
||||
tile.lastTick = thisTick
|
||||
tile.passed = total
|
||||
@ -72,7 +72,7 @@ data class EnergyCounterPacket(val pos: BlockPos, val thisTick: ImpreciseFractio
|
||||
}
|
||||
}
|
||||
|
||||
class BlockEntityEnergyCounter(p_155229_: BlockPos, p_155230_: BlockState) : MatteryBlockEntity(MBlockEntities.ENERGY_COUNTER, p_155229_, p_155230_) {
|
||||
class EnergyCounterBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : MatteryBlockEntity(MBlockEntities.ENERGY_COUNTER, p_155229_, p_155230_) {
|
||||
var passed = ImpreciseFraction.ZERO
|
||||
|
||||
private val history = Array(10 * 20) { ImpreciseFraction.ZERO }
|
||||
|
@ -25,7 +25,7 @@ import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
||||
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphNode
|
||||
import ru.dbotthepony.mc.otm.graph.matter.MatterNetworkGraph
|
||||
import ru.dbotthepony.mc.otm.menu.MatterCapacitorMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterCapacitorBankMenu
|
||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
import javax.annotation.ParametersAreNonnullByDefault
|
||||
@ -163,7 +163,7 @@ class MatterCapacitorBankBlockEntity(p_155229_: BlockPos, p_155230_: BlockState)
|
||||
}
|
||||
|
||||
override fun createMenu(containerID: Int, inventory: Inventory, ply: Player): AbstractContainerMenu {
|
||||
return MatterCapacitorMenu(containerID, inventory, this)
|
||||
return MatterCapacitorBankMenu(containerID, inventory, this)
|
||||
}
|
||||
|
||||
private var valid = true
|
||||
|
@ -30,6 +30,7 @@ import ru.dbotthepony.mc.otm.graph.Graph6Node
|
||||
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphNode
|
||||
import ru.dbotthepony.mc.otm.graph.matter.MatterNetworkGraph
|
||||
import ru.dbotthepony.mc.otm.ifHas
|
||||
import ru.dbotthepony.mc.otm.item.MatterDustItem
|
||||
import ru.dbotthepony.mc.otm.matter.baselineComplexityDecomposeTicks
|
||||
import ru.dbotthepony.mc.otm.matter.canDecompose
|
||||
import ru.dbotthepony.mc.otm.matter.getMatterValue
|
||||
@ -40,7 +41,7 @@ import ru.dbotthepony.mc.otm.set
|
||||
|
||||
fun moveMatterAsDustIntoContainer(_matterValue: ImpreciseFraction, container: MatteryContainer, OUTPUT_DUST_MAIN: Int, OUTPUT_DUST_STACKING: Int): ImpreciseFraction {
|
||||
var matterValue = _matterValue
|
||||
val item = MItems.MATTER_DUST
|
||||
val item = MItems.MATTER_DUST as MatterDustItem
|
||||
|
||||
while (matterValue > ImpreciseFraction.ZERO) {
|
||||
val stack = container[OUTPUT_DUST_MAIN]
|
||||
|
@ -19,7 +19,7 @@ import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||
import ru.dbotthepony.mc.otm.container.MatteryContainerFilter
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.menu.MenuPlatePress
|
||||
import ru.dbotthepony.mc.otm.menu.PlatePressMenu
|
||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||
import ru.dbotthepony.mc.otm.registry.MRecipes
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
@ -68,7 +68,7 @@ class PlatePressBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : Matter
|
||||
override fun getDefaultDisplayName() = NAME
|
||||
|
||||
override fun createMenu(containerID: Int, inventory: Inventory, ply: Player): AbstractContainerMenu {
|
||||
return MenuPlatePress(containerID, inventory, this)
|
||||
return PlatePressMenu(containerID, inventory, this)
|
||||
}
|
||||
|
||||
override fun onJobFinish(job: WorkerJob): WorkerJobStatus {
|
||||
|
@ -21,7 +21,6 @@ import net.minecraft.world.level.block.state.BlockState
|
||||
import net.minecraft.world.level.levelgen.structure.BoundingBox
|
||||
import net.minecraft.world.phys.AABB
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import ru.dbotthepony.mc.otm.registry.Registry
|
||||
import ru.dbotthepony.mc.otm.block.BlackHoleBlock
|
||||
import ru.dbotthepony.mc.otm.block.entity.GravitationStabilizerBlockEntity
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.ExplosionQueue.Companion.queueForLevel
|
||||
@ -30,6 +29,7 @@ import ru.dbotthepony.mc.otm.core.plus
|
||||
import ru.dbotthepony.mc.otm.matter.getMatterValue
|
||||
import ru.dbotthepony.mc.otm.registry.MBlockEntities
|
||||
import ru.dbotthepony.mc.otm.registry.MItems
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
import kotlin.math.roundToInt
|
||||
import kotlin.math.sqrt
|
||||
@ -137,7 +137,7 @@ class BlackHoleBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : BlockEn
|
||||
} else {
|
||||
level.explode(
|
||||
null,
|
||||
Registry.DAMAGE_HAWKING_RADIATION,
|
||||
MRegistry.DAMAGE_HAWKING_RADIATION,
|
||||
null,
|
||||
blockPos.x + 0.5,
|
||||
blockPos.y + 0.5,
|
||||
@ -267,7 +267,7 @@ class BlackHoleBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : BlockEn
|
||||
}
|
||||
|
||||
if (distance < gravitationStrength + 1) {
|
||||
living.hurt(Registry.DAMAGE_EVENT_HORIZON, (gravitationStrength / distance).toFloat())
|
||||
living.hurt(MRegistry.DAMAGE_EVENT_HORIZON, (gravitationStrength / distance).toFloat())
|
||||
}
|
||||
}
|
||||
|
||||
@ -276,7 +276,7 @@ class BlackHoleBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) : BlockEn
|
||||
setDeltaMovement(item, center, distance, false)
|
||||
|
||||
if (distance < gravitationStrength + 1) {
|
||||
if (item.hurt(Registry.DAMAGE_EVENT_HORIZON, (gravitationStrength / distance).toFloat()) && item.isRemoved) {
|
||||
if (item.hurt(MRegistry.DAMAGE_EVENT_HORIZON, (gravitationStrength / distance).toFloat()) && item.isRemoved) {
|
||||
if (item.item.item === MItems.GRAVITATIONAL_DISRUPTOR) {
|
||||
collapse()
|
||||
} else {
|
||||
|
@ -19,10 +19,10 @@ import net.minecraft.world.phys.Vec3
|
||||
import net.minecraftforge.event.TickEvent
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import org.apache.logging.log4j.LogManager
|
||||
import ru.dbotthepony.mc.otm.registry.Registry
|
||||
import ru.dbotthepony.mc.otm.block.BlockExplosionDebugger
|
||||
import ru.dbotthepony.mc.otm.core.*
|
||||
import ru.dbotthepony.mc.otm.core.Vector
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
@ -529,7 +529,7 @@ private data class QueuedExplosion(val x: Double, val y: Double, val z: Double,
|
||||
fun explode(level: Level) {
|
||||
level.explode(
|
||||
null,
|
||||
Registry.DAMAGE_HAWKING_RADIATION,
|
||||
MRegistry.DAMAGE_HAWKING_RADIATION,
|
||||
BlackHoleExplosionDamageCalculator,
|
||||
x,
|
||||
y,
|
||||
|
@ -31,13 +31,14 @@ import net.minecraftforge.common.capabilities.Capability
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent
|
||||
import net.minecraftforge.eventbus.api.EventPriority
|
||||
import ru.dbotthepony.mc.otm.registry.Registry
|
||||
import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage
|
||||
import ru.dbotthepony.mc.otm.capability.extractEnergy
|
||||
import ru.dbotthepony.mc.otm.capability.receiveEnergy
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.ifHas
|
||||
import ru.dbotthepony.mc.otm.registry.MNames
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
import java.util.*
|
||||
|
||||
@ -188,7 +189,7 @@ open class AndroidCapability(@JvmField protected val ent: LivingEntity) : ICapab
|
||||
|
||||
for (tag in featuresNbt) {
|
||||
if (tag is CompoundTag) {
|
||||
val feature = Registry.ANDROID_FEATURES.getValue(ResourceLocation(tag.getString("id")))
|
||||
val feature = MRegistry.ANDROID_FEATURES.getValue(ResourceLocation(tag.getString("id")))
|
||||
|
||||
if (feature != null && feature.isApplicable(this)) {
|
||||
val feature = feature.factory(this)
|
||||
@ -325,7 +326,7 @@ open class AndroidCapability(@JvmField protected val ent: LivingEntity) : ICapab
|
||||
|
||||
if (howMuch.isZero) {
|
||||
if (!simulate && ent is ServerPlayer) {
|
||||
ent.awardStat(MNames.POWER_CONSUMED, drained.toInt() * 10)
|
||||
ent.awardStat(StatNames.POWER_CONSUMED, drained.toInt() * 10)
|
||||
}
|
||||
|
||||
return drained
|
||||
@ -339,7 +340,7 @@ open class AndroidCapability(@JvmField protected val ent: LivingEntity) : ICapab
|
||||
battery = new
|
||||
|
||||
if (ent is ServerPlayer) {
|
||||
ent.awardStat(MNames.POWER_CONSUMED, drained.toInt() * 10)
|
||||
ent.awardStat(StatNames.POWER_CONSUMED, drained.toInt() * 10)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,6 @@ import net.minecraftforge.event.AttachCapabilitiesEvent
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent.Clone
|
||||
import net.minecraftforge.event.entity.player.PlayerEvent.PlayerChangedDimensionEvent
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import ru.dbotthepony.mc.otm.registry.Registry
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
@ -22,6 +21,7 @@ import ru.dbotthepony.mc.otm.network.android.AndroidResearchPacket
|
||||
import ru.dbotthepony.mc.otm.network.android.AndroidStatusPacket
|
||||
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
|
||||
import ru.dbotthepony.mc.otm.registry.MNames
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
import java.util.*
|
||||
|
||||
@ -68,7 +68,7 @@ class AndroidCapabilityPlayer(@JvmField val ply: Player) : AndroidCapability(ply
|
||||
if (isAndroid) return
|
||||
|
||||
becomeAndroid()
|
||||
ply.hurt(Registry.DAMAGE_BECOME_ANDROID, ply.maxHealth * 2)
|
||||
ply.hurt(MRegistry.DAMAGE_BECOME_ANDROID, ply.maxHealth * 2)
|
||||
}
|
||||
|
||||
fun becomeHumane() {
|
||||
@ -86,7 +86,7 @@ class AndroidCapabilityPlayer(@JvmField val ply: Player) : AndroidCapability(ply
|
||||
if (!isAndroid) return
|
||||
|
||||
becomeHumane()
|
||||
ply.hurt(Registry.DAMAGE_BECOME_HUMANE, ply.maxHealth * 2)
|
||||
ply.hurt(MRegistry.DAMAGE_BECOME_HUMANE, ply.maxHealth * 2)
|
||||
}
|
||||
|
||||
override fun deserializeNBT(compound: CompoundTag?) {
|
||||
@ -100,7 +100,7 @@ class AndroidCapabilityPlayer(@JvmField val ply: Player) : AndroidCapability(ply
|
||||
|
||||
for (tag in list) {
|
||||
if (tag is CompoundTag) {
|
||||
val research = Registry.ANDROID_RESEARCH.getValue(ResourceLocation(tag.getString("id")))
|
||||
val research = MRegistry.ANDROID_RESEARCH.getValue(ResourceLocation(tag.getString("id")))
|
||||
|
||||
if (research != null) {
|
||||
val instance = research.factory(this)
|
||||
@ -260,7 +260,7 @@ class AndroidCapabilityPlayer(@JvmField val ply: Player) : AndroidCapability(ply
|
||||
val ent = event.`object`
|
||||
|
||||
if (ent is Player) {
|
||||
event.addCapability(MNames.ANDROID_CAPABILITY, AndroidCapabilityPlayer(ent))
|
||||
event.addCapability(MNames.ANDROID_CAPABILITY_RS, AndroidCapabilityPlayer(ent))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -8,16 +8,16 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.block.EnergyCounterBlock
|
||||
import ru.dbotthepony.mc.otm.block.entity.BlockEntityEnergyCounter
|
||||
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
||||
import ru.dbotthepony.mc.otm.core.RGBAColor
|
||||
import ru.dbotthepony.mc.otm.core.asAngle
|
||||
import ru.dbotthepony.mc.otm.core.times
|
||||
import ru.dbotthepony.mc.otm.menu.FormattingHelper
|
||||
import kotlin.math.PI
|
||||
|
||||
class EnergyCounterRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<BlockEntityEnergyCounter> {
|
||||
class EnergyCounterRenderer(private val context: BlockEntityRendererProvider.Context) : BlockEntityRenderer<EnergyCounterBlockEntity> {
|
||||
override fun render(
|
||||
tile: BlockEntityEnergyCounter,
|
||||
tile: EnergyCounterBlockEntity,
|
||||
p_112308_: Float,
|
||||
poseStack: PoseStack,
|
||||
p_112310_: MultiBufferSource,
|
||||
|
@ -6,7 +6,6 @@ import net.minecraft.client.Minecraft
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.registry.Registry
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
@ -17,6 +16,7 @@ import ru.dbotthepony.mc.otm.client.render.RenderHelper
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
||||
import ru.dbotthepony.mc.otm.menu.AndroidStationMenu
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
import java.util.*
|
||||
|
||||
class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: Inventory, p_97743_: Component) :
|
||||
@ -152,7 +152,7 @@ class AndroidStationScreen constructor(p_97741_: AndroidStationMenu, p_97742_: I
|
||||
Arrays.fill(rows, null)
|
||||
nextX = 0f
|
||||
|
||||
for (research in Registry.ANDROID_RESEARCH.values) {
|
||||
for (research in MRegistry.ANDROID_RESEARCH.values) {
|
||||
if (research.prerequisites.size == 0) {
|
||||
dive(it, research, 0)
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import ru.dbotthepony.mc.otm.menu.MatterCapacitorMenu
|
||||
import ru.dbotthepony.mc.otm.menu.MatterCapacitorBankMenu
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.MatterGaugePanel
|
||||
|
||||
class MatterCapacitorBankScreen(p_97741_: MatterCapacitorMenu, p_97742_: Inventory, p_97743_: Component) :
|
||||
MatteryScreen<MatterCapacitorMenu>(p_97741_, p_97742_, p_97743_) {
|
||||
class MatterCapacitorBankScreen(p_97741_: MatterCapacitorBankMenu, p_97742_: Inventory, p_97743_: Component) :
|
||||
MatteryScreen<MatterCapacitorBankMenu>(p_97741_, p_97742_, p_97743_) {
|
||||
override fun makeMainFrame(): FramePanel {
|
||||
val frame = super.makeMainFrame()!!
|
||||
|
||||
|
@ -6,10 +6,10 @@ import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
|
||||
import ru.dbotthepony.mc.otm.menu.MenuPlatePress
|
||||
import ru.dbotthepony.mc.otm.menu.PlatePressMenu
|
||||
|
||||
class PlatePressScreen(menu: MenuPlatePress, inventory: Inventory, title: Component) :
|
||||
MatteryScreen<MenuPlatePress>(menu, inventory, title) {
|
||||
class PlatePressScreen(menu: PlatePressMenu, inventory: Inventory, title: Component) :
|
||||
MatteryScreen<PlatePressMenu>(menu, inventory, title) {
|
||||
override fun makeMainFrame(): FramePanel {
|
||||
val frame = super.makeMainFrame()!!
|
||||
|
||||
|
@ -5,7 +5,7 @@ import kotlin.jvm.JvmOverloads
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.level.block.Block
|
||||
import ru.dbotthepony.mc.otm.block.EnergyCounterBlock
|
||||
import ru.dbotthepony.mc.otm.block.entity.BlockEntityEnergyCounter
|
||||
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.menu.data.EnumDataContainer
|
||||
import ru.dbotthepony.mc.otm.menu.data.ImpreciseFractionDataContainer
|
||||
@ -17,7 +17,7 @@ import java.math.BigDecimal
|
||||
class EnergyCounterMenu @JvmOverloads constructor(
|
||||
p_38852_: Int,
|
||||
inventory: Inventory,
|
||||
tile: BlockEntityEnergyCounter? = null
|
||||
tile: EnergyCounterBlockEntity? = null
|
||||
) : MatteryMenu(MMenus.ENERGY_COUNTER, p_38852_, inventory, tile) {
|
||||
val passed = ImpreciseFractionDataContainer()
|
||||
val average = ImpreciseFractionDataContainer()
|
||||
@ -60,7 +60,7 @@ class EnergyCounterMenu @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
override fun broadcastChanges() {
|
||||
if (tile is BlockEntityEnergyCounter) {
|
||||
if (tile is EnergyCounterBlockEntity) {
|
||||
passed.value = tile.passed
|
||||
average.value = tile.calcAverage(20)
|
||||
lastTick.value = tile.lastTick
|
||||
|
@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.graph.matter.MatterNetworkGraph
|
||||
import ru.dbotthepony.mc.otm.menu.widget.LevelGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class MatterCapacitorMenu @JvmOverloads constructor(
|
||||
class MatterCapacitorBankMenu @JvmOverloads constructor(
|
||||
p_38852_: Int,
|
||||
inventory: Inventory,
|
||||
tile: MatterCapacitorBankBlockEntity? = null
|
@ -6,7 +6,7 @@ import ru.dbotthepony.mc.otm.block.entity.PlatePressBlockEntity
|
||||
import ru.dbotthepony.mc.otm.menu.widget.ProgressGaugeWidget
|
||||
import ru.dbotthepony.mc.otm.registry.MMenus
|
||||
|
||||
class MenuPlatePress @JvmOverloads constructor(
|
||||
class PlatePressMenu @JvmOverloads constructor(
|
||||
containerID: Int,
|
||||
inventory: Inventory,
|
||||
tile: PlatePressBlockEntity? = null
|
@ -87,7 +87,7 @@ object PlatePressRecipeFactory : ForgeRegistryEntry<RecipeSerializer<*>>(), Reci
|
||||
private val LOGGER = LogManager.getLogger()
|
||||
|
||||
init {
|
||||
registryName = MNames.PLATE_PRESS
|
||||
registryName = OverdriveThatMatters.loc(MNames.PLATE_PRESS)
|
||||
}
|
||||
|
||||
override fun fromJson(loc: ResourceLocation, obj: JsonObject): PlatePressRecipe {
|
||||
|
@ -0,0 +1,25 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeature
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidExtendedReach
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidLimbOverclocking
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsArmor
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsRegeneration
|
||||
|
||||
object AndroidFeatures {
|
||||
private val registry = DeferredRegister.create(AndroidFeatureType::class.java, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
val AIR_BAGS: AndroidFeatureType<*> by registry.register(MNames.AIR_BAGS) { AndroidFeatureType(::AndroidFeature) }
|
||||
val LIMB_OVERCLOCKING: AndroidFeatureType<*> by registry.register(MNames.LIMB_OVERCLOCKING) { AndroidFeatureType(::AndroidLimbOverclocking) }
|
||||
val NANOBOTS_REGENERATION: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_REGENERATION) { AndroidFeatureType(::AndroidNanobotsRegeneration) }
|
||||
val NANOBOTS_ARMOR: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_ARMOR) { AndroidFeatureType(::AndroidNanobotsArmor) }
|
||||
val EXTENDED_REACH: AndroidFeatureType<*> by registry.register(MNames.EXTENDED_REACH) { AndroidFeatureType(::AndroidExtendedReach) }
|
||||
|
||||
internal fun register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
}
|
||||
}
|
@ -0,0 +1,261 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.network.chat.TextComponent
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.RegistryObject
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.android.feature.AndroidNanobotsArmor
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||
|
||||
object AndroidResearch {
|
||||
val ICONS = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/gui/android_upgrades.png")
|
||||
val ICON_TRANSFER: SkinElement
|
||||
val ICON_ATTACK_BOOST: SkinElement
|
||||
val ICON_PLASMA_SHIELD_BOOST: SkinElement
|
||||
val ICON_CLOAK: SkinElement
|
||||
val ICON_GRAVITATIONAL_STABILIZER: SkinElement
|
||||
val ICON_AIR_BAGS: SkinElement
|
||||
val ICON_JUMP_BOOST: SkinElement
|
||||
|
||||
val ICON_FEATHER_FALLING: SkinElement
|
||||
val ICON_ARC: SkinElement
|
||||
val ICON_ARROW: SkinElement
|
||||
val ICON_ARMOR: SkinElement
|
||||
val ICON_NANOBOTS: SkinElement
|
||||
val ICON_NIGHT_VISION: SkinElement
|
||||
val ICON_OXYGEN_SUPPLY: SkinElement
|
||||
|
||||
val ICON_PLASMA_SHIELD: SkinElement
|
||||
val ICON_SHOCKWAVE: SkinElement
|
||||
val ICON_LIMB_OVERCLOCKING: SkinElement
|
||||
val ICON_STEP_ASSIST: SkinElement
|
||||
val ICON_ENDER_TELEPORT: SkinElement
|
||||
val ICON_WIRELESS_CHARGING: SkinElement
|
||||
val ICON_UNKNOWN: SkinElement
|
||||
|
||||
val ICON_EXTENDED_REACH: SkinElement
|
||||
|
||||
init {
|
||||
var x = 0f
|
||||
var y = 0f
|
||||
|
||||
ICON_TRANSFER = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ATTACK_BOOST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_PLASMA_SHIELD_BOOST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_CLOAK = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_GRAVITATIONAL_STABILIZER = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_AIR_BAGS = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_JUMP_BOOST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
|
||||
y += 18f
|
||||
x = 0f
|
||||
|
||||
ICON_FEATHER_FALLING = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ARC = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ARROW = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ARMOR = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_NANOBOTS = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_NIGHT_VISION = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_OXYGEN_SUPPLY = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
|
||||
y += 18
|
||||
x = 0f
|
||||
|
||||
ICON_PLASMA_SHIELD = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_SHOCKWAVE = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_LIMB_OVERCLOCKING = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_STEP_ASSIST = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_ENDER_TELEPORT = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_WIRELESS_CHARGING = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
ICON_UNKNOWN = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
|
||||
y += 18f
|
||||
x = 0f
|
||||
|
||||
ICON_EXTENDED_REACH = SkinElement(ICONS, x, y, 18f, 18f, 126f, 126f)
|
||||
x += 18f
|
||||
}
|
||||
|
||||
private val registry = DeferredRegister.create(AndroidResearchType::class.java, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
internal fun register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
}
|
||||
|
||||
val AIR_BAGS by registry.register(MNames.AIR_BAGS) {
|
||||
AndroidResearchBuilder()
|
||||
.setExperienceCost(18)
|
||||
.addFeatureResult(AndroidFeatures.AIR_BAGS)
|
||||
.withDescription()
|
||||
.withIcon(ICON_AIR_BAGS)
|
||||
.build()
|
||||
}
|
||||
|
||||
val EXTENDED_REACH by registry.register(MNames.EXTENDED_REACH) {
|
||||
AndroidResearchBuilder()
|
||||
.setExperienceCost(40)
|
||||
.addFeatureResult(AndroidFeatures.EXTENDED_REACH)
|
||||
.withDescription()
|
||||
.withIcon(ICON_EXTENDED_REACH)
|
||||
.build()
|
||||
}
|
||||
|
||||
val NANOBOTS by registry.register(MNames.NANOBOTS) {
|
||||
AndroidResearchBuilder()
|
||||
.setExperienceCost(15)
|
||||
.withDescription()
|
||||
.withIcon(ICON_NANOBOTS)
|
||||
.build()
|
||||
}
|
||||
|
||||
val NANOBOTS_ARMOR by registry.register(MNames.NANOBOTS_ARMOR) {
|
||||
AndroidResearchBuilder()
|
||||
.setExperienceCost(25)
|
||||
.withDescription()
|
||||
.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS))
|
||||
.addFeatureResult(OverdriveThatMatters.loc(MNames.NANOBOTS_ARMOR))
|
||||
.withIcon(ICON_ARMOR)
|
||||
.build()
|
||||
}
|
||||
|
||||
val LIMB_OVERCLOCKING: List<AndroidResearchType<*>>
|
||||
val NANOBOTS_ARMOR_SPEED: List<AndroidResearchType<*>>
|
||||
val NANOBOTS_ARMOR_STRENGTH: List<AndroidResearchType<*>>
|
||||
val NANOBOTS_REGENERATION: List<AndroidResearchType<*>>
|
||||
|
||||
init {
|
||||
val limbList = ArrayList<RegistryObject<AndroidResearchType<*>>>()
|
||||
val regenList = ArrayList<RegistryObject<AndroidResearchType<*>>>()
|
||||
val armorStrengthList = ArrayList<RegistryObject<AndroidResearchType<*>>>()
|
||||
val armorSpeedList = ArrayList<RegistryObject<AndroidResearchType<*>>>()
|
||||
|
||||
for (i in 0 until 4) {
|
||||
limbList.add(registry.register(MNames.LIMB_OVERCLOCKING_LIST[i]) {
|
||||
val limbs = AndroidResearchBuilder()
|
||||
.setExperienceCost(18 + i * 8)
|
||||
.withIconText(TextComponent((i + 1).toString()))
|
||||
.withIcon(ICON_LIMB_OVERCLOCKING)
|
||||
.withName(TranslatableComponent("android_research.overdrive_that_matters.limb_overclocking", i + 1))
|
||||
.withDescription(
|
||||
TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.limb_overclocking.description",
|
||||
(i + 1) * 8,
|
||||
(i + 1) * 6
|
||||
)
|
||||
)
|
||||
.addFeatureResult(OverdriveThatMatters.loc(MNames.LIMB_OVERCLOCKING), i)
|
||||
|
||||
if (i > 0) {
|
||||
limbs.addPrerequisite(OverdriveThatMatters.loc(MNames.LIMB_OVERCLOCKING_LIST[i - 1]))
|
||||
}
|
||||
|
||||
limbs.build()
|
||||
})
|
||||
|
||||
regenList.add(registry.register(MNames.NANOBOTS_REGENERATION_LIST[i]) {
|
||||
val regeneration = AndroidResearchBuilder()
|
||||
.setExperienceCost(20 + i * 6)
|
||||
.withIconText(TextComponent((i + 1).toString()))
|
||||
.withIcon(ICON_NANOBOTS)
|
||||
.withName(TranslatableComponent("android_research.overdrive_that_matters.nanobots_regeneration", i + 1))
|
||||
.withDescription(
|
||||
if (i > 0) TranslatableComponent("android_research.overdrive_that_matters.nanobots_regeneration.description_improve") else TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.nanobots_regeneration.description"
|
||||
)
|
||||
)
|
||||
.addFeatureResult(OverdriveThatMatters.loc(MNames.NANOBOTS_REGENERATION), i)
|
||||
|
||||
|
||||
if (i > 0) {
|
||||
regeneration.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS_REGENERATION_LIST[i - 1]))
|
||||
} else {
|
||||
regeneration.addPrerequisite(OverdriveThatMatters.loc(MNames.NANOBOTS))
|
||||
}
|
||||
|
||||
regeneration.build()
|
||||
})
|
||||
}
|
||||
|
||||
for (i in 0 until 3) {
|
||||
val level = i + 1
|
||||
|
||||
armorStrengthList.add(registry.register(MNames.NANOBOTS_ARMOR_STRENGTH_LIST[i]) {
|
||||
AndroidResearchBuilder()
|
||||
.setExperienceCost(20 + i * 8)
|
||||
.withIconText(TextComponent((i + 1).toString()))
|
||||
.withIcon(ICON_ARMOR)
|
||||
.addPrerequisite(OverdriveThatMatters.loc(if (i > 0) MNames.NANOBOTS_ARMOR_STRENGTH_LIST[i - 1] else MNames.NANOBOTS_ARMOR))
|
||||
.withName(
|
||||
TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.nanobots_armor_strength",
|
||||
i + 1
|
||||
)
|
||||
)
|
||||
.withDescription(
|
||||
TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.nanobots_armor_strength.description",
|
||||
(i + 1) * 8,
|
||||
(i + 1) * 6
|
||||
)
|
||||
)
|
||||
.addFeatureResult(OverdriveThatMatters.loc(MNames.NANOBOTS_ARMOR), 0) { feature ->
|
||||
if ((feature as AndroidNanobotsArmor).strength < level) feature.strength = level
|
||||
}
|
||||
.build()
|
||||
})
|
||||
|
||||
armorSpeedList.add(registry.register(MNames.NANOBOTS_ARMOR_SPEED_LIST[i]) {
|
||||
AndroidResearchBuilder()
|
||||
.setExperienceCost(20 + i * 8)
|
||||
.withIconText(TextComponent((i + 1).toString()))
|
||||
.withIcon(ICON_ARMOR)
|
||||
.addPrerequisite(OverdriveThatMatters.loc(if (i > 0) MNames.NANOBOTS_ARMOR_SPEED_LIST[i - 1] else MNames.NANOBOTS_ARMOR))
|
||||
.withName(
|
||||
TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.nanobots_armor_speed",
|
||||
i + 1
|
||||
)
|
||||
)
|
||||
.withDescription(
|
||||
TranslatableComponent(
|
||||
"android_research.overdrive_that_matters.nanobots_armor_speed.description",
|
||||
(i + 1) * 8,
|
||||
(i + 1) * 6
|
||||
)
|
||||
)
|
||||
.addFeatureResult(OverdriveThatMatters.loc(MNames.NANOBOTS_ARMOR), 0) { feature ->
|
||||
if ((feature as AndroidNanobotsArmor).speed < level) feature.speed = level
|
||||
}
|
||||
.build()
|
||||
})
|
||||
}
|
||||
|
||||
LIMB_OVERCLOCKING = RegistryObjectList(limbList)
|
||||
NANOBOTS_REGENERATION = RegistryObjectList(regenList)
|
||||
NANOBOTS_ARMOR_SPEED = RegistryObjectList(armorSpeedList)
|
||||
NANOBOTS_ARMOR_STRENGTH = RegistryObjectList(armorStrengthList)
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@ import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.ItemStack
|
||||
|
||||
class EMPDamageSource(private val entity: Entity? = null) : DamageSource(Registry.DAMAGE_EMP_NAME) {
|
||||
class EMPDamageSource(private val entity: Entity? = null) : DamageSource(MRegistry.DAMAGE_EMP_NAME) {
|
||||
init {
|
||||
bypassArmor()
|
||||
bypassMagic()
|
||||
|
24
src/main/kotlin/ru/dbotthepony/mc/otm/registry/LazyList.kt
Normal file
24
src/main/kotlin/ru/dbotthepony/mc/otm/registry/LazyList.kt
Normal file
@ -0,0 +1,24 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraftforge.registries.IForgeRegistryEntry
|
||||
import net.minecraftforge.registries.RegistryObject
|
||||
|
||||
class LazyList<T>(private vararg val getters: () -> T) : AbstractList<T>() {
|
||||
override val size: Int
|
||||
get() = getters.size
|
||||
|
||||
override fun get(index: Int): T {
|
||||
return getters[index].invoke()
|
||||
}
|
||||
}
|
||||
|
||||
class RegistryObjectList<T : IForgeRegistryEntry<T>>(private vararg val getters: RegistryObject<T>) : AbstractList<T>() {
|
||||
constructor(getters: List<RegistryObject<T>>) : this(*getters.toTypedArray())
|
||||
|
||||
override val size: Int
|
||||
get() = getters.size
|
||||
|
||||
override fun get(index: Int): T {
|
||||
return getters[index].get()
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.block.entity.*
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntityExplosionDebugger
|
||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlockEntitySphereDebugger
|
||||
import ru.dbotthepony.mc.otm.client.render.BlackHoleRenderer
|
||||
import ru.dbotthepony.mc.otm.client.render.EnergyCounterRenderer
|
||||
import ru.dbotthepony.mc.otm.client.render.GravitationStabilizerRenderer
|
||||
|
||||
object MBlockEntities {
|
||||
private val registry = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
val ANDROID_STATION: BlockEntityType<*> by registry.register(MNames.ANDROID_STATION) { BlockEntityType.Builder.of(::AndroidStationBlockEntity, MBlocks.ANDROID_STATION).build(null) }
|
||||
val BATTERY_BANK: BlockEntityType<*> by registry.register(MNames.BATTERY_BANK) { BlockEntityType.Builder.of(::BatteryBankBlockEntity, MBlocks.BATTERY_BANK).build(null) }
|
||||
val MATTER_DECOMPOSER: BlockEntityType<*> by registry.register(MNames.MATTER_DECOMPOSER) { BlockEntityType.Builder.of(::MatterDecomposerBlockEntity, MBlocks.MATTER_DECOMPOSER).build(null) }
|
||||
val MATTER_CAPACITOR_BANK: BlockEntityType<*> by registry.register(MNames.MATTER_CAPACITOR_BANK) { BlockEntityType.Builder.of(::MatterCapacitorBankBlockEntity, MBlocks.MATTER_CAPACITOR_BANK).build(null) }
|
||||
val MATTER_CABLE: BlockEntityType<*> by registry.register(MNames.MATTER_CABLE) { BlockEntityType.Builder.of(::MatterCableBlockEntity, MBlocks.MATTER_CABLE).build(null) }
|
||||
val PATTERN_STORAGE: BlockEntityType<*> by registry.register(MNames.PATTERN_STORAGE) { BlockEntityType.Builder.of(::PatternStorageBlockEntity, MBlocks.PATTERN_STORAGE).build(null) }
|
||||
val MATTER_SCANNER: BlockEntityType<*> by registry.register(MNames.MATTER_SCANNER) { BlockEntityType.Builder.of(::MatterScannerBlockEntity, MBlocks.MATTER_SCANNER).build(null) }
|
||||
val MATTER_PANEL: BlockEntityType<*> by registry.register(MNames.MATTER_PANEL) { BlockEntityType.Builder.of(::MatterPanelBlockEntity, MBlocks.MATTER_PANEL).build(null) }
|
||||
val MATTER_REPLICATOR: BlockEntityType<*> by registry.register(MNames.MATTER_REPLICATOR) { BlockEntityType.Builder.of(::MatterReplicatorBlockEntity, MBlocks.MATTER_REPLICATOR).build(null) }
|
||||
val MATTER_BOTTLER: BlockEntityType<*> by registry.register(MNames.MATTER_BOTTLER) { BlockEntityType.Builder.of(::MatterBottlerBlockEntity, MBlocks.MATTER_BOTTLER).build(null) }
|
||||
val DRIVE_VIEWER: BlockEntityType<*> by registry.register(MNames.DRIVE_VIEWER) { BlockEntityType.Builder.of(::DriveViewerBlockEntity, MBlocks.DRIVE_VIEWER).build(null) }
|
||||
val BLACK_HOLE: BlockEntityType<*> by registry.register(MNames.BLACK_HOLE) { BlockEntityType.Builder.of(::BlackHoleBlockEntity, MBlocks.BLACK_HOLE).build(null) }
|
||||
val CARGO_CRATE: BlockEntityType<*> by registry.register(MNames.CARGO_CRATE) { BlockEntityType.Builder.of(::CargoCrateBlockEntity, MBlocks.CARGO_CRATE).build(null) }
|
||||
val DRIVE_RACK: BlockEntityType<*> by registry.register(MNames.DRIVE_RACK) { BlockEntityType.Builder.of(::DriveRackBlockEntity, MBlocks.DRIVE_RACK).build(null) }
|
||||
val ITEM_MONITOR: BlockEntityType<*> by registry.register(MNames.ITEM_MONITOR) { BlockEntityType.Builder.of(::ItemMonitorBlockEntity, MBlocks.ITEM_MONITOR).build(null) }
|
||||
val ENERGY_COUNTER: BlockEntityType<*> by registry.register(MNames.ENERGY_COUNTER) { BlockEntityType.Builder.of(::EnergyCounterBlockEntity, MBlocks.ENERGY_COUNTER).build(null) }
|
||||
val CHEMICAL_GENERATOR: BlockEntityType<*> by registry.register(MNames.CHEMICAL_GENERATOR) { BlockEntityType.Builder.of(::ChemicalGeneratorBlockEntity, MBlocks.CHEMICAL_GENERATOR).build(null) }
|
||||
val PLATE_PRESS: BlockEntityType<*> by registry.register(MNames.PLATE_PRESS) { BlockEntityType.Builder.of(::PlatePressBlockEntity, MBlocks.PLATE_PRESS).build(null) }
|
||||
val GRAVITATION_STABILIZER: BlockEntityType<*> by registry.register(MNames.GRAVITATION_STABILIZER) { BlockEntityType.Builder.of(::GravitationStabilizerBlockEntity, MBlocks.GRAVITATION_STABILIZER).build(null) }
|
||||
val MATTER_RECYCLER: BlockEntityType<*> by registry.register(MNames.MATTER_RECYCLER) { BlockEntityType.Builder.of(::MatterRecyclerBlockEntity, MBlocks.MATTER_RECYCLER).build(null) }
|
||||
|
||||
val DEBUG_EXPLOSION_SMALL: BlockEntityType<*> by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockEntityType.Builder.of(::BlockEntityExplosionDebugger, MBlocks.DEBUG_EXPLOSION_SMALL).build(null) }
|
||||
val DEBUG_SPHERE_POINTS: BlockEntityType<*> by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockEntityType.Builder.of(::BlockEntitySphereDebugger, MBlocks.DEBUG_SPHERE_POINTS).build(null) }
|
||||
|
||||
internal fun register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
||||
}
|
||||
|
||||
@Suppress("unchecked_cast")
|
||||
private fun registerClient(event: FMLClientSetupEvent) {
|
||||
BlockEntityRenderers.register(BLACK_HOLE as BlockEntityType<BlackHoleBlockEntity>, ::BlackHoleRenderer)
|
||||
BlockEntityRenderers.register(GRAVITATION_STABILIZER as BlockEntityType<GravitationStabilizerBlockEntity>, ::GravitationStabilizerRenderer)
|
||||
BlockEntityRenderers.register(ENERGY_COUNTER as BlockEntityType<EnergyCounterBlockEntity>, ::EnergyCounterRenderer)
|
||||
}
|
||||
}
|
203
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt
Normal file
203
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt
Normal file
@ -0,0 +1,203 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.client.renderer.ItemBlockRenderTypes
|
||||
import net.minecraft.client.renderer.RenderType
|
||||
import net.minecraft.util.valueproviders.UniformInt
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.OreBlock
|
||||
import net.minecraft.world.level.block.SoundType
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||
import net.minecraft.world.level.material.Material
|
||||
import net.minecraft.world.level.material.MaterialColor
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.block.*
|
||||
|
||||
object MBlocks {
|
||||
private val registry = DeferredRegister.create(ForgeRegistries.BLOCKS, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
internal fun register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
||||
}
|
||||
|
||||
private fun registerClient(event: FMLClientSetupEvent) {
|
||||
val translucent = RenderType.translucent()
|
||||
|
||||
for (block in INDUSTRIAL_GLASS_LIST) {
|
||||
ItemBlockRenderTypes.setRenderLayer(block, translucent)
|
||||
}
|
||||
|
||||
for (block in INDUSTRIAL_GLASS_PANE_LIST) {
|
||||
ItemBlockRenderTypes.setRenderLayer(block, translucent)
|
||||
}
|
||||
}
|
||||
|
||||
val ANDROID_STATION: Block by registry.register(MNames.ANDROID_STATION) { AndroidStationBlock() }
|
||||
val BATTERY_BANK: Block by registry.register(MNames.BATTERY_BANK) { BatteryBankBlock() }
|
||||
val MATTER_DECOMPOSER: Block by registry.register(MNames.MATTER_DECOMPOSER) { MatterDecomposerBlock() }
|
||||
val MATTER_CAPACITOR_BANK: Block by registry.register(MNames.MATTER_CAPACITOR_BANK) { MatterCapacitorBankBlock() }
|
||||
val MATTER_CABLE: Block by registry.register(MNames.MATTER_CABLE) { BlockMatterCable() }
|
||||
val PATTERN_STORAGE: Block by registry.register(MNames.PATTERN_STORAGE) { PatternStorageBlock() }
|
||||
val MATTER_SCANNER: Block by registry.register(MNames.MATTER_SCANNER) { MatterScannerBlock() }
|
||||
val MATTER_PANEL: Block by registry.register(MNames.MATTER_PANEL) { MatterPanelBlock() }
|
||||
val MATTER_REPLICATOR: Block by registry.register(MNames.MATTER_REPLICATOR) { MatterReplicatorBlock() }
|
||||
val MATTER_BOTTLER: Block by registry.register(MNames.MATTER_BOTTLER) { MatterBottlerBlock() }
|
||||
val DRIVE_VIEWER: Block by registry.register(MNames.DRIVE_VIEWER) { DriveViewerBlock() }
|
||||
val CARGO_CRATE: Block by registry.register(MNames.CARGO_CRATE) { CargoCrateBlock() }
|
||||
val DRIVE_RACK: Block by registry.register(MNames.DRIVE_RACK) { DriveRackBlock() }
|
||||
val ITEM_MONITOR: Block by registry.register(MNames.ITEM_MONITOR) { ItemMonitorBlock() }
|
||||
val ENERGY_COUNTER: Block by registry.register(MNames.ENERGY_COUNTER) { EnergyCounterBlock() }
|
||||
val CHEMICAL_GENERATOR: Block by registry.register(MNames.CHEMICAL_GENERATOR) { ChemicalGeneratorBlock() }
|
||||
val PLATE_PRESS: Block by registry.register(MNames.PLATE_PRESS) { PlatePressBlock() }
|
||||
val MATTER_RECYCLER: Block by registry.register(MNames.MATTER_RECYCLER) { MatterRecyclerBlock() }
|
||||
|
||||
val DEBUG_EXPLOSION_SMALL: Block by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockExplosionDebugger() }
|
||||
val DEBUG_SPHERE_POINTS: Block by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockSphereDebugger() }
|
||||
|
||||
val BLACK_HOLE: Block by registry.register(MNames.BLACK_HOLE) { BlackHoleBlock() }
|
||||
val GRAVITATION_STABILIZER: Block by registry.register(MNames.GRAVITATION_STABILIZER) { BlockGravitationStabilizer() }
|
||||
val GRAVITATION_STABILIZER_LENS: Block by registry.register(MNames.GRAVITATION_STABILIZER_LENS) { BlockGravitationStabilizerLens() }
|
||||
|
||||
val TRITANIUM_ORE: Block by registry.register(MNames.TRITANIUM_ORE) { OreBlock(
|
||||
BlockBehaviour.Properties.of(Material.STONE)
|
||||
.strength(3.25f, 6.0f)
|
||||
.requiresCorrectToolForDrops(),
|
||||
UniformInt.of(0, 3)
|
||||
) }
|
||||
|
||||
val DEEPSLATE_TRITANIUM_ORE: Block by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { OreBlock(
|
||||
BlockBehaviour.Properties.of(Material.STONE)
|
||||
.strength(4.75f, 6.5f)
|
||||
.requiresCorrectToolForDrops(),
|
||||
UniformInt.of(0, 3)
|
||||
) }
|
||||
|
||||
val TRITANIUM_RAW_BLOCK: Block by registry.register(MNames.TRITANIUM_RAW_BLOCK) { Block(
|
||||
BlockBehaviour.Properties.of(Material.STONE)
|
||||
.strength(8.0f, 10f)
|
||||
.requiresCorrectToolForDrops()
|
||||
) }
|
||||
|
||||
val TRITANIUM_BLOCK: Block by registry.register(MNames.TRITANIUM_BLOCK) { Block(
|
||||
BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_LIGHT_BLUE)
|
||||
.sound(SoundType.BASALT)
|
||||
.requiresCorrectToolForDrops()
|
||||
.explosionResistance(80f)
|
||||
.strength(4f)
|
||||
) }
|
||||
|
||||
val TRITANIUM_STRIPED_BLOCK: Block by registry.register(MNames.TRITANIUM_STRIPED_BLOCK) { Block(
|
||||
BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_LIGHT_BLUE)
|
||||
.sound(SoundType.BASALT)
|
||||
.requiresCorrectToolForDrops()
|
||||
.explosionResistance(80f)
|
||||
.strength(4f)
|
||||
) }
|
||||
|
||||
val CARBON_FIBRE_BLOCK: Block by registry.register(MNames.CARBON_FIBRE_BLOCK) { Block(
|
||||
BlockBehaviour.Properties.of(Material.METAL, MaterialColor.COLOR_LIGHT_BLUE)
|
||||
.sound(SoundType.BASALT)
|
||||
.requiresCorrectToolForDrops()
|
||||
.explosionResistance(40f)
|
||||
.strength(3f)
|
||||
) }
|
||||
|
||||
|
||||
val CRATE_RED: Block by registry.register(MRegistry.CRATE_RED.name) { MRegistry.CRATE_RED.makeBlock() }
|
||||
val CRATE_BLUE: Block by registry.register(MRegistry.CRATE_BLUE.name) { MRegistry.CRATE_BLUE.makeBlock() }
|
||||
val CRATE_YELLOW: Block by registry.register(MRegistry.CRATE_YELLOW.name) { MRegistry.CRATE_YELLOW.makeBlock() }
|
||||
val CRATE_GREEN: Block by registry.register(MRegistry.CRATE_GREEN.name) { MRegistry.CRATE_GREEN.makeBlock() }
|
||||
val CRATE_BLACK: Block by registry.register(MRegistry.CRATE_BLACK.name) { MRegistry.CRATE_BLACK.makeBlock() }
|
||||
val CRATE_PINK: Block by registry.register(MRegistry.CRATE_PINK.name) { MRegistry.CRATE_PINK.makeBlock() }
|
||||
val CRATE_PURPLE: Block by registry.register(MRegistry.CRATE_PURPLE.name) { MRegistry.CRATE_PURPLE.makeBlock() }
|
||||
|
||||
val CRATE_LIST = LazyList(
|
||||
{ CRATE_RED },
|
||||
{ CRATE_BLUE },
|
||||
{ CRATE_YELLOW },
|
||||
{ CRATE_GREEN },
|
||||
{ CRATE_BLACK },
|
||||
{ CRATE_PINK },
|
||||
{ CRATE_PURPLE },
|
||||
)
|
||||
|
||||
val INDUSTRIAL_GLASS: Block by registry.register(MRegistry.INDUSTRIAL_GLASS.name) { MRegistry.INDUSTRIAL_GLASS.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_WHITE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_WHITE.name) { MRegistry.INDUSTRIAL_GLASS_WHITE.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_ORANGE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_ORANGE.name) { MRegistry.INDUSTRIAL_GLASS_ORANGE.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_MAGENTA: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_MAGENTA.name) { MRegistry.INDUSTRIAL_GLASS_MAGENTA.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_LIGHT_BLUE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_BLUE.name) { MRegistry.INDUSTRIAL_GLASS_LIGHT_BLUE.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_YELLOW: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_YELLOW.name) { MRegistry.INDUSTRIAL_GLASS_YELLOW.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_LIME: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_LIME.name) { MRegistry.INDUSTRIAL_GLASS_LIME.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_PINK: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_PINK.name) { MRegistry.INDUSTRIAL_GLASS_PINK.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_GRAY: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_GRAY.name) { MRegistry.INDUSTRIAL_GLASS_GRAY.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_LIGHT_GRAY: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_GRAY.name) { MRegistry.INDUSTRIAL_GLASS_LIGHT_GRAY.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_CYAN: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_CYAN.name) { MRegistry.INDUSTRIAL_GLASS_CYAN.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_PURPLE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_PURPLE.name) { MRegistry.INDUSTRIAL_GLASS_PURPLE.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_BLUE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_BLUE.name) { MRegistry.INDUSTRIAL_GLASS_BLUE.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_BROWN: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_BROWN.name) { MRegistry.INDUSTRIAL_GLASS_BROWN.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_GREEN: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_GREEN.name) { MRegistry.INDUSTRIAL_GLASS_GREEN.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_RED: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_RED.name) { MRegistry.INDUSTRIAL_GLASS_RED.makeBlock() }
|
||||
val INDUSTRIAL_GLASS_BLACK: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_BLACK.name) { MRegistry.INDUSTRIAL_GLASS_BLACK.makeBlock() }
|
||||
|
||||
val INDUSTRIAL_GLASS_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS.namePane) { MRegistry.INDUSTRIAL_GLASS.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_WHITE_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_WHITE.namePane) { MRegistry.INDUSTRIAL_GLASS_WHITE.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_ORANGE_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_ORANGE.namePane) { MRegistry.INDUSTRIAL_GLASS_ORANGE.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_MAGENTA_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_MAGENTA.namePane) { MRegistry.INDUSTRIAL_GLASS_MAGENTA.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_LIGHT_BLUE_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_BLUE.namePane) { MRegistry.INDUSTRIAL_GLASS_LIGHT_BLUE.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_YELLOW_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_YELLOW.namePane) { MRegistry.INDUSTRIAL_GLASS_YELLOW.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_LIME_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_LIME.namePane) { MRegistry.INDUSTRIAL_GLASS_LIME.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_PINK_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_PINK.namePane) { MRegistry.INDUSTRIAL_GLASS_PINK.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_GRAY_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_GRAY.namePane) { MRegistry.INDUSTRIAL_GLASS_GRAY.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_LIGHT_GRAY_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_GRAY.namePane) { MRegistry.INDUSTRIAL_GLASS_LIGHT_GRAY.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_CYAN_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_CYAN.namePane) { MRegistry.INDUSTRIAL_GLASS_CYAN.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_PURPLE_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_PURPLE.namePane) { MRegistry.INDUSTRIAL_GLASS_PURPLE.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_BLUE_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_BLUE.namePane) { MRegistry.INDUSTRIAL_GLASS_BLUE.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_BROWN_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_BROWN.namePane) { MRegistry.INDUSTRIAL_GLASS_BROWN.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_GREEN_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_GREEN.namePane) { MRegistry.INDUSTRIAL_GLASS_GREEN.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_RED_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_RED.namePane) { MRegistry.INDUSTRIAL_GLASS_RED.makePaneBlock() }
|
||||
val INDUSTRIAL_GLASS_BLACK_PANE: Block by registry.register(MRegistry.INDUSTRIAL_GLASS_BLACK.namePane) { MRegistry.INDUSTRIAL_GLASS_BLACK.makePaneBlock() }
|
||||
|
||||
val INDUSTRIAL_GLASS_LIST = LazyList(
|
||||
{ INDUSTRIAL_GLASS },
|
||||
{ INDUSTRIAL_GLASS_WHITE },
|
||||
{ INDUSTRIAL_GLASS_ORANGE },
|
||||
{ INDUSTRIAL_GLASS_MAGENTA },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_BLUE },
|
||||
{ INDUSTRIAL_GLASS_YELLOW },
|
||||
{ INDUSTRIAL_GLASS_LIME },
|
||||
{ INDUSTRIAL_GLASS_PINK },
|
||||
{ INDUSTRIAL_GLASS_GRAY },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_GRAY },
|
||||
{ INDUSTRIAL_GLASS_CYAN },
|
||||
{ INDUSTRIAL_GLASS_PURPLE },
|
||||
{ INDUSTRIAL_GLASS_BLUE },
|
||||
{ INDUSTRIAL_GLASS_BROWN },
|
||||
{ INDUSTRIAL_GLASS_GREEN },
|
||||
{ INDUSTRIAL_GLASS_RED },
|
||||
{ INDUSTRIAL_GLASS_BLACK },
|
||||
)
|
||||
|
||||
val INDUSTRIAL_GLASS_PANE_LIST = LazyList(
|
||||
{ INDUSTRIAL_GLASS_PANE },
|
||||
{ INDUSTRIAL_GLASS_WHITE_PANE },
|
||||
{ INDUSTRIAL_GLASS_ORANGE_PANE },
|
||||
{ INDUSTRIAL_GLASS_MAGENTA_PANE },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_BLUE_PANE },
|
||||
{ INDUSTRIAL_GLASS_YELLOW_PANE },
|
||||
{ INDUSTRIAL_GLASS_LIME_PANE },
|
||||
{ INDUSTRIAL_GLASS_PINK_PANE },
|
||||
{ INDUSTRIAL_GLASS_GRAY_PANE },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_GRAY_PANE },
|
||||
{ INDUSTRIAL_GLASS_CYAN_PANE },
|
||||
{ INDUSTRIAL_GLASS_PURPLE_PANE },
|
||||
{ INDUSTRIAL_GLASS_BLUE_PANE },
|
||||
{ INDUSTRIAL_GLASS_BROWN_PANE },
|
||||
{ INDUSTRIAL_GLASS_GREEN_PANE },
|
||||
{ INDUSTRIAL_GLASS_RED_PANE },
|
||||
{ INDUSTRIAL_GLASS_BLACK_PANE },
|
||||
)
|
||||
}
|
307
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt
Normal file
307
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt
Normal file
@ -0,0 +1,307 @@
|
||||
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.tags.BlockTags
|
||||
import net.minecraft.world.entity.EquipmentSlot
|
||||
import net.minecraft.world.food.FoodProperties
|
||||
import net.minecraft.world.item.*
|
||||
import net.minecraft.world.item.crafting.Ingredient
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraftforge.common.ForgeTier
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.item.*
|
||||
|
||||
object MItems {
|
||||
private val DEFAULT_PROPERTIES = Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)
|
||||
private val registry = DeferredRegister.create(ForgeRegistries.ITEMS, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
internal fun register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
}
|
||||
|
||||
val ANDROID_STATION: Item by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) }
|
||||
val BATTERY_BANK: Item by registry.register(MNames.BATTERY_BANK) { BlockItem(MBlocks.BATTERY_BANK, DEFAULT_PROPERTIES) }
|
||||
val MATTER_DECOMPOSER: Item by registry.register(MNames.MATTER_DECOMPOSER) { BlockItem(MBlocks.MATTER_DECOMPOSER, DEFAULT_PROPERTIES) }
|
||||
val MATTER_CAPACITOR_BANK: Item by registry.register(MNames.MATTER_CAPACITOR_BANK) { BlockItem(MBlocks.MATTER_CAPACITOR_BANK, DEFAULT_PROPERTIES) }
|
||||
val MATTER_CABLE: Item by registry.register(MNames.MATTER_CABLE) { BlockItem(MBlocks.MATTER_CABLE, DEFAULT_PROPERTIES) }
|
||||
val PATTERN_STORAGE: Item by registry.register(MNames.PATTERN_STORAGE) { BlockItem(MBlocks.PATTERN_STORAGE, DEFAULT_PROPERTIES) }
|
||||
val MATTER_SCANNER: Item by registry.register(MNames.MATTER_SCANNER) { BlockItem(MBlocks.MATTER_SCANNER, DEFAULT_PROPERTIES) }
|
||||
val MATTER_PANEL: Item by registry.register(MNames.MATTER_PANEL) { BlockItem(MBlocks.MATTER_PANEL, DEFAULT_PROPERTIES) }
|
||||
val MATTER_REPLICATOR: Item by registry.register(MNames.MATTER_REPLICATOR) { BlockItem(MBlocks.MATTER_REPLICATOR, DEFAULT_PROPERTIES) }
|
||||
val MATTER_BOTTLER: Item by registry.register(MNames.MATTER_BOTTLER) { BlockItem(MBlocks.MATTER_BOTTLER, DEFAULT_PROPERTIES) }
|
||||
val DRIVE_VIEWER: Item by registry.register(MNames.DRIVE_VIEWER) { BlockItem(MBlocks.DRIVE_VIEWER, DEFAULT_PROPERTIES) }
|
||||
val CARGO_CRATE: Item by registry.register(MNames.CARGO_CRATE) { BlockItem(MBlocks.CARGO_CRATE, DEFAULT_PROPERTIES) }
|
||||
val TRITANIUM_ORE: Item by registry.register(MNames.TRITANIUM_ORE) { BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES) }
|
||||
val DEEPSLATE_TRITANIUM_ORE: Item by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES) }
|
||||
val TRITANIUM_RAW_BLOCK: Item by registry.register(MNames.TRITANIUM_RAW_BLOCK) { BlockItem(MBlocks.TRITANIUM_RAW_BLOCK, DEFAULT_PROPERTIES) }
|
||||
val DRIVE_RACK: Item by registry.register(MNames.DRIVE_RACK) { BlockItem(MBlocks.DRIVE_RACK, DEFAULT_PROPERTIES) }
|
||||
val ITEM_MONITOR: Item by registry.register(MNames.ITEM_MONITOR) { BlockItem(MBlocks.ITEM_MONITOR, DEFAULT_PROPERTIES) }
|
||||
val ENERGY_COUNTER: Item by registry.register(MNames.ENERGY_COUNTER) { BlockItem(MBlocks.ENERGY_COUNTER, DEFAULT_PROPERTIES) }
|
||||
val CHEMICAL_GENERATOR: Item by registry.register(MNames.CHEMICAL_GENERATOR) { BlockItem(MBlocks.CHEMICAL_GENERATOR, DEFAULT_PROPERTIES) }
|
||||
val PLATE_PRESS: Item by registry.register(MNames.PLATE_PRESS) { BlockItem(MBlocks.PLATE_PRESS, DEFAULT_PROPERTIES) }
|
||||
val MATTER_RECYCLER: Item by registry.register(MNames.MATTER_RECYCLER) { BlockItem(MBlocks.MATTER_RECYCLER, DEFAULT_PROPERTIES) }
|
||||
val GRAVITATION_STABILIZER: Item by registry.register(MNames.GRAVITATION_STABILIZER) {
|
||||
object : BlockItem(MBlocks.GRAVITATION_STABILIZER, DEFAULT_PROPERTIES) {
|
||||
override fun appendHoverText(
|
||||
p_40572_: ItemStack,
|
||||
p_40573_: Level?,
|
||||
p_40574_: MutableList<Component>,
|
||||
p_40575_: TooltipFlag
|
||||
) {
|
||||
super.appendHoverText(p_40572_, p_40573_, p_40574_, p_40575_)
|
||||
|
||||
p_40574_.add(TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc").withStyle(ChatFormatting.GRAY))
|
||||
p_40574_.add(TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc2").withStyle(ChatFormatting.DARK_GRAY))
|
||||
p_40574_.add(TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc3").withStyle(ChatFormatting.DARK_GRAY))
|
||||
p_40574_.add(TranslatableComponent("block.overdrive_that_matters.gravitation_stabilizer.desc4").withStyle(ChatFormatting.DARK_GRAY))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val DEBUG_EXPLOSION_SMALL: Item by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockItem(MBlocks.DEBUG_EXPLOSION_SMALL, DEFAULT_PROPERTIES) }
|
||||
val DEBUG_SPHERE_POINTS: Item by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockItem(MBlocks.DEBUG_SPHERE_POINTS, DEFAULT_PROPERTIES) }
|
||||
|
||||
val MATTER_DUST: Item by registry.register(MNames.MATTER_DUST) { MatterDustItem() }
|
||||
|
||||
val TRITANIUM_ORE_CLUMP: Item by registry.register(MNames.TRITANIUM_ORE_CLUMP) { Item(DEFAULT_PROPERTIES) }
|
||||
val TRITANIUM_INGOT: Item by registry.register(MNames.TRITANIUM_INGOT) { Item(DEFAULT_PROPERTIES) }
|
||||
|
||||
val TRITANIUM_COMPONENT: ForgeTier
|
||||
|
||||
init {
|
||||
TRITANIUM_COMPONENT = ForgeTier(
|
||||
Tiers.IRON.level,
|
||||
3072,
|
||||
Tiers.IRON.speed * 1.1f,
|
||||
3.5f,
|
||||
16,
|
||||
BlockTags.NEEDS_IRON_TOOL
|
||||
) { Ingredient.of(TRITANIUM_INGOT) }
|
||||
}
|
||||
|
||||
private val TOOLS_PROPRTIES = Item.Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)
|
||||
|
||||
val TRITANIUM_SWORD: Item by registry.register(MNames.TRITANIUM_SWORD) { SwordItem(TRITANIUM_COMPONENT, 4, -2.7f, TOOLS_PROPRTIES) }
|
||||
val TRITANIUM_SHOVEL: Item by registry.register(MNames.TRITANIUM_SHOVEL) { ShovelItem(TRITANIUM_COMPONENT, 1.5f, -2.4f, TOOLS_PROPRTIES) }
|
||||
val TRITANIUM_AXE: Item by registry.register(MNames.TRITANIUM_AXE) { AxeItem(TRITANIUM_COMPONENT, 8.5f, -3.4f, TOOLS_PROPRTIES) }
|
||||
val TRITANIUM_PICKAXE: Item by registry.register(MNames.TRITANIUM_PICKAXE) { PickaxeItem(TRITANIUM_COMPONENT, 2, -2.8f, TOOLS_PROPRTIES) }
|
||||
val TRITANIUM_HOE: Item by registry.register(MNames.TRITANIUM_HOE) { HoeItem(TRITANIUM_COMPONENT, 0, -3.4f, TOOLS_PROPRTIES) }
|
||||
|
||||
val TRITANIUM_TOOLS = LazyList(
|
||||
{ TRITANIUM_SWORD },
|
||||
{ TRITANIUM_SHOVEL },
|
||||
{ TRITANIUM_AXE },
|
||||
{ TRITANIUM_PICKAXE },
|
||||
{ TRITANIUM_HOE }
|
||||
)
|
||||
|
||||
val TRITANIUM_HELMET: Item by registry.register(MNames.TRITANIUM_HELMET) { ItemTritaniumArmor(EquipmentSlot.HEAD) }
|
||||
val TRITANIUM_CHESTPLATE: Item by registry.register(MNames.TRITANIUM_CHESTPLATE) { ItemTritaniumArmor(EquipmentSlot.CHEST) }
|
||||
val TRITANIUM_PANTS: Item by registry.register(MNames.TRITANIUM_PANTS) { ItemTritaniumArmor(EquipmentSlot.LEGS) }
|
||||
val TRITANIUM_BOOTS: Item by registry.register(MNames.TRITANIUM_BOOTS) { ItemTritaniumArmor(EquipmentSlot.FEET) }
|
||||
|
||||
val TRITANIUM_ARMOR = LazyList(
|
||||
{ TRITANIUM_HELMET },
|
||||
{ TRITANIUM_CHESTPLATE },
|
||||
{ TRITANIUM_PANTS },
|
||||
{ TRITANIUM_BOOTS }
|
||||
)
|
||||
|
||||
|
||||
val ENERGY_SWORD: Item by registry.register(MNames.ENERGY_SWORD) { EnergySwordItem() }
|
||||
|
||||
val MATTER_IO_PORT: Item by registry.register(MNames.MATTER_IO_PORT) { Item(DEFAULT_PROPERTIES) }
|
||||
val MATTER_TRANSFORM_MATRIX: Item by registry.register(MNames.MATTER_TRANSFORM_MATRIX) { Item(DEFAULT_PROPERTIES) }
|
||||
val ENERGY_BUS: Item by registry.register(MNames.ENERGY_BUS) { Item(DEFAULT_PROPERTIES) }
|
||||
val ELECTRIC_PARTS: Item by registry.register(MNames.ELECTRIC_PARTS) { Item(DEFAULT_PROPERTIES) }
|
||||
val MACHINE_FRAME: Item by registry.register(MNames.MACHINE_FRAME) { Item(DEFAULT_PROPERTIES) }
|
||||
val TRITANIUM_PLATE: Item by registry.register(MNames.TRITANIUM_PLATE) { Item(DEFAULT_PROPERTIES) }
|
||||
val IRON_PLATE: Item by registry.register(MNames.IRON_PLATE) { Item(DEFAULT_PROPERTIES) }
|
||||
val COPPER_WIRING: Item by registry.register(MNames.COPPER_WIRING) { Item(DEFAULT_PROPERTIES) }
|
||||
val GOLD_WIRING: Item by registry.register(MNames.GOLD_WIRING) { Item(DEFAULT_PROPERTIES) }
|
||||
val PORTABLE_CONDENSATION_DRIVE_CASING: Item by registry.register(MNames.PORTABLE_CONDENSATION_DRIVE_CASING) { Item(DEFAULT_PROPERTIES) }
|
||||
val PORTABLE_DENSE_CONDENSATION_DRIVE_CASING: Item by registry.register(MNames.PORTABLE_DENSE_CONDENSATION_DRIVE_CASING) { Item(DEFAULT_PROPERTIES) }
|
||||
val CIRCUIT_PLATING: Item by registry.register(MNames.CIRCUIT_PLATING) { Item(DEFAULT_PROPERTIES) }
|
||||
val BASIC_CONTROL_CIRCUIT: Item by registry.register(MNames.BASIC_CONTROL_CIRCUIT) { Item(DEFAULT_PROPERTIES) }
|
||||
val ADVANCED_CONTROL_CIRCUIT: Item by registry.register(MNames.ADVANCED_CONTROL_CIRCUIT) { Item(DEFAULT_PROPERTIES) }
|
||||
|
||||
val BLACK_HOLE_SCANNER: Item by registry.register(MNames.BLACK_HOLE_SCANNER) {
|
||||
object : Item(DEFAULT_PROPERTIES) {
|
||||
override fun appendHoverText(
|
||||
p_41421_: ItemStack,
|
||||
p_41422_: Level?,
|
||||
p_41423_: MutableList<Component>,
|
||||
p_41424_: TooltipFlag
|
||||
) {
|
||||
p_41423_.add(TranslatableComponent("item.overdrive_that_matters.black_hole_scanner.desc").withStyle(ChatFormatting.GRAY))
|
||||
p_41423_.add(TranslatableComponent("item.overdrive_that_matters.black_hole_scanner.desc2").withStyle(ChatFormatting.DARK_GRAY))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val GRAVITATION_FIELD_LIMITER: Item by registry.register(MNames.GRAVITATION_FIELD_LIMITER) { Item(DEFAULT_PROPERTIES) }
|
||||
val GRAVITATION_FIELD_SENSOR: Item by registry.register(MNames.GRAVITATION_FIELD_SENSOR) { Item(DEFAULT_PROPERTIES) }
|
||||
val PORTABLE_GRAVITATION_STABILIZER: Item by registry.register(MNames.PORTABLE_GRAVITATION_STABILIZER) { ItemPortableGravitationStabilizer() }
|
||||
|
||||
val BLACK_HOLE: Item by registry.register(MNames.BLACK_HOLE) { BlockItem(MBlocks.BLACK_HOLE, DEFAULT_PROPERTIES) }
|
||||
|
||||
val GRAVITATIONAL_DISRUPTOR: Item by registry.register(MNames.GRAVITATIONAL_DISRUPTOR) { GravitationalDisruptorItem() }
|
||||
|
||||
val PILL_ANDROID: Item by registry.register(MNames.PILL_ANDROID) { PillItem(PillType.BECOME_ANDROID) }
|
||||
val PILL_HUMANE: Item by registry.register(MNames.PILL_HUMANE) { PillItem(PillType.BECOME_HUMANE) }
|
||||
val PILL_OBLIVION: Item by registry.register(MNames.PILL_OBLIVION) { PillItem(PillType.OBLIVION) }
|
||||
val PILL_HEAL: Item by registry.register(MNames.PILL_HEAL) { HealPillItem() }
|
||||
|
||||
val BATTERY_CRUDE: Item by registry.register(MNames.BATTERY_CRUDE) { BatteryItem(ImpreciseFraction(30_000), ImpreciseFraction(150), ImpreciseFraction(150)) }
|
||||
val BATTERY_BASIC: Item by registry.register(MNames.BATTERY_BASIC) { BatteryItem(ImpreciseFraction(60_000), ImpreciseFraction(300), ImpreciseFraction(300)) }
|
||||
val BATTERY_NORMAL: Item by registry.register(MNames.BATTERY_NORMAL) { BatteryItem(ImpreciseFraction(250_000), ImpreciseFraction(1000), ImpreciseFraction(1000)) }
|
||||
val BATTERY_DENSE: Item by registry.register(MNames.BATTERY_DENSE) { BatteryItem(ImpreciseFraction(1_000_000), ImpreciseFraction(2000), ImpreciseFraction(2000)) }
|
||||
val BATTERY_CAPACITOR: Item by registry.register(MNames.BATTERY_CAPACITOR) { BatteryItem(ImpreciseFraction(150_000), ImpreciseFraction(15000), ImpreciseFraction(15000)) }
|
||||
val BATTERY_CREATIVE: Item by registry.register(MNames.BATTERY_CREATIVE) { BatteryItem() }
|
||||
|
||||
val BATTERIES = LazyList(
|
||||
{ BATTERY_CRUDE },
|
||||
{ BATTERY_BASIC },
|
||||
{ BATTERY_NORMAL },
|
||||
{ BATTERY_DENSE },
|
||||
{ BATTERY_CAPACITOR },
|
||||
)
|
||||
|
||||
val MATTER_CAPACITOR_PARTS: Item by registry.register(MNames.MATTER_CAPACITOR_PARTS) { Item(DEFAULT_PROPERTIES) }
|
||||
|
||||
val DATAGEN_COMPONENTS = LazyList(
|
||||
{ ENERGY_BUS },
|
||||
{ ELECTRIC_PARTS },
|
||||
{ TRITANIUM_PLATE },
|
||||
{ IRON_PLATE },
|
||||
{ COPPER_WIRING },
|
||||
{ GOLD_WIRING },
|
||||
{ CIRCUIT_PLATING },
|
||||
{ BASIC_CONTROL_CIRCUIT },
|
||||
{ ADVANCED_CONTROL_CIRCUIT },
|
||||
{ MATTER_CAPACITOR_PARTS },
|
||||
{ MATTER_IO_PORT },
|
||||
{ MATTER_TRANSFORM_MATRIX },
|
||||
)
|
||||
|
||||
|
||||
val MATTER_CAPACITOR_BASIC: Item by registry.register(MNames.MATTER_CAPACITOR_BASIC) { MatterCapacitorItem(ImpreciseFraction("4")) }
|
||||
val MATTER_CAPACITOR_NORMAL: Item by registry.register(MNames.MATTER_CAPACITOR_NORMAL) { MatterCapacitorItem(ImpreciseFraction("10")) }
|
||||
val MATTER_CAPACITOR_DENSE: Item by registry.register(MNames.MATTER_CAPACITOR_DENSE) { MatterCapacitorItem(ImpreciseFraction("40")) }
|
||||
val MATTER_CAPACITOR_CREATIVE: Item by registry.register(MNames.MATTER_CAPACITOR_CREATIVE) { MatterCapacitorItem() }
|
||||
|
||||
val PATTERN_DRIVE_NORMAL: Item by registry.register(MNames.PATTERN_DRIVE_NORMAL) { PatternStorageItem(4) }
|
||||
val PATTERN_DRIVE_CREATIVE: Item by registry.register(MNames.PATTERN_DRIVE_CREATIVE) { PatternStorageItem() }
|
||||
|
||||
val PORTABLE_CONDENSATION_DRIVE: Item by registry.register(MNames.PORTABLE_CONDENSATION_DRIVE) { PortableCondensationDriveItem(4000) }
|
||||
val PORTABLE_DENSE_CONDENSATION_DRIVE: Item by registry.register(MNames.PORTABLE_DENSE_CONDENSATION_DRIVE) { PortableCondensationDriveItem(25000) }
|
||||
|
||||
val NUTRIENT_PASTE: Item by registry.register(MNames.NUTRIENT_PASTE) { Item(Item.Properties().stacksTo(64).food(
|
||||
FoodProperties.Builder().meat().nutrition(8).saturationMod(0.9F).build()).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) }
|
||||
|
||||
val CRATE_RED: Item by registry.register(MRegistry.CRATE_RED.name) { BlockItem(MBlocks.CRATE_RED, DEFAULT_PROPERTIES) }
|
||||
val CRATE_BLUE: Item by registry.register(MRegistry.CRATE_BLUE.name) { BlockItem(MBlocks.CRATE_BLUE, DEFAULT_PROPERTIES) }
|
||||
val CRATE_YELLOW: Item by registry.register(MRegistry.CRATE_YELLOW.name) { BlockItem(MBlocks.CRATE_YELLOW, DEFAULT_PROPERTIES) }
|
||||
val CRATE_GREEN: Item by registry.register(MRegistry.CRATE_GREEN.name) { BlockItem(MBlocks.CRATE_GREEN, DEFAULT_PROPERTIES) }
|
||||
val CRATE_BLACK: Item by registry.register(MRegistry.CRATE_BLACK.name) { BlockItem(MBlocks.CRATE_BLACK, DEFAULT_PROPERTIES) }
|
||||
val CRATE_PINK: Item by registry.register(MRegistry.CRATE_PINK.name) { BlockItem(MBlocks.CRATE_PINK, DEFAULT_PROPERTIES) }
|
||||
val CRATE_PURPLE: Item by registry.register(MRegistry.CRATE_PURPLE.name) { BlockItem(MBlocks.CRATE_PURPLE, DEFAULT_PROPERTIES) }
|
||||
|
||||
val CRATE_LIST = LazyList(
|
||||
{ CRATE_RED },
|
||||
{ CRATE_BLUE },
|
||||
{ CRATE_YELLOW },
|
||||
{ CRATE_GREEN },
|
||||
{ CRATE_BLACK },
|
||||
{ CRATE_PINK },
|
||||
{ CRATE_PURPLE },
|
||||
)
|
||||
|
||||
val TRITANIUM_BLOCK: Item by registry.register(MNames.TRITANIUM_BLOCK) { BlockItem(MBlocks.TRITANIUM_BLOCK, DEFAULT_PROPERTIES) }
|
||||
val TRITANIUM_STRIPED_BLOCK: Item by registry.register(MNames.TRITANIUM_STRIPED_BLOCK) { BlockItem(MBlocks.TRITANIUM_STRIPED_BLOCK, DEFAULT_PROPERTIES) }
|
||||
val CARBON_FIBRE_BLOCK: Item by registry.register(MNames.CARBON_FIBRE_BLOCK) { BlockItem(MBlocks.CARBON_FIBRE_BLOCK, DEFAULT_PROPERTIES) }
|
||||
|
||||
val INDUSTRIAL_GLASS: Item by registry.register(MRegistry.INDUSTRIAL_GLASS.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_WHITE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_WHITE.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_WHITE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_ORANGE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_ORANGE.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_ORANGE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_MAGENTA: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_MAGENTA.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_MAGENTA, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_LIGHT_BLUE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_BLUE.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_LIGHT_BLUE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_YELLOW: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_YELLOW.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_YELLOW, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_LIME: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_LIME.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_LIME, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_PINK: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_PINK.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_PINK, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_GRAY: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_GRAY.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_GRAY, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_LIGHT_GRAY: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_GRAY.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_LIGHT_GRAY, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_CYAN: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_CYAN.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_CYAN, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_PURPLE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_PURPLE.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_PURPLE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_BLUE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_BLUE.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_BLUE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_BROWN: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_BROWN.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_BROWN, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_GREEN: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_GREEN.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_GREEN, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_RED: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_RED.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_RED, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_BLACK: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_BLACK.name) { BlockItem(MBlocks.INDUSTRIAL_GLASS_BLACK, DEFAULT_PROPERTIES) }
|
||||
|
||||
val INDUSTRIAL_GLASS_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_WHITE_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_WHITE.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_WHITE_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_ORANGE_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_ORANGE.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_ORANGE_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_MAGENTA_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_MAGENTA.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_MAGENTA_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_LIGHT_BLUE_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_BLUE.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_LIGHT_BLUE_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_YELLOW_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_YELLOW.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_YELLOW_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_LIME_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_LIME.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_LIME_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_PINK_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_PINK.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_PINK_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_GRAY_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_GRAY.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_GRAY_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_LIGHT_GRAY_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_LIGHT_GRAY.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_LIGHT_GRAY_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_CYAN_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_CYAN.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_CYAN_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_PURPLE_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_PURPLE.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_PURPLE_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_BLUE_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_BLUE.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_BLUE_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_BROWN_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_BROWN.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_BROWN_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_GREEN_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_GREEN.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_GREEN_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_RED_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_RED.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_RED_PANE, DEFAULT_PROPERTIES) }
|
||||
val INDUSTRIAL_GLASS_BLACK_PANE: Item by registry.register(MRegistry.INDUSTRIAL_GLASS_BLACK.namePane) { BlockItem(MBlocks.INDUSTRIAL_GLASS_BLACK_PANE, DEFAULT_PROPERTIES) }
|
||||
|
||||
val INDUSTRIAL_GLASS_LIST = LazyList(
|
||||
{ INDUSTRIAL_GLASS },
|
||||
{ INDUSTRIAL_GLASS_WHITE },
|
||||
{ INDUSTRIAL_GLASS_ORANGE },
|
||||
{ INDUSTRIAL_GLASS_MAGENTA },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_BLUE },
|
||||
{ INDUSTRIAL_GLASS_YELLOW },
|
||||
{ INDUSTRIAL_GLASS_LIME },
|
||||
{ INDUSTRIAL_GLASS_PINK },
|
||||
{ INDUSTRIAL_GLASS_GRAY },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_GRAY },
|
||||
{ INDUSTRIAL_GLASS_CYAN },
|
||||
{ INDUSTRIAL_GLASS_PURPLE },
|
||||
{ INDUSTRIAL_GLASS_BLUE },
|
||||
{ INDUSTRIAL_GLASS_BROWN },
|
||||
{ INDUSTRIAL_GLASS_GREEN },
|
||||
{ INDUSTRIAL_GLASS_RED },
|
||||
{ INDUSTRIAL_GLASS_BLACK },
|
||||
)
|
||||
|
||||
val INDUSTRIAL_GLASS_PANE_LIST = LazyList(
|
||||
{ INDUSTRIAL_GLASS_PANE },
|
||||
{ INDUSTRIAL_GLASS_WHITE_PANE },
|
||||
{ INDUSTRIAL_GLASS_ORANGE_PANE },
|
||||
{ INDUSTRIAL_GLASS_MAGENTA_PANE },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_BLUE_PANE },
|
||||
{ INDUSTRIAL_GLASS_YELLOW_PANE },
|
||||
{ INDUSTRIAL_GLASS_LIME_PANE },
|
||||
{ INDUSTRIAL_GLASS_PINK_PANE },
|
||||
{ INDUSTRIAL_GLASS_GRAY_PANE },
|
||||
{ INDUSTRIAL_GLASS_LIGHT_GRAY_PANE },
|
||||
{ INDUSTRIAL_GLASS_CYAN_PANE },
|
||||
{ INDUSTRIAL_GLASS_PURPLE_PANE },
|
||||
{ INDUSTRIAL_GLASS_BLUE_PANE },
|
||||
{ INDUSTRIAL_GLASS_BROWN_PANE },
|
||||
{ INDUSTRIAL_GLASS_GREEN_PANE },
|
||||
{ INDUSTRIAL_GLASS_RED_PANE },
|
||||
{ INDUSTRIAL_GLASS_BLACK_PANE },
|
||||
)
|
||||
}
|
58
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MMenus.kt
Normal file
58
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MMenus.kt
Normal file
@ -0,0 +1,58 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.client.gui.screens.MenuScreens
|
||||
import net.minecraft.world.inventory.MenuType
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.client.screen.*
|
||||
import ru.dbotthepony.mc.otm.menu.*
|
||||
|
||||
object MMenus {
|
||||
private val registry = DeferredRegister.create(ForgeRegistries.CONTAINERS, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
val ANDROID_STATION: MenuType<*> by registry.register(MNames.ANDROID_STATION) { MenuType(::AndroidStationMenu) }
|
||||
val BATTERY_BANK: MenuType<*> by registry.register(MNames.BATTERY_BANK) { MenuType(::BatteryBankMenu) }
|
||||
val MATTER_DECOMPOSER: MenuType<*> by registry.register(MNames.MATTER_DECOMPOSER) { MenuType(::MatterDecomposerMenu) }
|
||||
val MATTER_CAPACITOR_BANK: MenuType<*> by registry.register(MNames.MATTER_CAPACITOR_BANK) { MenuType(::MatterCapacitorBankMenu) }
|
||||
val PATTERN_STORAGE: MenuType<*> by registry.register(MNames.PATTERN_STORAGE) { MenuType(::PatternStorageMenu) }
|
||||
val MATTER_SCANNER: MenuType<*> by registry.register(MNames.MATTER_SCANNER) { MenuType(::MatterScannerMenu) }
|
||||
val MATTER_PANEL: MenuType<*> by registry.register(MNames.MATTER_PANEL) { MenuType(::MatterPanelMenu) }
|
||||
val MATTER_REPLICATOR: MenuType<*> by registry.register(MNames.MATTER_REPLICATOR) { MenuType(::MatterReplicatorMenu) }
|
||||
val MATTER_BOTTLER: MenuType<*> by registry.register(MNames.MATTER_BOTTLER) { MenuType(::MatterBottlerMenu) }
|
||||
val DRIVE_VIEWER: MenuType<*> by registry.register(MNames.DRIVE_VIEWER) { MenuType(::DriveViewerMenu) }
|
||||
val CARGO_CRATE: MenuType<*> by registry.register(MNames.CARGO_CRATE) { MenuType(::CargoCrateMenu) }
|
||||
val DRIVE_RACK: MenuType<*> by registry.register(MNames.DRIVE_RACK) { MenuType(::DriveRackMenu) }
|
||||
val ITEM_MONITOR: MenuType<*> by registry.register(MNames.ITEM_MONITOR) { MenuType(::ItemMonitorMenu) }
|
||||
val ENERGY_COUNTER: MenuType<*> by registry.register(MNames.ENERGY_COUNTER) { MenuType(::EnergyCounterMenu) }
|
||||
val CHEMICAL_GENERATOR: MenuType<*> by registry.register(MNames.CHEMICAL_GENERATOR) { MenuType(::ChemicalGeneratorMenu) }
|
||||
val PLATE_PRESS: MenuType<*> by registry.register(MNames.PLATE_PRESS) { MenuType(::PlatePressMenu) }
|
||||
val MATTER_RECYCLER: MenuType<*> by registry.register(MNames.MATTER_RECYCLER) { MenuType(::MatterRecyclerMenu) }
|
||||
|
||||
internal fun register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
||||
}
|
||||
|
||||
private fun registerClient(event: FMLClientSetupEvent) {
|
||||
MenuScreens.register(ANDROID_STATION as MenuType<AndroidStationMenu>, ::AndroidStationScreen)
|
||||
MenuScreens.register(BATTERY_BANK as MenuType<BatteryBankMenu>, ::BatteryBankScreen)
|
||||
MenuScreens.register(MATTER_DECOMPOSER as MenuType<MatterDecomposerMenu>, ::MatterDecomposerScreen)
|
||||
MenuScreens.register(MATTER_CAPACITOR_BANK as MenuType<MatterCapacitorBankMenu>, ::MatterCapacitorBankScreen)
|
||||
MenuScreens.register(PATTERN_STORAGE as MenuType<PatternStorageMenu>, ::PatternStorageScreen)
|
||||
MenuScreens.register(MATTER_SCANNER as MenuType<MatterScannerMenu>, ::MatterScannerScreen)
|
||||
MenuScreens.register(MATTER_PANEL as MenuType<MatterPanelMenu>, ::MatterPanelScreen)
|
||||
MenuScreens.register(MATTER_REPLICATOR as MenuType<MatterReplicatorMenu>, ::MatterReplicatorScreen)
|
||||
MenuScreens.register(MATTER_BOTTLER as MenuType<MatterBottlerMenu>, ::MatterBottlerScreen)
|
||||
MenuScreens.register(DRIVE_VIEWER as MenuType<DriveViewerMenu>, ::DriveViewerScreen)
|
||||
MenuScreens.register(CARGO_CRATE as MenuType<CargoCrateMenu>, ::CargoCrateScreen)
|
||||
MenuScreens.register(DRIVE_RACK as MenuType<DriveRackMenu>, ::DriveRackScreen)
|
||||
MenuScreens.register(ITEM_MONITOR as MenuType<ItemMonitorMenu>, ::ItemMonitorScreen)
|
||||
MenuScreens.register(ENERGY_COUNTER as MenuType<EnergyCounterMenu>, ::EnergyCounterScreen)
|
||||
MenuScreens.register(CHEMICAL_GENERATOR as MenuType<ChemicalGeneratorMenu>, ::ChemicalGeneratorScreen)
|
||||
MenuScreens.register(PLATE_PRESS as MenuType<PlatePressMenu>, ::PlatePressScreen)
|
||||
MenuScreens.register(MATTER_RECYCLER as MenuType<MatterRecyclerMenu>, ::MatterRecyclerScreen)
|
||||
}
|
||||
}
|
178
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt
Normal file
178
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MNames.kt
Normal file
@ -0,0 +1,178 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
|
||||
object MNames {
|
||||
// blocks
|
||||
const val ANDROID_STATION = "android_station" // без рецепта
|
||||
const val BATTERY_BANK = "battery_bank" // нужен рецепт
|
||||
const val MATTER_DECOMPOSER = "matter_decomposer" // есть рецепт
|
||||
const val MATTER_CAPACITOR_BANK = "matter_capacitor_bank" // есть рецепт
|
||||
const val MATTER_CABLE = "matter_cable" // есть рецепт
|
||||
const val PATTERN_STORAGE = "pattern_storage" // есть рецепт
|
||||
const val MATTER_SCANNER = "matter_scanner" // есть рецепт
|
||||
const val MATTER_PANEL = "matter_panel" // есть рецепт
|
||||
const val MATTER_REPLICATOR = "matter_replicator" // есть рецепт
|
||||
const val MATTER_BOTTLER = "matter_bottler" // есть рецепт
|
||||
const val DRIVE_VIEWER = "drive_viewer" // есть рецепт
|
||||
const val DRIVE_RACK = "drive_rack" // нужен рецепт (после улучшений)
|
||||
const val ITEM_MONITOR = "item_monitor" // нужен рецепт (после улучшений)
|
||||
const val ENERGY_COUNTER = "energy_counter" // есть рецепт
|
||||
const val CHEMICAL_GENERATOR = "chemical_generator" // есть рецепт
|
||||
const val PLATE_PRESS = "plate_press" // есть рецепт
|
||||
const val MATTER_RECYCLER = "matter_recycler" // нужен рецепт
|
||||
|
||||
const val DEBUG_EXPLOSION_SMALL = "debug_explosion_small"
|
||||
const val DEBUG_SPHERE_POINTS = "debug_sphere_points"
|
||||
|
||||
const val BLACK_HOLE = "black_hole"
|
||||
const val GRAVITATION_STABILIZER = "gravitation_stabilizer" // нужен рецепт
|
||||
const val GRAVITATION_STABILIZER_LENS = "gravitation_stabilizer_lens"
|
||||
const val CARGO_CRATE = "cargo_crate" // нужен рецепт?
|
||||
|
||||
// building blocks
|
||||
const val TRITANIUM_BLOCK = "tritanium_block"
|
||||
const val TRITANIUM_STRIPED_BLOCK = "tritanium_striped_block"
|
||||
|
||||
const val CARBON_FIBRE_BLOCK = "carbon_fibre_block"
|
||||
|
||||
// capabilities
|
||||
const val ANDROID_CAPABILITY = "android_capability"
|
||||
val ANDROID_CAPABILITY_RS = ResourceLocation(OverdriveThatMatters.MOD_ID, ANDROID_CAPABILITY)
|
||||
|
||||
// items
|
||||
const val GRAVITATIONAL_DISRUPTOR = "gravitational_disruptor"
|
||||
const val MATTER_DUST = "matter_dust"
|
||||
|
||||
const val PILL_ANDROID = "pill_android"
|
||||
const val PILL_HUMANE = "pill_humane"
|
||||
const val PILL_OBLIVION = "pill_oblivion"
|
||||
const val PILL_HEAL = "pill_heal"
|
||||
|
||||
const val BATTERY_CRUDE = "battery_crude"
|
||||
const val BATTERY_BASIC = "battery_basic"
|
||||
const val BATTERY_NORMAL = "battery_normal"
|
||||
const val BATTERY_DENSE = "battery_dense"
|
||||
const val BATTERY_CAPACITOR = "battery_capacitor"
|
||||
const val BATTERY_CREATIVE = "battery_creative"
|
||||
|
||||
const val MATTER_CAPACITOR_PARTS = "matter_capacitor_parts"
|
||||
const val MATTER_CAPACITOR_BASIC = "matter_capacitor_basic"
|
||||
const val MATTER_CAPACITOR_NORMAL = "matter_capacitor_normal"
|
||||
const val MATTER_CAPACITOR_DENSE = "matter_capacitor_dense"
|
||||
const val MATTER_CAPACITOR_CREATIVE = "matter_capacitor_creative"
|
||||
|
||||
const val PATTERN_DRIVE_NORMAL = "pattern_drive_normal"
|
||||
const val PATTERN_DRIVE_CREATIVE = "pattern_drive_creative"
|
||||
|
||||
const val NUTRIENT_PASTE = "nutrient_paste"
|
||||
|
||||
const val PORTABLE_CONDENSATION_DRIVE = "portable_condensation_drive"
|
||||
const val PORTABLE_DENSE_CONDENSATION_DRIVE = "portable_dense_condensation_drive"
|
||||
|
||||
const val BLACK_HOLE_SCANNER = "black_hole_scanner"
|
||||
const val GRAVITATION_FIELD_LIMITER = "gravitation_field_limiter"
|
||||
const val GRAVITATION_FIELD_SENSOR = "graivtation_field_sensor"
|
||||
const val PORTABLE_GRAVITATION_STABILIZER = "portable_gravitation_stabilizer"
|
||||
|
||||
// armor
|
||||
const val TRITANIUM_HELMET = "tritanium_helmet"
|
||||
const val TRITANIUM_CHESTPLATE = "tritanium_chestplate"
|
||||
const val TRITANIUM_PANTS = "tritanium_pants"
|
||||
const val TRITANIUM_BOOTS = "tritanium_boots"
|
||||
|
||||
// tools
|
||||
const val TRITANIUM_SWORD = "tritanium_sword"
|
||||
const val TRITANIUM_AXE = "tritanium_axe"
|
||||
const val TRITANIUM_PICKAXE = "tritanium_pickaxe"
|
||||
const val TRITANIUM_SHOVEL = "tritanium_shovel"
|
||||
const val TRITANIUM_HOE = "tritanium_hoe"
|
||||
|
||||
const val ENERGY_SWORD = "energy_sword"
|
||||
|
||||
// items: crafting components
|
||||
const val TRITANIUM_INGOT = "tritanium_ingot"
|
||||
|
||||
const val MATTER_IO_PORT = "matter_io_port"
|
||||
const val MATTER_TRANSFORM_MATRIX = "matter_transform_matrix"
|
||||
|
||||
const val ENERGY_BUS = "energy_bus"
|
||||
const val ELECTRIC_PARTS = "electric_parts"
|
||||
|
||||
const val MACHINE_FRAME = "machine_frame"
|
||||
const val TRITANIUM_PLATE = "tritanium_plate"
|
||||
const val IRON_PLATE = "iron_plate"
|
||||
const val COPPER_WIRING = "copper_wiring"
|
||||
const val GOLD_WIRING = "gold_wiring"
|
||||
|
||||
const val PORTABLE_CONDENSATION_DRIVE_CASING = "portable_condensation_drive_casing"
|
||||
const val PORTABLE_DENSE_CONDENSATION_DRIVE_CASING = "portable_dense_condensation_drive_casing"
|
||||
|
||||
const val CIRCUIT_PLATING = "circuit_plating"
|
||||
const val BASIC_CONTROL_CIRCUIT = "basic_control_circuit"
|
||||
const val ADVANCED_CONTROL_CIRCUIT = "advanced_control_circuit"
|
||||
|
||||
const val TRITANIUM_ORE = "tritanium_ore"
|
||||
const val DEEPSLATE_TRITANIUM_ORE = "deepslate_tritanium_ore"
|
||||
const val TRITANIUM_RAW_BLOCK = "tritanium_raw_block"
|
||||
const val TRITANIUM_ORE_CLUMP = "tritanium_ore_clump"
|
||||
|
||||
// android features and research
|
||||
const val AIR_BAGS = "air_bags"
|
||||
|
||||
const val LIMB_OVERCLOCKING = "limb_overclocking"
|
||||
const val LIMB_OVERCLOCKING_1 = "limb_overclocking_1"
|
||||
const val LIMB_OVERCLOCKING_2 = "limb_overclocking_2"
|
||||
const val LIMB_OVERCLOCKING_3 = "limb_overclocking_3"
|
||||
const val LIMB_OVERCLOCKING_4 = "limb_overclocking_4"
|
||||
|
||||
val LIMB_OVERCLOCKING_LIST = listOf(LIMB_OVERCLOCKING_1, LIMB_OVERCLOCKING_2, LIMB_OVERCLOCKING_3, LIMB_OVERCLOCKING_4)
|
||||
|
||||
const val NANOBOTS = "nanobots"
|
||||
const val NANOBOTS_REGENERATION = "nanobots_regeneration"
|
||||
const val NANOBOTS_REGENERATION_1 = "nanobots_regeneration_1"
|
||||
const val NANOBOTS_REGENERATION_2 = "nanobots_regeneration_2"
|
||||
const val NANOBOTS_REGENERATION_3 = "nanobots_regeneration_3"
|
||||
const val NANOBOTS_REGENERATION_4 = "nanobots_regeneration_4"
|
||||
|
||||
val NANOBOTS_REGENERATION_LIST = listOf(NANOBOTS_REGENERATION_1, NANOBOTS_REGENERATION_2, NANOBOTS_REGENERATION_3, NANOBOTS_REGENERATION_4)
|
||||
|
||||
const val NANOBOTS_ARMOR = "nanobots_armor"
|
||||
|
||||
const val NANOBOTS_ARMOR_STRENGTH_1 = "nanobots_armor_strength_1"
|
||||
const val NANOBOTS_ARMOR_STRENGTH_2 = "nanobots_armor_strength_2"
|
||||
const val NANOBOTS_ARMOR_STRENGTH_3 = "nanobots_armor_strength_3"
|
||||
val NANOBOTS_ARMOR_STRENGTH_LIST = listOf(
|
||||
NANOBOTS_ARMOR_STRENGTH_1,
|
||||
NANOBOTS_ARMOR_STRENGTH_2,
|
||||
NANOBOTS_ARMOR_STRENGTH_3,
|
||||
)
|
||||
|
||||
const val NANOBOTS_ARMOR_SPEED_1 = "nanobots_armor_speed_1"
|
||||
const val NANOBOTS_ARMOR_SPEED_2 = "nanobots_armor_speed_2"
|
||||
const val NANOBOTS_ARMOR_SPEED_3 = "nanobots_armor_speed_3"
|
||||
val NANOBOTS_ARMOR_SPEED_LIST = listOf(
|
||||
NANOBOTS_ARMOR_SPEED_1,
|
||||
NANOBOTS_ARMOR_SPEED_2,
|
||||
NANOBOTS_ARMOR_SPEED_3,
|
||||
)
|
||||
|
||||
const val HYDRAULICS_OVERLOAD = "hydraulics_overload"
|
||||
const val HYDRAULICS_OVERLOAD_1 = "hydraulics_overload_1"
|
||||
const val HYDRAULICS_OVERLOAD_2 = "hydraulics_overload_2"
|
||||
const val HYDRAULICS_OVERLOAD_3 = "hydraulics_overload_3"
|
||||
|
||||
const val EXTENDED_REACH = "extended_reach"
|
||||
|
||||
// stats
|
||||
const val DAMAGE_ABSORBED = "damage_absorbed"
|
||||
const val HEALTH_REGENERATED = "health_regenerated"
|
||||
const val POWER_CONSUMED = "power_consumed"
|
||||
}
|
||||
|
||||
object StatNames {
|
||||
val DAMAGE_ABSORBED = ResourceLocation(OverdriveThatMatters.MOD_ID, MNames.DAMAGE_ABSORBED)
|
||||
val HEALTH_REGENERATED = ResourceLocation(OverdriveThatMatters.MOD_ID, MNames.HEALTH_REGENERATED)
|
||||
val POWER_CONSUMED = ResourceLocation(OverdriveThatMatters.MOD_ID, MNames.POWER_CONSUMED)
|
||||
}
|
189
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt
Normal file
189
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt
Normal file
@ -0,0 +1,189 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.damagesource.DamageSource
|
||||
import net.minecraft.world.entity.EntityType
|
||||
import net.minecraft.world.item.DyeColor
|
||||
import net.minecraft.world.level.BlockGetter
|
||||
import net.minecraft.world.level.block.*
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
import net.minecraft.world.level.material.Material
|
||||
import net.minecraft.world.level.material.MaterialColor
|
||||
import net.minecraftforge.event.RegistryEvent
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.ForgeRegistry
|
||||
import net.minecraftforge.registries.RegistryBuilder
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.android.AndroidFeatureType
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import kotlin.properties.ReadOnlyProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class CrateProperties(val color: MaterialColor, val name: String) {
|
||||
fun makeBlock(): Block {
|
||||
return Block(BlockBehaviour.Properties.of(Material.METAL, color)
|
||||
.sound(SoundType.METAL)
|
||||
.requiresCorrectToolForDrops()
|
||||
.strength(5.0F, 6.0F))
|
||||
}
|
||||
}
|
||||
|
||||
class IndustrialGlassProperties(val color: DyeColor?, val name: String, val namePane: String) {
|
||||
constructor(color: DyeColor?) : this(color, "industrial_glass${color?.let { "_$it" } ?: ""}", "industrial_glass_pane${color?.let { "_$it" } ?: ""}")
|
||||
|
||||
fun makeBlock(): Block {
|
||||
val properties = BlockBehaviour.Properties.of(Material.GLASS, if (color != null) color.materialColor else MaterialColor.NONE)
|
||||
.strength(1.5f, 5.0f)
|
||||
.requiresCorrectToolForDrops()
|
||||
.sound(SoundType.GLASS)
|
||||
.noOcclusion()
|
||||
.isValidSpawn { _: BlockState, _: BlockGetter, _: BlockPos, _: EntityType<*>? -> false }
|
||||
.isRedstoneConductor { _: BlockState, _: BlockGetter, _: BlockPos -> false }
|
||||
.isSuffocating { _: BlockState, _: BlockGetter, _: BlockPos -> false }
|
||||
.isViewBlocking { _: BlockState, _: BlockGetter, _: BlockPos -> false }
|
||||
|
||||
if (color != null) {
|
||||
return StainedGlassBlock(color, properties)
|
||||
}
|
||||
|
||||
return GlassBlock(properties)
|
||||
}
|
||||
|
||||
fun makePaneBlock(): Block {
|
||||
val properties = BlockBehaviour.Properties.of(Material.GLASS, if (color != null) color.materialColor else MaterialColor.NONE)
|
||||
.strength(1.25f, 5.0f)
|
||||
.requiresCorrectToolForDrops()
|
||||
.sound(SoundType.GLASS)
|
||||
.noOcclusion()
|
||||
|
||||
if (color != null) {
|
||||
return StainedGlassPaneBlock(color, properties)
|
||||
}
|
||||
|
||||
return IronBarsBlock(properties)
|
||||
}
|
||||
}
|
||||
|
||||
private class WriteOnceReadMany<T, V> : ReadOnlyProperty<T, V> {
|
||||
private var value: V? = null
|
||||
|
||||
override fun getValue(thisRef: T, property: KProperty<*>): V {
|
||||
return value ?: throw IllegalStateException("Tried to access uninitialized property ${property.name}")
|
||||
}
|
||||
|
||||
fun write(value: V) {
|
||||
if (this.value != null) {
|
||||
throw IllegalStateException("Already have value written")
|
||||
}
|
||||
|
||||
this.value = value
|
||||
}
|
||||
}
|
||||
|
||||
object MRegistry {
|
||||
private val features = WriteOnceReadMany<MRegistry, ForgeRegistry<AndroidFeatureType<*>>>()
|
||||
private val research = WriteOnceReadMany<MRegistry, ForgeRegistry<AndroidResearchType<*>>>()
|
||||
|
||||
val ANDROID_FEATURES by features
|
||||
val ANDROID_RESEARCH by research
|
||||
|
||||
fun initialize(context: FMLJavaModLoadingContext) {
|
||||
context.modEventBus.addListener(this::register)
|
||||
context.modEventBus.register(MStats)
|
||||
context.modEventBus.register(LootModifiers)
|
||||
|
||||
MBlocks.register()
|
||||
MBlockEntities.register()
|
||||
MMenus.register()
|
||||
MItems.register()
|
||||
AndroidFeatures.register()
|
||||
AndroidResearch.register()
|
||||
}
|
||||
|
||||
internal fun register(event: RegistryEvent.NewRegistry) {
|
||||
features.write(RegistryBuilder<AndroidFeatureType<*>>().let {
|
||||
it.setName(ResourceLocation(OverdriveThatMatters.MOD_ID, "android_features"))
|
||||
it.type = AndroidFeatureType::class.java
|
||||
it.create() as ForgeRegistry<AndroidFeatureType<*>>
|
||||
})
|
||||
|
||||
research.write(RegistryBuilder<AndroidResearchType<*>>().let {
|
||||
it.setName(ResourceLocation(OverdriveThatMatters.MOD_ID, "android_research"))
|
||||
it.type = AndroidResearchType::class.java
|
||||
it.create() as ForgeRegistry<AndroidResearchType<*>>
|
||||
})
|
||||
}
|
||||
|
||||
val DAMAGE_BECOME_ANDROID = DamageSource("otm_become_android")
|
||||
val DAMAGE_BECOME_HUMANE = DamageSource("otm_become_humane")
|
||||
val DAMAGE_EVENT_HORIZON = DamageSource("otm_event_horizon")
|
||||
val DAMAGE_HAWKING_RADIATION = DamageSource("otm_hawking_radiation")
|
||||
const val DAMAGE_EMP_NAME = "otm_emp"
|
||||
val DAMAGE_EMP: DamageSource = EMPDamageSource()
|
||||
|
||||
init {
|
||||
DAMAGE_BECOME_ANDROID.bypassArmor().bypassInvul().bypassMagic()
|
||||
DAMAGE_BECOME_HUMANE.bypassArmor().bypassInvul().bypassMagic()
|
||||
DAMAGE_EVENT_HORIZON.bypassMagic().bypassArmor()
|
||||
DAMAGE_EMP.bypassMagic().bypassArmor()
|
||||
// DAMAGE_HAWKING_RADIATION.bypassMagic().bypassArmor();
|
||||
}
|
||||
|
||||
val CRATE_RED = CrateProperties(MaterialColor.COLOR_RED, "crate_red")
|
||||
val CRATE_BLUE = CrateProperties(MaterialColor.COLOR_BLUE, "crate_blue")
|
||||
val CRATE_YELLOW = CrateProperties(MaterialColor.COLOR_YELLOW, "crate_yellow")
|
||||
val CRATE_GREEN = CrateProperties(MaterialColor.COLOR_GREEN, "crate_green")
|
||||
val CRATE_BLACK = CrateProperties(MaterialColor.COLOR_BLACK, "crate_black")
|
||||
val CRATE_PINK = CrateProperties(MaterialColor.COLOR_PINK, "crate_pink")
|
||||
val CRATE_PURPLE = CrateProperties(MaterialColor.COLOR_PURPLE, "crate_purple")
|
||||
|
||||
val CRATE_LIST = listOf(
|
||||
CRATE_RED,
|
||||
CRATE_BLUE,
|
||||
CRATE_YELLOW,
|
||||
CRATE_GREEN,
|
||||
CRATE_BLACK,
|
||||
CRATE_PINK,
|
||||
CRATE_PURPLE,
|
||||
)
|
||||
|
||||
val INDUSTRIAL_GLASS = IndustrialGlassProperties(null)
|
||||
val INDUSTRIAL_GLASS_WHITE = IndustrialGlassProperties(DyeColor.WHITE)
|
||||
val INDUSTRIAL_GLASS_ORANGE = IndustrialGlassProperties(DyeColor.ORANGE)
|
||||
val INDUSTRIAL_GLASS_MAGENTA = IndustrialGlassProperties(DyeColor.MAGENTA)
|
||||
val INDUSTRIAL_GLASS_LIGHT_BLUE = IndustrialGlassProperties(DyeColor.LIGHT_BLUE)
|
||||
val INDUSTRIAL_GLASS_YELLOW = IndustrialGlassProperties(DyeColor.YELLOW)
|
||||
val INDUSTRIAL_GLASS_LIME = IndustrialGlassProperties(DyeColor.LIME)
|
||||
val INDUSTRIAL_GLASS_PINK = IndustrialGlassProperties(DyeColor.PINK)
|
||||
val INDUSTRIAL_GLASS_GRAY = IndustrialGlassProperties(DyeColor.GRAY)
|
||||
val INDUSTRIAL_GLASS_LIGHT_GRAY = IndustrialGlassProperties(DyeColor.LIGHT_GRAY)
|
||||
val INDUSTRIAL_GLASS_CYAN = IndustrialGlassProperties(DyeColor.CYAN)
|
||||
val INDUSTRIAL_GLASS_PURPLE = IndustrialGlassProperties(DyeColor.PURPLE)
|
||||
val INDUSTRIAL_GLASS_BLUE = IndustrialGlassProperties(DyeColor.BLUE)
|
||||
val INDUSTRIAL_GLASS_BROWN = IndustrialGlassProperties(DyeColor.BROWN)
|
||||
val INDUSTRIAL_GLASS_GREEN = IndustrialGlassProperties(DyeColor.GREEN)
|
||||
val INDUSTRIAL_GLASS_RED = IndustrialGlassProperties(DyeColor.RED)
|
||||
val INDUSTRIAL_GLASS_BLACK = IndustrialGlassProperties(DyeColor.BLACK)
|
||||
|
||||
val INDUSTRIAL_GLASS_LIST = listOf(
|
||||
INDUSTRIAL_GLASS,
|
||||
INDUSTRIAL_GLASS_WHITE,
|
||||
INDUSTRIAL_GLASS_ORANGE,
|
||||
INDUSTRIAL_GLASS_MAGENTA,
|
||||
INDUSTRIAL_GLASS_LIGHT_BLUE,
|
||||
INDUSTRIAL_GLASS_YELLOW,
|
||||
INDUSTRIAL_GLASS_LIME,
|
||||
INDUSTRIAL_GLASS_PINK,
|
||||
INDUSTRIAL_GLASS_GRAY,
|
||||
INDUSTRIAL_GLASS_LIGHT_GRAY,
|
||||
INDUSTRIAL_GLASS_CYAN,
|
||||
INDUSTRIAL_GLASS_PURPLE,
|
||||
INDUSTRIAL_GLASS_BLUE,
|
||||
INDUSTRIAL_GLASS_BROWN,
|
||||
INDUSTRIAL_GLASS_GREEN,
|
||||
INDUSTRIAL_GLASS_RED,
|
||||
INDUSTRIAL_GLASS_BLACK,
|
||||
)
|
||||
}
|
23
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt
Normal file
23
src/main/kotlin/ru/dbotthepony/mc/otm/registry/MStats.kt
Normal file
@ -0,0 +1,23 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.core.Registry
|
||||
import net.minecraft.stats.StatFormatter
|
||||
import net.minecraft.stats.Stats
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames.DAMAGE_ABSORBED
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames.HEALTH_REGENERATED
|
||||
import ru.dbotthepony.mc.otm.registry.StatNames.POWER_CONSUMED
|
||||
|
||||
object MStats {
|
||||
@SubscribeEvent
|
||||
@Suppress("unused")
|
||||
fun registerVanilla(event: FMLCommonSetupEvent) {
|
||||
Registry.register(Registry.CUSTOM_STAT, DAMAGE_ABSORBED, DAMAGE_ABSORBED)
|
||||
Registry.register(Registry.CUSTOM_STAT, HEALTH_REGENERATED, HEALTH_REGENERATED)
|
||||
Registry.register(Registry.CUSTOM_STAT, POWER_CONSUMED, POWER_CONSUMED)
|
||||
Stats.CUSTOM[DAMAGE_ABSORBED, StatFormatter.DIVIDE_BY_TEN]
|
||||
Stats.CUSTOM[HEALTH_REGENERATED, StatFormatter.DIVIDE_BY_TEN]
|
||||
Stats.CUSTOM[POWER_CONSUMED, StatFormatter.DIVIDE_BY_TEN]
|
||||
}
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraftforge.registries.IForgeRegistryEntry
|
||||
import net.minecraftforge.registries.RegistryObject
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
operator fun <T : IForgeRegistryEntry<T>> RegistryObject<T>.getValue(mItems: Any, property: KProperty<*>): T {
|
||||
return get()
|
||||
}
|
Loading…
Reference in New Issue
Block a user