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.eventbus.api.SubscribeEvent
|
||||
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.block.*
|
||||
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.has
|
||||
import ru.dbotthepony.mc.otm.registry.*
|
||||
import ru.dbotthepony.mc.otm.*
|
||||
|
||||
@Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||
object DataGen {
|
||||
@ -150,14 +151,14 @@ object DataGen {
|
||||
|
||||
AddEnglishLanguage(languageProvider)
|
||||
|
||||
event.generator.addProvider(blockModelProvider)
|
||||
event.generator.addProvider(itemModelProvider)
|
||||
event.generator.addProvider(blockStateProvider)
|
||||
event.generator.addProvider(recipeProvider)
|
||||
event.generator.addProvider(MatterBankProvider(event))
|
||||
event.generator.addProvider(BatteryBankProvider(event))
|
||||
event.generator.addProvider(lootTableProvider)
|
||||
event.generator.addProvider(lootModifier)
|
||||
event.generator.addProvider(true, blockModelProvider)
|
||||
event.generator.addProvider(true, itemModelProvider)
|
||||
event.generator.addProvider(true, blockStateProvider)
|
||||
event.generator.addProvider(true, recipeProvider)
|
||||
event.generator.addProvider(true, MatterBankProvider(event))
|
||||
event.generator.addProvider(true, BatteryBankProvider(event))
|
||||
event.generator.addProvider(true, lootTableProvider)
|
||||
event.generator.addProvider(true, lootModifier)
|
||||
|
||||
decorativeCubeAll(MBlocks.CRATE_LIST)
|
||||
decorativeCubeAll(MBlocks.CARBON_FIBRE_BLOCK)
|
||||
@ -696,37 +697,37 @@ object DataGen {
|
||||
}
|
||||
|
||||
lootModifier.lambda {
|
||||
it.add("dungeon_pill", LootTableBasicAppender.Companion, LootTableBasicAppender(
|
||||
it.add("dungeon_pill", LootTableBasicAppender(
|
||||
arrayOf(LootTableIdCondition.Builder(ResourceLocation("chests/simple_dungeon")).build()),
|
||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
||||
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()),
|
||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
||||
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()),
|
||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.05,
|
||||
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()),
|
||||
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()),
|
||||
ItemStack(MItems.PILL_ANDROID, 1) to 0.1,
|
||||
ItemStack(MItems.PILL_HUMANE, 1) to 0.2,
|
||||
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()),
|
||||
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 it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap
|
||||
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.entity.EntityType
|
||||
import net.minecraft.world.item.Item
|
||||
@ -20,8 +21,12 @@ import ru.dbotthepony.mc.otm.registry.ColoredDecorativeBlock
|
||||
private fun researchString(key: AndroidResearchType<*>): String {
|
||||
val displayName = key.displayName
|
||||
|
||||
if (displayName is TranslatableComponent) {
|
||||
return displayName.key
|
||||
if (displayName is MutableComponent) {
|
||||
val content = displayName.contents
|
||||
|
||||
if (content is TranslatableContents) {
|
||||
return content.key
|
||||
}
|
||||
}
|
||||
|
||||
return key.displayId
|
||||
@ -30,7 +35,7 @@ private fun researchString(key: AndroidResearchType<*>): String {
|
||||
class MatteryLanguageProvider(private val gen: DataGenerator) {
|
||||
private inner class Slave(language: String) : LanguageProvider(gen, OverdriveThatMatters.MOD_ID, language) {
|
||||
init {
|
||||
gen.addProvider(this)
|
||||
gen.addProvider(true, this)
|
||||
}
|
||||
|
||||
override fun addTranslations() {}
|
||||
|
@ -3,7 +3,7 @@ package ru.dbotthepony.mc.otm.datagen.blocks
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.level.block.Block
|
||||
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.RotatableMatteryBlock
|
||||
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.minecraftforge.client.model.generators.BlockStateProvider
|
||||
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.entity.worker.WorkerState
|
||||
import ru.dbotthepony.mc.otm.datagen.DataGen
|
||||
import ru.dbotthepony.mc.otm.datagen.getValueNullable
|
||||
import ru.dbotthepony.mc.otm.datagen.toXRotBlockstate
|
||||
import ru.dbotthepony.mc.otm.datagen.toYRotBlockstate
|
||||
import ru.dbotthepony.mc.otm.registryName
|
||||
|
||||
typealias AdvancedBlockStateFunction = (BlockState, ConfiguredModel.Builder<*>, String) -> String?
|
||||
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.world.item.Item
|
||||
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 ru.dbotthepony.mc.otm.datagen.DataGen
|
||||
import ru.dbotthepony.mc.otm.registryName
|
||||
|
||||
private data class SimpleItemModel(val item: String, val path: ResourceLocation) {
|
||||
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.world.level.block.Block
|
||||
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.registryName
|
||||
|
||||
private typealias Callback = (MatteryModelProvider) -> Unit
|
||||
|
||||
@ -26,7 +27,7 @@ sealed class MatteryModelProvider(event: GatherDataEvent, folder: String) : Mode
|
||||
return factory.apply(destinationLocation).also {
|
||||
generatedModels[destinationLocation] = it
|
||||
val resource = existingFileHelper.getResource(sourceLocation, PackType.CLIENT_RESOURCES)
|
||||
val stream = resource.inputStream
|
||||
val stream = resource.open()
|
||||
val reader = stream.reader()
|
||||
|
||||
try {
|
||||
|
@ -8,7 +8,6 @@ import net.minecraft.data.DataGenerator
|
||||
import net.minecraft.data.recipes.FinishedRecipe
|
||||
import net.minecraft.data.recipes.RecipeProvider
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.tags.Tag
|
||||
import net.minecraft.tags.TagKey
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.crafting.Ingredient
|
||||
|
@ -48,7 +48,6 @@ public final class OverdriveThatMatters {
|
||||
public static final Logger LOGGER = LogManager.getLogger();
|
||||
|
||||
public static OverdriveThatMatters INSTANCE;
|
||||
public AndroidGui ANDROID_GUI;
|
||||
private StorageStackType<ItemStackWrapper> ITEM_STORAGE;
|
||||
|
||||
public StorageStackType<ItemStackWrapper> ITEM_STORAGE() {
|
||||
@ -120,9 +119,7 @@ public final class OverdriveThatMatters {
|
||||
}
|
||||
|
||||
private void setupClient(final FMLClientSetupEvent event) {
|
||||
ANDROID_GUI = new AndroidGui();
|
||||
MinecraftForge.EVENT_BUS.register(ANDROID_GUI);
|
||||
MinecraftForge.EVENT_BUS.register(AndroidGui.class);
|
||||
MinecraftForge.EVENT_BUS.register(AndroidGui.INSTANCE);
|
||||
MinecraftForge.EVENT_BUS.register(EventHandlerKt.class);
|
||||
|
||||
TritaniumArmorModel.register();
|
||||
|
@ -11,6 +11,7 @@ import net.minecraft.world.item.Items;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.ForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryManager;
|
||||
import ru.dbotthepony.mc.otm.UnOverengineeringKt;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
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.putString("item", Objects.requireNonNull(item.getRegistryName()).toString());
|
||||
tag.putString("item", Objects.requireNonNull(UnOverengineeringKt.getRegistryName(item)).toString());
|
||||
tag.putInt("in_progress", in_progress);
|
||||
tag.putInt("finished", finished);
|
||||
tag.putInt("required", required);
|
||||
|
@ -9,6 +9,7 @@ import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.ForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryManager;
|
||||
import ru.dbotthepony.mc.otm.UnOverengineeringKt;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
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_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);
|
||||
|
||||
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, depth_z).uv(u1, 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(
|
||||
@ -143,8 +143,7 @@ public class RenderHelper {
|
||||
}
|
||||
}
|
||||
|
||||
builder.end();
|
||||
BufferUploader.end(builder);
|
||||
BufferUploader.draw(builder.end());
|
||||
}
|
||||
|
||||
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.client.gui.components.EditBox;
|
||||
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.item.ItemStack;
|
||||
import ru.dbotthepony.mc.otm.capability.matter.MatterTask;
|
||||
@ -19,6 +17,9 @@ import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
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> {
|
||||
private static final int MODAL_WIDTH = 213;
|
||||
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) {
|
||||
input.add(new 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(new 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.total", task.total()).withStyle(ChatFormatting.GRAY));
|
||||
input.add(TranslatableComponent("otm.gui.matter_task.required", task.required()).withStyle(ChatFormatting.GRAY));
|
||||
input.add(TranslatableComponent("otm.gui.matter_task.in_progress", task.in_progress()).withStyle(ChatFormatting.GRAY));
|
||||
input.add(TranslatableComponent("otm.gui.matter_task.finished", task.finished()).withStyle(ChatFormatting.GRAY));
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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
|
||||
public void tick() {
|
||||
super.tick();
|
||||
@ -246,12 +247,12 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
||||
|
||||
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.setDockMargin(2, 0, 0, 0);
|
||||
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.setDockMargin(2, 0, 0, 0);
|
||||
button.bind(() -> {
|
||||
@ -264,7 +265,7 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
||||
}
|
||||
|
||||
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
|
||||
public void 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
|
||||
protected void configureNew(@Nonnull EditBox widget, boolean 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.setDock(Dock.RIGHT);
|
||||
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.bind(() -> input_amount.increase(64));
|
||||
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.bind(() -> input_amount.increase(256));
|
||||
button.setDockMargin(2, 0, 0, 0);
|
||||
@ -356,27 +357,27 @@ public class MatterPanelScreen extends MatteryScreen<MatterPanelMenu> {
|
||||
slot.setDockMargin(0, 0, 4, 0);
|
||||
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.setDock(Dock.RIGHT);
|
||||
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.bind(() -> input_amount.increase(-64));
|
||||
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.bind(() -> input_amount.increase(-256));
|
||||
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.bind(pattern_frame::remove);
|
||||
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.bind(() -> {
|
||||
int value = 1;
|
||||
|
@ -20,6 +20,7 @@ import net.minecraft.world.inventory.ClickType;
|
||||
import net.minecraft.world.inventory.Slot;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
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.MatterySlot;
|
||||
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
|
||||
* 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
|
||||
*
|
||||
* Such as slots, they are not drawn inside MatteryScreen, but instead
|
||||
* drawn by SlotPanel(s)
|
||||
* Widgets such as slots are not drawn/interacted with using MatteryScreen,
|
||||
* but are handled by appropriate panels
|
||||
*
|
||||
* @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.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;
|
||||
|
||||
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);
|
||||
|
||||
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();
|
||||
|
||||
@ -416,7 +416,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
||||
|
||||
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;
|
||||
|
||||
@ -559,7 +559,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
||||
public void onSlotMouseDragged(@Nonnull MatterySlot slot, int click_type) {
|
||||
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 (this.draggingItem.isEmpty()) {
|
||||
if (slot != this.clickedSlot && !this.clickedSlot.getItem().isEmpty()) {
|
||||
@ -621,7 +621,7 @@ public abstract class MatteryScreen<T extends MatteryMenu> extends AbstractConta
|
||||
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 (this.draggingItem.isEmpty() && slot != this.clickedSlot) {
|
||||
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.RecipeSerializer;
|
||||
import net.minecraft.world.item.crafting.RecipeType;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters;
|
||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe;
|
||||
import ru.dbotthepony.mc.otm.recipe.PlatePressRecipeFactory;
|
||||
@ -19,10 +19,6 @@ public class MRecipes {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
private void register() {
|
||||
net.minecraft.core.Registry.register(net.minecraft.core.Registry.RECIPE_TYPE, name, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String 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));
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final FMLCommonSetupEvent event) {
|
||||
PLATE_PRESS.register();
|
||||
private static final DeferredRegister<RecipeSerializer<?>> registry = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, OverdriveThatMatters.MOD_ID);
|
||||
private static final DeferredRegister<RecipeType<?>> typesRegistry = DeferredRegister.create(ForgeRegistries.RECIPE_TYPES, OverdriveThatMatters.MOD_ID);
|
||||
|
||||
static {
|
||||
registry.register(MNames.PLATE_PRESS, () -> PlatePressRecipeFactory.INSTANCE);
|
||||
typesRegistry.register(MNames.PLATE_PRESS, () -> PLATE_PRESS);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
@SuppressWarnings("unused")
|
||||
public static void register(final RegistryEvent.Register<RecipeSerializer<?>> event) {
|
||||
event.getRegistry().register(PlatePressRecipeFactory.INSTANCE);
|
||||
public static void register() {
|
||||
registry.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
typesRegistry.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
|
@ -4,28 +4,28 @@
|
||||
package ru.dbotthepony.mc.otm
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import com.google.gson.JsonArray
|
||||
import com.google.gson.JsonElement
|
||||
import com.google.gson.JsonObject
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.core.Vec3i
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.nbt.ListTag
|
||||
import net.minecraft.nbt.LongArrayTag
|
||||
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.entity.Entity
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import net.minecraftforge.common.util.LazyOptional
|
||||
import net.minecraftforge.energy.CapabilityEnergy
|
||||
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.function.Consumer
|
||||
import kotlin.properties.ReadWriteProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
|
@ -6,7 +6,7 @@ package ru.dbotthepony.mc.otm
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraftforge.event.TickEvent
|
||||
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.ServerStoppedEvent
|
||||
import net.minecraftforge.event.server.ServerStoppingEvent
|
||||
@ -118,9 +118,9 @@ fun addPostServerTickerOnce(ticker: ITickable) {
|
||||
}
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||
fun onWorldTick(event: WorldTickEvent) {
|
||||
fun onWorldTick(event: LevelTickEvent) {
|
||||
if (event.phase === TickEvent.Phase.START) {
|
||||
val it = preWorldTick[event.world]
|
||||
val it = preWorldTick[event.level]
|
||||
|
||||
if (it != null) {
|
||||
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) {
|
||||
for (i in it2.size - 1 downTo 0) {
|
||||
@ -143,7 +143,7 @@ fun onWorldTick(event: WorldTickEvent) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val it = postWorldTick[event.world]
|
||||
val it = postWorldTick[event.level]
|
||||
|
||||
if (it != null) {
|
||||
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) {
|
||||
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
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraftforge.registries.ForgeRegistryEntry
|
||||
import net.minecraft.network.chat.ComponentContents
|
||||
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.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
|
||||
|
||||
constructor(factory: (AndroidCapability) -> T) : super() {
|
||||
@ -22,8 +25,17 @@ open class AndroidFeatureType<T : AndroidFeature> : ForgeRegistryEntry<AndroidFe
|
||||
|
||||
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 {
|
||||
TranslatableComponent(displayId)
|
||||
MutableComponent.create(displayContents)
|
||||
}
|
||||
|
||||
open val displayId: String by lazy {
|
||||
|
@ -1,11 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.android
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.FriendlyByteBuf
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraftforge.common.util.INBTSerializable
|
||||
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 net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
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.container.iterator
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
|
@ -2,9 +2,12 @@ package ru.dbotthepony.mc.otm.android
|
||||
|
||||
import com.google.common.collect.ImmutableList
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraftforge.registries.ForgeRegistryEntry
|
||||
import net.minecraft.network.chat.ComponentContents
|
||||
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.getKeyNullable
|
||||
import ru.dbotthepony.mc.otm.registry.MRegistry
|
||||
|
||||
fun interface AndroidResearchFactory<R : AndroidResearch> {
|
||||
@ -13,7 +16,7 @@ fun interface AndroidResearchFactory<R : AndroidResearch> {
|
||||
|
||||
open class AndroidResearchType<R : AndroidResearch>(
|
||||
protected val factory: AndroidResearchFactory<R>
|
||||
) : ForgeRegistryEntry<AndroidResearchType<*>>() {
|
||||
) {
|
||||
open val prerequisites: 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)
|
||||
|
||||
val registryName by lazy {
|
||||
check(IS_REGISTRY_INITIALIZED) { "Trying to access registryName too early!" }
|
||||
MRegistry.ANDROID_RESEARCH.getKeyNullable(this)
|
||||
}
|
||||
|
||||
val displayId by lazy {
|
||||
val registryName = registryName ?: throw NullPointerException("No registry name present")
|
||||
return@lazy "android_research.${registryName.namespace}.${registryName.path}".intern()
|
||||
@ -56,8 +64,12 @@ open class AndroidResearchType<R : AndroidResearch>(
|
||||
return@lazy "$displayId.description".intern()
|
||||
}
|
||||
|
||||
open val displayContents: ComponentContents by lazy {
|
||||
TranslatableContents(displayId)
|
||||
}
|
||||
|
||||
open val displayName: Component by lazy {
|
||||
TranslatableComponent(displayId)
|
||||
MutableComponent.create(displayContents)
|
||||
}
|
||||
|
||||
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.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.MenuProvider
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
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.level.block.state.BlockState
|
||||
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.WorkerEnergyStorage
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
|
@ -5,7 +5,6 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.entity.player.Player
|
||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
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.Player
|
||||
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.util.LazyOptional
|
||||
import net.minecraftforge.items.CapabilityItemHandler
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.block.CargoCrateBlock
|
||||
import ru.dbotthepony.mc.otm.container.MatteryContainer
|
||||
import ru.dbotthepony.mc.otm.ifHas
|
||||
|
@ -5,7 +5,6 @@ import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.nbt.IntTag
|
||||
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.Player
|
||||
import net.minecraft.world.inventory.AbstractContainerMenu
|
||||
@ -196,7 +195,7 @@ class ChemicalGeneratorBlockEntity(pos: BlockPos, state: BlockState) : MatteryBl
|
||||
if (workingTicks == 0 && !isBlockedByRedstone && check) {
|
||||
if (!container[SLOT_INPUT].isEmpty) {
|
||||
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
|
||||
|
||||
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.network.FriendlyByteBuf
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.SectionPos
|
||||
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.Player
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraft.world.level.block.state.BlockState
|
||||
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.BlockGravitationStabilizerLens
|
||||
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.core.Direction
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.minecraftforge.common.capabilities.Capability
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||
import ru.dbotthepony.mc.otm.graph.Graph6Node
|
||||
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.nbt.CompoundTag
|
||||
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.Player
|
||||
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.util.LazyOptional
|
||||
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.WorkerJob
|
||||
import ru.dbotthepony.mc.otm.block.entity.worker.WorkerJobStatus
|
||||
|
@ -1,9 +1,9 @@
|
||||
package ru.dbotthepony.mc.otm.block.entity
|
||||
|
||||
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")),
|
||||
LOW(TranslatableComponent("otm.gui.redstone.low"), TranslatableComponent("otm.gui.redstone.low.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
|
||||
fun onWorldTick(event: TickEvent.WorldTickEvent) {
|
||||
if (event.phase == TickEvent.Phase.START && event.world is ServerLevel) {
|
||||
queueForLevel(event.world as ServerLevel).tick()
|
||||
fun onWorldTick(event: TickEvent.LevelTickEvent) {
|
||||
if (event.phase == TickEvent.Phase.START && event.level is ServerLevel) {
|
||||
queueForLevel(event.level as ServerLevel).tick()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.util.LazyOptional
|
||||
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.entity.MatteryPoweredBlockEntity
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.minecraftforge.common.capabilities.Capability
|
||||
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.entity.MatteryBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.items.CapabilityItemHandler
|
||||
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.WorkerJob
|
||||
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.Tag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.level.Level
|
||||
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.graph.Graph6Node
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.util.LazyOptional
|
||||
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.WorkerJob
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.util.LazyOptional
|
||||
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.WorkerJob
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.util.LazyOptional
|
||||
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.WorkerJob
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.minecraftforge.common.capabilities.Capability
|
||||
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.graph.storage.BasicStorageGraphNode
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
|
@ -4,7 +4,6 @@ import net.minecraft.MethodsReturnNonnullByDefault
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
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.Player
|
||||
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.state.BlockState
|
||||
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.storage.DriveViewerBlock
|
||||
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.network.FriendlyByteBuf
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
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.crafting.CraftingRecipe
|
||||
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.block.state.BlockState
|
||||
import net.minecraftforge.common.ForgeHooks
|
||||
@ -29,6 +26,7 @@ import net.minecraftforge.common.util.INBTSerializable
|
||||
import net.minecraftforge.common.util.LazyOptional
|
||||
import net.minecraftforge.network.NetworkEvent
|
||||
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.capability.MatteryCapability
|
||||
import ru.dbotthepony.mc.otm.capability.WorkerEnergyStorage
|
||||
@ -49,7 +47,7 @@ import kotlin.collections.HashMap
|
||||
import kotlin.collections.HashSet
|
||||
|
||||
class ItemMonitorPlayerSettings : INBTSerializable<CompoundTag> {
|
||||
enum class RefillSource(val component: TranslatableComponent) {
|
||||
enum class RefillSource(val component: Component) {
|
||||
// Refill everything from 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")),
|
||||
}
|
||||
|
||||
enum class ResultTarget(val component: TranslatableComponent) {
|
||||
enum class ResultTarget(val component: Component) {
|
||||
// Everything goes into storage 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")),
|
||||
}
|
||||
|
||||
enum class Amount(val component: TranslatableComponent) {
|
||||
enum class Amount(val component: Component) {
|
||||
ONE(TranslatableComponent("otm.gui.item_monitor.amount.one")),
|
||||
STACK(TranslatableComponent("otm.gui.item_monitor.amount.stack")),
|
||||
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 {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun quickMoveStack(p_38941_: Player, p_38942_: Int): ItemStack {
|
||||
return ItemStack.EMPTY
|
||||
}
|
||||
}
|
||||
|
||||
private val craftingGridDummy = CraftingContainer(craftingMenu, 3, 3)
|
||||
|
@ -6,7 +6,6 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.entity.player.Player
|
||||
|
@ -1,11 +1,9 @@
|
||||
package ru.dbotthepony.mc.otm.block.entity.storage
|
||||
|
||||
import it.unimi.dsi.fastutil.longs.LongArraySet
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.entity.player.Player
|
||||
|
@ -4,7 +4,6 @@ import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Direction
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.util.LazyOptional
|
||||
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.capability.MatteryCapability
|
||||
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.minecraftforge.common.capabilities.Capability
|
||||
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 ru.dbotthepony.mc.otm.capability.IMatteryEnergyStorage
|
||||
import ru.dbotthepony.mc.otm.capability.extractEnergy
|
||||
@ -417,7 +417,7 @@ open class AndroidCapability(final override val entity: LivingEntity) : ICapabil
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
fun onLivingTick(event: LivingUpdateEvent) {
|
||||
fun onLivingTick(event: LivingTickEvent) {
|
||||
val ent = event.entity
|
||||
|
||||
if (ent.level.isClientSide) {
|
||||
|
@ -4,7 +4,6 @@ import net.minecraft.ChatFormatting
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.nbt.ListTag
|
||||
import net.minecraft.nbt.Tag
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
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.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.network.PacketDistributor
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearch
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
@ -318,13 +318,13 @@ class AndroidCapabilityPlayer(val ply: Player) : AndroidCapability(ply) {
|
||||
|
||||
@SubscribeEvent
|
||||
fun onPlayerChangeDimensionEvent(event: PlayerChangedDimensionEvent) {
|
||||
event.player.getCapability(MatteryCapability.ANDROID)
|
||||
event.entity.getCapability(MatteryCapability.ANDROID)
|
||||
.ifPresentK { (it as AndroidCapabilityPlayer).invalidateNetworkState() }
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
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)
|
||||
|
||||
@ -342,7 +342,7 @@ class AndroidCapabilityPlayer(val ply: Player) : AndroidCapability(ply) {
|
||||
|
||||
if (original.willBecomeAndroid && event.isWasDeath) {
|
||||
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())
|
||||
|
@ -15,7 +15,7 @@ import net.minecraftforge.event.TickEvent.ServerTickEvent
|
||||
import net.minecraftforge.event.TickEvent
|
||||
import net.minecraftforge.event.server.ServerAboutToStartEvent
|
||||
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 ru.dbotthepony.mc.otm.SERVER_IS_DYING
|
||||
import java.io.File
|
||||
@ -193,7 +193,7 @@ object DrivePool {
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
fun onWorldSave(event: WorldEvent.Save) {
|
||||
fun onWorldSave(event: LevelEvent.Save) {
|
||||
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
|
||||
@Suppress("unused")
|
||||
fun inputEvent(event: MovementInputUpdateEvent) {
|
||||
val ply = event.player
|
||||
val ply = event.entity
|
||||
val input = event.input
|
||||
|
||||
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.BlockEntityRenderer
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.phys.Vec3
|
||||
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.blackhole.BlackHoleBlockEntity
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
@ -137,8 +137,9 @@ class BlackHoleRenderer(private val context: BlockEntityRendererProvider.Context
|
||||
|
||||
poseStack.popPose()
|
||||
|
||||
builder.end()
|
||||
BufferUploader.end(builder)
|
||||
// builder.end()
|
||||
// BufferUploader.end(builder)
|
||||
BufferUploader.draw(builder.end())
|
||||
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.BlockEntityRendererProvider
|
||||
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.entity.EnergyCounterBlockEntity
|
||||
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.texture.OverlayTexture
|
||||
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.RotatableMatteryBlock
|
||||
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.resources.sounds.SimpleSoundInstance
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.sounds.SoundEvents
|
||||
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.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.widget.PowerGaugePanel
|
||||
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 net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
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.widget.PowerGaugePanel
|
||||
import ru.dbotthepony.mc.otm.item.PortableCondensationDriveItem
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.core.formatPower
|
||||
import ru.dbotthepony.mc.otm.menu.EnergyCounterMenu
|
||||
|
@ -4,11 +4,11 @@ import com.mojang.blaze3d.systems.RenderSystem
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.entity.player.Inventory
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.Items
|
||||
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.client.render.SkinGrid
|
||||
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.core.equalDownDivision
|
||||
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.menu.ItemMonitorMenu
|
||||
import ru.dbotthepony.mc.otm.storage.ITEM_STORAGE
|
||||
import java.text.NumberFormat
|
||||
|
||||
class ItemMonitorScreen(menu: ItemMonitorMenu, inventory: Inventory, title: Component) :
|
||||
MatteryScreen<ItemMonitorMenu>(menu, inventory, title) {
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.FramePanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.SlotPanel
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.FilterSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.FilterSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||
|
@ -1,8 +1,8 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.FilterSlotPanel
|
||||
import ru.dbotthepony.mc.otm.client.screen.panels.FramePanel
|
||||
|
@ -1,13 +1,12 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
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.widget.PowerGaugePanel
|
||||
import ru.dbotthepony.mc.otm.core.formatPower
|
||||
|
||||
import ru.dbotthepony.mc.otm.menu.StorageImporterMenu
|
||||
import ru.dbotthepony.mc.otm.menu.StoragePowerSupplierMenu
|
||||
|
||||
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.vertex.PoseStack
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GameRenderer
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraftforge.client.RenderProperties
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions
|
||||
import org.lwjgl.opengl.GL11
|
||||
import ru.dbotthepony.mc.otm.client.minecraft
|
||||
import ru.dbotthepony.mc.otm.core.RGBAColor
|
||||
@ -91,7 +90,8 @@ abstract class AbstractSlotPanel @JvmOverloads constructor(
|
||||
val itemstack = getItemStack()
|
||||
|
||||
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????????????
|
||||
// GuiUtils.preItemToolTip(itemstack);
|
||||
@ -100,7 +100,8 @@ abstract class AbstractSlotPanel @JvmOverloads constructor(
|
||||
getItemStackTooltip(itemstack),
|
||||
mouse_x.toInt(),
|
||||
mouse_y.toInt(),
|
||||
font ?: screen.font
|
||||
font ?: screen.font,
|
||||
itemstack
|
||||
)
|
||||
// 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.resources.sounds.SimpleSoundInstance
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TextComponent
|
||||
import net.minecraft.sounds.SoundEvents
|
||||
import ru.dbotthepony.mc.otm.TextComponent
|
||||
import ru.dbotthepony.mc.otm.client.minecraft
|
||||
import ru.dbotthepony.mc.otm.client.render.SkinElement
|
||||
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.network.chat.Component
|
||||
import net.minecraft.network.chat.TextComponent
|
||||
import ru.dbotthepony.mc.otm.TextComponent
|
||||
import ru.dbotthepony.mc.otm.client.screen.MatteryScreen
|
||||
|
||||
open class EditBoxPanel(
|
||||
|
@ -2,7 +2,7 @@ package ru.dbotthepony.mc.otm.client.screen.panels
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
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.client.screen.MatteryScreen
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package ru.dbotthepony.mc.otm.client.screen.panels
|
||||
|
||||
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.menu.widget.NumberPlayerInputWidget
|
||||
import java.math.BigDecimal
|
||||
|
@ -4,7 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import net.minecraft.ChatFormatting
|
||||
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.SkinElement
|
||||
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.JeiPlugin
|
||||
import mezz.jei.api.constants.VanillaRecipeCategoryUid
|
||||
import mezz.jei.api.constants.RecipeTypes
|
||||
import mezz.jei.api.registration.IRecipeCatalystRegistration
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.item.ItemStack
|
||||
@ -20,6 +20,6 @@ class JEIPlugin : IModPlugin {
|
||||
}
|
||||
|
||||
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 net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.capability.isMekanismLoaded
|
||||
|
||||
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 net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TextComponent
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.TextComponent
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import java.math.BigDecimal
|
||||
import java.math.BigInteger
|
||||
|
||||
|
@ -4,27 +4,47 @@ import com.google.common.collect.ImmutableList
|
||||
import com.google.gson.JsonArray
|
||||
import com.google.gson.JsonObject
|
||||
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.world.item.ItemStack
|
||||
import net.minecraft.world.level.storage.loot.Deserializers
|
||||
import net.minecraft.world.level.storage.loot.LootContext
|
||||
import net.minecraft.world.level.storage.loot.LootPool
|
||||
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.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) {
|
||||
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) }
|
||||
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()
|
||||
|
||||
override fun read(
|
||||
/*override fun read(
|
||||
location: ResourceLocation,
|
||||
`object`: JsonObject,
|
||||
ailootcondition: Array<out LootItemCondition>
|
||||
@ -41,11 +61,7 @@ class LootTableAppender(conditions: Array<out LootItemCondition>, private vararg
|
||||
val build = makeConditions(instance.conditions)
|
||||
build.add("pools", lootPoolGson.toJsonTree(instance.pools))
|
||||
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())
|
||||
|
||||
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) {
|
||||
if (context.random.nextDouble() <= chance) {
|
||||
generatedLoot.add(item.copy())
|
||||
@ -64,8 +80,23 @@ class LootTableBasicAppender(conditions: Array<out LootItemCondition>, items: Li
|
||||
return generatedLoot
|
||||
}
|
||||
|
||||
companion object : GlobalLootModifierSerializer<LootTableBasicAppender>() {
|
||||
override fun read(
|
||||
override fun codec(): Codec<out IGlobalLootModifier> {
|
||||
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,
|
||||
obj: JsonObject,
|
||||
ailootcondition: Array<out LootItemCondition>
|
||||
@ -108,10 +139,6 @@ class LootTableBasicAppender(conditions: Array<out LootItemCondition>, items: Li
|
||||
obj.add("entries", listing)
|
||||
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.Rarity
|
||||
@ -11,6 +10,7 @@ import net.minecraft.world.item.TooltipFlag
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
||||
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.MatteryCapability
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
|
@ -6,7 +6,6 @@ import net.minecraft.ChatFormatting
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.entity.EquipmentSlot
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
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 net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.TooltipFlag
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.Rarity
|
||||
import net.minecraft.world.level.Level
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
|
||||
class GravitationalDisruptorItem :
|
||||
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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
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.util.LazyOptional
|
||||
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.matter.IMatterHandler
|
||||
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.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.TooltipFlag
|
||||
import net.minecraft.world.level.Level
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.matter.IMatterItem
|
||||
import ru.dbotthepony.mc.otm.matter.MatterTuple
|
||||
|
@ -6,7 +6,6 @@ import net.minecraft.nbt.CompoundTag
|
||||
import net.minecraftforge.common.capabilities.ICapabilityProvider
|
||||
import net.minecraft.world.item.TooltipFlag
|
||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraftforge.common.util.LazyOptional
|
||||
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.level.Level
|
||||
import net.minecraftforge.common.capabilities.Capability
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.capability.matter.*
|
||||
import ru.dbotthepony.mc.otm.ifHas
|
||||
import java.util.*
|
||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.item
|
||||
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.InteractionHand
|
||||
import net.minecraft.world.InteractionResultHolder
|
||||
@ -14,6 +13,7 @@ import net.minecraft.world.item.*
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraftforge.common.util.FakePlayer
|
||||
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.AndroidCapabilityPlayer
|
||||
|
||||
|
@ -12,10 +12,7 @@ import ru.dbotthepony.mc.otm.capability.MatteryCapability
|
||||
import net.minecraft.world.item.TooltipFlag
|
||||
import net.minecraft.ChatFormatting
|
||||
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.TextComponent
|
||||
import net.minecraft.stats.Stats
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.level.Level
|
||||
@ -23,6 +20,7 @@ import net.minecraftforge.common.capabilities.Capability
|
||||
import net.minecraftforge.event.ForgeEventFactory
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
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.container.ItemFilter
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
@ -105,14 +103,14 @@ class PortableCondensationDriveItem(capacity: Int) :
|
||||
|
||||
@SubscribeEvent
|
||||
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
|
||||
}
|
||||
|
||||
var amount = event.item.item.count
|
||||
val item = event.item.item.item
|
||||
|
||||
for (stack in event.player.inventory.items) {
|
||||
for (stack in event.entity.inventory.items) {
|
||||
val drive = stack.item
|
||||
|
||||
if (drive is PortableCondensationDriveItem) {
|
||||
@ -131,21 +129,21 @@ class PortableCondensationDriveItem(capacity: Int) :
|
||||
|
||||
copy.count -= remaining.count
|
||||
event.isCanceled = true
|
||||
ForgeEventFactory.firePlayerItemPickupEvent(event.player, event.item, copy)
|
||||
ForgeEventFactory.firePlayerItemPickupEvent(event.entity, event.item, copy)
|
||||
|
||||
if (remaining.count > 0) {
|
||||
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.player.onItemPickup(event.item)
|
||||
event.entity.awardStat(Stats.ITEM_PICKED_UP.get(item), amount - remaining.count)
|
||||
event.entity.onItemPickup(event.item)
|
||||
|
||||
amount = remaining.count
|
||||
} else {
|
||||
event.player.take(event.item, amount)
|
||||
event.entity.take(event.item, amount)
|
||||
|
||||
event.player.awardStat(Stats.ITEM_PICKED_UP.get(item), amount)
|
||||
event.player.onItemPickup(event.item)
|
||||
event.entity.awardStat(Stats.ITEM_PICKED_UP.get(item), amount)
|
||||
event.entity.onItemPickup(event.item)
|
||||
|
||||
event.item.discard()
|
||||
doBreak = true
|
||||
|
@ -3,15 +3,16 @@ package ru.dbotthepony.mc.otm.item
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.client.model.HumanoidModel
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.sounds.SoundEvent
|
||||
import net.minecraft.sounds.SoundEvents
|
||||
import net.minecraft.world.entity.EquipmentSlot
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.*
|
||||
import net.minecraft.world.item.crafting.Ingredient
|
||||
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.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel
|
||||
import java.util.function.Consumer
|
||||
|
||||
@ -19,7 +20,7 @@ private object GravitationStabilizerArmorMaterial : ArmorMaterial {
|
||||
override fun getDurabilityForSlot(p_40410_: EquipmentSlot) = 0
|
||||
override fun getDefenseForSlot(p_40411_: EquipmentSlot) = 3
|
||||
override fun getEnchantmentValue() = 0
|
||||
override fun getEquipSound(): SoundEvent? = null
|
||||
override fun getEquipSound(): SoundEvent = SoundEvents.ARMOR_EQUIP_GENERIC
|
||||
override fun getRepairIngredient(): Ingredient = Ingredient.EMPTY
|
||||
|
||||
const val ID = "${OverdriveThatMatters.MOD_ID}:gravitation_stabilizer"
|
||||
@ -29,8 +30,8 @@ private object GravitationStabilizerArmorMaterial : ArmorMaterial {
|
||||
override fun getKnockbackResistance() = 0f
|
||||
}
|
||||
|
||||
private object GravitationStabilizerArmorRenderProperties : IItemRenderProperties {
|
||||
override fun getArmorModel(
|
||||
private object GravitationStabilizerArmorRenderProperties : IClientItemExtensions {
|
||||
override fun getHumanoidArmorModel(
|
||||
entityLiving: LivingEntity,
|
||||
itemStack: ItemStack,
|
||||
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)) {
|
||||
override fun initializeClient(consumer: Consumer<IItemRenderProperties>) {
|
||||
override fun initializeClient(consumer: Consumer<IClientItemExtensions>) {
|
||||
super.initializeClient(consumer)
|
||||
consumer.accept(GravitationStabilizerArmorRenderProperties)
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import net.minecraft.world.item.ArmorMaterial
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.Rarity
|
||||
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.client.model.TritaniumArmorModel
|
||||
import ru.dbotthepony.mc.otm.registry.MItemTags
|
||||
@ -41,7 +41,7 @@ private object TritaniumArmorMaterial : ArmorMaterial {
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
const val ID = "${OverdriveThatMatters.MOD_ID}:tritanium_armor"
|
||||
@ -51,8 +51,8 @@ private object TritaniumArmorMaterial : ArmorMaterial {
|
||||
override fun getKnockbackResistance() = 0.2f
|
||||
}
|
||||
|
||||
private object TritaniumArmorRenderProperties : IItemRenderProperties {
|
||||
override fun getArmorModel(
|
||||
private object TritaniumArmorRenderProperties : IClientItemExtensions {
|
||||
override fun getHumanoidArmorModel(
|
||||
entityLiving: LivingEntity,
|
||||
itemStack: ItemStack,
|
||||
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)) {
|
||||
override fun initializeClient(consumer: Consumer<IItemRenderProperties>) {
|
||||
override fun initializeClient(consumer: Consumer<IClientItemExtensions>) {
|
||||
super.initializeClient(consumer)
|
||||
consumer.accept(TritaniumArmorRenderProperties)
|
||||
}
|
||||
|
@ -16,15 +16,14 @@ import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.Rarity
|
||||
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.RenderHandEvent
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent
|
||||
import net.minecraftforge.client.event.ViewportEvent
|
||||
import net.minecraftforge.event.TickEvent
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.fml.LogicalSide
|
||||
import net.minecraftforge.network.NetworkEvent
|
||||
import org.lwjgl.opengl.GL30
|
||||
import ru.dbotthepony.mc.otm.*
|
||||
import ru.dbotthepony.mc.otm.capability.matteryEnergy
|
||||
import ru.dbotthepony.mc.otm.client.font
|
||||
@ -280,7 +279,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
||||
|
||||
@SubscribeEvent
|
||||
@Suppress("unused")
|
||||
fun fovHook(event: EntityViewRenderEvent.FieldOfView) {
|
||||
fun fovHook(event: ViewportEvent.ComputeFov) {
|
||||
val player = event.camera.entity as? Player ?: return
|
||||
|
||||
val it = (player.mainHandItem.item as? AbstractWeaponItem<*>)
|
||||
@ -293,7 +292,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
||||
val interp = linearInterpolation(
|
||||
it.ironSightsProgress(
|
||||
player.mainHandItem,
|
||||
event.partialTicks
|
||||
event.partialTick
|
||||
) * 1.7 - 0.6, 1.0, it.ironSightsFOV
|
||||
)
|
||||
|
||||
@ -314,7 +313,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
||||
@SubscribeEvent
|
||||
@Suppress("unused")
|
||||
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.leftArmPose = HumanoidModel.ArmPose.EMPTY
|
||||
}
|
||||
@ -322,7 +321,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
||||
|
||||
@SubscribeEvent
|
||||
@Suppress("unused")
|
||||
fun clickHook(event: InputEvent.ClickInputEvent) {
|
||||
fun clickHook(event: InputEvent.InteractionKeyMappingTriggered) {
|
||||
val player = Minecraft.getInstance().player!!
|
||||
|
||||
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 pose = event.poseStack
|
||||
val itemInHandRenderer = Minecraft.getInstance().itemInHandRenderer
|
||||
val itemInHandRenderer = Minecraft.getInstance().itemRenderer
|
||||
|
||||
pose.pushPose()
|
||||
|
||||
val progress = item.ironSightsProgress(stack, event.partialTicks.toDouble())
|
||||
val progress = item.ironSightsProgress(stack, event.partialTick.toDouble())
|
||||
|
||||
val (x, y, z) = linearInterpolation(
|
||||
// 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.XP.rotation(pitch.toFloat()))
|
||||
|
||||
itemInHandRenderer.renderItem(
|
||||
player,
|
||||
/*itemInHandRenderer.render(
|
||||
// player,
|
||||
stack,
|
||||
ItemTransforms.TransformType.FIRST_PERSON_RIGHT_HAND,
|
||||
false,
|
||||
pose,
|
||||
event.multiBufferSource,
|
||||
event.packedLight
|
||||
)
|
||||
)*/
|
||||
|
||||
if (item is PlasmaWeaponItem<*>) {
|
||||
// RenderSystem.setShader(GameRenderer::getPositionColorShader)
|
||||
@ -468,7 +467,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
||||
RenderHelper.setDrawColor(heatBackground)
|
||||
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.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.nbt.CompoundTag
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.sounds.SoundSource
|
||||
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.LazyOptional
|
||||
import net.minecraftforge.energy.CapabilityEnergy
|
||||
import ru.dbotthepony.mc.otm.*
|
||||
import ru.dbotthepony.mc.otm.capability.*
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.core.bezierCurve
|
||||
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.set
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
class PlasmaWeaponEnergy(val itemStack: ItemStack, private val innerCapacity: ImpreciseFraction) :
|
||||
|
@ -1,7 +1,6 @@
|
||||
package ru.dbotthepony.mc.otm.matter
|
||||
|
||||
import net.minecraft.tags.ItemTags
|
||||
import net.minecraft.tags.Tag
|
||||
import net.minecraft.tags.TagKey
|
||||
import net.minecraft.world.item.Item
|
||||
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)) {
|
||||
val resolved = ForgeRegistries.ITEMS.tags()?.getTag(tag)
|
||||
|
||||
|
@ -4,7 +4,6 @@ import com.mojang.blaze3d.platform.InputConstants
|
||||
import net.minecraft.ChatFormatting
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.network.FriendlyByteBuf
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.server.dedicated.DedicatedServer
|
||||
import net.minecraft.world.item.Item
|
||||
import net.minecraft.world.item.ItemStack
|
||||
@ -17,12 +16,14 @@ import net.minecraftforge.network.NetworkEvent
|
||||
import net.minecraftforge.network.PacketDistributor
|
||||
import org.lwjgl.glfw.GLFW
|
||||
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.drive.IMatteryDrive
|
||||
import ru.dbotthepony.mc.otm.core.*
|
||||
import ru.dbotthepony.mc.otm.network.MatteryNetworking
|
||||
import ru.dbotthepony.mc.otm.orNull
|
||||
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper
|
||||
import ru.dbotthepony.mc.otm.writeRegistryId
|
||||
import java.math.BigInteger
|
||||
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.network.MatteryNetworking
|
||||
import ru.dbotthepony.mc.otm.network.SetCarriedPacket
|
||||
import ru.dbotthepony.mc.otm.registryName
|
||||
import ru.dbotthepony.mc.otm.storage.*
|
||||
import java.math.BigInteger
|
||||
import java.util.*
|
||||
|
@ -7,6 +7,7 @@ import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.item.Items
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.registryName
|
||||
import ru.dbotthepony.mc.otm.set
|
||||
|
||||
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.RecipeType
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraftforge.registries.ForgeRegistryEntry
|
||||
import org.apache.logging.log4j.LogManager
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.block.entity.PlatePressBlockEntity
|
||||
import ru.dbotthepony.mc.otm.get
|
||||
import ru.dbotthepony.mc.otm.registry.MNames
|
||||
import ru.dbotthepony.mc.otm.registry.MRecipes
|
||||
import ru.dbotthepony.mc.otm.registryName
|
||||
|
||||
class PlatePressRecipe(
|
||||
private val id: ResourceLocation,
|
||||
@ -82,14 +82,10 @@ class PlatePressRecipe(
|
||||
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 LOGGER = LogManager.getLogger()
|
||||
|
||||
init {
|
||||
registryName = OverdriveThatMatters.loc(MNames.PLATE_PRESS)
|
||||
}
|
||||
|
||||
override fun fromJson(loc: ResourceLocation, obj: JsonObject): PlatePressRecipe {
|
||||
val input = try {
|
||||
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.*
|
||||
|
||||
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 STEP_ASSIST: AndroidFeatureType<*> by registry.register(MNames.STEP_ASSIST) { AndroidFeatureType(::StepAssistFeature) }
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.network.chat.TextComponent
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.RegistryObject
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.TextComponent
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchBuilder
|
||||
import ru.dbotthepony.mc.otm.android.AndroidResearchType
|
||||
import ru.dbotthepony.mc.otm.android.feature.NanobotsArmor
|
||||
@ -74,7 +74,7 @@ object AndroidResearch {
|
||||
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() {
|
||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
||||
|
@ -1,12 +1,12 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraft.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.world.damagesource.DamageSource
|
||||
import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
|
||||
class ImmutableDamageSource(private val parent: DamageSource) : DamageSource(parent.msgId) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
|
@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import com.google.common.collect.ImmutableSet
|
||||
import net.minecraft.world.item.DyeColor
|
||||
import net.minecraftforge.registries.IForgeRegistryEntry
|
||||
import net.minecraftforge.registries.RegistryObject
|
||||
|
||||
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) })
|
||||
}
|
||||
|
||||
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())
|
||||
|
||||
override val size: Int
|
||||
|
@ -1,15 +1,20 @@
|
||||
package ru.dbotthepony.mc.otm.registry
|
||||
|
||||
import net.minecraftforge.common.loot.GlobalLootModifierSerializer
|
||||
import net.minecraftforge.event.RegistryEvent
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import com.mojang.serialization.Codec
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.data.LootTableAppender
|
||||
import ru.dbotthepony.mc.otm.data.LootTableBasicAppender
|
||||
|
||||
object LootModifiers {
|
||||
@SubscribeEvent
|
||||
fun register(event: RegistryEvent.Register<GlobalLootModifierSerializer<*>>) {
|
||||
event.registry.register(LootTableAppender.Companion)
|
||||
event.registry.register(LootTableBasicAppender.Companion)
|
||||
private val registry = DeferredRegister.create(ForgeRegistries.Keys.GLOBAL_LOOT_MODIFIER_SERIALIZERS, OverdriveThatMatters.MOD_ID)
|
||||
|
||||
val LOOT_TABLE_APPENDER: Codec<LootTableAppender> by registry.register("loot_table_appender") { LootTableAppender.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
|
||||
|
||||
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 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.world.item.DyeColor
|
||||
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.state.BlockBehaviour
|
||||
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_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)
|
||||
.strength(3.25f, 6.0f)
|
||||
.requiresCorrectToolForDrops(),
|
||||
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)
|
||||
.strength(4.75f, 6.5f)
|
||||
.requiresCorrectToolForDrops(),
|
||||
|
@ -14,7 +14,7 @@ import ru.dbotthepony.mc.otm.client.render.entity.PlasmaProjectileRenderer
|
||||
import ru.dbotthepony.mc.otm.entity.PlasmaProjectile
|
||||
|
||||
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) {
|
||||
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.network.chat.Component
|
||||
import net.minecraft.network.chat.TranslatableComponent
|
||||
import net.minecraft.tags.BlockTags
|
||||
import net.minecraft.world.entity.EquipmentSlot
|
||||
import net.minecraft.world.food.FoodProperties
|
||||
import net.minecraft.world.item.*
|
||||
import net.minecraft.world.item.crafting.Ingredient
|
||||
import net.minecraft.world.level.Level
|
||||
import net.minecraft.world.level.block.Block
|
||||
import net.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.fml.javafmlmod.FMLJavaModLoadingContext
|
||||
import net.minecraftforge.registries.DeferredRegister
|
||||
import net.minecraftforge.registries.ForgeRegistries
|
||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||
import ru.dbotthepony.mc.otm.TranslatableComponent
|
||||
import ru.dbotthepony.mc.otm.core.ImpreciseFraction
|
||||
import ru.dbotthepony.mc.otm.item.*
|
||||
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.*
|
||||
|
||||
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 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