TestMod.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * This file is part of architectury.
  3. * Copyright (C) 2020, 2021 architectury
  4. *
  5. * This program is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 3 of the License, or (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General Public License
  16. * along with this program; if not, write to the Free Software Foundation,
  17. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. */
  19. package me.shedaniel.architectury.test;
  20. import me.shedaniel.architectury.registry.entity.EntityRenderers;
  21. import me.shedaniel.architectury.test.debug.ConsoleMessageSink;
  22. import me.shedaniel.architectury.test.debug.MessageSink;
  23. import me.shedaniel.architectury.test.debug.client.ClientOverlayMessageSink;
  24. import me.shedaniel.architectury.test.entity.TestEntity;
  25. import me.shedaniel.architectury.test.events.DebugEvents;
  26. import me.shedaniel.architectury.test.gamerule.TestGameRules;
  27. import me.shedaniel.architectury.test.item.TestBlockInteractions;
  28. import me.shedaniel.architectury.test.networking.TestModNet;
  29. import me.shedaniel.architectury.test.particle.TestParticles;
  30. import me.shedaniel.architectury.test.registry.TestRegistries;
  31. import me.shedaniel.architectury.test.registry.client.TestKeybinds;
  32. import me.shedaniel.architectury.test.tags.TestTags;
  33. import me.shedaniel.architectury.test.trade.TestTrades;
  34. import me.shedaniel.architectury.utils.Env;
  35. import me.shedaniel.architectury.utils.EnvExecutor;
  36. import net.fabricmc.api.EnvType;
  37. import net.fabricmc.api.Environment;
  38. import net.minecraft.client.renderer.entity.MinecartRenderer;
  39. public class TestMod {
  40. public static final MessageSink SINK = EnvExecutor.getEnvSpecific(() -> ClientOverlayMessageSink::new, () -> ConsoleMessageSink::new);
  41. public static final String MOD_ID = "architectury-test";
  42. public static void initialize() {
  43. DebugEvents.initialize();
  44. TestRegistries.initialize();
  45. TestGameRules.init();
  46. TestTags.initialize();
  47. TestTrades.init();
  48. TestParticles.initialize();
  49. TestModNet.initialize();
  50. TestBlockInteractions.init();
  51. EnvExecutor.runInEnv(Env.CLIENT, () -> TestMod.Client::initializeClient);
  52. }
  53. @Environment(EnvType.CLIENT)
  54. public static class Client {
  55. @Environment(EnvType.CLIENT)
  56. public static void initializeClient() {
  57. TestKeybinds.initialize();
  58. TestModNet.initializeClient();
  59. EntityRenderers.register(TestEntity.TYPE, MinecartRenderer<TestEntity>::new);
  60. }
  61. }
  62. }