1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package moe.nea.firmament.gui.entity
import com.mojang.authlib.GameProfile
import java.util.UUID
import net.minecraft.client.network.AbstractClientPlayerEntity
import net.minecraft.client.util.DefaultSkinHelper
import net.minecraft.client.util.SkinTextures
import net.minecraft.client.util.SkinTextures.Model
import net.minecraft.client.world.ClientWorld
import net.minecraft.util.Identifier
import net.minecraft.util.math.BlockPos
import net.minecraft.util.math.Vec3d
import net.minecraft.world.World
/**
* @see moe.nea.firmament.init.EarlyRiser
*/
fun makeGuiPlayer(world: World): GuiPlayer {
val constructor = GuiPlayer::class.java.getDeclaredConstructor(
World::class.java,
BlockPos::class.java,
Float::class.javaPrimitiveType,
GameProfile::class.java
)
val player = constructor.newInstance(world, BlockPos.ORIGIN, 0F, GameProfile(UUID.randomUUID(), "Linnea"))
player.postInit()
return player
}
class GuiPlayer(world: ClientWorld?, profile: GameProfile?) : AbstractClientPlayerEntity(world, profile) {
override fun isSpectator(): Boolean {
return false
}
fun postInit() {
lastVelocity = Vec3d.ZERO
}
override fun isCreative(): Boolean {
return false
}
override fun shouldRenderName(): Boolean {
return false
}
var skinTexture: Identifier = DefaultSkinHelper.getSkinTextures(this.getUuid()).texture
var capeTexture: Identifier? = null
var model: Model = Model.WIDE
override fun getSkinTextures(): SkinTextures {
return SkinTextures(
skinTexture,
null,
capeTexture,
null,
model,
true
)
}
}
|