|
19 | 19 | * along with this program. If not, see <http://www.gnu.org/licenses/>. |
20 | 20 | */ |
21 | 21 |
|
22 | | -package com.viaversion.viafabricplus.old; |
| 22 | +package com.viaversion.viafabricplus.features; |
23 | 23 |
|
24 | 24 | import com.viaversion.viafabricplus.api.LoadingCycleCallback; |
25 | 25 | import com.viaversion.viafabricplus.base.Events; |
26 | | -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; |
27 | | -import com.viaversion.viafabricplus.old.data.EntityDimensionDiff; |
28 | | -import com.viaversion.viafabricplus.features.networking.resource_pack_header.ResourcePackHeaderDiff; |
29 | | -import com.viaversion.viafabricplus.features.recipe_emulation.Recipes1_11_2; |
30 | | -import com.viaversion.viafabricplus.old.versioned.EnchantmentAttributesEmulation1_20_6; |
| 26 | +import com.viaversion.viafabricplus.base.settings.impl.VisualSettings; |
| 27 | +import com.viaversion.viafabricplus.features.block.CollisionShapes; |
31 | 28 | import com.viaversion.viafabricplus.features.cpe_extensions.CPEAdditions; |
32 | | -import com.viaversion.viafabricplus.features.ui.classic_creative_menu.GridItemSelectionScreen; |
33 | | -import com.viaversion.viafabricplus.features.ui.armor_hud.ArmorHudEmulation1_8; |
34 | 29 | import com.viaversion.viafabricplus.features.footstep_particle.FootStepParticle1_12_2; |
| 30 | +import com.viaversion.viafabricplus.features.networking.resource_pack_header.ResourcePackHeaderDiff; |
| 31 | +import com.viaversion.viafabricplus.features.recipe_emulation.Recipes1_11_2; |
35 | 32 | import com.viaversion.viafabricplus.features.text_rendering.non_existing_characters.UnicodeFontFix1_12_2; |
36 | | -import com.viaversion.viafabricplus.base.settings.impl.VisualSettings; |
| 33 | +import com.viaversion.viafabricplus.features.ui.armor_hud.ArmorHudEmulation1_8; |
| 34 | +import com.viaversion.viafabricplus.features.ui.classic_creative_menu.GridItemSelectionScreen; |
| 35 | +import com.viaversion.viafabricplus.old.data.EntityDimensionDiff; |
| 36 | +import com.viaversion.viafabricplus.old.versioned.EnchantmentAttributesEmulation1_20_6; |
37 | 37 | import com.viaversion.viafabricplus.util.DataCustomPayload; |
38 | | -import net.minecraft.block.*; |
| 38 | +import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; |
39 | 39 | import net.minecraft.client.MinecraftClient; |
40 | | -import net.minecraft.registry.Registries; |
41 | 40 | import net.raphimc.viaaprilfools.api.AprilFoolsProtocolVersion; |
42 | 41 | import net.raphimc.vialegacy.api.LegacyProtocolVersion; |
43 | 42 |
|
44 | | -/** |
45 | | - * This class contains random fields and methods that are used to fix bugs on the client side |
46 | | - */ |
47 | | -public class ClientsideFeatures { |
| 43 | +public class FeaturesLoading { |
48 | 44 |
|
49 | 45 | static { |
50 | | - // Register additional CPE features |
51 | | - CPEAdditions.modifyMappings(); |
52 | | - |
53 | | - // Check if the pack format mappings are correct |
54 | | - ResourcePackHeaderDiff.checkOutdated(); |
55 | | - |
| 46 | + ResourcePackHeaderDiff.init(); |
| 47 | + CPEAdditions.init(); |
| 48 | + DataCustomPayload.init(); |
56 | 49 | UnicodeFontFix1_12_2.init(); |
| 50 | + FootStepParticle1_12_2.init(); |
57 | 51 |
|
58 | 52 | Events.LOADING_CYCLE.register(cycle -> { |
59 | | - if (cycle != LoadingCycleCallback.LoadingCycle.POST_GAME_LOAD) { |
60 | | - return; |
| 53 | + if (cycle == LoadingCycleCallback.LoadingCycle.POST_GAME_LOAD) { |
| 54 | + EntityDimensionDiff.init(); |
| 55 | + EnchantmentAttributesEmulation1_20_6.init(); |
| 56 | + ArmorHudEmulation1_8.init(); |
61 | 57 | } |
62 | | - |
63 | | - // Handle clientside enchantment calculations in <= 1.20.6 |
64 | | - EnchantmentAttributesEmulation1_20_6.init(); |
65 | | - |
66 | | - // Handles and updates entity dimension changes in <= 1.17 |
67 | | - EntityDimensionDiff.init(); |
68 | | - |
69 | | - // Ticks the armor hud manually in <= 1.8.x |
70 | | - ArmorHudEmulation1_8.init(); |
71 | 58 | }); |
72 | 59 |
|
73 | | - // Reloads some clientside stuff when the protocol version changes |
74 | 60 | Events.CHANGE_PROTOCOL_VERSION.register((oldVersion, newVersion) -> MinecraftClient.getInstance().execute(() -> { |
75 | 61 | VisualSettings.global().filterNonExistingGlyphs.onValueChanged(); |
| 62 | + CollisionShapes.reloadBlockShapes(); |
76 | 63 |
|
77 | | - // Reloads all bounding boxes of the blocks that we changed |
78 | | - for (Block block : Registries.BLOCK) { |
79 | | - if (block instanceof AnvilBlock || block instanceof BedBlock || block instanceof BrewingStandBlock |
80 | | - || block instanceof CarpetBlock || block instanceof CauldronBlock || block instanceof ChestBlock |
81 | | - || block instanceof EnderChestBlock || block instanceof EndPortalBlock || block instanceof EndPortalFrameBlock |
82 | | - || block instanceof FarmlandBlock || block instanceof FenceBlock || block instanceof FenceGateBlock |
83 | | - || block instanceof HopperBlock || block instanceof LadderBlock || block instanceof LeavesBlock |
84 | | - || block instanceof LilyPadBlock || block instanceof PaneBlock || block instanceof PistonBlock |
85 | | - || block instanceof PistonHeadBlock || block instanceof SnowBlock || block instanceof WallBlock |
86 | | - || block instanceof CropBlock || block instanceof FlowerbedBlock |
87 | | - ) { |
88 | | - for (BlockState state : block.getStateManager().getStates()) { |
89 | | - state.initShapeCache(); |
90 | | - } |
91 | | - } |
92 | | - } |
93 | | - |
94 | | - // Rebuilds the item selection screen grid |
95 | 64 | if (newVersion.olderThanOrEqualTo(LegacyProtocolVersion.c0_28toc0_30)) { |
96 | 65 | GridItemSelectionScreen.INSTANCE.itemGrid = null; |
97 | 66 | } |
98 | | - |
99 | | - // Reloads the clientside recipes |
100 | 67 | if (newVersion.olderThanOrEqualTo(ProtocolVersion.v1_11_1)) { |
101 | 68 | Recipes1_11_2.reset(); |
102 | 69 | } |
103 | | - |
104 | | - // Reload sound system when switching between 3D Shareware and normal versions |
105 | 70 | if (oldVersion.equals(AprilFoolsProtocolVersion.s3d_shareware) || newVersion.equals(AprilFoolsProtocolVersion.s3d_shareware)) { |
106 | 71 | MinecraftClient.getInstance().getSoundManager().reloadSounds(); |
107 | 72 | } |
108 | 73 | })); |
109 | | - |
110 | | - // Register the footstep particle |
111 | | - FootStepParticle1_12_2.init(); |
112 | | - |
113 | | - // Register the custom payload packet for sync tasks |
114 | | - DataCustomPayload.init(); |
115 | 74 | } |
116 | 75 |
|
117 | 76 | public static void init() { |
|
0 commit comments