Make it compile
This commit is contained in:
parent
f615173f2b
commit
63fd92a704
@ -14,7 +14,7 @@ import net.minecraftforge.common.Tags
|
|||||||
import net.minecraftforge.common.loot.LootTableIdCondition
|
import net.minecraftforge.common.loot.LootTableIdCondition
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
import net.minecraftforge.fml.common.Mod
|
import net.minecraftforge.fml.common.Mod
|
||||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
|
import net.minecraftforge.data.event.GatherDataEvent
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.block.*
|
import ru.dbotthepony.mc.otm.block.*
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
||||||
@ -34,6 +34,7 @@ import ru.dbotthepony.mc.otm.datagen.models.BlockMatteryModelProvider
|
|||||||
import ru.dbotthepony.mc.otm.datagen.recipes.MatteryRecipeProvider
|
import ru.dbotthepony.mc.otm.datagen.recipes.MatteryRecipeProvider
|
||||||
import ru.dbotthepony.mc.otm.datagen.recipes.has
|
import ru.dbotthepony.mc.otm.datagen.recipes.has
|
||||||
import ru.dbotthepony.mc.otm.registry.*
|
import ru.dbotthepony.mc.otm.registry.*
|
||||||
|
import ru.dbotthepony.mc.otm.*
|
||||||
|
|
||||||
@Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
@Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
object DataGen {
|
object DataGen {
|
||||||
@ -150,14 +151,14 @@ object DataGen {
|
|||||||
|
|
||||||
AddEnglishLanguage(languageProvider)
|
AddEnglishLanguage(languageProvider)
|
||||||
|
|
||||||
event.generator.addProvider(blockModelProvider)
|
event.generator.addProvider(true, blockModelProvider)
|
||||||
event.generator.addProvider(itemModelProvider)
|
event.generator.addProvider(true, itemModelProvider)
|
||||||
event.generator.addProvider(blockStateProvider)
|
event.generator.addProvider(true, blockStateProvider)
|
||||||
event.generator.addProvider(recipeProvider)
|
event.generator.addProvider(true, recipeProvider)
|
||||||
event.generator.addProvider(MatterBankProvider(event))
|
event.generator.addProvider(true, MatterBankProvider(event))
|
||||||
event.generator.addProvider(BatteryBankProvider(event))
|
event.generator.addProvider(true, BatteryBankProvider(event))
|
||||||
event.generator.addProvider(lootTableProvider)
|
event.generator.addProvider(true, lootTableProvider)
|
||||||
event.generator.addProvider(lootModifier)
|
event.generator.addProvider(true, lootModifier)
|
||||||
|
|
||||||
decorativeCubeAll(MBlocks.CRATE_LIST)
|
decorativeCubeAll(MBlocks.CRATE_LIST)
|
||||||
decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK)
|
decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK)
|
||||||
@ -696,37 +697,37 @@ object DataGen {
|
|||||||
}
|
}
|
||||||
|
|
||||||
lootModifier.lambda {
|
lootModifier.lambda {
|
||||||
it.add("dungeon_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
it.add("dungeon_pill", LootTableBasicAppender(
|
||||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/simple_dungeon")).build()),
|
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/simple_dungeon")).build()),
|
||||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
||||||
ItemStack(MItems.PILL_HEAL, 2) to 0.5,
|
ItemStack(MItems.PILL_HEAL, 2) to 0.5,
|
||||||
))
|
))
|
||||||
|
|
||||||
it.add("mineshaft_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
it.add("mineshaft_pill", LootTableBasicAppender(
|
||||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/abandoned_mineshaft")).build()),
|
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/abandoned_mineshaft")).build()),
|
||||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
||||||
ItemStack(MItems.PILL_HEAL, 1) to 0.25,
|
ItemStack(MItems.PILL_HEAL, 1) to 0.25,
|
||||||
))
|
))
|
||||||
|
|
||||||
it.add("desert_pyramid_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
it.add("desert_pyramid_pill", LootTableBasicAppender(
|
||||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/abandoned_mineshaft")).build()),
|
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/abandoned_mineshaft")).build()),
|
||||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.05,
|
ItemStack(MItems.PILL_ANDROID, 1) to 0.05,
|
||||||
ItemStack(MItems.PILL_HEAL, 1) to 0.3,
|
ItemStack(MItems.PILL_HEAL, 1) to 0.3,
|
||||||
))
|
))
|
||||||
|
|
||||||
it.add("jungle_temple_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
it.add("jungle_temple_pill", LootTableBasicAppender(
|
||||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/jungle_temple")).build()),
|
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/jungle_temple")).build()),
|
||||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1
|
ItemStack(MItems.PILL_ANDROID, 1) to 0.1
|
||||||
))
|
))
|
||||||
|
|
||||||
it.add("end_city_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
it.add("end_city_pill", LootTableBasicAppender(
|
||||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/end_city_treasure")).build()),
|
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/end_city_treasure")).build()),
|
||||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
||||||
ItemStack(MItems.PILL_HUMANE, 1) to 0.2,
|
ItemStack(MItems.PILL_HUMANE, 1) to 0.2,
|
||||||
ItemStack(MItems.PILL_OBLIVION, 1) to 0.4,
|
ItemStack(MItems.PILL_OBLIVION, 1) to 0.4,
|
||||||
))
|
))
|
||||||
|
|
||||||
it.add("shipwreck_supply_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
it.add("shipwreck_supply_pill", LootTableBasicAppender(
|
||||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/shipwreck_supply")).build()),
|
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/shipwreck_supply")).build()),
|
||||||
ItemStack(MItems.PILL_HUMANE, 1) to 0.3
|
ItemStack(MItems.PILL_HUMANE, 1) to 0.3
|
||||||
))
|
))
|
||||||
|
@ -4,7 +4,8 @@ import com.google.common.collect.ImmutableList
|
|||||||
import com.google.common.collect.ImmutableMap
|
import com.google.common.collect.ImmutableMap
|
||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap
|
||||||
import net.minecraft.data.DataGenerator
|
import net.minecraft.data.DataGenerator
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import net.minecraft.network.chat.MutableComponent
|
||||||
|
import net.minecraft.network.chat.contents.TranslatableContents
|
||||||
import net.minecraft.world.effect.MobEffect
|
import net.minecraft.world.effect.MobEffect
|
||||||
import net.minecraft.world.entity.EntityType
|
import net.minecraft.world.entity.EntityType
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
@ -20,8 +21,12 @@ import ru.dbotthepony.mc.otm.registry.ColoredDecorativeBlock
|
|||||||
private fun researchString(key: AndroidResearchType<*>): String {
|
private fun researchString(key: AndroidResearchType<*>): String {
|
||||||
val displayName = key.displayName
|
val displayName = key.displayName
|
||||||
|
|
||||||
if (displayName is TranslatableComponent) {
|
if (displayName is MutableComponent) {
|
||||||
return displayName.key
|
val content = displayName.contents
|
||||||
|
|
||||||
|
if (content is TranslatableContents) {
|
||||||
|
return content.key
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return key.displayId
|
return key.displayId
|
||||||
@ -30,7 +35,7 @@ private fun researchString(key: AndroidResearchType<*>): String {
|
|||||||
class MatteryLanguageProvider(private val gen: DataGenerator) {
|
class MatteryLanguageProvider(private val gen: DataGenerator) {
|
||||||
private inner class Slave(language: String) : LanguageProvider(gen, OverdriveThatMatters.MOD_ID, language) {
|
private inner class Slave(language: String) : LanguageProvider(gen, OverdriveThatMatters.MOD_ID, language) {
|
||||||
init {
|
init {
|
||||||
gen.addProvider(this)
|
gen.addProvider(true, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun addTranslations() {}
|
override fun addTranslations() {}
|
||||||
|
@ -3,7 +3,7 @@ package ru.dbotthepony.mc.otm.datagen.blocks
|
|||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraftforge.client.model.generators.BlockStateProvider
|
import net.minecraftforge.client.model.generators.BlockStateProvider
|
||||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
|
import net.minecraftforge.data.event.GatherDataEvent
|
||||||
import ru.dbotthepony.mc.otm.block.BatteryBankBlock
|
import ru.dbotthepony.mc.otm.block.BatteryBankBlock
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
import ru.dbotthepony.mc.otm.datagen.DataGen
|
import ru.dbotthepony.mc.otm.datagen.DataGen
|
||||||
|
@ -5,13 +5,14 @@ import net.minecraft.world.level.block.Block
|
|||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraftforge.client.model.generators.BlockStateProvider
|
import net.minecraftforge.client.model.generators.BlockStateProvider
|
||||||
import net.minecraftforge.client.model.generators.ConfiguredModel
|
import net.minecraftforge.client.model.generators.ConfiguredModel
|
||||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
|
import net.minecraftforge.data.event.GatherDataEvent
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
||||||
import ru.dbotthepony.mc.otm.datagen.DataGen
|
import ru.dbotthepony.mc.otm.datagen.DataGen
|
||||||
import ru.dbotthepony.mc.otm.datagen.getValueNullable
|
import ru.dbotthepony.mc.otm.datagen.getValueNullable
|
||||||
import ru.dbotthepony.mc.otm.datagen.toXRotBlockstate
|
import ru.dbotthepony.mc.otm.datagen.toXRotBlockstate
|
||||||
import ru.dbotthepony.mc.otm.datagen.toYRotBlockstate
|
import ru.dbotthepony.mc.otm.datagen.toYRotBlockstate
|
||||||
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
|
|
||||||
typealias AdvancedBlockStateFunction = (BlockState, ConfiguredModel.Builder<*>, String) -> String?
|
typealias AdvancedBlockStateFunction = (BlockState, ConfiguredModel.Builder<*>, String) -> String?
|
||||||
private data class AdvancedBlockStateEntry(val block: Block, val func: AdvancedBlockStateFunction)
|
private data class AdvancedBlockStateEntry(val block: Block, val func: AdvancedBlockStateFunction)
|
||||||
|
@ -3,9 +3,10 @@ package ru.dbotthepony.mc.otm.datagen.items
|
|||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraftforge.client.model.generators.ItemModelProvider
|
import net.minecraftforge.client.model.generators.ItemModelProvider
|
||||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
|
import net.minecraftforge.data.event.GatherDataEvent
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import ru.dbotthepony.mc.otm.datagen.DataGen
|
import ru.dbotthepony.mc.otm.datagen.DataGen
|
||||||
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
|
|
||||||
private data class SimpleItemModel(val item: String, val path: ResourceLocation) {
|
private data class SimpleItemModel(val item: String, val path: ResourceLocation) {
|
||||||
val traceback = IllegalArgumentException("Failed to register model")
|
val traceback = IllegalArgumentException("Failed to register model")
|
||||||
|
@ -6,8 +6,9 @@ import net.minecraft.resources.ResourceLocation
|
|||||||
import net.minecraft.server.packs.PackType
|
import net.minecraft.server.packs.PackType
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraftforge.client.model.generators.ModelProvider
|
import net.minecraftforge.client.model.generators.ModelProvider
|
||||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
|
import net.minecraftforge.data.event.GatherDataEvent
|
||||||
import ru.dbotthepony.mc.otm.datagen.DataGen
|
import ru.dbotthepony.mc.otm.datagen.DataGen
|
||||||
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
|
|
||||||
private typealias Callback = (MatteryModelProvider) -> Unit
|
private typealias Callback = (MatteryModelProvider) -> Unit
|
||||||
|
|
||||||
@ -26,7 +27,7 @@ sealed class MatteryModelProvider(event: GatherDataEvent, folder: String) : Mode
|
|||||||
return factory.apply(destinationLocation).also {
|
return factory.apply(destinationLocation).also {
|
||||||
generatedModels[destinationLocation] = it
|
generatedModels[destinationLocation] = it
|
||||||
val resource = existingFileHelper.getResource(sourceLocation, PackType.CLIENT_RESOURCES)
|
val resource = existingFileHelper.getResource(sourceLocation, PackType.CLIENT_RESOURCES)
|
||||||
val stream = resource.inputStream
|
val stream = resource.open()
|
||||||
val reader = stream.reader()
|
val reader = stream.reader()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -8,7 +8,6 @@ import net.minecraft.data.DataGenerator
|
|||||||
import net.minecraft.data.recipes.FinishedRecipe
|
import net.minecraft.data.recipes.FinishedRecipe
|
||||||
import net.minecraft.data.recipes.RecipeProvider
|
import net.minecraft.data.recipes.RecipeProvider
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.tags.Tag
|
|
||||||
import net.minecraft.tags.TagKey
|
import net.minecraft.tags.TagKey
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
|
@ -48,7 +48,6 @@ public final class OverdriveThatMatters {
|
|||||||
public static final Logger LOGGER = LogManager.getLogger();
|
public static final Logger LOGGER = LogManager.getLogger();
|
||||||
|
|
||||||
public static OverdriveThatMatters INSTANCE;
|
public static OverdriveThatMatters INSTANCE;
|
||||||
public AndroidGui ANDROID_GUI;
|
|
||||||
private StorageStackType<ItemStackWrapper> ITEM_STORAGE;
|
private StorageStackType<ItemStackWrapper> ITEM_STORAGE;
|
||||||
|
|
||||||
public StorageStackType<ItemStackWrapper> ITEM_STORAGE() {
|
public StorageStackType<ItemStackWrapper> ITEM_STORAGE() {
|
||||||
@ -120,9 +119,7 @@ public final class OverdriveThatMatters {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setupClient(final FMLClientSetupEvent event) {
|
private void setupClient(final FMLClientSetupEvent event) {
|
||||||
ANDROID_GUI = new AndroidGui();
|
MinecraftForge.EVENT_BUS.register(AndroidGui.INSTANCE);
|
||||||
MinecraftForge.EVENT_BUS.register(ANDROID_GUI);
|
|
||||||
MinecraftForge.EVENT_BUS.register(AndroidGui.class);
|
|
||||||
MinecraftForge.EVENT_BUS.register(EventHandlerKt.class);
|
MinecraftForge.EVENT_BUS.register(EventHandlerKt.class);
|
||||||
|
|
||||||
TritaniumArmorModel.register();
|
TritaniumArmorModel.register();
|
||||||
|
@ -11,6 +11,7 @@ import net.minecraft.world.item.Items;
|
|||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
import net.minecraftforge.registries.ForgeRegistry;
|
import net.minecraftforge.registries.ForgeRegistry;
|
||||||
import net.minecraftforge.registries.RegistryManager;
|
import net.minecraftforge.registries.RegistryManager;
|
||||||
|
import ru.dbotthepony.mc.otm.UnOverengineeringKt;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
@ -73,7 +74,7 @@ public record MatterTask(UUID id, @Nullable UUID pattern, Item item, int in_prog
|
|||||||
tag.putLong("pattern_u", pattern.getMostSignificantBits());
|
tag.putLong("pattern_u", pattern.getMostSignificantBits());
|
||||||
}
|
}
|
||||||
|
|
||||||
tag.putString("item", Objects.requireNonNull(item.getRegistryName()).toString());
|
tag.putString("item", Objects.requireNonNull(UnOverengineeringKt.getRegistryName(item)).toString());
|
||||||
tag.putInt("in_progress", in_progress);
|
tag.putInt("in_progress", in_progress);
|
||||||
tag.putInt("finished", finished);
|
tag.putInt("finished", finished);
|
||||||
tag.putInt("required", required);
|
tag.putInt("required", required);
|
||||||
|
@ -9,6 +9,7 @@ import net.minecraft.world.item.ItemStack;
|
|||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
import net.minecraftforge.registries.ForgeRegistry;
|
import net.minecraftforge.registries.ForgeRegistry;
|
||||||
import net.minecraftforge.registries.RegistryManager;
|
import net.minecraftforge.registries.RegistryManager;
|
||||||
|
import ru.dbotthepony.mc.otm.UnOverengineeringKt;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@ -44,7 +45,7 @@ public record PatternState(@Nonnull UUID id, @Nonnull Item item, double research
|
|||||||
|
|
||||||
tag.putLong("id_m", id.getMostSignificantBits());
|
tag.putLong("id_m", id.getMostSignificantBits());
|
||||||
tag.putLong("id_l", id.getLeastSignificantBits());
|
tag.putLong("id_l", id.getLeastSignificantBits());
|
||||||
tag.putString("item", Objects.requireNonNull(item.getRegistryName()).toString());
|
tag.putString("item", Objects.requireNonNull(UnOverengineeringKt.getRegistryName(item)).toString());
|
||||||
tag.putDouble("research_percent", research);
|
tag.putDouble("research_percent", research);
|
||||||
|
|
||||||
return tag;
|
return tag;
|
||||||
|
@ -1,192 +0,0 @@
|
|||||||
package ru.dbotthepony.mc.otm.client;
|
|
||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.gui.components.Button;
|
|
||||||
import net.minecraft.client.gui.screens.DeathScreen;
|
|
||||||
import net.minecraft.client.gui.screens.InBedChatScreen;
|
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
|
||||||
import net.minecraft.network.chat.TranslatableComponent;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.effect.MobEffects;
|
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
import net.minecraftforge.client.event.ScreenEvent;
|
|
||||||
import net.minecraftforge.client.event.ScreenOpenEvent;
|
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
|
||||||
import net.minecraftforge.client.gui.ForgeIngameGui;
|
|
||||||
import net.minecraftforge.eventbus.api.EventPriority;
|
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
|
||||||
import org.apache.logging.log4j.Logger;
|
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
|
||||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer;
|
|
||||||
import ru.dbotthepony.mc.otm.capability.android.IAndroidCapability;
|
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability;
|
|
||||||
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class AndroidGui {
|
|
||||||
private static final Minecraft mc = Minecraft.getInstance();
|
|
||||||
private final ForgeIngameGui gui = mc.gui instanceof ForgeIngameGui ? (ForgeIngameGui) mc.gui : null;
|
|
||||||
|
|
||||||
public static final ResourceLocation PLAYER_GUI_LOCATION = new ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/gui/player_gui.png");
|
|
||||||
|
|
||||||
private AndroidCapabilityPlayer last_state;
|
|
||||||
|
|
||||||
private static int known_button_x = -1;
|
|
||||||
private static int known_button_y = -1;
|
|
||||||
private static Button known_button;
|
|
||||||
private static InBedChatScreen known_button_screen;
|
|
||||||
private static final Random button_shaker = new Random();
|
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.NORMAL)
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public void onTick(ScreenEvent.DrawScreenEvent.Pre event) {
|
|
||||||
if (known_button_screen != null && known_button == null) {
|
|
||||||
for (var widget : known_button_screen.renderables) {
|
|
||||||
if (widget instanceof Button btn) {
|
|
||||||
known_button_x = btn.x;
|
|
||||||
known_button_y = btn.y;
|
|
||||||
known_button = btn;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (known_button == null) {
|
|
||||||
known_button_screen = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (known_button_screen != null && known_button_screen != mc.screen) {
|
|
||||||
known_button_x = -1;
|
|
||||||
known_button_y = -1;
|
|
||||||
known_button = null;
|
|
||||||
known_button_screen = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (known_button_screen == null || mc.player == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
mc.player.getCapability(MatteryCapability.ANDROID).ifPresent(cap -> {
|
|
||||||
if (!((AndroidCapabilityPlayer) cap).getWillBecomeAndroid()) {
|
|
||||||
known_button.x = known_button_x;
|
|
||||||
known_button.y = known_button_y;
|
|
||||||
known_button_x = -1;
|
|
||||||
known_button_y = -1;
|
|
||||||
known_button = null;
|
|
||||||
known_button_screen = null;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int dispersion = (int) ((10.0 * Math.max(0, ((AndroidCapabilityPlayer) cap).getSleepTicks() - 20)) / (AndroidCapabilityPlayer.SLEEP_TICKS_LIMIT - 20));
|
|
||||||
|
|
||||||
known_button.x = known_button_x - dispersion / 2 + (int) (button_shaker.nextDouble() * dispersion);
|
|
||||||
known_button.y = known_button_y - dispersion / 2 + (int) (button_shaker.nextDouble() * dispersion);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public static void onOpenGUI(ScreenOpenEvent event) {
|
|
||||||
known_button_x = -1;
|
|
||||||
known_button_y = -1;
|
|
||||||
known_button = null;
|
|
||||||
known_button_screen = null;
|
|
||||||
|
|
||||||
if (mc.player == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (event.getScreen() instanceof DeathScreen screen) {
|
|
||||||
mc.player.getCapability(MatteryCapability.ANDROID).ifPresent(cap -> {
|
|
||||||
if (cap.isAndroid())
|
|
||||||
screen.title = new TranslatableComponent("otm.death_reason");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.getScreen() instanceof InBedChatScreen screen) {
|
|
||||||
known_button_screen = screen;
|
|
||||||
|
|
||||||
mc.player.getCapability(MatteryCapability.ANDROID).ifPresent(cap -> {
|
|
||||||
if (((AndroidCapabilityPlayer) cap).getWillBecomeAndroid()) {
|
|
||||||
known_button_screen = screen;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Logger LOGGER = LogManager.getLogger();
|
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public void onLayerRenderEvent(RenderGameOverlayEvent.PreLayer event) {
|
|
||||||
if (event.getOverlay() != ForgeIngameGui.FOOD_LEVEL_ELEMENT && event.getOverlay() != ForgeIngameGui.AIR_LEVEL_ELEMENT)
|
|
||||||
return;
|
|
||||||
|
|
||||||
LocalPlayer ply = mc.player;
|
|
||||||
|
|
||||||
if (ply == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (
|
|
||||||
ply.getVehicle() instanceof LivingEntity ||
|
|
||||||
mc.options.hideGui ||
|
|
||||||
!mc.gameMode.canHurtPlayer() ||
|
|
||||||
!(mc.getCameraEntity() instanceof Player)
|
|
||||||
)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Optional<IAndroidCapability> lazy = ply.getCapability(MatteryCapability.ANDROID).resolve();
|
|
||||||
AndroidCapabilityPlayer android = null;
|
|
||||||
|
|
||||||
if (lazy.isPresent()) {
|
|
||||||
android = (AndroidCapabilityPlayer) lazy.get();
|
|
||||||
} else if (!ply.isAlive()) {
|
|
||||||
android = last_state;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (android != null && android.isAndroid() && mc.gui instanceof ForgeIngameGui gui) {
|
|
||||||
event.setCanceled(true);
|
|
||||||
last_state = android;
|
|
||||||
|
|
||||||
if (event.getOverlay() == ForgeIngameGui.AIR_LEVEL_ELEMENT) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
int y_offset = ply.hasEffect(MobEffects.HUNGER) ? 18 : 0;
|
|
||||||
|
|
||||||
float level;
|
|
||||||
|
|
||||||
if (android.getMaxBatteryLevel().isZero()) {
|
|
||||||
level = 0f;
|
|
||||||
} else {
|
|
||||||
level = android.getBatteryLevel().div(android.getMaxBatteryLevel()).toFloat();
|
|
||||||
|
|
||||||
if (level >= 0.98f)
|
|
||||||
level = 1f;
|
|
||||||
}
|
|
||||||
|
|
||||||
gui.setupOverlayRenderState(true, false);
|
|
||||||
|
|
||||||
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
|
|
||||||
RenderSystem.setShaderTexture(0, PLAYER_GUI_LOCATION);
|
|
||||||
|
|
||||||
int width = event.getWindow().getGuiScaledWidth();
|
|
||||||
int height = event.getWindow().getGuiScaledHeight();
|
|
||||||
|
|
||||||
int left = width / 2 + 10;
|
|
||||||
int top = height - gui.right_height;
|
|
||||||
|
|
||||||
gui.right_height += 10;
|
|
||||||
|
|
||||||
// Stack, x, y, blitOffset?, (float) image_x, (float) image_y, rect_x, rect_y, total_image_width, total_image_height
|
|
||||||
// Stack, x, y, image_x, image_y, rect_x, rect_y
|
|
||||||
gui.blit(event.getMatrixStack(), left, top, 0, y_offset, 80, 9);
|
|
||||||
|
|
||||||
int shift_left = (int) Math.ceil(level * 79f - 0.5f);
|
|
||||||
gui.blit(event.getMatrixStack(), left + 79 - shift_left, top, 79 - shift_left, y_offset + 9, shift_left, 9);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -80,8 +80,8 @@ public class RenderHelper {
|
|||||||
builder.vertex(matrix, x + width, y + height, depth_z).uv(u1, v1).endVertex();
|
builder.vertex(matrix, x + width, y + height, depth_z).uv(u1, v1).endVertex();
|
||||||
builder.vertex(matrix, x + width, y, depth_z).uv(u1, v0).endVertex();
|
builder.vertex(matrix, x + width, y, depth_z).uv(u1, v0).endVertex();
|
||||||
builder.vertex(matrix, x, y, depth_z).uv(u0, v0).endVertex();
|
builder.vertex(matrix, x, y, depth_z).uv(u0, v0).endVertex();
|
||||||
builder.end();
|
|
||||||
BufferUploader.end(builder);
|
BufferUploader.draw(builder.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void drawTexturedRectUV(
|
public static void drawTexturedRectUV(
|
||||||
@ -143,8 +143,7 @@ public class RenderHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.end();
|
BufferUploader.draw(builder.end());
|
||||||
BufferUploader.end(builder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void colorSphere(PoseStack stack, float radius) {
|
public static void colorSphere(PoseStack stack, float radius) {
|
||||||
|
@ -3,8 +3,6 @@ package ru.dbotthepony.mc.otm.client.screen;
|
|||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.client.gui.components.EditBox;
|
import net.minecraft.client.gui.components.EditBox;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.TextComponent;
|
|
||||||
import net.minecraft.network.chat.TranslatableComponent;
|
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.MatterTask;
|
import ru.dbotthepony.mc.otm.capability.matter.MatterTask;
|
||||||
@ -19,6 +17,9 @@ import javax.annotation.Nullable;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static ru.dbotthepony.mc.otm.UnOverengineeringKt.TextComponent;
|
||||||
|
import static ru.dbotthepony.mc.otm.UnOverengineeringKt.TranslatableComponent;
|
||||||
|
|
||||||
public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
||||||
private static final int MODAL_WIDTH = 213;
|
private static final int MODAL_WIDTH = 213;
|
||||||
private static final int MODAL_HEIGHT = 110;
|
private static final int MODAL_HEIGHT = 110;
|
||||||
@ -190,22 +191,22 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<Component> getTaskTooltip(List<Component> input, MatterTask task) {
|
private List<Component> getTaskTooltip(List<Component> input, MatterTask task) {
|
||||||
input.add(new TranslatableComponent("otm.gui.matter_task.total", task.total()).withStyle(ChatFormatting.GRAY));
|
input.add(TranslatableComponent("otm.gui.matter_task.total", task.total()).withStyle(ChatFormatting.GRAY));
|
||||||
input.add(new TranslatableComponent("otm.gui.matter_task.required", task.required()).withStyle(ChatFormatting.GRAY));
|
input.add(TranslatableComponent("otm.gui.matter_task.required", task.required()).withStyle(ChatFormatting.GRAY));
|
||||||
input.add(new TranslatableComponent("otm.gui.matter_task.in_progress", task.in_progress()).withStyle(ChatFormatting.GRAY));
|
input.add(TranslatableComponent("otm.gui.matter_task.in_progress", task.in_progress()).withStyle(ChatFormatting.GRAY));
|
||||||
input.add(new TranslatableComponent("otm.gui.matter_task.finished", task.finished()).withStyle(ChatFormatting.GRAY));
|
input.add(TranslatableComponent("otm.gui.matter_task.finished", task.finished()).withStyle(ChatFormatting.GRAY));
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Component> getPatternTooltip(List<Component> input, PatternState pattern) {
|
private List<Component> getPatternTooltip(List<Component> input, PatternState pattern) {
|
||||||
input.add(new TranslatableComponent("otm.item.pattern.research", String.format("%.2f", pattern.research() * 100d)).withStyle(ChatFormatting.AQUA));
|
input.add(TranslatableComponent("otm.item.pattern.research", String.format("%.2f", pattern.research() * 100d)).withStyle(ChatFormatting.AQUA));
|
||||||
|
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openTask(MatterTask task) {
|
private void openTask(MatterTask task) {
|
||||||
var task_frame = new FramePanel(this, null, 0, 0, 170, 40, new TranslatableComponent("otm.container.matter_panel.task")) {
|
var task_frame = new FramePanel(this, null, 0, 0, 170, 40, TranslatableComponent("otm.container.matter_panel.task")) {
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
super.tick();
|
super.tick();
|
||||||
@ -246,12 +247,12 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
|||||||
|
|
||||||
slot.setDock(Dock.LEFT);
|
slot.setDock(Dock.LEFT);
|
||||||
|
|
||||||
var button = new ButtonPanel(this, task_frame, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.close"));
|
var button = new ButtonPanel(this, task_frame, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.close"));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
button.bind(task_frame::remove);
|
button.bind(task_frame::remove);
|
||||||
|
|
||||||
button = new ButtonPanel(this, task_frame, 0, 0, 80, 20, new TranslatableComponent("otm.container.matter_panel.cancel_task"));
|
button = new ButtonPanel(this, task_frame, 0, 0, 80, 20, TranslatableComponent("otm.container.matter_panel.cancel_task"));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
button.bind(() -> {
|
button.bind(() -> {
|
||||||
@ -264,7 +265,7 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void openPattern(PatternState state) {
|
private void openPattern(PatternState state) {
|
||||||
var pattern_frame = new FramePanel(this, null, 0, 0, MODAL_WIDTH, MODAL_HEIGHT, new TranslatableComponent("otm.container.matter_panel.label")){
|
var pattern_frame = new FramePanel(this, null, 0, 0, MODAL_WIDTH, MODAL_HEIGHT, TranslatableComponent("otm.container.matter_panel.label")){
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
super.tick();
|
super.tick();
|
||||||
@ -309,7 +310,7 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var input_amount = new EditBoxPanel(this, row_2, 0, 0, 10, 20, new TextComponent("Input amount")) {
|
var input_amount = new EditBoxPanel(this, row_2, 0, 0, 10, 20, TextComponent("Input amount")) {
|
||||||
@Override
|
@Override
|
||||||
protected void configureNew(@Nonnull EditBox widget, boolean recreation) {
|
protected void configureNew(@Nonnull EditBox widget, boolean recreation) {
|
||||||
super.configureNew(widget, recreation);
|
super.configureNew(widget, recreation);
|
||||||
@ -337,17 +338,17 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var button = new ButtonPanel(this, row_1, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.increase_by", 8));
|
var button = new ButtonPanel(this, row_1, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.increase_by", 8));
|
||||||
button.bind(() -> input_amount.increase(8));
|
button.bind(() -> input_amount.increase(8));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_1, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.increase_by", 64));
|
button = new ButtonPanel(this, row_1, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.increase_by", 64));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.bind(() -> input_amount.increase(64));
|
button.bind(() -> input_amount.increase(64));
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_1, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.increase_by", 256));
|
button = new ButtonPanel(this, row_1, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.increase_by", 256));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.bind(() -> input_amount.increase(256));
|
button.bind(() -> input_amount.increase(256));
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
@ -356,27 +357,27 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
|||||||
slot.setDockMargin(0, 0, 4, 0);
|
slot.setDockMargin(0, 0, 4, 0);
|
||||||
input_amount.setDock(Dock.FILL);
|
input_amount.setDock(Dock.FILL);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_3, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.decrease_by", 8));
|
button = new ButtonPanel(this, row_3, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.decrease_by", 8));
|
||||||
button.bind(() -> input_amount.increase(-8));
|
button.bind(() -> input_amount.increase(-8));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_3, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.decrease_by", 64));
|
button = new ButtonPanel(this, row_3, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.decrease_by", 64));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.bind(() -> input_amount.increase(-64));
|
button.bind(() -> input_amount.increase(-64));
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_3, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.decrease_by", 256));
|
button = new ButtonPanel(this, row_3, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.decrease_by", 256));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.bind(() -> input_amount.increase(-256));
|
button.bind(() -> input_amount.increase(-256));
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_4, 0, 0, 40, 20, new TranslatableComponent("otm.container.matter_panel.cancel"));
|
button = new ButtonPanel(this, row_4, 0, 0, 40, 20, TranslatableComponent("otm.container.matter_panel.cancel"));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.bind(pattern_frame::remove);
|
button.bind(pattern_frame::remove);
|
||||||
button.setDockMargin(2, 0, 0, 0);
|
button.setDockMargin(2, 0, 0, 0);
|
||||||
|
|
||||||
button = new ButtonPanel(this, row_4, 0, 0, 82, 20, new TranslatableComponent("otm.container.matter_panel.send"));
|
button = new ButtonPanel(this, row_4, 0, 0, 82, 20, TranslatableComponent("otm.container.matter_panel.send"));
|
||||||
button.setDock(Dock.RIGHT);
|
button.setDock(Dock.RIGHT);
|
||||||
button.bind(() -> {
|
button.bind(() -> {
|
||||||
int value = 1;
|
int value = 1;
|
||||||
|
@ -20,6 +20,7 @@ import net.minecraft.world.inventory.ClickType;
|
|||||||
import net.minecraft.world.inventory.Slot;
|
import net.minecraft.world.inventory.Slot;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraftforge.client.event.ContainerScreenEvent;
|
import net.minecraftforge.client.event.ContainerScreenEvent;
|
||||||
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu;
|
import ru.dbotthepony.mc.otm.menu.MatteryMenu;
|
||||||
import ru.dbotthepony.mc.otm.menu.MatterySlot;
|
import ru.dbotthepony.mc.otm.menu.MatterySlot;
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.*;
|
import ru.dbotthepony.mc.otm.client.screen.panels.*;
|
||||||
@ -37,12 +38,11 @@ import static org.lwjgl.opengl.GL13.GL_TEXTURE0;
|
|||||||
/**
|
/**
|
||||||
* This class encapsulate most of logic for handling EditablePanel and it's children
|
* This class encapsulate most of logic for handling EditablePanel and it's children
|
||||||
* It inherits AbstractContainerScreen, but most of methods of AbstractContainerScreen are re implemented or straight removed
|
* It inherits AbstractContainerScreen, but most of methods of AbstractContainerScreen are re implemented or straight removed
|
||||||
* since they are present inside EditablePanel subclasses, therefore it inherits
|
* since they are present inside EditablePanel subclasses, therefore
|
||||||
|
* it inherits AbstractContainerScreen just for signature compatibility
|
||||||
*
|
*
|
||||||
* It inherits AbstractContainerScreen just for signature compatibility
|
* Widgets such as slots are not drawn/interacted with using MatteryScreen,
|
||||||
*
|
* but are handled by appropriate panels
|
||||||
* Such as slots, they are not drawn inside MatteryScreen, but instead
|
|
||||||
* drawn by SlotPanel(s)
|
|
||||||
*
|
*
|
||||||
* @param <T> type of menu, which extends MatteryMenu
|
* @param <T> type of menu, which extends MatteryMenu
|
||||||
*/
|
*/
|
||||||
@ -338,7 +338,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
|||||||
this.setBlitOffset(200);
|
this.setBlitOffset(200);
|
||||||
this.itemRenderer.blitOffset = 200.0F;
|
this.itemRenderer.blitOffset = 200.0F;
|
||||||
|
|
||||||
net.minecraft.client.gui.Font font = net.minecraftforge.client.RenderProperties.get(p_97783_).getFont(p_97783_);
|
net.minecraft.client.gui.Font font = p_97783_.getItem().getRenderPropertiesInternal() instanceof IClientItemExtensions ext ? ext.getFont(p_97783_, IClientItemExtensions.FontContext.TOOLTIP) : null;
|
||||||
if (font == null) font = this.font;
|
if (font == null) font = this.font;
|
||||||
|
|
||||||
this.itemRenderer.renderAndDecorateItem(p_97783_, p_97784_, p_97785_);
|
this.itemRenderer.renderAndDecorateItem(p_97783_, p_97784_, p_97785_);
|
||||||
@ -404,7 +404,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
|||||||
|
|
||||||
RenderSystem.depthFunc(GL_LESS);
|
RenderSystem.depthFunc(GL_LESS);
|
||||||
|
|
||||||
net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new ContainerScreenEvent.DrawBackground(this, pose, mouse_x, mouse_y));
|
net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new ContainerScreenEvent.Render.Background(this, pose, mouse_x, mouse_y));
|
||||||
|
|
||||||
RenderSystem.disableDepthTest();
|
RenderSystem.disableDepthTest();
|
||||||
|
|
||||||
@ -416,7 +416,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
|||||||
|
|
||||||
RenderSystem.disableDepthTest();
|
RenderSystem.disableDepthTest();
|
||||||
|
|
||||||
net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new ContainerScreenEvent.DrawForeground(this, pose, mouse_x, mouse_y));
|
net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(new ContainerScreenEvent.Render.Foreground(this, pose, mouse_x, mouse_y));
|
||||||
|
|
||||||
var itemstack = this.draggingItem.isEmpty() ? this.menu.getCarried() : this.draggingItem;
|
var itemstack = this.draggingItem.isEmpty() ? this.menu.getCarried() : this.draggingItem;
|
||||||
|
|
||||||
@ -559,7 +559,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
|||||||
public void onSlotMouseDragged(@Nonnull MatterySlot slot, int click_type) {
|
public void onSlotMouseDragged(@Nonnull MatterySlot slot, int click_type) {
|
||||||
ItemStack itemstack = this.menu.getCarried();
|
ItemStack itemstack = this.menu.getCarried();
|
||||||
|
|
||||||
if (this.clickedSlot != null && this.minecraft.options.touchscreen) {
|
if (this.clickedSlot != null && this.minecraft.options.touchscreen().get()) {
|
||||||
if (click_type == 0 || click_type == 1) {
|
if (click_type == 0 || click_type == 1) {
|
||||||
if (this.draggingItem.isEmpty()) {
|
if (this.draggingItem.isEmpty()) {
|
||||||
if (slot != this.clickedSlot && !this.clickedSlot.getItem().isEmpty()) {
|
if (slot != this.clickedSlot && !this.clickedSlot.getItem().isEmpty()) {
|
||||||
@ -621,7 +621,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.clickedSlot != null && this.minecraft.options.touchscreen) {
|
if (this.clickedSlot != null && this.minecraft.options.touchscreen().get()) {
|
||||||
if (p_97814_ == 0 || p_97814_ == 1) {
|
if (p_97814_ == 0 || p_97814_ == 1) {
|
||||||
if (this.draggingItem.isEmpty() && slot != this.clickedSlot) {
|
if (this.draggingItem.isEmpty() && slot != this.clickedSlot) {
|
||||||
this.draggingItem = this.clickedSlot.getItem();
|
this.draggingItem = this.clickedSlot.getItem();
|
||||||
|
@ -4,9 +4,9 @@ import net.minecraft.resources.ResourceLocation;
|
|||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||||
import net.minecraft.world.item.crafting.RecipeType;
|
import net.minecraft.world.item.crafting.RecipeType;
|
||||||
import net.minecraftforge.event.RegistryEvent;
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe;
|
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe;
|
||||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipeFactory;
|
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipeFactory;
|
||||||
@ -19,10 +19,6 @@ public class MRecipes {
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void register() {
|
|
||||||
net.minecraft.core.Registry.register(net.minecraft.core.Registry.RECIPE_TYPE, name, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return name.toString();
|
return name.toString();
|
||||||
@ -31,15 +27,16 @@ public class MRecipes {
|
|||||||
|
|
||||||
public static final MatteryRecipeType<PlatePressRecipe> PLATE_PRESS = new MatteryRecipeType<>(OverdriveThatMatters.loc(MNames.PLATE_PRESS));
|
public static final MatteryRecipeType<PlatePressRecipe> PLATE_PRESS = new MatteryRecipeType<>(OverdriveThatMatters.loc(MNames.PLATE_PRESS));
|
||||||
|
|
||||||
@SubscribeEvent
|
private static final DeferredRegister<RecipeSerializer<?>> registry = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, OverdriveThatMatters.MOD_ID);
|
||||||
@SuppressWarnings("unused")
|
private static final DeferredRegister<RecipeType<?>> typesRegistry = DeferredRegister.create(ForgeRegistries.RECIPE_TYPES, OverdriveThatMatters.MOD_ID);
|
||||||
public static void register(final FMLCommonSetupEvent event) {
|
|
||||||
PLATE_PRESS.register();
|
static {
|
||||||
|
registry.register(MNames.PLATE_PRESS, () -> PlatePressRecipeFactory.INSTANCE);
|
||||||
|
typesRegistry.register(MNames.PLATE_PRESS, () -> PLATE_PRESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
public static void register() {
|
||||||
@SuppressWarnings("unused")
|
registry.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||||
public static void register(final RegistryEvent.Register<RecipeSerializer<?>> event) {
|
typesRegistry.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||||
event.getRegistry().register(PlatePressRecipeFactory.INSTANCE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,28 +4,28 @@
|
|||||||
package ru.dbotthepony.mc.otm
|
package ru.dbotthepony.mc.otm
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList
|
import com.google.common.collect.ImmutableList
|
||||||
import com.google.gson.JsonArray
|
|
||||||
import com.google.gson.JsonElement
|
import com.google.gson.JsonElement
|
||||||
import com.google.gson.JsonObject
|
import com.google.gson.JsonObject
|
||||||
import net.minecraft.client.Minecraft
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.core.Vec3i
|
import net.minecraft.core.Vec3i
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.nbt.ListTag
|
|
||||||
import net.minecraft.nbt.LongArrayTag
|
import net.minecraft.nbt.LongArrayTag
|
||||||
import net.minecraft.nbt.Tag
|
import net.minecraft.nbt.Tag
|
||||||
|
import net.minecraft.network.chat.MutableComponent
|
||||||
|
import net.minecraft.network.chat.contents.LiteralContents
|
||||||
|
import net.minecraft.network.chat.contents.TranslatableContents
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.Container
|
import net.minecraft.world.Container
|
||||||
import net.minecraft.world.entity.Entity
|
import net.minecraft.world.entity.Entity
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.phys.Vec3
|
import net.minecraft.world.phys.Vec3
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.energy.CapabilityEnergy
|
|
||||||
import net.minecraftforge.items.IItemHandler
|
import net.minecraftforge.items.IItemHandler
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
|
import net.minecraftforge.registries.IForgeRegistry
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.function.Consumer
|
|
||||||
import kotlin.properties.ReadWriteProperty
|
import kotlin.properties.ReadWriteProperty
|
||||||
import kotlin.reflect.KProperty
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ package ru.dbotthepony.mc.otm
|
|||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.event.TickEvent
|
import net.minecraftforge.event.TickEvent
|
||||||
import net.minecraftforge.event.TickEvent.ServerTickEvent
|
import net.minecraftforge.event.TickEvent.ServerTickEvent
|
||||||
import net.minecraftforge.event.TickEvent.WorldTickEvent
|
import net.minecraftforge.event.TickEvent.LevelTickEvent
|
||||||
import net.minecraftforge.event.server.ServerAboutToStartEvent
|
import net.minecraftforge.event.server.ServerAboutToStartEvent
|
||||||
import net.minecraftforge.event.server.ServerStoppedEvent
|
import net.minecraftforge.event.server.ServerStoppedEvent
|
||||||
import net.minecraftforge.event.server.ServerStoppingEvent
|
import net.minecraftforge.event.server.ServerStoppingEvent
|
||||||
@ -118,9 +118,9 @@ fun addPostServerTickerOnce(ticker: ITickable) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||||
fun onWorldTick(event: WorldTickEvent) {
|
fun onWorldTick(event: LevelTickEvent) {
|
||||||
if (event.phase === TickEvent.Phase.START) {
|
if (event.phase === TickEvent.Phase.START) {
|
||||||
val it = preWorldTick[event.world]
|
val it = preWorldTick[event.level]
|
||||||
|
|
||||||
if (it != null) {
|
if (it != null) {
|
||||||
for (i in it.size - 1 downTo 0) {
|
for (i in it.size - 1 downTo 0) {
|
||||||
@ -134,7 +134,7 @@ fun onWorldTick(event: WorldTickEvent) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val it2 = preWorldTickOnce.remove(event.world)
|
val it2 = preWorldTickOnce.remove(event.level)
|
||||||
|
|
||||||
if (it2 != null) {
|
if (it2 != null) {
|
||||||
for (i in it2.size - 1 downTo 0) {
|
for (i in it2.size - 1 downTo 0) {
|
||||||
@ -143,7 +143,7 @@ fun onWorldTick(event: WorldTickEvent) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val it = postWorldTick[event.world]
|
val it = postWorldTick[event.level]
|
||||||
|
|
||||||
if (it != null) {
|
if (it != null) {
|
||||||
for (i in it.size - 1 downTo 0) {
|
for (i in it.size - 1 downTo 0) {
|
||||||
@ -157,7 +157,7 @@ fun onWorldTick(event: WorldTickEvent) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val it2 = postWorldTickOnce.remove(event.world)
|
val it2 = postWorldTickOnce.remove(event.level)
|
||||||
|
|
||||||
if (it2 != null) {
|
if (it2 != null) {
|
||||||
for (i in it2.size - 1 downTo 0) {
|
for (i in it2.size - 1 downTo 0) {
|
||||||
|
30
src/main/kotlin/ru/dbotthepony/mc/otm/UnOverengineering.kt
Normal file
30
src/main/kotlin/ru/dbotthepony/mc/otm/UnOverengineering.kt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package ru.dbotthepony.mc.otm
|
||||||
|
|
||||||
|
import net.minecraft.network.FriendlyByteBuf
|
||||||
|
import net.minecraft.network.chat.MutableComponent
|
||||||
|
import net.minecraft.network.chat.contents.LiteralContents
|
||||||
|
import net.minecraft.network.chat.contents.TranslatableContents
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import net.minecraft.world.item.Item
|
||||||
|
import net.minecraft.world.level.block.Block
|
||||||
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
|
import net.minecraftforge.registries.IForgeRegistry
|
||||||
|
|
||||||
|
// 1.19 being 1.19
|
||||||
|
fun TranslatableComponent(key: String, vararg values: Any) = MutableComponent.create(TranslatableContents(key, *values))
|
||||||
|
fun TextComponent(value: String) = MutableComponent.create(LiteralContents(value))
|
||||||
|
|
||||||
|
fun <T> IForgeRegistry<T>.getKeyNullable(value: T): ResourceLocation? {
|
||||||
|
val key = getResourceKey(value)
|
||||||
|
|
||||||
|
if (key.isPresent) {
|
||||||
|
return key.get().location()
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
val Item.registryName get() = ForgeRegistries.ITEMS.getKeyNullable(this)
|
||||||
|
val Block.registryName get() = ForgeRegistries.BLOCKS.getKeyNullable(this)
|
||||||
|
|
||||||
|
fun FriendlyByteBuf.writeRegistryId(value: Item) = writeRegistryId(ForgeRegistries.ITEMS, value)
|
@ -1,11 +1,14 @@
|
|||||||
package ru.dbotthepony.mc.otm.android
|
package ru.dbotthepony.mc.otm.android
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import net.minecraft.network.chat.ComponentContents
|
||||||
import net.minecraftforge.registries.ForgeRegistryEntry
|
import net.minecraft.network.chat.MutableComponent
|
||||||
|
import net.minecraft.network.chat.contents.TranslatableContents
|
||||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapability
|
import ru.dbotthepony.mc.otm.capability.android.AndroidCapability
|
||||||
|
import ru.dbotthepony.mc.otm.getKeyNullable
|
||||||
|
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||||
|
|
||||||
open class AndroidFeatureType<T : AndroidFeature> : ForgeRegistryEntry<AndroidFeatureType<*>> {
|
open class AndroidFeatureType<T : AndroidFeature> {
|
||||||
private val factory: (AndroidFeatureType<T>, AndroidCapability) -> T
|
private val factory: (AndroidFeatureType<T>, AndroidCapability) -> T
|
||||||
|
|
||||||
constructor(factory: (AndroidCapability) -> T) : super() {
|
constructor(factory: (AndroidCapability) -> T) : super() {
|
||||||
@ -22,8 +25,17 @@ open class AndroidFeatureType<T : AndroidFeature> : ForgeRegistryEntry<AndroidFe
|
|||||||
|
|
||||||
open fun isApplicable(android: AndroidCapability) = true
|
open fun isApplicable(android: AndroidCapability) = true
|
||||||
|
|
||||||
|
val registryName by lazy {
|
||||||
|
check(AndroidResearchType.IS_REGISTRY_INITIALIZED) { "Trying to access registryName too early!" }
|
||||||
|
MRegistry.ANDROID_FEATURES.getKeyNullable(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
open val displayContents: ComponentContents by lazy {
|
||||||
|
TranslatableContents(displayId)
|
||||||
|
}
|
||||||
|
|
||||||
open val displayName: Component by lazy {
|
open val displayName: Component by lazy {
|
||||||
TranslatableComponent(displayId)
|
MutableComponent.create(displayContents)
|
||||||
}
|
}
|
||||||
|
|
||||||
open val displayId: String by lazy {
|
open val displayId: String by lazy {
|
||||||
|
@ -1,11 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.android
|
package ru.dbotthepony.mc.otm.android
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList
|
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.FriendlyByteBuf
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraftforge.common.util.INBTSerializable
|
import net.minecraftforge.common.util.INBTSerializable
|
||||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
||||||
|
@ -4,9 +4,9 @@ import com.google.common.collect.ImmutableList
|
|||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap
|
import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||||
import ru.dbotthepony.mc.otm.container.iterator
|
import ru.dbotthepony.mc.otm.container.iterator
|
||||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||||
|
@ -2,9 +2,12 @@ package ru.dbotthepony.mc.otm.android
|
|||||||
|
|
||||||
import com.google.common.collect.ImmutableList
|
import com.google.common.collect.ImmutableList
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import net.minecraft.network.chat.ComponentContents
|
||||||
import net.minecraftforge.registries.ForgeRegistryEntry
|
import net.minecraft.network.chat.MutableComponent
|
||||||
|
import net.minecraft.network.chat.contents.TranslatableContents
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
||||||
|
import ru.dbotthepony.mc.otm.getKeyNullable
|
||||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||||
|
|
||||||
fun interface AndroidResearchFactory<R : AndroidResearch> {
|
fun interface AndroidResearchFactory<R : AndroidResearch> {
|
||||||
@ -13,7 +16,7 @@ fun interface AndroidResearchFactory<R : AndroidResearch> {
|
|||||||
|
|
||||||
open class AndroidResearchType<R : AndroidResearch>(
|
open class AndroidResearchType<R : AndroidResearch>(
|
||||||
protected val factory: AndroidResearchFactory<R>
|
protected val factory: AndroidResearchFactory<R>
|
||||||
) : ForgeRegistryEntry<AndroidResearchType<*>>() {
|
) {
|
||||||
open val prerequisites: List<AndroidResearchType<*>> get() = emptyList()
|
open val prerequisites: List<AndroidResearchType<*>> get() = emptyList()
|
||||||
open val blockedBy: List<AndroidResearchType<*>> get() = emptyList()
|
open val blockedBy: List<AndroidResearchType<*>> get() = emptyList()
|
||||||
|
|
||||||
@ -47,6 +50,11 @@ open class AndroidResearchType<R : AndroidResearch>(
|
|||||||
|
|
||||||
fun factory(capability: AndroidCapabilityPlayer) = factory.factory(this, capability)
|
fun factory(capability: AndroidCapabilityPlayer) = factory.factory(this, capability)
|
||||||
|
|
||||||
|
val registryName by lazy {
|
||||||
|
check(IS_REGISTRY_INITIALIZED) { "Trying to access registryName too early!" }
|
||||||
|
MRegistry.ANDROID_RESEARCH.getKeyNullable(this)
|
||||||
|
}
|
||||||
|
|
||||||
val displayId by lazy {
|
val displayId by lazy {
|
||||||
val registryName = registryName ?: throw NullPointerException("No registry name present")
|
val registryName = registryName ?: throw NullPointerException("No registry name present")
|
||||||
return@lazy "android_research.${registryName.namespace}.${registryName.path}".intern()
|
return@lazy "android_research.${registryName.namespace}.${registryName.path}".intern()
|
||||||
@ -56,8 +64,12 @@ open class AndroidResearchType<R : AndroidResearch>(
|
|||||||
return@lazy "$displayId.description".intern()
|
return@lazy "$displayId.description".intern()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open val displayContents: ComponentContents by lazy {
|
||||||
|
TranslatableContents(displayId)
|
||||||
|
}
|
||||||
|
|
||||||
open val displayName: Component by lazy {
|
open val displayName: Component by lazy {
|
||||||
TranslatableComponent(displayId)
|
MutableComponent.create(displayContents)
|
||||||
}
|
}
|
||||||
|
|
||||||
open val displayDescription: List<Component> by lazy {
|
open val displayDescription: List<Component> by lazy {
|
||||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.block.entity
|
|||||||
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.MenuProvider
|
import net.minecraft.world.MenuProvider
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.entity.LivingEntity
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
@ -10,6 +9,7 @@ import net.minecraft.world.entity.player.Player
|
|||||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.phys.AABB
|
import net.minecraft.world.phys.AABB
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||||
|
@ -5,7 +5,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||||
@ -13,6 +12,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.CargoCrateBlock
|
import ru.dbotthepony.mc.otm.block.CargoCrateBlock
|
||||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||||
import ru.dbotthepony.mc.otm.ifHas
|
import ru.dbotthepony.mc.otm.ifHas
|
||||||
|
@ -5,7 +5,6 @@ import net.minecraft.core.Direction
|
|||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.nbt.IntTag
|
import net.minecraft.nbt.IntTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||||
@ -196,7 +195,7 @@ class ChemicalGeneratorBlockEntity(pos: BlockPos, state: BlockState) : MatteryBl
|
|||||||
if (workingTicks == 0 && !isBlockedByRedstone && check) {
|
if (workingTicks == 0 && !isBlockedByRedstone && check) {
|
||||||
if (!container[SLOT_INPUT].isEmpty) {
|
if (!container[SLOT_INPUT].isEmpty) {
|
||||||
val ticks = ForgeHooks.getBurnTime(container[SLOT_INPUT], null)
|
val ticks = ForgeHooks.getBurnTime(container[SLOT_INPUT], null)
|
||||||
val residue = container[SLOT_INPUT].item.getContainerItem(container[SLOT_INPUT].copy().also { it.count = 1 })
|
val residue = container[SLOT_INPUT].item.getCraftingRemainingItem(container[SLOT_INPUT].copy().also { it.count = 1 })
|
||||||
val canPutResidue = residue.isEmpty || container[SLOT_RESIDUE].isEmpty || ItemStack.isSameItemSameTags(container[SLOT_RESIDUE], residue) && container[SLOT_RESIDUE].count < container[2].maxStackSize
|
val canPutResidue = residue.isEmpty || container[SLOT_RESIDUE].isEmpty || ItemStack.isSameItemSameTags(container[SLOT_RESIDUE], residue) && container[SLOT_RESIDUE].count < container[2].maxStackSize
|
||||||
|
|
||||||
if (canPutResidue && ticks >= 4 && (energy.batteryLevel < ImpreciseFraction.ONE || GENERATION_SPEED * (ticks / 4) + energy.batteryLevel <= energy.maxBatteryLevel)) {
|
if (canPutResidue && ticks >= 4 && (energy.batteryLevel < ImpreciseFraction.ONE || GENERATION_SPEED * (ticks / 4) + energy.batteryLevel <= energy.maxBatteryLevel)) {
|
||||||
|
@ -9,7 +9,6 @@ import net.minecraft.nbt.IntTag
|
|||||||
import net.minecraft.nbt.ListTag
|
import net.minecraft.nbt.ListTag
|
||||||
import net.minecraft.network.FriendlyByteBuf
|
import net.minecraft.network.FriendlyByteBuf
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
|
@ -3,13 +3,13 @@ package ru.dbotthepony.mc.otm.block.entity
|
|||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.SectionPos
|
import net.minecraft.core.SectionPos
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.phys.AABB
|
import net.minecraft.world.phys.AABB
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.BlockGravitationStabilizer
|
import ru.dbotthepony.mc.otm.block.BlockGravitationStabilizer
|
||||||
import ru.dbotthepony.mc.otm.block.BlockGravitationStabilizerLens
|
import ru.dbotthepony.mc.otm.block.BlockGravitationStabilizerLens
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
|
@ -17,11 +17,11 @@ import ru.dbotthepony.mc.otm.menu.PatternStorageMenu
|
|||||||
import net.minecraft.MethodsReturnNonnullByDefault
|
import net.minecraft.MethodsReturnNonnullByDefault
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.*
|
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||||
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
||||||
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphNode
|
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphNode
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||||
@ -13,6 +12,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.entity
|
package ru.dbotthepony.mc.otm.block.entity
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
|
|
||||||
enum class RedstoneSetting(val label: TranslatableComponent, val description: TranslatableComponent) {
|
enum class RedstoneSetting(val label: Component, val description: Component) {
|
||||||
IGNORED(TranslatableComponent("otm.gui.redstone.ignored"), TranslatableComponent("otm.gui.redstone.ignored.description")),
|
IGNORED(TranslatableComponent("otm.gui.redstone.ignored"), TranslatableComponent("otm.gui.redstone.ignored.description")),
|
||||||
LOW(TranslatableComponent("otm.gui.redstone.low"), TranslatableComponent("otm.gui.redstone.low.description")),
|
LOW(TranslatableComponent("otm.gui.redstone.low"), TranslatableComponent("otm.gui.redstone.low.description")),
|
||||||
HIGH(TranslatableComponent("otm.gui.redstone.high"), TranslatableComponent("otm.gui.redstone.high.description"));
|
HIGH(TranslatableComponent("otm.gui.redstone.high"), TranslatableComponent("otm.gui.redstone.high.description"));
|
||||||
|
@ -669,9 +669,9 @@ class ExplosionQueue(private val level: ServerLevel) : SavedData() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onWorldTick(event: TickEvent.WorldTickEvent) {
|
fun onWorldTick(event: TickEvent.LevelTickEvent) {
|
||||||
if (event.phase == TickEvent.Phase.START && event.world is ServerLevel) {
|
if (event.phase == TickEvent.Phase.START && event.level is ServerLevel) {
|
||||||
queueForLevel(event.world as ServerLevel).tick()
|
queueForLevel(event.level as ServerLevel).tick()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -16,6 +15,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock
|
import ru.dbotthepony.mc.otm.block.matter.MatterBottlerBlock
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
||||||
|
@ -5,7 +5,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -16,6 +15,7 @@ import net.minecraft.world.level.block.Block
|
|||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.BatteryBankBlock
|
import ru.dbotthepony.mc.otm.block.BatteryBankBlock
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -16,6 +15,7 @@ import net.minecraftforge.common.capabilities.Capability
|
|||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
import net.minecraftforge.items.IItemHandler
|
import net.minecraftforge.items.IItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
||||||
|
@ -20,10 +20,10 @@ import net.minecraft.nbt.CompoundTag
|
|||||||
import net.minecraft.nbt.ListTag
|
import net.minecraft.nbt.ListTag
|
||||||
import net.minecraft.nbt.Tag
|
import net.minecraft.nbt.Tag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
||||||
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphNode
|
import ru.dbotthepony.mc.otm.graph.matter.IMatterGraphNode
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -15,6 +14,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -14,6 +13,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -15,6 +14,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.items.CapabilityItemHandler
|
import net.minecraftforge.items.CapabilityItemHandler
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.worker.MatteryWorkerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJob
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -14,6 +13,7 @@ import net.minecraft.world.level.Level
|
|||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.graph.storage.BasicStorageGraphNode
|
import ru.dbotthepony.mc.otm.graph.storage.BasicStorageGraphNode
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.MethodsReturnNonnullByDefault
|
|||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||||
@ -12,6 +11,7 @@ import net.minecraft.world.item.ItemStack
|
|||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.storage.DriveViewerBlock
|
import ru.dbotthepony.mc.otm.block.storage.DriveViewerBlock
|
||||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerState
|
||||||
|
@ -8,7 +8,6 @@ import net.minecraft.nbt.CompoundTag
|
|||||||
import net.minecraft.nbt.StringTag
|
import net.minecraft.nbt.StringTag
|
||||||
import net.minecraft.network.FriendlyByteBuf
|
import net.minecraft.network.FriendlyByteBuf
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import net.minecraft.world.Container
|
import net.minecraft.world.Container
|
||||||
@ -19,8 +18,6 @@ import net.minecraft.world.inventory.CraftingContainer
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.crafting.CraftingRecipe
|
import net.minecraft.world.item.crafting.CraftingRecipe
|
||||||
import net.minecraft.world.item.crafting.RecipeType
|
import net.minecraft.world.item.crafting.RecipeType
|
||||||
import net.minecraft.world.item.crafting.ShapedRecipe
|
|
||||||
import net.minecraft.world.item.crafting.ShapelessRecipe
|
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraftforge.common.ForgeHooks
|
import net.minecraftforge.common.ForgeHooks
|
||||||
@ -29,6 +26,7 @@ import net.minecraftforge.common.util.INBTSerializable
|
|||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.network.NetworkEvent
|
import net.minecraftforge.network.NetworkEvent
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
||||||
@ -49,7 +47,7 @@ import kotlin.collections.HashMap
|
|||||||
import kotlin.collections.HashSet
|
import kotlin.collections.HashSet
|
||||||
|
|
||||||
class ItemMonitorPlayerSettings : INBTSerializable<CompoundTag> {
|
class ItemMonitorPlayerSettings : INBTSerializable<CompoundTag> {
|
||||||
enum class RefillSource(val component: TranslatableComponent) {
|
enum class RefillSource(val component: Component) {
|
||||||
// Refill everything from system
|
// Refill everything from system
|
||||||
SYSTEM(TranslatableComponent("otm.gui.item_monitor.refill_source.system")),
|
SYSTEM(TranslatableComponent("otm.gui.item_monitor.refill_source.system")),
|
||||||
|
|
||||||
@ -66,7 +64,7 @@ class ItemMonitorPlayerSettings : INBTSerializable<CompoundTag> {
|
|||||||
DO_NOT(TranslatableComponent("otm.gui.item_monitor.refill_source.do_not")),
|
DO_NOT(TranslatableComponent("otm.gui.item_monitor.refill_source.do_not")),
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class ResultTarget(val component: TranslatableComponent) {
|
enum class ResultTarget(val component: Component) {
|
||||||
// Everything goes into storage system
|
// Everything goes into storage system
|
||||||
ALL_SYSTEM(TranslatableComponent("otm.gui.item_monitor.result_target.all_system")),
|
ALL_SYSTEM(TranslatableComponent("otm.gui.item_monitor.result_target.all_system")),
|
||||||
|
|
||||||
@ -78,7 +76,7 @@ class ItemMonitorPlayerSettings : INBTSerializable<CompoundTag> {
|
|||||||
ALL_INVENTORY(TranslatableComponent("otm.gui.item_monitor.result_target.all_inventory")),
|
ALL_INVENTORY(TranslatableComponent("otm.gui.item_monitor.result_target.all_inventory")),
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class Amount(val component: TranslatableComponent) {
|
enum class Amount(val component: Component) {
|
||||||
ONE(TranslatableComponent("otm.gui.item_monitor.amount.one")),
|
ONE(TranslatableComponent("otm.gui.item_monitor.amount.one")),
|
||||||
STACK(TranslatableComponent("otm.gui.item_monitor.amount.stack")),
|
STACK(TranslatableComponent("otm.gui.item_monitor.amount.stack")),
|
||||||
FULL(TranslatableComponent("otm.gui.item_monitor.amount.full"))
|
FULL(TranslatableComponent("otm.gui.item_monitor.amount.full"))
|
||||||
@ -251,6 +249,10 @@ class ItemMonitorBlockEntity(p_155229_: BlockPos, p_155230_: BlockState) :
|
|||||||
override fun stillValid(p_38874_: Player): Boolean {
|
override fun stillValid(p_38874_: Player): Boolean {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun quickMoveStack(p_38941_: Player, p_38942_: Int): ItemStack {
|
||||||
|
return ItemStack.EMPTY
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val craftingGridDummy = CraftingContainer(craftingMenu, 3, 3)
|
private val craftingGridDummy = CraftingContainer(craftingMenu, 3, 3)
|
||||||
|
@ -6,7 +6,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
package ru.dbotthepony.mc.otm.block.entity.storage
|
package ru.dbotthepony.mc.otm.block.entity.storage
|
||||||
|
|
||||||
import it.unimi.dsi.fastutil.longs.LongArraySet
|
|
||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerLevel
|
import net.minecraft.server.level.ServerLevel
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -14,6 +13,7 @@ import net.minecraft.world.level.block.state.BlockState
|
|||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.MatteryPoweredBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
||||||
|
@ -26,7 +26,7 @@ import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent
|
|||||||
import net.minecraft.world.effect.MobEffects
|
import net.minecraft.world.effect.MobEffects
|
||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent
|
import net.minecraftforge.event.entity.living.LivingEvent.LivingTickEvent
|
||||||
import net.minecraftforge.eventbus.api.EventPriority
|
import net.minecraftforge.eventbus.api.EventPriority
|
||||||
import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage
|
import ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage
|
||||||
import ru.dbotthepony.mc.otm.capability.extractEnergy
|
import ru.dbotthepony.mc.otm.capability.extractEnergy
|
||||||
@ -417,7 +417,7 @@ open class AndroidCapability(final override val entity: LivingEntity) : ICapabil
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onLivingTick(event: LivingUpdateEvent) {
|
fun onLivingTick(event: LivingTickEvent) {
|
||||||
val ent = event.entity
|
val ent = event.entity
|
||||||
|
|
||||||
if (ent.level.isClientSide) {
|
if (ent.level.isClientSide) {
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.ChatFormatting
|
|||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.nbt.ListTag
|
import net.minecraft.nbt.ListTag
|
||||||
import net.minecraft.nbt.Tag
|
import net.minecraft.nbt.Tag
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import net.minecraft.world.entity.Entity
|
import net.minecraft.world.entity.Entity
|
||||||
@ -15,6 +14,7 @@ import net.minecraftforge.event.entity.player.PlayerEvent.Clone
|
|||||||
import net.minecraftforge.event.entity.player.PlayerEvent.PlayerChangedDimensionEvent
|
import net.minecraftforge.event.entity.player.PlayerEvent.PlayerChangedDimensionEvent
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
import net.minecraftforge.network.PacketDistributor
|
import net.minecraftforge.network.PacketDistributor
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
@ -318,13 +318,13 @@ class AndroidCapabilityPlayer(val ply: Player) : AndroidCapability(ply) {
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onPlayerChangeDimensionEvent(event: PlayerChangedDimensionEvent) {
|
fun onPlayerChangeDimensionEvent(event: PlayerChangedDimensionEvent) {
|
||||||
event.player.getCapability(MatteryCapability.ANDROID)
|
event.entity.getCapability(MatteryCapability.ANDROID)
|
||||||
.ifPresentK { (it as AndroidCapabilityPlayer).invalidateNetworkState() }
|
.ifPresentK { (it as AndroidCapabilityPlayer).invalidateNetworkState() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onPlayerCloneEvent(event: Clone) {
|
fun onPlayerCloneEvent(event: Clone) {
|
||||||
val it = event.player.android as AndroidCapabilityPlayer? ?: return
|
val it = event.entity.android as AndroidCapabilityPlayer? ?: return
|
||||||
|
|
||||||
var resolver = event.original.getCapability(MatteryCapability.ANDROID)
|
var resolver = event.original.getCapability(MatteryCapability.ANDROID)
|
||||||
|
|
||||||
@ -342,7 +342,7 @@ class AndroidCapabilityPlayer(val ply: Player) : AndroidCapability(ply) {
|
|||||||
|
|
||||||
if (original.willBecomeAndroid && event.isWasDeath) {
|
if (original.willBecomeAndroid && event.isWasDeath) {
|
||||||
original.becomeAndroid()
|
original.becomeAndroid()
|
||||||
(event.player as? ServerPlayer)?.displayClientMessage(TranslatableComponent("otm.pill.message_finish").withStyle(ChatFormatting.DARK_RED), false)
|
(event.entity as? ServerPlayer)?.displayClientMessage(TranslatableComponent("otm.pill.message_finish").withStyle(ChatFormatting.DARK_RED), false)
|
||||||
}
|
}
|
||||||
|
|
||||||
it.deserializeNBT(original.serializeNBT())
|
it.deserializeNBT(original.serializeNBT())
|
||||||
|
@ -15,7 +15,7 @@ import net.minecraftforge.event.TickEvent.ServerTickEvent
|
|||||||
import net.minecraftforge.event.TickEvent
|
import net.minecraftforge.event.TickEvent
|
||||||
import net.minecraftforge.event.server.ServerAboutToStartEvent
|
import net.minecraftforge.event.server.ServerAboutToStartEvent
|
||||||
import net.minecraftforge.event.server.ServerStoppingEvent
|
import net.minecraftforge.event.server.ServerStoppingEvent
|
||||||
import net.minecraftforge.event.world.WorldEvent
|
import net.minecraftforge.event.level.LevelEvent
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import ru.dbotthepony.mc.otm.SERVER_IS_DYING
|
import ru.dbotthepony.mc.otm.SERVER_IS_DYING
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@ -193,7 +193,7 @@ object DrivePool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onWorldSave(event: WorldEvent.Save) {
|
fun onWorldSave(event: LevelEvent.Save) {
|
||||||
writeBacklog()
|
writeBacklog()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
186
src/main/kotlin/ru/dbotthepony/mc/otm/client/AndroidGui.kt
Normal file
186
src/main/kotlin/ru/dbotthepony/mc/otm/client/AndroidGui.kt
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.client
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.systems.RenderSystem
|
||||||
|
import net.minecraft.client.gui.components.Button
|
||||||
|
import net.minecraft.client.gui.screens.DeathScreen
|
||||||
|
import net.minecraft.client.gui.screens.InBedChatScreen
|
||||||
|
import net.minecraft.client.player.LocalPlayer
|
||||||
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import net.minecraft.world.effect.MobEffects
|
||||||
|
import net.minecraft.world.entity.LivingEntity
|
||||||
|
import net.minecraft.world.entity.player.Player
|
||||||
|
import net.minecraftforge.client.event.RenderGuiOverlayEvent
|
||||||
|
import net.minecraftforge.client.event.ScreenEvent
|
||||||
|
import net.minecraftforge.client.gui.overlay.ForgeGui
|
||||||
|
import net.minecraftforge.client.gui.overlay.GuiOverlayManager
|
||||||
|
import net.minecraftforge.eventbus.api.EventPriority
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
|
import ru.dbotthepony.mc.otm.capability.android
|
||||||
|
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
||||||
|
import ru.dbotthepony.mc.otm.ifPresentK
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
object AndroidGui {
|
||||||
|
val PLAYER_GUI_LOCATION = ResourceLocation(OverdriveThatMatters.MOD_ID, "textures/gui/player_gui.png")
|
||||||
|
|
||||||
|
private var knownButtonX = -1
|
||||||
|
private var knownButtonY = -1
|
||||||
|
private var knownButton: Button? = null
|
||||||
|
private var knownButtonScreen: InBedChatScreen? = null
|
||||||
|
|
||||||
|
private var lastState: AndroidCapabilityPlayer? = null
|
||||||
|
|
||||||
|
private val button_shaker = Random()
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
fun onScreenRender(event: ScreenEvent.Render.Pre) {
|
||||||
|
if (knownButtonScreen != null && knownButton == null) {
|
||||||
|
for (widget in knownButtonScreen!!.renderables) {
|
||||||
|
if (widget is Button) {
|
||||||
|
knownButtonX = widget.x
|
||||||
|
knownButtonY = widget.y
|
||||||
|
knownButton = widget
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (knownButton == null) {
|
||||||
|
knownButtonScreen = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (knownButtonScreen != null && knownButtonScreen !== minecraft.screen) {
|
||||||
|
knownButtonX = -1
|
||||||
|
knownButtonY = -1
|
||||||
|
knownButton = null
|
||||||
|
knownButtonScreen = null
|
||||||
|
}
|
||||||
|
|
||||||
|
if (knownButtonScreen == null || minecraft.player == null) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
minecraft.player?.getCapability(MatteryCapability.ANDROID)?.ifPresentK {
|
||||||
|
if (!(it as AndroidCapabilityPlayer).willBecomeAndroid) {
|
||||||
|
knownButton!!.x = knownButtonX
|
||||||
|
knownButton!!.y = knownButtonY
|
||||||
|
knownButtonX = -1
|
||||||
|
knownButtonY = -1
|
||||||
|
knownButton = null
|
||||||
|
knownButtonScreen = null
|
||||||
|
return@ifPresentK
|
||||||
|
}
|
||||||
|
|
||||||
|
val dispersion = (10.0 * Math.max(0, it.sleepTicks - 20) / (AndroidCapabilityPlayer.SLEEP_TICKS_LIMIT - 20)).toInt()
|
||||||
|
|
||||||
|
knownButton!!.x =
|
||||||
|
knownButtonX - dispersion / 2 + (button_shaker.nextDouble() * dispersion).toInt()
|
||||||
|
knownButton!!.y =
|
||||||
|
knownButtonY - dispersion / 2 + (button_shaker.nextDouble() * dispersion).toInt()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||||
|
fun onOpenGUIEvent(event: ScreenEvent.Opening) {
|
||||||
|
knownButtonX = -1
|
||||||
|
knownButtonY = -1
|
||||||
|
knownButton = null
|
||||||
|
knownButtonScreen = null
|
||||||
|
|
||||||
|
if (minecraft.player == null) return
|
||||||
|
|
||||||
|
val screen = event.screen
|
||||||
|
|
||||||
|
if (screen is DeathScreen) {
|
||||||
|
minecraft.player?.getCapability(MatteryCapability.ANDROID)?.ifPresentK {
|
||||||
|
if (it.isAndroid) screen.title = TranslatableComponent("otm.death_reason")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (screen is InBedChatScreen) {
|
||||||
|
knownButtonScreen = screen
|
||||||
|
|
||||||
|
minecraft.player?.getCapability(MatteryCapability.ANDROID)?.ifPresentK {
|
||||||
|
if ((it as AndroidCapabilityPlayer).willBecomeAndroid) {
|
||||||
|
knownButtonScreen = screen
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val FOOD_LEVEL_ELEMENT by lazy {
|
||||||
|
GuiOverlayManager.findOverlay(ResourceLocation("minecraft", "food_level"))
|
||||||
|
}
|
||||||
|
|
||||||
|
private val AIR_LEVEL_ELEMENT by lazy {
|
||||||
|
GuiOverlayManager.findOverlay(ResourceLocation("minecraft", "air_level"))
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent(priority = EventPriority.HIGH)
|
||||||
|
fun onLayerRenderEvent(event: RenderGuiOverlayEvent.Pre) {
|
||||||
|
if (event.overlay != FOOD_LEVEL_ELEMENT && event.overlay != AIR_LEVEL_ELEMENT) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val ply: LocalPlayer = minecraft.player ?: return
|
||||||
|
|
||||||
|
if (ply.vehicle is LivingEntity ||
|
||||||
|
minecraft.options.hideGui ||
|
||||||
|
minecraft.gameMode?.canHurtPlayer() == false ||
|
||||||
|
minecraft.getCameraEntity() !is Player
|
||||||
|
) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val lazy = ply.android
|
||||||
|
var android: AndroidCapabilityPlayer? = null
|
||||||
|
|
||||||
|
if (lazy != null) {
|
||||||
|
android = lazy as AndroidCapabilityPlayer
|
||||||
|
} else if (!ply.isAlive) {
|
||||||
|
android = lastState
|
||||||
|
}
|
||||||
|
|
||||||
|
val gui = minecraft.gui as? ForgeGui ?: return
|
||||||
|
|
||||||
|
if (android != null && android.isAndroid) {
|
||||||
|
event.isCanceled = true
|
||||||
|
lastState = android
|
||||||
|
|
||||||
|
if (event.overlay === AIR_LEVEL_ELEMENT) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val yOffset = if (ply.hasEffect(MobEffects.HUNGER)) 18 else 0
|
||||||
|
var level: Float
|
||||||
|
|
||||||
|
if (android.maxBatteryLevel.isZero) {
|
||||||
|
level = 0f
|
||||||
|
} else {
|
||||||
|
level = android.batteryLevel.div(android.maxBatteryLevel).toFloat()
|
||||||
|
|
||||||
|
if (level >= 0.98f)
|
||||||
|
level = 1f
|
||||||
|
}
|
||||||
|
|
||||||
|
gui.setupOverlayRenderState(true, false)
|
||||||
|
RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f)
|
||||||
|
RenderSystem.setShaderTexture(0, PLAYER_GUI_LOCATION)
|
||||||
|
|
||||||
|
val width = event.window.guiScaledWidth
|
||||||
|
val height = event.window.guiScaledHeight
|
||||||
|
val left = width / 2 + 10
|
||||||
|
val top: Int = height - gui.rightHeight
|
||||||
|
gui.rightHeight += 10
|
||||||
|
|
||||||
|
// Stack, x, y, blitOffset?, (float) image_x, (float) image_y, rect_x, rect_y, total_image_width, total_image_height
|
||||||
|
// Stack, x, y, image_x, image_y, rect_x, rect_y
|
||||||
|
gui.blit(event.poseStack, left, top, 0, yOffset, 80, 9)
|
||||||
|
val leftPadding = Math.ceil((level * 79f - 0.5f).toDouble()).toInt()
|
||||||
|
|
||||||
|
gui.blit(event.poseStack, left + 79 - leftPadding, top, 79 - leftPadding, yOffset + 9, leftPadding, 9)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,7 @@ import ru.dbotthepony.mc.otm.registry.AndroidFeatures
|
|||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
fun inputEvent(event: MovementInputUpdateEvent) {
|
fun inputEvent(event: MovementInputUpdateEvent) {
|
||||||
val ply = event.player
|
val ply = event.entity
|
||||||
val input = event.input
|
val input = event.input
|
||||||
|
|
||||||
val cap = ply.android as? AndroidCapabilityPlayer ?: return
|
val cap = ply.android as? AndroidCapabilityPlayer ?: return
|
||||||
|
@ -9,9 +9,9 @@ import net.minecraft.client.renderer.MultiBufferSource
|
|||||||
import net.minecraft.client.renderer.blockentity.BeaconRenderer
|
import net.minecraft.client.renderer.blockentity.BeaconRenderer
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.phys.Vec3
|
import net.minecraft.world.phys.Vec3
|
||||||
import org.lwjgl.opengl.GL30
|
import org.lwjgl.opengl.GL30
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.GravitationStabilizerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.GravitationStabilizerBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.blackhole.BlackHoleBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
@ -137,8 +137,9 @@ class BlackHoleRenderer(private val context: BlockEntityRendererProvider.Context
|
|||||||
|
|
||||||
poseStack.popPose()
|
poseStack.popPose()
|
||||||
|
|
||||||
builder.end()
|
// builder.end()
|
||||||
BufferUploader.end(builder)
|
// BufferUploader.end(builder)
|
||||||
|
BufferUploader.draw(builder.end())
|
||||||
RenderSystem.enableCull()
|
RenderSystem.enableCull()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import net.minecraft.client.renderer.MultiBufferSource
|
|||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.EnergyCounterBlock
|
import ru.dbotthepony.mc.otm.block.EnergyCounterBlock
|
||||||
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.EnergyCounterBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.core.RGBAColor
|
import ru.dbotthepony.mc.otm.core.RGBAColor
|
||||||
|
@ -10,7 +10,7 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRenderer
|
|||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture
|
import net.minecraft.client.renderer.texture.OverlayTexture
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.BlackHoleBlock
|
import ru.dbotthepony.mc.otm.block.BlackHoleBlock
|
||||||
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
import ru.dbotthepony.mc.otm.block.RotatableMatteryBlock
|
||||||
import ru.dbotthepony.mc.otm.block.entity.GravitationStabilizerBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.GravitationStabilizerBlockEntity
|
||||||
|
@ -6,9 +6,9 @@ import net.minecraft.ChatFormatting
|
|||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.resources.sounds.SimpleSoundInstance
|
import net.minecraft.client.resources.sounds.SimpleSoundInstance
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.sounds.SoundEvents
|
import net.minecraft.sounds.SoundEvents
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||||
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
|
import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
|
||||||
|
@ -2,9 +2,9 @@ package ru.dbotthepony.mc.otm.client.screen
|
|||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||||
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
||||||
import ru.dbotthepony.mc.otm.item.PortableCondensationDriveItem
|
import ru.dbotthepony.mc.otm.item.PortableCondensationDriveItem
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||||
import ru.dbotthepony.mc.otm.core.formatPower
|
import ru.dbotthepony.mc.otm.core.formatPower
|
||||||
import ru.dbotthepony.mc.otm.menu.EnergyCounterMenu
|
import ru.dbotthepony.mc.otm.menu.EnergyCounterMenu
|
||||||
|
@ -4,11 +4,11 @@ import com.mojang.blaze3d.systems.RenderSystem
|
|||||||
import com.mojang.blaze3d.vertex.PoseStack
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
import org.lwjgl.opengl.GL11
|
import org.lwjgl.opengl.GL11
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.block.entity.storage.ItemMonitorPlayerSettings
|
import ru.dbotthepony.mc.otm.block.entity.storage.ItemMonitorPlayerSettings
|
||||||
import ru.dbotthepony.mc.otm.client.render.SkinGrid
|
import ru.dbotthepony.mc.otm.client.render.SkinGrid
|
||||||
import ru.dbotthepony.mc.otm.client.render.UVWindingOrder
|
import ru.dbotthepony.mc.otm.client.render.UVWindingOrder
|
||||||
@ -16,11 +16,9 @@ import ru.dbotthepony.mc.otm.client.screen.panels.*
|
|||||||
import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
|
import ru.dbotthepony.mc.otm.client.screen.widget.ProgressGaugePanel
|
||||||
import ru.dbotthepony.mc.otm.core.equalDownDivision
|
import ru.dbotthepony.mc.otm.core.equalDownDivision
|
||||||
import ru.dbotthepony.mc.otm.core.formatReadableNumber
|
import ru.dbotthepony.mc.otm.core.formatReadableNumber
|
||||||
import ru.dbotthepony.mc.otm.core.formatSi
|
|
||||||
import ru.dbotthepony.mc.otm.core.formatSiComponent
|
import ru.dbotthepony.mc.otm.core.formatSiComponent
|
||||||
import ru.dbotthepony.mc.otm.menu.ItemMonitorMenu
|
import ru.dbotthepony.mc.otm.menu.ItemMonitorMenu
|
||||||
import ru.dbotthepony.mc.otm.storage.ITEM_STORAGE
|
import ru.dbotthepony.mc.otm.storage.ITEM_STORAGE
|
||||||
import java.text.NumberFormat
|
|
||||||
|
|
||||||
class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Component) :
|
class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Component) :
|
||||||
MatteryScreen<ItemMonitorMenu>(menu, inventory, title) {
|
MatteryScreen<ItemMonitorMenu>(menu, inventory, title) {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.ButtonPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.ButtonPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
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.panels.SlotPanel
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.CheckBoxLabelInputPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.CheckBoxLabelInputPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FilterSlotPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.FilterSlotPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.CheckBoxLabelInputPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.CheckBoxLabelInputPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FilterSlotPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.FilterSlotPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.CheckBoxLabelInputPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.CheckBoxLabelInputPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FilterSlotPanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.FilterSlotPanel
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen
|
package ru.dbotthepony.mc.otm.client.screen
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.player.Inventory
|
import net.minecraft.world.entity.player.Inventory
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
import ru.dbotthepony.mc.otm.client.screen.panels.*
|
||||||
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
import ru.dbotthepony.mc.otm.client.screen.widget.PowerGaugePanel
|
||||||
import ru.dbotthepony.mc.otm.core.formatPower
|
import ru.dbotthepony.mc.otm.core.formatPower
|
||||||
|
|
||||||
import ru.dbotthepony.mc.otm.menu.StorageImporterMenu
|
|
||||||
import ru.dbotthepony.mc.otm.menu.StoragePowerSupplierMenu
|
import ru.dbotthepony.mc.otm.menu.StoragePowerSupplierMenu
|
||||||
|
|
||||||
class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inventory, title: Component) :
|
class StoragePowerSupplierScreen(menu: StoragePowerSupplierMenu, inventory: Inventory, title: Component) :
|
||||||
|
@ -2,11 +2,10 @@ package ru.dbotthepony.mc.otm.client.screen.panels
|
|||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem
|
import com.mojang.blaze3d.systems.RenderSystem
|
||||||
import com.mojang.blaze3d.vertex.PoseStack
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
import net.minecraft.client.Minecraft
|
|
||||||
import net.minecraft.client.renderer.GameRenderer
|
import net.minecraft.client.renderer.GameRenderer
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraftforge.client.RenderProperties
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions
|
||||||
import org.lwjgl.opengl.GL11
|
import org.lwjgl.opengl.GL11
|
||||||
import ru.dbotthepony.mc.otm.client.minecraft
|
import ru.dbotthepony.mc.otm.client.minecraft
|
||||||
import ru.dbotthepony.mc.otm.core.RGBAColor
|
import ru.dbotthepony.mc.otm.core.RGBAColor
|
||||||
@ -91,7 +90,8 @@ abstract class AbstractSlotPanel @JvmOverloads constructor(
|
|||||||
val itemstack = getItemStack()
|
val itemstack = getItemStack()
|
||||||
|
|
||||||
if (!itemstack.isEmpty) {
|
if (!itemstack.isEmpty) {
|
||||||
val font = RenderProperties.get(itemstack).getFont(itemstack)
|
// val font = RenderProperties.get(itemstack).getFont(itemstack)
|
||||||
|
val font = (itemstack.item.renderPropertiesInternal as? IClientItemExtensions)?.getFont(itemstack, IClientItemExtensions.FontContext.TOOLTIP)
|
||||||
|
|
||||||
// TODO: WHERE????????????
|
// TODO: WHERE????????????
|
||||||
// GuiUtils.preItemToolTip(itemstack);
|
// GuiUtils.preItemToolTip(itemstack);
|
||||||
@ -100,7 +100,8 @@ abstract class AbstractSlotPanel @JvmOverloads constructor(
|
|||||||
getItemStackTooltip(itemstack),
|
getItemStackTooltip(itemstack),
|
||||||
mouse_x.toInt(),
|
mouse_x.toInt(),
|
||||||
mouse_y.toInt(),
|
mouse_y.toInt(),
|
||||||
font ?: screen.font
|
font ?: screen.font,
|
||||||
|
itemstack
|
||||||
)
|
)
|
||||||
// GuiUtils.postItemToolTip();
|
// GuiUtils.postItemToolTip();
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ import net.minecraft.client.gui.components.Button
|
|||||||
import net.minecraft.client.gui.components.Button.OnPress
|
import net.minecraft.client.gui.components.Button.OnPress
|
||||||
import net.minecraft.client.resources.sounds.SimpleSoundInstance
|
import net.minecraft.client.resources.sounds.SimpleSoundInstance
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TextComponent
|
|
||||||
import net.minecraft.sounds.SoundEvents
|
import net.minecraft.sounds.SoundEvents
|
||||||
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
import ru.dbotthepony.mc.otm.client.minecraft
|
import ru.dbotthepony.mc.otm.client.minecraft
|
||||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||||
import ru.dbotthepony.mc.otm.client.render.SkinGrid
|
import ru.dbotthepony.mc.otm.client.render.SkinGrid
|
||||||
|
@ -2,7 +2,7 @@ package ru.dbotthepony.mc.otm.client.screen.panels
|
|||||||
|
|
||||||
import net.minecraft.client.gui.components.EditBox
|
import net.minecraft.client.gui.components.EditBox
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TextComponent
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||||
|
|
||||||
open class EditBoxPanel(
|
open class EditBoxPanel(
|
||||||
|
@ -2,7 +2,7 @@ package ru.dbotthepony.mc.otm.client.screen.panels
|
|||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TextComponent
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
import ru.dbotthepony.mc.otm.core.RGBAColor
|
import ru.dbotthepony.mc.otm.core.RGBAColor
|
||||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package ru.dbotthepony.mc.otm.client.screen.panels
|
package ru.dbotthepony.mc.otm.client.screen.panels
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TextComponent
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||||
import ru.dbotthepony.mc.otm.menu.widget.NumberPlayerInputWidget
|
import ru.dbotthepony.mc.otm.menu.widget.NumberPlayerInputWidget
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
|
@ -4,7 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem
|
|||||||
import com.mojang.blaze3d.vertex.PoseStack
|
import com.mojang.blaze3d.vertex.PoseStack
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.render.RenderHelper
|
import ru.dbotthepony.mc.otm.client.render.RenderHelper
|
||||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||||
|
@ -2,7 +2,7 @@ package ru.dbotthepony.mc.otm.compat.jei
|
|||||||
|
|
||||||
import mezz.jei.api.IModPlugin
|
import mezz.jei.api.IModPlugin
|
||||||
import mezz.jei.api.JeiPlugin
|
import mezz.jei.api.JeiPlugin
|
||||||
import mezz.jei.api.constants.VanillaRecipeCategoryUid
|
import mezz.jei.api.constants.RecipeTypes
|
||||||
import mezz.jei.api.registration.IRecipeCatalystRegistration
|
import mezz.jei.api.registration.IRecipeCatalystRegistration
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
@ -20,6 +20,6 @@ class JEIPlugin : IModPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun registerRecipeCatalysts(registration: IRecipeCatalystRegistration) {
|
override fun registerRecipeCatalysts(registration: IRecipeCatalystRegistration) {
|
||||||
registration.addRecipeCatalyst(ItemStack(MBlocks.CHEMICAL_GENERATOR), VanillaRecipeCategoryUid.FUEL)
|
registration.addRecipeCatalyst(ItemStack(MBlocks.CHEMICAL_GENERATOR), RecipeTypes.FUELING)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,9 @@ package ru.dbotthepony.mc.otm.compat.mekanism
|
|||||||
|
|
||||||
import mekanism.common.registries.MekanismItems
|
import mekanism.common.registries.MekanismItems
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.isMekanismLoaded
|
import ru.dbotthepony.mc.otm.capability.isMekanismLoaded
|
||||||
|
|
||||||
private val BLACKHOLE_IMMUNITY = TranslatableComponent("otm.item.blackhole_immunity").withStyle(ChatFormatting.DARK_GRAY)
|
private val BLACKHOLE_IMMUNITY = TranslatableComponent("otm.item.blackhole_immunity").withStyle(ChatFormatting.DARK_GRAY)
|
||||||
|
@ -2,8 +2,8 @@ package ru.dbotthepony.mc.otm.core
|
|||||||
|
|
||||||
import com.google.common.collect.ImmutableList
|
import com.google.common.collect.ImmutableList
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TextComponent
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import java.math.BigDecimal
|
import java.math.BigDecimal
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
|
|
||||||
|
@ -4,27 +4,47 @@ import com.google.common.collect.ImmutableList
|
|||||||
import com.google.gson.JsonArray
|
import com.google.gson.JsonArray
|
||||||
import com.google.gson.JsonObject
|
import com.google.gson.JsonObject
|
||||||
import com.google.gson.JsonParseException
|
import com.google.gson.JsonParseException
|
||||||
|
import com.mojang.serialization.Codec
|
||||||
|
import com.mojang.serialization.DataResult
|
||||||
|
import com.mojang.serialization.DynamicOps
|
||||||
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.level.storage.loot.Deserializers
|
import net.minecraft.world.level.storage.loot.Deserializers
|
||||||
import net.minecraft.world.level.storage.loot.LootContext
|
import net.minecraft.world.level.storage.loot.LootContext
|
||||||
import net.minecraft.world.level.storage.loot.LootPool
|
import net.minecraft.world.level.storage.loot.LootPool
|
||||||
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition
|
import net.minecraft.world.level.storage.loot.predicates.LootItemCondition
|
||||||
import net.minecraftforge.common.loot.GlobalLootModifierSerializer
|
import net.minecraftforge.common.loot.IGlobalLootModifier
|
||||||
import net.minecraftforge.common.loot.LootModifier
|
import net.minecraftforge.common.loot.LootModifier
|
||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
|
|
||||||
|
|
||||||
class LootTableAppender(conditions: Array<out LootItemCondition>, private vararg val pools: LootPool) : LootModifier(conditions) {
|
class LootTableAppender(conditions: Array<out LootItemCondition>, private vararg val pools: LootPool) : LootModifier(conditions) {
|
||||||
override fun doApply(generatedLoot: MutableList<ItemStack>, context: LootContext): MutableList<ItemStack> {
|
override fun doApply(generatedLoot: ObjectArrayList<ItemStack>, context: LootContext): ObjectArrayList<ItemStack> {
|
||||||
pools.forEach { it.addRandomItems(generatedLoot::add, context) }
|
pools.forEach { it.addRandomItems(generatedLoot::add, context) }
|
||||||
return generatedLoot
|
return generatedLoot
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object : GlobalLootModifierSerializer<LootTableAppender>() {
|
override fun codec(): Codec<out IGlobalLootModifier> {
|
||||||
|
return Companion
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object : Codec<LootTableAppender> {
|
||||||
|
override fun <T : Any?> encode(input: LootTableAppender?, ops: DynamicOps<T>?, prefix: T): DataResult<T> {
|
||||||
|
return DataResult.error("NYI")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <T : Any?> decode(
|
||||||
|
ops: DynamicOps<T>?,
|
||||||
|
input: T
|
||||||
|
): DataResult<com.mojang.datafixers.util.Pair<LootTableAppender, T>> {
|
||||||
|
return DataResult.error("NYI")
|
||||||
|
}
|
||||||
|
|
||||||
private val lootPoolGson = Deserializers.createLootTableSerializer().create()
|
private val lootPoolGson = Deserializers.createLootTableSerializer().create()
|
||||||
|
|
||||||
override fun read(
|
/*override fun read(
|
||||||
location: ResourceLocation,
|
location: ResourceLocation,
|
||||||
`object`: JsonObject,
|
`object`: JsonObject,
|
||||||
ailootcondition: Array<out LootItemCondition>
|
ailootcondition: Array<out LootItemCondition>
|
||||||
@ -41,11 +61,7 @@ class LootTableAppender(conditions: Array<out LootItemCondition>, private vararg
|
|||||||
val build = makeConditions(instance.conditions)
|
val build = makeConditions(instance.conditions)
|
||||||
build.add("pools", lootPoolGson.toJsonTree(instance.pools))
|
build.add("pools", lootPoolGson.toJsonTree(instance.pools))
|
||||||
return build
|
return build
|
||||||
}
|
}*/
|
||||||
|
|
||||||
init {
|
|
||||||
registryName = ResourceLocation(OverdriveThatMatters.MOD_ID, "loot_appender")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,7 +70,7 @@ class LootTableBasicAppender(conditions: Array<out LootItemCondition>, items: Li
|
|||||||
|
|
||||||
constructor(conditions: Array<out LootItemCondition>, vararg items: Pair<ItemStack, Double>) : this(conditions, items.toList())
|
constructor(conditions: Array<out LootItemCondition>, vararg items: Pair<ItemStack, Double>) : this(conditions, items.toList())
|
||||||
|
|
||||||
override fun doApply(generatedLoot: MutableList<ItemStack>, context: LootContext): MutableList<ItemStack> {
|
override fun doApply(generatedLoot: ObjectArrayList<ItemStack>, context: LootContext): ObjectArrayList<ItemStack> {
|
||||||
for ((item, chance) in items) {
|
for ((item, chance) in items) {
|
||||||
if (context.random.nextDouble() <= chance) {
|
if (context.random.nextDouble() <= chance) {
|
||||||
generatedLoot.add(item.copy())
|
generatedLoot.add(item.copy())
|
||||||
@ -64,8 +80,23 @@ class LootTableBasicAppender(conditions: Array<out LootItemCondition>, items: Li
|
|||||||
return generatedLoot
|
return generatedLoot
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object : GlobalLootModifierSerializer<LootTableBasicAppender>() {
|
override fun codec(): Codec<out IGlobalLootModifier> {
|
||||||
override fun read(
|
return Companion
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object : Codec<LootTableBasicAppender> {
|
||||||
|
override fun <T : Any?> encode(input: LootTableBasicAppender?, ops: DynamicOps<T>?, prefix: T): DataResult<T> {
|
||||||
|
return DataResult.error("NYI")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <T : Any?> decode(
|
||||||
|
ops: DynamicOps<T>?,
|
||||||
|
input: T
|
||||||
|
): DataResult<com.mojang.datafixers.util.Pair<LootTableBasicAppender, T>> {
|
||||||
|
return DataResult.error("NYI")
|
||||||
|
}
|
||||||
|
|
||||||
|
/*override fun read(
|
||||||
location: ResourceLocation,
|
location: ResourceLocation,
|
||||||
obj: JsonObject,
|
obj: JsonObject,
|
||||||
ailootcondition: Array<out LootItemCondition>
|
ailootcondition: Array<out LootItemCondition>
|
||||||
@ -108,10 +139,6 @@ class LootTableBasicAppender(conditions: Array<out LootItemCondition>, items: Li
|
|||||||
obj.add("entries", listing)
|
obj.add("entries", listing)
|
||||||
|
|
||||||
return obj
|
return obj
|
||||||
}
|
}*/
|
||||||
|
|
||||||
init {
|
|
||||||
registryName = ResourceLocation(OverdriveThatMatters.MOD_ID, "loot_appender_basic")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ package ru.dbotthepony.mc.otm.item
|
|||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Rarity
|
import net.minecraft.world.item.Rarity
|
||||||
@ -11,6 +10,7 @@ import net.minecraft.world.item.TooltipFlag
|
|||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.EnergyCapacitorItem
|
import ru.dbotthepony.mc.otm.capability.EnergyCapacitorItem
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||||
|
@ -6,7 +6,6 @@ import net.minecraft.ChatFormatting
|
|||||||
import net.minecraft.core.BlockPos
|
import net.minecraft.core.BlockPos
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.entity.EquipmentSlot
|
import net.minecraft.world.entity.EquipmentSlot
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.entity.LivingEntity
|
||||||
import net.minecraft.world.entity.ai.attributes.Attribute
|
import net.minecraft.world.entity.ai.attributes.Attribute
|
||||||
|
@ -3,12 +3,12 @@ package ru.dbotthepony.mc.otm.item
|
|||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.Rarity
|
import net.minecraft.world.item.Rarity
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
|
|
||||||
class GravitationalDisruptorItem :
|
class GravitationalDisruptorItem :
|
||||||
Item(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1).rarity(Rarity.EPIC)) {
|
Item(Properties().tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB).stacksTo(1).rarity(Rarity.EPIC)) {
|
||||||
|
@ -5,7 +5,6 @@ import net.minecraft.MethodsReturnNonnullByDefault
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Rarity
|
import net.minecraft.world.item.Rarity
|
||||||
@ -15,6 +14,7 @@ import net.minecraftforge.common.capabilities.Capability
|
|||||||
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler
|
import ru.dbotthepony.mc.otm.capability.matter.IMatterHandler
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.MatterDirection
|
import ru.dbotthepony.mc.otm.capability.matter.MatterDirection
|
||||||
|
@ -2,12 +2,12 @@ package ru.dbotthepony.mc.otm.item
|
|||||||
|
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||||
import ru.dbotthepony.mc.otm.matter.IMatterItem
|
import ru.dbotthepony.mc.otm.matter.IMatterItem
|
||||||
import ru.dbotthepony.mc.otm.matter.MatterTuple
|
import ru.dbotthepony.mc.otm.matter.MatterTuple
|
||||||
|
@ -6,7 +6,6 @@ import net.minecraft.nbt.CompoundTag
|
|||||||
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraft.nbt.ListTag
|
import net.minecraft.nbt.ListTag
|
||||||
@ -15,6 +14,7 @@ import net.minecraft.network.chat.Component
|
|||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.common.capabilities.Capability
|
import net.minecraftforge.common.capabilities.Capability
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.matter.*
|
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||||
import ru.dbotthepony.mc.otm.ifHas
|
import ru.dbotthepony.mc.otm.ifHas
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.item
|
|||||||
|
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import net.minecraft.world.InteractionHand
|
import net.minecraft.world.InteractionHand
|
||||||
import net.minecraft.world.InteractionResultHolder
|
import net.minecraft.world.InteractionResultHolder
|
||||||
@ -14,6 +13,7 @@ import net.minecraft.world.item.*
|
|||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.common.util.FakePlayer
|
import net.minecraftforge.common.util.FakePlayer
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
import ru.dbotthepony.mc.otm.capability.android.AndroidCapabilityPlayer
|
||||||
|
|
||||||
|
@ -12,10 +12,7 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
|||||||
import net.minecraft.world.item.TooltipFlag
|
import net.minecraft.world.item.TooltipFlag
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.ListTag
|
|
||||||
import net.minecraft.nbt.Tag
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TextComponent
|
|
||||||
import net.minecraft.stats.Stats
|
import net.minecraft.stats.Stats
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
@ -23,6 +20,7 @@ import net.minecraftforge.common.capabilities.Capability
|
|||||||
import net.minecraftforge.event.ForgeEventFactory
|
import net.minecraftforge.event.ForgeEventFactory
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
import net.minecraftforge.event.entity.player.EntityItemPickupEvent
|
import net.minecraftforge.event.entity.player.EntityItemPickupEvent
|
||||||
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.drive.DrivePool
|
import ru.dbotthepony.mc.otm.capability.drive.DrivePool
|
||||||
import ru.dbotthepony.mc.otm.container.ItemFilter
|
import ru.dbotthepony.mc.otm.container.ItemFilter
|
||||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||||
@ -105,14 +103,14 @@ class PortableCondensationDriveItem(capacity: Int) :
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
fun onPickupEvent(event: EntityItemPickupEvent) {
|
fun onPickupEvent(event: EntityItemPickupEvent) {
|
||||||
if (event.item.owner != null && event.item.owner != event.player.uuid && event.item.age < 200) {
|
if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var amount = event.item.item.count
|
var amount = event.item.item.count
|
||||||
val item = event.item.item.item
|
val item = event.item.item.item
|
||||||
|
|
||||||
for (stack in event.player.inventory.items) {
|
for (stack in event.entity.inventory.items) {
|
||||||
val drive = stack.item
|
val drive = stack.item
|
||||||
|
|
||||||
if (drive is PortableCondensationDriveItem) {
|
if (drive is PortableCondensationDriveItem) {
|
||||||
@ -131,21 +129,21 @@ class PortableCondensationDriveItem(capacity: Int) :
|
|||||||
|
|
||||||
copy.count -= remaining.count
|
copy.count -= remaining.count
|
||||||
event.isCanceled = true
|
event.isCanceled = true
|
||||||
ForgeEventFactory.firePlayerItemPickupEvent(event.player, event.item, copy)
|
ForgeEventFactory.firePlayerItemPickupEvent(event.entity, event.item, copy)
|
||||||
|
|
||||||
if (remaining.count > 0) {
|
if (remaining.count > 0) {
|
||||||
event.item.item.count = remaining.count
|
event.item.item.count = remaining.count
|
||||||
event.player.take(event.item, amount - remaining.count)
|
event.entity.take(event.item, amount - remaining.count)
|
||||||
|
|
||||||
event.player.awardStat(Stats.ITEM_PICKED_UP.get(item), amount - remaining.count)
|
event.entity.awardStat(Stats.ITEM_PICKED_UP.get(item), amount - remaining.count)
|
||||||
event.player.onItemPickup(event.item)
|
event.entity.onItemPickup(event.item)
|
||||||
|
|
||||||
amount = remaining.count
|
amount = remaining.count
|
||||||
} else {
|
} else {
|
||||||
event.player.take(event.item, amount)
|
event.entity.take(event.item, amount)
|
||||||
|
|
||||||
event.player.awardStat(Stats.ITEM_PICKED_UP.get(item), amount)
|
event.entity.awardStat(Stats.ITEM_PICKED_UP.get(item), amount)
|
||||||
event.player.onItemPickup(event.item)
|
event.entity.onItemPickup(event.item)
|
||||||
|
|
||||||
event.item.discard()
|
event.item.discard()
|
||||||
doBreak = true
|
doBreak = true
|
||||||
|
@ -3,15 +3,16 @@ package ru.dbotthepony.mc.otm.item
|
|||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.client.model.HumanoidModel
|
import net.minecraft.client.model.HumanoidModel
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.sounds.SoundEvent
|
import net.minecraft.sounds.SoundEvent
|
||||||
|
import net.minecraft.sounds.SoundEvents
|
||||||
import net.minecraft.world.entity.EquipmentSlot
|
import net.minecraft.world.entity.EquipmentSlot
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.entity.LivingEntity
|
||||||
import net.minecraft.world.item.*
|
import net.minecraft.world.item.*
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.client.IItemRenderProperties
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel
|
import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
|
|
||||||
@ -19,7 +20,7 @@ private object GravitationStabilizerArmorMaterial : ArmorMaterial {
|
|||||||
override fun getDurabilityForSlot(p_40410_: EquipmentSlot) = 0
|
override fun getDurabilityForSlot(p_40410_: EquipmentSlot) = 0
|
||||||
override fun getDefenseForSlot(p_40411_: EquipmentSlot) = 3
|
override fun getDefenseForSlot(p_40411_: EquipmentSlot) = 3
|
||||||
override fun getEnchantmentValue() = 0
|
override fun getEnchantmentValue() = 0
|
||||||
override fun getEquipSound(): SoundEvent? = null
|
override fun getEquipSound(): SoundEvent = SoundEvents.ARMOR_EQUIP_GENERIC
|
||||||
override fun getRepairIngredient(): Ingredient = Ingredient.EMPTY
|
override fun getRepairIngredient(): Ingredient = Ingredient.EMPTY
|
||||||
|
|
||||||
const val ID = "${OverdriveThatMatters.MOD_ID}:gravitation_stabilizer"
|
const val ID = "${OverdriveThatMatters.MOD_ID}:gravitation_stabilizer"
|
||||||
@ -29,8 +30,8 @@ private object GravitationStabilizerArmorMaterial : ArmorMaterial {
|
|||||||
override fun getKnockbackResistance() = 0f
|
override fun getKnockbackResistance() = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
private object GravitationStabilizerArmorRenderProperties : IItemRenderProperties {
|
private object GravitationStabilizerArmorRenderProperties : IClientItemExtensions {
|
||||||
override fun getArmorModel(
|
override fun getHumanoidArmorModel(
|
||||||
entityLiving: LivingEntity,
|
entityLiving: LivingEntity,
|
||||||
itemStack: ItemStack,
|
itemStack: ItemStack,
|
||||||
armorSlot: EquipmentSlot,
|
armorSlot: EquipmentSlot,
|
||||||
@ -41,7 +42,7 @@ private object GravitationStabilizerArmorRenderProperties : IItemRenderPropertie
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ItemPortableGravitationStabilizer : ArmorItem(GravitationStabilizerArmorMaterial, EquipmentSlot.CHEST, Properties().stacksTo(1).rarity(Rarity.RARE).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) {
|
class ItemPortableGravitationStabilizer : ArmorItem(GravitationStabilizerArmorMaterial, EquipmentSlot.CHEST, Properties().stacksTo(1).rarity(Rarity.RARE).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) {
|
||||||
override fun initializeClient(consumer: Consumer<IItemRenderProperties>) {
|
override fun initializeClient(consumer: Consumer<IClientItemExtensions>) {
|
||||||
super.initializeClient(consumer)
|
super.initializeClient(consumer)
|
||||||
consumer.accept(GravitationStabilizerArmorRenderProperties)
|
consumer.accept(GravitationStabilizerArmorRenderProperties)
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import net.minecraft.world.item.ArmorMaterial
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Rarity
|
import net.minecraft.world.item.Rarity
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
import net.minecraftforge.client.IItemRenderProperties
|
import net.minecraftforge.client.extensions.common.IClientItemExtensions
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel
|
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel
|
||||||
import ru.dbotthepony.mc.otm.registry.MItemTags
|
import ru.dbotthepony.mc.otm.registry.MItemTags
|
||||||
@ -41,7 +41,7 @@ private object TritaniumArmorMaterial : ArmorMaterial {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getEnchantmentValue() = 9
|
override fun getEnchantmentValue() = 9
|
||||||
override fun getEquipSound(): SoundEvent = SoundEvents.ARMOR_EQUIP_GENERIC
|
override fun getEquipSound(): SoundEvent = SoundEvents.ARMOR_EQUIP_IRON
|
||||||
override fun getRepairIngredient(): Ingredient = Ingredient.of(MItemTags.INGOT_TRITANIUM)
|
override fun getRepairIngredient(): Ingredient = Ingredient.of(MItemTags.INGOT_TRITANIUM)
|
||||||
|
|
||||||
const val ID = "${OverdriveThatMatters.MOD_ID}:tritanium_armor"
|
const val ID = "${OverdriveThatMatters.MOD_ID}:tritanium_armor"
|
||||||
@ -51,8 +51,8 @@ private object TritaniumArmorMaterial : ArmorMaterial {
|
|||||||
override fun getKnockbackResistance() = 0.2f
|
override fun getKnockbackResistance() = 0.2f
|
||||||
}
|
}
|
||||||
|
|
||||||
private object TritaniumArmorRenderProperties : IItemRenderProperties {
|
private object TritaniumArmorRenderProperties : IClientItemExtensions {
|
||||||
override fun getArmorModel(
|
override fun getHumanoidArmorModel(
|
||||||
entityLiving: LivingEntity,
|
entityLiving: LivingEntity,
|
||||||
itemStack: ItemStack,
|
itemStack: ItemStack,
|
||||||
armorSlot: EquipmentSlot,
|
armorSlot: EquipmentSlot,
|
||||||
@ -67,7 +67,7 @@ private object TritaniumArmorRenderProperties : IItemRenderProperties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ItemTritaniumArmor(slot: EquipmentSlot) : ArmorItem(TritaniumArmorMaterial, slot, Properties().stacksTo(1).rarity(Rarity.RARE).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) {
|
class ItemTritaniumArmor(slot: EquipmentSlot) : ArmorItem(TritaniumArmorMaterial, slot, Properties().stacksTo(1).rarity(Rarity.RARE).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB)) {
|
||||||
override fun initializeClient(consumer: Consumer<IItemRenderProperties>) {
|
override fun initializeClient(consumer: Consumer<IClientItemExtensions>) {
|
||||||
super.initializeClient(consumer)
|
super.initializeClient(consumer)
|
||||||
consumer.accept(TritaniumArmorRenderProperties)
|
consumer.accept(TritaniumArmorRenderProperties)
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,14 @@ import net.minecraft.world.item.Item
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Rarity
|
import net.minecraft.world.item.Rarity
|
||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraftforge.client.event.EntityViewRenderEvent
|
|
||||||
import net.minecraftforge.client.event.InputEvent
|
import net.minecraftforge.client.event.InputEvent
|
||||||
import net.minecraftforge.client.event.RenderHandEvent
|
import net.minecraftforge.client.event.RenderHandEvent
|
||||||
import net.minecraftforge.client.event.RenderPlayerEvent
|
import net.minecraftforge.client.event.RenderPlayerEvent
|
||||||
|
import net.minecraftforge.client.event.ViewportEvent
|
||||||
import net.minecraftforge.event.TickEvent
|
import net.minecraftforge.event.TickEvent
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||||
import net.minecraftforge.fml.LogicalSide
|
import net.minecraftforge.fml.LogicalSide
|
||||||
import net.minecraftforge.network.NetworkEvent
|
import net.minecraftforge.network.NetworkEvent
|
||||||
import org.lwjgl.opengl.GL30
|
|
||||||
import ru.dbotthepony.mc.otm.*
|
import ru.dbotthepony.mc.otm.*
|
||||||
import ru.dbotthepony.mc.otm.capability.matteryEnergy
|
import ru.dbotthepony.mc.otm.capability.matteryEnergy
|
||||||
import ru.dbotthepony.mc.otm.client.font
|
import ru.dbotthepony.mc.otm.client.font
|
||||||
@ -280,7 +279,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
fun fovHook(event: EntityViewRenderEvent.FieldOfView) {
|
fun fovHook(event: ViewportEvent.ComputeFov) {
|
||||||
val player = event.camera.entity as? Player ?: return
|
val player = event.camera.entity as? Player ?: return
|
||||||
|
|
||||||
val it = (player.mainHandItem.item as? AbstractWeaponItem<*>)
|
val it = (player.mainHandItem.item as? AbstractWeaponItem<*>)
|
||||||
@ -293,7 +292,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
val interp = linearInterpolation(
|
val interp = linearInterpolation(
|
||||||
it.ironSightsProgress(
|
it.ironSightsProgress(
|
||||||
player.mainHandItem,
|
player.mainHandItem,
|
||||||
event.partialTicks
|
event.partialTick
|
||||||
) * 1.7 - 0.6, 1.0, it.ironSightsFOV
|
) * 1.7 - 0.6, 1.0, it.ironSightsFOV
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -314,7 +313,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
fun playerRenderHook(event: RenderPlayerEvent.Pre) {
|
fun playerRenderHook(event: RenderPlayerEvent.Pre) {
|
||||||
if (event.player.mainHandItem.item is AbstractWeaponItem<*> && event.player.offhandItem.isEmpty) {
|
if (event.entity.mainHandItem.item is AbstractWeaponItem<*> && event.entity.offhandItem.isEmpty) {
|
||||||
event.renderer.model.rightArmPose = HumanoidModel.ArmPose.BOW_AND_ARROW
|
event.renderer.model.rightArmPose = HumanoidModel.ArmPose.BOW_AND_ARROW
|
||||||
event.renderer.model.leftArmPose = HumanoidModel.ArmPose.EMPTY
|
event.renderer.model.leftArmPose = HumanoidModel.ArmPose.EMPTY
|
||||||
}
|
}
|
||||||
@ -322,7 +321,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
fun clickHook(event: InputEvent.ClickInputEvent) {
|
fun clickHook(event: InputEvent.InteractionKeyMappingTriggered) {
|
||||||
val player = Minecraft.getInstance().player!!
|
val player = Minecraft.getInstance().player!!
|
||||||
|
|
||||||
if (player.mainHandItem.item is AbstractWeaponItem<*> && player.offhandItem.isEmpty && event.isAttack) {
|
if (player.mainHandItem.item is AbstractWeaponItem<*> && player.offhandItem.isEmpty && event.isAttack) {
|
||||||
@ -378,11 +377,11 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
|
|
||||||
val player = Minecraft.getInstance().player!!
|
val player = Minecraft.getInstance().player!!
|
||||||
val pose = event.poseStack
|
val pose = event.poseStack
|
||||||
val itemInHandRenderer = Minecraft.getInstance().itemInHandRenderer
|
val itemInHandRenderer = Minecraft.getInstance().itemRenderer
|
||||||
|
|
||||||
pose.pushPose()
|
pose.pushPose()
|
||||||
|
|
||||||
val progress = item.ironSightsProgress(stack, event.partialTicks.toDouble())
|
val progress = item.ironSightsProgress(stack, event.partialTick.toDouble())
|
||||||
|
|
||||||
val (x, y, z) = linearInterpolation(
|
val (x, y, z) = linearInterpolation(
|
||||||
// 1.0 - event.equipProgress.toDouble(),
|
// 1.0 - event.equipProgress.toDouble(),
|
||||||
@ -429,15 +428,15 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
pose.mulPose(Vector3f.YP.rotation(yaw.toFloat()))
|
pose.mulPose(Vector3f.YP.rotation(yaw.toFloat()))
|
||||||
pose.mulPose(Vector3f.XP.rotation(pitch.toFloat()))
|
pose.mulPose(Vector3f.XP.rotation(pitch.toFloat()))
|
||||||
|
|
||||||
itemInHandRenderer.renderItem(
|
/*itemInHandRenderer.render(
|
||||||
player,
|
// player,
|
||||||
stack,
|
stack,
|
||||||
ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND,
|
ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND,
|
||||||
false,
|
false,
|
||||||
pose,
|
pose,
|
||||||
event.multiBufferSource,
|
event.multiBufferSource,
|
||||||
event.packedLight
|
event.packedLight
|
||||||
)
|
)*/
|
||||||
|
|
||||||
if (item is PlasmaWeaponItem<*>) {
|
if (item is PlasmaWeaponItem<*>) {
|
||||||
// RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
// RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
||||||
@ -468,7 +467,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
RenderHelper.setDrawColor(heatBackground)
|
RenderHelper.setDrawColor(heatBackground)
|
||||||
RenderHelper.drawRect(pose, -1f, -1f, 9f, 32f)
|
RenderHelper.drawRect(pose, -1f, -1f, 9f, 32f)
|
||||||
|
|
||||||
val heat = item.heatProgress(stack, event.partialTicks.toDouble()).toFloat()
|
val heat = item.heatProgress(stack, event.partialTick.toDouble()).toFloat()
|
||||||
RenderHelper.setDrawColor(linearInterpolation(heat, initialHeatColor, finalHeatColor))
|
RenderHelper.setDrawColor(linearInterpolation(heat, initialHeatColor, finalHeatColor))
|
||||||
RenderHelper.drawRect(pose, 0f, 30f * (1f - heat), 7f, 30f * heat)
|
RenderHelper.drawRect(pose, 0f, 30f * (1f - heat), 7f, 30f * heat)
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import net.minecraft.ChatFormatting
|
|||||||
import net.minecraft.core.Direction
|
import net.minecraft.core.Direction
|
||||||
import net.minecraft.nbt.CompoundTag
|
import net.minecraft.nbt.CompoundTag
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.level.ServerPlayer
|
import net.minecraft.server.level.ServerPlayer
|
||||||
import net.minecraft.sounds.SoundSource
|
import net.minecraft.sounds.SoundSource
|
||||||
import net.minecraft.world.entity.player.Player
|
import net.minecraft.world.entity.player.Player
|
||||||
@ -16,15 +15,12 @@ import net.minecraftforge.common.capabilities.ICapabilityProvider
|
|||||||
import net.minecraftforge.common.util.INBTSerializable
|
import net.minecraftforge.common.util.INBTSerializable
|
||||||
import net.minecraftforge.common.util.LazyOptional
|
import net.minecraftforge.common.util.LazyOptional
|
||||||
import net.minecraftforge.energy.CapabilityEnergy
|
import net.minecraftforge.energy.CapabilityEnergy
|
||||||
|
import ru.dbotthepony.mc.otm.*
|
||||||
import ru.dbotthepony.mc.otm.capability.*
|
import ru.dbotthepony.mc.otm.capability.*
|
||||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||||
import ru.dbotthepony.mc.otm.core.bezierCurve
|
import ru.dbotthepony.mc.otm.core.bezierCurve
|
||||||
import ru.dbotthepony.mc.otm.core.formatPower
|
import ru.dbotthepony.mc.otm.core.formatPower
|
||||||
import ru.dbotthepony.mc.otm.doubles
|
|
||||||
import ru.dbotthepony.mc.otm.ifPresentK
|
|
||||||
import ru.dbotthepony.mc.otm.ints
|
|
||||||
import ru.dbotthepony.mc.otm.registry.MSoundEvents
|
import ru.dbotthepony.mc.otm.registry.MSoundEvents
|
||||||
import ru.dbotthepony.mc.otm.set
|
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
class PlasmaWeaponEnergy(val itemStack: ItemStack, private val innerCapacity: ImpreciseFraction) :
|
class PlasmaWeaponEnergy(val itemStack: ItemStack, private val innerCapacity: ImpreciseFraction) :
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.matter
|
package ru.dbotthepony.mc.otm.matter
|
||||||
|
|
||||||
import net.minecraft.tags.ItemTags
|
import net.minecraft.tags.ItemTags
|
||||||
import net.minecraft.tags.Tag
|
|
||||||
import net.minecraft.tags.TagKey
|
import net.minecraft.tags.TagKey
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
@ -122,12 +121,6 @@ private fun make(tag: ITag<Item>, value: ImpreciseFraction, complexity: Double =
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun make(tag: Tag<Item>, value: ImpreciseFraction, complexity: Double = defaultComplexity(value)) {
|
|
||||||
for (item in tag.values) {
|
|
||||||
make(item, value, complexity)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun make(tag: TagKey<Item>, value: ImpreciseFraction, complexity: Double = defaultComplexity(value)) {
|
private fun make(tag: TagKey<Item>, value: ImpreciseFraction, complexity: Double = defaultComplexity(value)) {
|
||||||
val resolved = ForgeRegistries.ITEMS.tags()?.getTag(tag)
|
val resolved = ForgeRegistries.ITEMS.tags()?.getTag(tag)
|
||||||
|
|
||||||
|
@ -4,7 +4,6 @@ import com.mojang.blaze3d.platform.InputConstants
|
|||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.network.FriendlyByteBuf
|
import net.minecraft.network.FriendlyByteBuf
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.server.dedicated.DedicatedServer
|
import net.minecraft.server.dedicated.DedicatedServer
|
||||||
import net.minecraft.world.item.Item
|
import net.minecraft.world.item.Item
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
@ -17,12 +16,14 @@ import net.minecraftforge.network.NetworkEvent
|
|||||||
import net.minecraftforge.network.PacketDistributor
|
import net.minecraftforge.network.PacketDistributor
|
||||||
import org.lwjgl.glfw.GLFW
|
import org.lwjgl.glfw.GLFW
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||||
import ru.dbotthepony.mc.otm.capability.drive.IMatteryDrive
|
import ru.dbotthepony.mc.otm.capability.drive.IMatteryDrive
|
||||||
import ru.dbotthepony.mc.otm.core.*
|
import ru.dbotthepony.mc.otm.core.*
|
||||||
import ru.dbotthepony.mc.otm.network.MatteryNetworking
|
import ru.dbotthepony.mc.otm.network.MatteryNetworking
|
||||||
import ru.dbotthepony.mc.otm.orNull
|
import ru.dbotthepony.mc.otm.orNull
|
||||||
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
|
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
|
||||||
|
import ru.dbotthepony.mc.otm.writeRegistryId
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
import java.util.function.Supplier
|
import java.util.function.Supplier
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import ru.dbotthepony.mc.otm.core.writeBigInteger
|
|||||||
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
import ru.dbotthepony.mc.otm.menu.MatteryMenu
|
||||||
import ru.dbotthepony.mc.otm.network.MatteryNetworking
|
import ru.dbotthepony.mc.otm.network.MatteryNetworking
|
||||||
import ru.dbotthepony.mc.otm.network.SetCarriedPacket
|
import ru.dbotthepony.mc.otm.network.SetCarriedPacket
|
||||||
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
import ru.dbotthepony.mc.otm.storage.*
|
import ru.dbotthepony.mc.otm.storage.*
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
@ -7,6 +7,7 @@ import net.minecraft.resources.ResourceLocation
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.item.Items
|
import net.minecraft.world.item.Items
|
||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
import ru.dbotthepony.mc.otm.set
|
import ru.dbotthepony.mc.otm.set
|
||||||
|
|
||||||
fun stackFromJson(obj: JsonElement, field: String = "<unknown>"): ItemStack {
|
fun stackFromJson(obj: JsonElement, field: String = "<unknown>"): ItemStack {
|
||||||
|
@ -12,13 +12,13 @@ import net.minecraft.world.item.crafting.Recipe
|
|||||||
import net.minecraft.world.item.crafting.RecipeSerializer
|
import net.minecraft.world.item.crafting.RecipeSerializer
|
||||||
import net.minecraft.world.item.crafting.RecipeType
|
import net.minecraft.world.item.crafting.RecipeType
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.registries.ForgeRegistryEntry
|
|
||||||
import org.apache.logging.log4j.LogManager
|
import org.apache.logging.log4j.LogManager
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.block.entity.PlatePressBlockEntity
|
import ru.dbotthepony.mc.otm.block.entity.PlatePressBlockEntity
|
||||||
import ru.dbotthepony.mc.otm.get
|
import ru.dbotthepony.mc.otm.get
|
||||||
import ru.dbotthepony.mc.otm.registry.MNames
|
import ru.dbotthepony.mc.otm.registry.MNames
|
||||||
import ru.dbotthepony.mc.otm.registry.MRecipes
|
import ru.dbotthepony.mc.otm.registry.MRecipes
|
||||||
|
import ru.dbotthepony.mc.otm.registryName
|
||||||
|
|
||||||
class PlatePressRecipe(
|
class PlatePressRecipe(
|
||||||
private val id: ResourceLocation,
|
private val id: ResourceLocation,
|
||||||
@ -82,14 +82,10 @@ class PlatePressRecipe(
|
|||||||
override fun getType(): RecipeType<PlatePressRecipe> = MRecipes.PLATE_PRESS
|
override fun getType(): RecipeType<PlatePressRecipe> = MRecipes.PLATE_PRESS
|
||||||
}
|
}
|
||||||
|
|
||||||
object PlatePressRecipeFactory : ForgeRegistryEntry<RecipeSerializer<*>>(), RecipeSerializer<PlatePressRecipe> {
|
object PlatePressRecipeFactory : RecipeSerializer<PlatePressRecipe> {
|
||||||
private val EMPTY = PlatePressRecipe(ResourceLocation(OverdriveThatMatters.MOD_ID, "empty"), Ingredient.EMPTY, Ingredient.EMPTY, 1)
|
private val EMPTY = PlatePressRecipe(ResourceLocation(OverdriveThatMatters.MOD_ID, "empty"), Ingredient.EMPTY, Ingredient.EMPTY, 1)
|
||||||
private val LOGGER = LogManager.getLogger()
|
private val LOGGER = LogManager.getLogger()
|
||||||
|
|
||||||
init {
|
|
||||||
registryName = OverdriveThatMatters.loc(MNames.PLATE_PRESS)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun fromJson(loc: ResourceLocation, obj: JsonObject): PlatePressRecipe {
|
override fun fromJson(loc: ResourceLocation, obj: JsonObject): PlatePressRecipe {
|
||||||
val input = try {
|
val input = try {
|
||||||
Ingredient.fromJson(obj["input"] ?: throw IllegalStateException("Recipe $loc has no input field defined"))
|
Ingredient.fromJson(obj["input"] ?: throw IllegalStateException("Recipe $loc has no input field defined"))
|
||||||
|
@ -8,7 +8,7 @@ import ru.dbotthepony.mc.otm.android.DummyAndroidFeature
|
|||||||
import ru.dbotthepony.mc.otm.android.feature.*
|
import ru.dbotthepony.mc.otm.android.feature.*
|
||||||
|
|
||||||
object AndroidFeatures {
|
object AndroidFeatures {
|
||||||
private val registry = DeferredRegister.create(AndroidFeatureType::class.java, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(MRegistry.ANDROID_FEATURES, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
val AIR_BAGS: AndroidFeatureType<*> by registry.register(MNames.AIR_BAGS) { AndroidFeatureType(::DummyAndroidFeature) }
|
val AIR_BAGS: AndroidFeatureType<*> by registry.register(MNames.AIR_BAGS) { AndroidFeatureType(::DummyAndroidFeature) }
|
||||||
val STEP_ASSIST: AndroidFeatureType<*> by registry.register(MNames.STEP_ASSIST) { AndroidFeatureType(::StepAssistFeature) }
|
val STEP_ASSIST: AndroidFeatureType<*> by registry.register(MNames.STEP_ASSIST) { AndroidFeatureType(::StepAssistFeature) }
|
||||||
|
@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
package ru.dbotthepony.mc.otm.registry
|
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.minecraft.resources.ResourceLocation
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.RegistryObject
|
import net.minecraftforge.registries.RegistryObject
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TextComponent
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder
|
import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder
|
||||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||||
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmor
|
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmor
|
||||||
@ -74,7 +74,7 @@ object AndroidResearch {
|
|||||||
ICON_EXTENDED_REACH = grid.next()
|
ICON_EXTENDED_REACH = grid.next()
|
||||||
}
|
}
|
||||||
|
|
||||||
private val registry = DeferredRegister.create(AndroidResearchType::class.java, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(MRegistry.ANDROID_RESEARCH, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register() {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.world.damagesource.DamageSource
|
import net.minecraft.world.damagesource.DamageSource
|
||||||
import net.minecraft.world.entity.Entity
|
import net.minecraft.world.entity.Entity
|
||||||
import net.minecraft.world.entity.LivingEntity
|
import net.minecraft.world.entity.LivingEntity
|
||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraft.world.phys.Vec3
|
import net.minecraft.world.phys.Vec3
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
|
|
||||||
class ImmutableDamageSource(private val parent: DamageSource) : DamageSource(parent.msgId) {
|
class ImmutableDamageSource(private val parent: DamageSource) : DamageSource(parent.msgId) {
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.registry
|
|||||||
|
|
||||||
import com.google.common.collect.ImmutableSet
|
import com.google.common.collect.ImmutableSet
|
||||||
import net.minecraft.world.item.DyeColor
|
import net.minecraft.world.item.DyeColor
|
||||||
import net.minecraftforge.registries.IForgeRegistryEntry
|
|
||||||
import net.minecraftforge.registries.RegistryObject
|
import net.minecraftforge.registries.RegistryObject
|
||||||
|
|
||||||
class LazyList<T>(private vararg val getters: () -> T) : AbstractList<T>() {
|
class LazyList<T>(private vararg val getters: () -> T) : AbstractList<T>() {
|
||||||
@ -26,7 +25,7 @@ class LazyMap<K, T>(vararg mValues: Pair<K, () -> T>) : AbstractMap<K, T>() {
|
|||||||
override val entries: Set<Map.Entry<K, T>> = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
override val entries: Set<Map.Entry<K, T>> = ImmutableSet.copyOf(mValues.map { Entry(it.first, it.second) })
|
||||||
}
|
}
|
||||||
|
|
||||||
class RegistryObjectList<T : IForgeRegistryEntry<T>>(private vararg val getters: RegistryObject<T>) : AbstractList<T>() {
|
class RegistryObjectList<T>(private vararg val getters: RegistryObject<T>) : AbstractList<T>() {
|
||||||
constructor(getters: List<RegistryObject<T>>) : this(*getters.toTypedArray())
|
constructor(getters: List<RegistryObject<T>>) : this(*getters.toTypedArray())
|
||||||
|
|
||||||
override val size: Int
|
override val size: Int
|
||||||
|
@ -1,15 +1,20 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
import net.minecraftforge.common.loot.GlobalLootModifierSerializer
|
import com.mojang.serialization.Codec
|
||||||
import net.minecraftforge.event.RegistryEvent
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
import ru.dbotthepony.mc.otm.data.LootTableAppender
|
import ru.dbotthepony.mc.otm.data.LootTableAppender
|
||||||
import ru.dbotthepony.mc.otm.data.LootTableBasicAppender
|
import ru.dbotthepony.mc.otm.data.LootTableBasicAppender
|
||||||
|
|
||||||
object LootModifiers {
|
object LootModifiers {
|
||||||
@SubscribeEvent
|
private val registry = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, OverdriveThatMatters.MOD_ID)
|
||||||
fun register(event: RegistryEvent.Register<GlobalLootModifierSerializer<*>>) {
|
|
||||||
event.registry.register(LootTableAppender.Companion)
|
val LOOT_TABLE_APPENDER: Codec<LootTableAppender> by registry.register("loot_table_appender") { LootTableAppender.Companion }
|
||||||
event.registry.register(LootTableBasicAppender.Companion)
|
val LOOT_TABLE_BASIC_APPENDER: Codec<LootTableBasicAppender> by registry.register("loot_table_appender") { LootTableBasicAppender.Companion }
|
||||||
|
|
||||||
|
internal fun register() {
|
||||||
|
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ import ru.dbotthepony.mc.otm.client.render.EnergyCounterRenderer
|
|||||||
import ru.dbotthepony.mc.otm.client.render.GravitationStabilizerRenderer
|
import ru.dbotthepony.mc.otm.client.render.GravitationStabilizerRenderer
|
||||||
|
|
||||||
object MBlockEntities {
|
object MBlockEntities {
|
||||||
private val registry = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITIES, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
val ANDROID_STATION: BlockEntityType<*> by registry.register(MNames.ANDROID_STATION) { BlockEntityType.Builder.of(::AndroidStationBlockEntity, MBlocks.ANDROID_STATION).build(null) }
|
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 BATTERY_BANK: BlockEntityType<*> by registry.register(MNames.BATTERY_BANK) { BlockEntityType.Builder.of(::BatteryBankBlockEntity, MBlocks.BATTERY_BANK).build(null) }
|
||||||
|
@ -6,7 +6,7 @@ import net.minecraft.client.renderer.RenderType
|
|||||||
import net.minecraft.util.valueproviders.UniformInt
|
import net.minecraft.util.valueproviders.UniformInt
|
||||||
import net.minecraft.world.item.DyeColor
|
import net.minecraft.world.item.DyeColor
|
||||||
import net.minecraft.world.level.block.Block
|
import net.minecraft.world.level.block.Block
|
||||||
import net.minecraft.world.level.block.OreBlock
|
import net.minecraft.world.level.block.DropExperienceBlock
|
||||||
import net.minecraft.world.level.block.SoundType
|
import net.minecraft.world.level.block.SoundType
|
||||||
import net.minecraft.world.level.block.state.BlockBehaviour
|
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||||
import net.minecraft.world.level.material.Material
|
import net.minecraft.world.level.material.Material
|
||||||
@ -73,14 +73,14 @@ object MBlocks {
|
|||||||
val GRAVITATION_STABILIZER: Block by registry.register(MNames.GRAVITATION_STABILIZER) { BlockGravitationStabilizer() }
|
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 GRAVITATION_STABILIZER_LENS: Block by registry.register(MNames.GRAVITATION_STABILIZER_LENS) { BlockGravitationStabilizerLens() }
|
||||||
|
|
||||||
val TRITANIUM_ORE: Block by registry.register(MNames.TRITANIUM_ORE) { OreBlock(
|
val TRITANIUM_ORE: Block by registry.register(MNames.TRITANIUM_ORE) { DropExperienceBlock(
|
||||||
BlockBehaviour.Properties.of(Material.STONE)
|
BlockBehaviour.Properties.of(Material.STONE)
|
||||||
.strength(3.25f, 6.0f)
|
.strength(3.25f, 6.0f)
|
||||||
.requiresCorrectToolForDrops(),
|
.requiresCorrectToolForDrops(),
|
||||||
UniformInt.of(0, 3)
|
UniformInt.of(0, 3)
|
||||||
) }
|
) }
|
||||||
|
|
||||||
val DEEPSLATE_TRITANIUM_ORE: Block by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { OreBlock(
|
val DEEPSLATE_TRITANIUM_ORE: Block by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { DropExperienceBlock(
|
||||||
BlockBehaviour.Properties.of(Material.STONE)
|
BlockBehaviour.Properties.of(Material.STONE)
|
||||||
.strength(4.75f, 6.5f)
|
.strength(4.75f, 6.5f)
|
||||||
.requiresCorrectToolForDrops(),
|
.requiresCorrectToolForDrops(),
|
||||||
|
@ -14,7 +14,7 @@ import ru.dbotthepony.mc.otm.client.render.entity.PlasmaProjectileRenderer
|
|||||||
import ru.dbotthepony.mc.otm.entity.PlasmaProjectile
|
import ru.dbotthepony.mc.otm.entity.PlasmaProjectile
|
||||||
|
|
||||||
object MEntityTypes {
|
object MEntityTypes {
|
||||||
private val registry: DeferredRegister<EntityType<*>> = DeferredRegister.create(ForgeRegistries.ENTITIES, OverdriveThatMatters.MOD_ID)
|
private val registry: DeferredRegister<EntityType<*>> = DeferredRegister.create(ForgeRegistries.ENTITY_TYPES, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
val PLASMA: EntityType<*> by registry.register(MNames.PLASMA) {
|
val PLASMA: EntityType<*> by registry.register(MNames.PLASMA) {
|
||||||
EntityType.Builder.of<PlasmaProjectile>({ _, level -> PlasmaProjectile(level) }, MobCategory.MISC).sized(0.4f, 0.4f).build(MNames.PLASMA)
|
EntityType.Builder.of<PlasmaProjectile>({ _, level -> PlasmaProjectile(level) }, MobCategory.MISC).sized(0.4f, 0.4f).build(MNames.PLASMA)
|
||||||
|
@ -3,22 +3,18 @@ package ru.dbotthepony.mc.otm.registry
|
|||||||
|
|
||||||
import net.minecraft.ChatFormatting
|
import net.minecraft.ChatFormatting
|
||||||
import net.minecraft.network.chat.Component
|
import net.minecraft.network.chat.Component
|
||||||
import net.minecraft.network.chat.TranslatableComponent
|
|
||||||
import net.minecraft.tags.BlockTags
|
import net.minecraft.tags.BlockTags
|
||||||
import net.minecraft.world.entity.EquipmentSlot
|
import net.minecraft.world.entity.EquipmentSlot
|
||||||
import net.minecraft.world.food.FoodProperties
|
import net.minecraft.world.food.FoodProperties
|
||||||
import net.minecraft.world.item.*
|
import net.minecraft.world.item.*
|
||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraft.world.level.block.Block
|
|
||||||
import net.minecraft.world.level.block.SoundType
|
|
||||||
import net.minecraft.world.level.block.state.BlockBehaviour
|
|
||||||
import net.minecraft.world.level.material.Material
|
|
||||||
import net.minecraftforge.common.ForgeTier
|
import net.minecraftforge.common.ForgeTier
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
|
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||||
import ru.dbotthepony.mc.otm.item.*
|
import ru.dbotthepony.mc.otm.item.*
|
||||||
import ru.dbotthepony.mc.otm.item.weapon.PlasmaRifleItem
|
import ru.dbotthepony.mc.otm.item.weapon.PlasmaRifleItem
|
||||||
|
@ -11,7 +11,7 @@ import ru.dbotthepony.mc.otm.client.screen.*
|
|||||||
import ru.dbotthepony.mc.otm.menu.*
|
import ru.dbotthepony.mc.otm.menu.*
|
||||||
|
|
||||||
object MMenus {
|
object MMenus {
|
||||||
private val registry = DeferredRegister.create(ForgeRegistries.CONTAINERS, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(ForgeRegistries.MENU_TYPES, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
val ANDROID_STATION: MenuType<*> by registry.register(MNames.ANDROID_STATION) { MenuType(::AndroidStationMenu) }
|
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 BATTERY_BANK: MenuType<*> by registry.register(MNames.BATTERY_BANK) { MenuType(::BatteryBankMenu) }
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user