forked from ValkyrienSkies/Valkyrien-Skies-2
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/1.19.2/main' into 1.19.2/update
# Conflicts: # common/build.gradle # common/src/main/java/org/valkyrienskies/mod/mixin/client/multiplayer/MixinClientPacketListener.java # common/src/main/java/org/valkyrienskies/mod/mixin/client/renderer/MixinLevelRenderer.java # common/src/main/java/org/valkyrienskies/mod/mixin/server/MixinPlayerList.java # common/src/main/java/org/valkyrienskies/mod/mixin/server/command/MixinCommands.java # common/src/main/java/org/valkyrienskies/mod/mixin/server/network/MixinServerGamePacketListenerImpl.java # common/src/main/java/org/valkyrienskies/mod/mixin/server/world/MixinServerLevel.java # common/src/main/kotlin/org/valkyrienskies/mod/client/audio/SimpleSoundInstanceOnShip.kt # common/src/main/kotlin/org/valkyrienskies/mod/common/command/RelativeVector3Argument.kt # common/src/main/kotlin/org/valkyrienskies/mod/common/command/ShipArgument.kt # common/src/main/kotlin/org/valkyrienskies/mod/common/command/VSCommands.kt # common/src/main/kotlin/org/valkyrienskies/mod/common/item/ShipAssemblerItem.kt # common/src/main/kotlin/org/valkyrienskies/mod/common/item/ShipCreatorItem.kt # common/src/main/kotlin/org/valkyrienskies/mod/compat/clothconfig/VSClothConfig.kt # fabric/build.gradle # fabric/gradle.properties # fabric/src/main/java/org/valkyrienskies/mod/fabric/mixin/world/level/block/FireMixin.java # fabric/src/main/kotlin/org/valkyrienskies/mod/fabric/common/ValkyrienSkiesModFabric.kt # fabric/src/main/resources/valkyrienskies-fabric.mixins.json # forge/build.gradle # forge/gradle.properties # forge/src/main/java/org/valkyrienskies/mod/forge/mixin/world/level/block/FireMixin.java # forge/src/main/kotlin/org/valkyrienskies/mod/forge/common/ValkyrienSkiesModForge.kt # gradle.properties
- Loading branch information
Showing
22 changed files
with
480 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
77 changes: 77 additions & 0 deletions
77
...c/src/main/java/org/valkyrienskies/mod/fabric/mixin/client/render/MixinLevelRenderer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
package org.valkyrienskies.mod.fabric.mixin.client.render; | ||
|
||
import static org.valkyrienskies.mod.common.VSClientGameUtils.transformRenderWithShip; | ||
|
||
import com.llamalad7.mixinextras.injector.wrapoperation.Operation; | ||
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; | ||
import com.mojang.blaze3d.vertex.PoseStack; | ||
import com.mojang.blaze3d.vertex.SheetedDecalTextureGenerator; | ||
import com.mojang.blaze3d.vertex.VertexConsumer; | ||
import com.mojang.math.Matrix3f; | ||
import com.mojang.math.Matrix4f; | ||
import net.minecraft.client.Camera; | ||
import net.minecraft.client.multiplayer.ClientLevel; | ||
import net.minecraft.client.renderer.GameRenderer; | ||
import net.minecraft.client.renderer.LevelRenderer; | ||
import net.minecraft.client.renderer.LightTexture; | ||
import net.minecraft.client.renderer.block.BlockRenderDispatcher; | ||
import net.minecraft.core.BlockPos; | ||
import net.minecraft.world.level.BlockAndTintGetter; | ||
import net.minecraft.world.level.block.state.BlockState; | ||
import net.minecraft.world.phys.Vec3; | ||
import org.spongepowered.asm.mixin.Mixin; | ||
import org.spongepowered.asm.mixin.Shadow; | ||
import org.spongepowered.asm.mixin.injection.At; | ||
import org.valkyrienskies.core.api.ships.ClientShip; | ||
import org.valkyrienskies.core.api.ships.properties.ShipTransform; | ||
import org.valkyrienskies.mod.common.VSGameUtilsKt; | ||
import org.valkyrienskies.mod.mixin.accessors.client.render.OverlayVertexConsumerAccessor; | ||
|
||
@Mixin(LevelRenderer.class) | ||
public abstract class MixinLevelRenderer { | ||
@Shadow | ||
private ClientLevel level; | ||
|
||
/** | ||
* This mixin makes block damage render on ships. | ||
*/ | ||
@WrapOperation(method = "renderLevel", at = @At(value = "INVOKE", | ||
target = "Lnet/minecraft/client/renderer/block/BlockRenderDispatcher;renderBreakingTexture(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/BlockAndTintGetter;Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;)V")) | ||
private void renderBlockDamage(final BlockRenderDispatcher blockRenderManager, final BlockState state, | ||
final BlockPos blockPos, final BlockAndTintGetter blockRenderWorld, final PoseStack matrix, | ||
final VertexConsumer vertexConsumer, final Operation<Void> renderBreakingTexture, final PoseStack matrixStack, | ||
final float methodTickDelta, final long methodLimitTime, final boolean methodRenderBlockOutline, | ||
final Camera methodCamera, final GameRenderer methodGameRenderer, | ||
final LightTexture methodLightmapTextureManager, final Matrix4f methodMatrix4f) { | ||
|
||
final ClientShip ship = VSGameUtilsKt.getShipObjectManagingPos(level, blockPos); | ||
if (ship != null) { | ||
// Remove the vanilla render transform | ||
matrixStack.popPose(); | ||
|
||
// Add the VS render transform | ||
matrixStack.pushPose(); | ||
|
||
final ShipTransform renderTransform = ship.getRenderTransform(); | ||
final Vec3 cameraPos = methodCamera.getPosition(); | ||
|
||
transformRenderWithShip(renderTransform, matrixStack, blockPos, cameraPos.x, cameraPos.y, cameraPos.z); | ||
|
||
final Matrix3f newNormalMatrix = matrixStack.last().normal().copy(); | ||
final Matrix4f newModelMatrix = matrixStack.last().pose().copy(); | ||
|
||
// Then update the matrices in vertexConsumer (I'm guessing vertexConsumer is responsible for mapping | ||
// textures, so we need to update its matrices otherwise the block damage texture looks wrong) | ||
final SheetedDecalTextureGenerator newVertexConsumer = | ||
new SheetedDecalTextureGenerator(((OverlayVertexConsumerAccessor) vertexConsumer).getDelegate(), | ||
newModelMatrix, newNormalMatrix); | ||
|
||
// Finally, invoke the render damage function. | ||
renderBreakingTexture.call(blockRenderManager, state, blockPos, blockRenderWorld, matrix, | ||
newVertexConsumer); | ||
} else { | ||
// Vanilla behavior | ||
renderBreakingTexture.call(blockRenderManager, state, blockPos, blockRenderWorld, matrix, vertexConsumer); | ||
} | ||
} | ||
} |
18 changes: 18 additions & 0 deletions
18
...org/valkyrienskies/mod/fabric/mixin/feature/duplicate_keybindings/KeyMappingAccessor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package org.valkyrienskies.mod.fabric.mixin.feature.duplicate_keybindings; | ||
|
||
import com.mojang.blaze3d.platform.InputConstants; | ||
import net.minecraft.client.KeyMapping; | ||
import org.spongepowered.asm.mixin.Mixin; | ||
import org.spongepowered.asm.mixin.gen.Accessor; | ||
|
||
@Mixin(KeyMapping.class) | ||
public interface KeyMappingAccessor { | ||
@Accessor | ||
InputConstants.Key getKey(); | ||
|
||
@Accessor | ||
int getClickCount(); | ||
|
||
@Accessor | ||
void setClickCount(int clickCount); | ||
} |
74 changes: 74 additions & 0 deletions
74
...va/org/valkyrienskies/mod/fabric/mixin/feature/duplicate_keybindings/MixinKeyMapping.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
package org.valkyrienskies.mod.fabric.mixin.feature.duplicate_keybindings; | ||
|
||
import com.google.common.collect.Maps; | ||
import com.mojang.blaze3d.platform.InputConstants; | ||
import com.mojang.blaze3d.platform.InputConstants.Key; | ||
import java.util.Map; | ||
import net.minecraft.client.KeyMapping; | ||
import org.spongepowered.asm.mixin.Final; | ||
import org.spongepowered.asm.mixin.Mixin; | ||
import org.spongepowered.asm.mixin.Shadow; | ||
import org.spongepowered.asm.mixin.Unique; | ||
import org.spongepowered.asm.mixin.injection.At; | ||
import org.spongepowered.asm.mixin.injection.Inject; | ||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; | ||
import org.valkyrienskies.mod.common.config.VSKeyBindings; | ||
|
||
/** | ||
* This Mixin makes it so VS2 keybindings are pressed even when there exists another keybinding bound to the set same | ||
* key. | ||
*/ | ||
@Mixin(KeyMapping.class) | ||
public class MixinKeyMapping { | ||
@Unique | ||
private static final Map<Key, KeyMapping> VS2_KEYMAP = Maps.newHashMap(); | ||
|
||
@Shadow | ||
@Final | ||
private static Map<InputConstants.Key, KeyMapping> MAP; | ||
|
||
@Shadow | ||
@Final | ||
private static Map<String, KeyMapping> ALL; | ||
|
||
@Shadow | ||
private InputConstants.Key key; | ||
|
||
@Inject(method = "click", at = @At("HEAD")) | ||
private static void preClick(final InputConstants.Key key, final CallbackInfo callbackInfo) { | ||
final KeyMapping originalKeyMapping = MAP.get(key); | ||
final KeyMapping vs2KeyMapping = VS2_KEYMAP.get(key); | ||
if (vs2KeyMapping != null && originalKeyMapping != vs2KeyMapping) { | ||
final KeyMappingAccessor keyMappingAccessor = (KeyMappingAccessor) vs2KeyMapping; | ||
keyMappingAccessor.setClickCount(keyMappingAccessor.getClickCount() + 1); | ||
} | ||
} | ||
|
||
@Inject(method = "set", at = @At("HEAD")) | ||
private static void preSet(final InputConstants.Key key, final boolean bl, final CallbackInfo callbackInfo) { | ||
final KeyMapping originalKeyMapping = MAP.get(key); | ||
final KeyMapping vs2KeyMapping = VS2_KEYMAP.get(key); | ||
if (vs2KeyMapping != null && originalKeyMapping != vs2KeyMapping) { | ||
vs2KeyMapping.setDown(bl); | ||
} | ||
} | ||
|
||
@Inject(method = "resetMapping", at = @At("HEAD")) | ||
private static void preResetMapping(final CallbackInfo callbackInfo) { | ||
VS2_KEYMAP.clear(); | ||
for (final KeyMapping keyMapping : ALL.values()) { | ||
if (VSKeyBindings.INSTANCE.isKeyMappingFromVS2(keyMapping)) { | ||
final KeyMappingAccessor keyMappingAccessor = (KeyMappingAccessor) keyMapping; | ||
VS2_KEYMAP.put(keyMappingAccessor.getKey(), keyMapping); | ||
} | ||
} | ||
} | ||
|
||
@Inject(method = "<init>", at = @At("RETURN"), remap = false) | ||
private void postInit(final CallbackInfo callbackInfo) { | ||
final KeyMapping thisAsKeyMapping = KeyMapping.class.cast(this); | ||
if (VSKeyBindings.INSTANCE.isKeyMappingFromVS2(thisAsKeyMapping)) { | ||
VS2_KEYMAP.put(this.key, thisAsKeyMapping); | ||
} | ||
} | ||
} |
2 changes: 1 addition & 1 deletion
2
...re/water_in_ships_entity/MixinEntity.java → ...re/water_in_ships_entity/MixinEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.