-
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.
- Loading branch information
1 parent
866ce8b
commit e1a72d9
Showing
12 changed files
with
159 additions
and
5 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
45 changes: 45 additions & 0 deletions
45
src/main/kotlin/gg/norisk/heroes/ironman/abilities/TransformAbility.kt
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,45 @@ | ||
package gg.norisk.heroes.ironman.abilities | ||
|
||
import gg.norisk.heroes.ironman.abilities.FlyAbility.thirdAbilityTogglePacket | ||
import gg.norisk.heroes.ironman.player.IronManPlayer | ||
import gg.norisk.heroes.ironman.player.ironManTracker | ||
import gg.norisk.heroes.ironman.player.isIronMan | ||
import gg.norisk.heroes.ironman.registry.SoundRegistry | ||
import net.minecraft.entity.LivingEntity | ||
import net.minecraft.entity.data.TrackedData | ||
import net.minecraft.entity.player.PlayerEntity | ||
import net.minecraft.sound.SoundCategory | ||
|
||
object TransformAbility { | ||
fun initClient() { | ||
} | ||
|
||
fun initServer() { | ||
thirdAbilityTogglePacket.receiveOnServer { packet, context -> | ||
val player = context.player | ||
player.isIronMan = !player.isIronMan | ||
} | ||
} | ||
|
||
fun handleTrackedDataSet(livingEntity: LivingEntity, trackedData: TrackedData<*>) { | ||
val player = livingEntity as? PlayerEntity ?: return | ||
val world = player.world | ||
if (ironManTracker == trackedData) { | ||
(player as IronManPlayer).transformTimestamp = System.currentTimeMillis() | ||
player.playSuitUpSound() | ||
} | ||
} | ||
|
||
private fun PlayerEntity.playSuitUpSound() { | ||
if (!world.isClient) { | ||
world.playSoundFromEntity( | ||
null, | ||
this, | ||
SoundRegistry.SUIT_UP, | ||
SoundCategory.PLAYERS, | ||
2f, | ||
1f | ||
) | ||
} | ||
} | ||
} |
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
71 changes: 71 additions & 0 deletions
71
...tlin/gg/norisk/heroes/ironman/client/render/entity/feature/IronManArmorOverlayRenderer.kt
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,71 @@ | ||
package gg.norisk.heroes.ironman.client.render.entity.feature | ||
|
||
import gg.norisk.heroes.ironman.IronManManager | ||
import gg.norisk.heroes.ironman.player.IronManPlayer | ||
import gg.norisk.heroes.ironman.player.isIronMan | ||
import net.fabricmc.api.EnvType | ||
import net.fabricmc.api.Environment | ||
import net.minecraft.client.MinecraftClient | ||
import net.minecraft.client.render.OverlayTexture | ||
import net.minecraft.client.render.VertexConsumerProvider | ||
import net.minecraft.client.render.entity.feature.FeatureRenderer | ||
import net.minecraft.client.render.entity.feature.FeatureRendererContext | ||
import net.minecraft.client.render.entity.model.BipedEntityModel | ||
import net.minecraft.client.util.math.MatrixStack | ||
import net.minecraft.entity.LivingEntity | ||
import net.minecraft.entity.player.PlayerEntity | ||
import net.minecraft.util.math.MathHelper | ||
|
||
@Environment(EnvType.CLIENT) | ||
class IronManArmorOverlayRenderer<T : LivingEntity, M : BipedEntityModel<T>, A : BipedEntityModel<T>>( | ||
featureRendererContext: FeatureRendererContext<T, M>, | ||
) : FeatureRenderer<T, M>(featureRendererContext) { | ||
var currentScale = 0.4f | ||
|
||
override fun render( | ||
matrixStack: MatrixStack, | ||
vertexConsumerProvider: VertexConsumerProvider, | ||
i: Int, | ||
livingEntity: T, | ||
f: Float, | ||
g: Float, | ||
h: Float, | ||
j: Float, | ||
k: Float, | ||
l: Float | ||
) { | ||
val player = livingEntity as? PlayerEntity ?: return | ||
if (player.isIronMan) { | ||
currentScale = MathHelper.lerp(MinecraftClient.getInstance().tickDelta * 0.05f, currentScale, 1.05f) | ||
} else { | ||
currentScale = MathHelper.lerp(MinecraftClient.getInstance().tickDelta * 0.05f, currentScale, 0.4f) | ||
} | ||
|
||
if (player.shouldRenderIronManSkin()) { | ||
return | ||
} | ||
|
||
if (!player.isIronMan && (player as IronManPlayer).transformTimestamp + 250L < System.currentTimeMillis()) { | ||
return | ||
} | ||
|
||
matrixStack.push() | ||
matrixStack.scale(currentScale, currentScale, currentScale) | ||
this.contextModel.render( | ||
matrixStack, | ||
vertexConsumerProvider.getBuffer(this.contextModel.getLayer(IronManManager.skin)), | ||
i, | ||
OverlayTexture.DEFAULT_UV, 1.0f, 1.0f, 1.0f, 1.0f | ||
) | ||
matrixStack.pop() | ||
} | ||
|
||
companion object { | ||
fun PlayerEntity.shouldRenderIronManSkin(): Boolean { | ||
if ((this as IronManPlayer).transformTimestamp + 1000L < System.currentTimeMillis() && isIronMan) { | ||
return true | ||
} | ||
return false | ||
} | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,11 @@ | |
"sounds": [ | ||
"ironman:fly_start_sound" | ||
] | ||
}, | ||
"suit_up": { | ||
"sounds": [ | ||
"ironman:suit_up" | ||
] | ||
} | ||
} | ||
|
Binary file not shown.