mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-10-20 22:26:24 -04:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10f1ac7682 |
@@ -19,6 +19,7 @@ import com.cobblemon.mod.common.mixin.accessor.TrackedEntityAccessor;
|
||||
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateDriverInputPacket;
|
||||
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateOrientationPacket;
|
||||
import com.cobblemon.mod.common.net.messages.client.pokemon.update.ClientboundUpdateRidingStatePacket;
|
||||
import com.cobblemon.mod.common.net.messages.client.riding.ClientboundGrabEntityPacket;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
import net.minecraft.network.protocol.Packet;
|
||||
import net.minecraft.server.level.ChunkMap;
|
||||
@@ -43,22 +44,27 @@ import java.util.function.Consumer;
|
||||
@Mixin(ServerEntity.class)
|
||||
public abstract class ServerEntityMixin {
|
||||
|
||||
@Shadow
|
||||
@Final
|
||||
private Consumer<Packet<?>> broadcast;
|
||||
@Shadow
|
||||
@Final
|
||||
private Entity entity;
|
||||
@Unique
|
||||
private Matrix3f cobblemon$lastSentOrientation;
|
||||
@Unique
|
||||
private boolean cobblemon$lastSentActive;
|
||||
@Shadow @Final private Consumer<Packet<?>> broadcast;
|
||||
@Shadow @Final private Entity entity;
|
||||
@Unique private Matrix3f cobblemon$lastSentOrientation;
|
||||
@Unique private boolean cobblemon$lastSentActive;
|
||||
@Unique private Entity cobblemon$lastSentGrabbedEntity;
|
||||
|
||||
@Inject(method = "sendChanges", at = @At("TAIL"))
|
||||
private void cobblemon$sendChanges(CallbackInfo ci) {
|
||||
cobblemon$sendOrientationChanges();
|
||||
cobblemon$sendRidingStateChanges();
|
||||
cobblemon$sendDriverInput();
|
||||
cobblemon$sendGrabbedEntityChanges();
|
||||
}
|
||||
|
||||
private void cobblemon$sendGrabbedEntityChanges() {
|
||||
if (!(this.entity instanceof PokemonEntity pokemonEntity)) return;
|
||||
if (pokemonEntity.getEntityHook() != cobblemon$lastSentGrabbedEntity) {
|
||||
var entityId = pokemonEntity.getEntityHook() == null ? null : pokemonEntity.getEntityHook().getId();
|
||||
cobblemon$broadcast(new ClientboundGrabEntityPacket(pokemonEntity.getId(), entityId));
|
||||
cobblemon$lastSentGrabbedEntity = pokemonEntity.getEntityHook();
|
||||
}
|
||||
}
|
||||
|
||||
private void cobblemon$sendRidingStateChanges() {
|
||||
|
||||
+2
-4
@@ -22,10 +22,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
@Mixin(LivingEntityRenderer.class)
|
||||
public class LivingEntityRendererMixin<T extends LivingEntity, M extends EntityModel<T>> {
|
||||
|
||||
@Inject(
|
||||
method = "setupRotations",
|
||||
at = @At("HEAD")
|
||||
)
|
||||
@Inject(method = "setupRotations", at = @At("HEAD"))
|
||||
private void cobblemon$modifyRoll(LivingEntity entity, PoseStack poseStack, float bob, float yBodyRot, float partialTick, float scale, CallbackInfo ci) {
|
||||
if (entity.isPassenger()) {
|
||||
var vehicle = entity.getVehicle();
|
||||
@@ -34,4 +31,5 @@ public class LivingEntityRendererMixin<T extends LivingEntity, M extends EntityM
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.cobblemon.mod.common.client.net.pasture.UpdatePastureConflictFlagHand
|
||||
import com.cobblemon.mod.common.client.net.pokedex.ServerConfirmedRegisterHandler
|
||||
import com.cobblemon.mod.common.client.net.pokemon.update.ClientboundUpdateRidingStateHandler
|
||||
import com.cobblemon.mod.common.client.net.pokemon.update.PokemonUpdatePacketHandler
|
||||
import com.cobblemon.mod.common.client.net.riding.ClientboundGrabEntityHandler
|
||||
import com.cobblemon.mod.common.client.net.riding.ClientboundUpdateDriverInputHandler
|
||||
import com.cobblemon.mod.common.client.net.settings.OpenCobblemonConfigEditorHandler
|
||||
import com.cobblemon.mod.common.client.net.settings.ServerSettingsPacketHandler
|
||||
@@ -102,6 +103,7 @@ import com.cobblemon.mod.common.net.messages.client.pokemon.update.*
|
||||
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.AddEvolutionPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.ClearEvolutionsPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.RemoveEvolutionPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.riding.ClientboundGrabEntityPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.settings.OpenCobblemonConfigScreenPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.sound.UnvalidatedPlaySoundS2CPacket
|
||||
@@ -184,6 +186,7 @@ import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetMarkingsPa
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetNicknamePacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokemon.update.evolution.AcceptEvolutionPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.DismountPokemonPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.GrabEntityPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.ServerboundUpdateDriverInputPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.ServerboundUpdateRiderRotationPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.starter.RequestStarterScreenPacket
|
||||
@@ -239,6 +242,7 @@ import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetMarkingsHan
|
||||
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetNicknameHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.DismountPokemonPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.DriverInputPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.GrabEntityPacketHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.riding.ServerboundUpdateRiderRotationHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.starter.RequestStarterScreenHandler
|
||||
import com.cobblemon.mod.common.net.serverhandling.starter.SelectStarterPacketHandler
|
||||
@@ -490,6 +494,7 @@ object CobblemonNetwork {
|
||||
// Riding
|
||||
list.add(PacketRegisterInfo(ClientboundUpdateRidingStatePacket.ID, ClientboundUpdateRidingStatePacket::decode, ClientboundUpdateRidingStateHandler))
|
||||
list.add(PacketRegisterInfo(ClientboundUpdateDriverInputPacket.ID, ClientboundUpdateDriverInputPacket::decode, ClientboundUpdateDriverInputHandler))
|
||||
list.add(PacketRegisterInfo(ClientboundGrabEntityPacket.ID, ClientboundGrabEntityPacket::decode, ClientboundGrabEntityHandler))
|
||||
|
||||
// Debug
|
||||
list.add(PacketRegisterInfo(OpenRidingStatsDebugGUIPacket.ID, OpenRidingStatsDebugGUIPacket::decode, OpenRidingStatsDebugGUIHandler))
|
||||
@@ -600,6 +605,7 @@ object CobblemonNetwork {
|
||||
list.add(PacketRegisterInfo(ServerboundUpdateRidingStatRangePacket.ID, ServerboundUpdateRidingStatRangePacket::decode, ServerboundUpdateRidingStatRangeHandler))
|
||||
list.add(PacketRegisterInfo(ServerboundUpdateRidingSettingsPacket.ID, ServerboundUpdateRidingSettingsPacket::decode, ServerboundUpdateRidingSettingsHandler))
|
||||
list.add(PacketRegisterInfo(DismountPokemonPacket.ID, DismountPokemonPacket::decode, DismountPokemonPacketHandler))
|
||||
list.add(PacketRegisterInfo(GrabEntityPacket.ID, GrabEntityPacket::decode, GrabEntityPacketHandler))
|
||||
list.add(PacketRegisterInfo(ServerboundUpdateDriverInputPacket.ID, ServerboundUpdateDriverInputPacket::decode, DriverInputPacketHandler))
|
||||
list.add(PacketRegisterInfo(ServerboundUpdateRiderRotationPacket.ID, ServerboundUpdateRiderRotationPacket::decode, ServerboundUpdateRiderRotationHandler))
|
||||
|
||||
|
||||
+4
-1
@@ -500,8 +500,11 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
|
||||
}
|
||||
|
||||
fun getSeatLocator(passenger: Entity): String {
|
||||
if (this.getEntity().entityHook == passenger) {
|
||||
return "entity_hook"
|
||||
}
|
||||
val seatIndex = this.getEntity().occupiedSeats.indexOf(passenger)
|
||||
if (seatIndex == -1) throw IllegalArgumentException("Entity is not currently riding a seat")
|
||||
if (seatIndex == -1) return "entity_hook"
|
||||
return this.getEntity().rideProp.seats[seatIndex].locator ?: "seat_${seatIndex + 1}"
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ object CobblemonKeyBinds {
|
||||
val PARTY_OVERLAY_UP = this.queue(UpShiftPartyBinding)
|
||||
val SEND_OUT_POKEMON = this.queue(PartySendBinding)
|
||||
val RIDING_FREELOOK = this.queue(RidingFreelookBinding)
|
||||
val GRAB_ENTITY = this.queue(GrabEntityBinding)
|
||||
|
||||
fun register(registrar: (KeyMapping) -> Unit) {
|
||||
this.keyBinds.forEach(registrar::invoke)
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.cobblemon.mod.common.client.keybind.keybinds
|
||||
|
||||
import com.cobblemon.mod.common.CobblemonNetwork
|
||||
import com.cobblemon.mod.common.client.keybind.CobblemonBlockingKeyBinding
|
||||
import com.cobblemon.mod.common.client.keybind.KeybindCategories
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.GrabEntityPacket
|
||||
import com.mojang.blaze3d.platform.InputConstants
|
||||
|
||||
object GrabEntityBinding : CobblemonBlockingKeyBinding(
|
||||
"key.cobblemon.grabentity",
|
||||
InputConstants.Type.KEYSYM,
|
||||
InputConstants.KEY_V,
|
||||
KeybindCategories.COBBLEMON_CATEGORY
|
||||
) {
|
||||
override fun onPress() {
|
||||
CobblemonNetwork.sendToServer(GrabEntityPacket())
|
||||
}
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.cobblemon.mod.common.client.net.riding
|
||||
|
||||
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.net.messages.client.orientation.ClientboundUpdateDriverInputPacket
|
||||
import com.cobblemon.mod.common.net.messages.client.riding.ClientboundGrabEntityPacket
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.player.RemotePlayer
|
||||
|
||||
object ClientboundGrabEntityHandler : ClientNetworkPacketHandler<ClientboundGrabEntityPacket> {
|
||||
override fun handle(packet: ClientboundGrabEntityPacket, client: Minecraft) {
|
||||
client.executeIfPossible {
|
||||
val level = client.level ?: return@executeIfPossible
|
||||
val vehicle = level.getEntity(packet.vehicle) ?: return@executeIfPossible
|
||||
val entity = packet.entity?.let { level.getEntity(it) }
|
||||
val pokemon = vehicle as? PokemonEntity ?: return@executeIfPossible
|
||||
|
||||
if (entity == null) {
|
||||
pokemon.entityHook?.stopRiding()
|
||||
pokemon.entityHook = null
|
||||
}
|
||||
else {
|
||||
pokemon.entityHook?.stopRiding()
|
||||
entity.startRiding(pokemon, true)
|
||||
pokemon.entityHook = entity
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -418,6 +418,7 @@ open class PokemonEntity(
|
||||
var tickSpawned = 0
|
||||
|
||||
var occupiedSeats = arrayOfNulls<Entity>(seats.size)
|
||||
var entityHook: Entity? = null
|
||||
|
||||
init {
|
||||
delegate.initialize(this)
|
||||
@@ -542,6 +543,9 @@ open class PokemonEntity(
|
||||
if (level().isClientSide) {
|
||||
MountedCameraTypeHandler.handleDismount(passenger, this)
|
||||
}
|
||||
if (entityHook == passenger) {
|
||||
entityHook = null
|
||||
}
|
||||
super.removePassenger(passenger)
|
||||
if (passengers.isEmpty()) {
|
||||
ifRidingAvailable { _, _, state -> pokemon.rideStamina = state.stamina.get() }
|
||||
@@ -2168,10 +2172,15 @@ open class PokemonEntity(
|
||||
}
|
||||
|
||||
override fun canAddPassenger(passenger: Entity): Boolean {
|
||||
return passengers.size < seats.size
|
||||
return entityHook == passenger || passengers.size < seats.size
|
||||
}
|
||||
|
||||
public override fun addPassenger(passenger: Entity) {
|
||||
if (entityHook == passenger) {
|
||||
super.addPassenger(passenger)
|
||||
return
|
||||
}
|
||||
|
||||
if (passenger is ServerPlayer) {
|
||||
// Recall all the rest of the player's party pokes
|
||||
passenger.party()
|
||||
@@ -2262,6 +2271,10 @@ open class PokemonEntity(
|
||||
this.yBodyRot = this.yRot
|
||||
this.passengers.filterIsInstance<LivingEntity>()
|
||||
|
||||
if (behaviour.key != cobblemonResource("air/bird") && entityHook != null) {
|
||||
entityHook!!.stopRiding()
|
||||
}
|
||||
|
||||
if (behaviour.isActive(settings, state, this) && behaviour.canJump(settings, state, this, driver)) {
|
||||
if (this.jumpInputStrength > 0) {
|
||||
//this.jump(this.jumpStrength, movementInput)
|
||||
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.cobblemon.mod.common.net.messages.client.riding
|
||||
|
||||
import com.cobblemon.mod.common.api.net.NetworkPacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
|
||||
class ClientboundGrabEntityPacket internal constructor(
|
||||
val vehicle: Int,
|
||||
val entity: Int?
|
||||
) : NetworkPacket<ClientboundGrabEntityPacket> {
|
||||
override val id = ID
|
||||
override fun encode(buffer: RegistryFriendlyByteBuf) {
|
||||
buffer.writeVarInt(vehicle)
|
||||
buffer.writeNullable(entity) { _, v -> buffer.writeVarInt(v) }
|
||||
}
|
||||
|
||||
companion object {
|
||||
val ID = cobblemonResource("clientbound_grab_entity")
|
||||
fun decode(buffer: RegistryFriendlyByteBuf): ClientboundGrabEntityPacket {
|
||||
val vehicle = buffer.readVarInt()
|
||||
val entity = buffer.readNullable { buffer.readVarInt() }
|
||||
return ClientboundGrabEntityPacket(vehicle, entity)
|
||||
}
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.cobblemon.mod.common.net.messages.server.riding
|
||||
|
||||
import com.cobblemon.mod.common.api.net.NetworkPacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
|
||||
class GrabEntityPacket : NetworkPacket<GrabEntityPacket> {
|
||||
override val id = ID
|
||||
|
||||
override fun encode(buffer: RegistryFriendlyByteBuf) {}
|
||||
|
||||
companion object {
|
||||
val ID = cobblemonResource("grab_entity")
|
||||
fun decode(buffer: RegistryFriendlyByteBuf) = GrabEntityPacket()
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.cobblemon.mod.common.net.serverhandling.riding
|
||||
|
||||
import com.cobblemon.mod.common.api.net.ServerNetworkPacketHandler
|
||||
import com.cobblemon.mod.common.client.MountedCameraTypeHandler
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.net.messages.server.riding.GrabEntityPacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.party
|
||||
import net.minecraft.server.MinecraftServer
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
|
||||
object GrabEntityPacketHandler : ServerNetworkPacketHandler<GrabEntityPacket> {
|
||||
|
||||
override fun handle(
|
||||
packet: GrabEntityPacket,
|
||||
server: MinecraftServer,
|
||||
player: ServerPlayer
|
||||
) {
|
||||
if (!(player.isPassenger && player.vehicle is PokemonEntity)) return
|
||||
|
||||
val pokemon = player.vehicle as PokemonEntity
|
||||
if (pokemon.controllingPassenger == player) {
|
||||
pokemon.ifRidingAvailable { behaviour, _, _ ->
|
||||
if (behaviour.key == cobblemonResource("air/bird") && pokemon.entityHook == null) {
|
||||
pokemon.level().getEntities(pokemon, pokemon.boundingBox.inflate(1.0, 1.0, 1.0)) { it is LivingEntity && it !is PokemonEntity && !pokemon.passengers.contains(it) }
|
||||
.minByOrNull { it.distanceToSqr(pokemon) }
|
||||
?.let { passenger ->
|
||||
if (passenger is ServerPlayer) {
|
||||
passenger.party()
|
||||
.mapNotNull { it.entity }
|
||||
.filter { it != this }
|
||||
.forEach { it.recallWithAnimation() }
|
||||
}
|
||||
else if (pokemon.level().isClientSide) {
|
||||
MountedCameraTypeHandler.handleMount(passenger, pokemon)
|
||||
}
|
||||
pokemon.entityHook = passenger
|
||||
passenger.startRiding(pokemon)
|
||||
}
|
||||
}
|
||||
else if (pokemon.entityHook != null) {
|
||||
pokemon.entityHook!!.stopRiding()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun canPlayerStopRidingPokemon(pokemon: PokemonEntity, player: ServerPlayer): Boolean {
|
||||
return pokemon.ifRidingAvailableSupply(false) { behaviour, settings, state ->
|
||||
behaviour.canStopRiding(settings, state, pokemon, player)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+86
-67
@@ -1296,7 +1296,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.1]},
|
||||
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1304,13 +1304,13 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.1667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1318,7 +1318,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1326,7 +1326,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, 0.1]},
|
||||
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1334,13 +1334,13 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.1667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1348,7 +1348,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1539,7 +1539,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.1]},
|
||||
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1547,13 +1547,13 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.1667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1561,7 +1561,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1578,7 +1578,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [0.1, 0, 0.1]},
|
||||
"3.4583": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1586,13 +1586,13 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.1667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"2.4167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.4167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"3.75": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.75": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -1600,7 +1600,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"2.4167": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"3.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"3.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"4.25": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2241,7 +2241,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.2, 0, 0.2]},
|
||||
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2249,7 +2249,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.2, 0, 0.2]},
|
||||
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2257,7 +2257,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.2, 0, 0]},
|
||||
"0.4583": {"pre": [0.2, 0, 0], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [-0.2, 0, 0], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
@@ -2267,7 +2267,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
|
||||
"1.0833": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2275,7 +2275,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
|
||||
"1.0833": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2283,7 +2283,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2291,9 +2291,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.2]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2302,7 +2302,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.2, 0, 0]},
|
||||
"0.4583": {"pre": [-0.2, 0, 0], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [0.2, 0, 0], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
@@ -2313,9 +2313,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
|
||||
"0.4583": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
|
||||
"0.875": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2324,7 +2324,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
|
||||
"1.0833": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2332,7 +2332,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2340,9 +2340,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.4583": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.2]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2630,7 +2630,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.2, 0, 0.2]},
|
||||
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2638,7 +2638,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.2, 0, 0.2]},
|
||||
"0.875": {"pre": [-0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0.2, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2646,7 +2646,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.1]},
|
||||
"0.6667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2654,9 +2654,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
|
||||
"0.4583": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, 0.2]},
|
||||
"0.875": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2665,7 +2665,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4583": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2673,9 +2673,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, -0.2]},
|
||||
"0.4583": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.2]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2684,7 +2684,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4583": {"pre": [0, 0, 0], "post": [0.1, 0, 0.1]},
|
||||
"0.6667": {"pre": [-0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0.1, 0, 0.1], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2692,9 +2692,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
|
||||
"0.4583": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [0.1, 0, 0.2]},
|
||||
"0.875": {"pre": [-0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"0.875": {"pre": [0.1, 0, 0.2], "post": [0, 0, 0]},
|
||||
"1.2083": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2703,7 +2703,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.4583": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -2711,9 +2711,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0417": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.2]},
|
||||
"0.4583": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"0.4583": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"0.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.2]},
|
||||
"1.0833": {"pre": [0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.0833": {"pre": [-0.1, 0, -0.2], "post": [0, 0, 0]},
|
||||
"1.3333": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"1.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -2997,9 +2997,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -3007,7 +3007,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.7083": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -3016,9 +3016,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -3026,7 +3026,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.7083": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -9026,6 +9026,12 @@
|
||||
},
|
||||
"finger_ground_outer_right2": {
|
||||
"rotation": [40, 0, 0]
|
||||
},
|
||||
"entity_hook": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"1.1667": [0, 4, 8]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -11861,6 +11867,12 @@
|
||||
"0.0": [0, 0, 0],
|
||||
"2.2917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"entity_hook": {
|
||||
"position": {
|
||||
"0.0": [0, -2, 2],
|
||||
"1.1667": [0, -1, 4]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12286,6 +12298,13 @@
|
||||
},
|
||||
"membrane_air_right4": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*25)*0.75", 0, 0]
|
||||
},
|
||||
"entity_hook": {
|
||||
"position": {
|
||||
"0.0": [2, 0, 2],
|
||||
"1.1667": [2, -2.14, 3],
|
||||
"2.0417": [2, -2, 2]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -12477,9 +12496,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -12487,7 +12506,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.7083": {"pre": [0, 0, 0], "post": [0.1, 0, -0.1]},
|
||||
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -12496,9 +12515,9 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"0.2917": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"0.2917": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"1.9167": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
@@ -12506,7 +12525,7 @@
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.7083": {"pre": [0, 0, 0], "post": [-0.1, 0, -0.1]},
|
||||
"1.6667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.6667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]},
|
||||
"1.9167": {"pre": [0, 0, 0], "post": [0, 0, 0]},
|
||||
"2.75": {"pre": [0, 0, 0], "post": [0, 0, 0]}
|
||||
}
|
||||
@@ -13030,13 +13049,13 @@
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+12
-1
@@ -6,7 +6,7 @@
|
||||
"identifier": "geometry.aerodactyl",
|
||||
"texture_width": 256,
|
||||
"texture_height": 256,
|
||||
"visible_bounds_width": 12,
|
||||
"visible_bounds_width": 13,
|
||||
"visible_bounds_height": 3.5,
|
||||
"visible_bounds_offset": [0, 1.25, 0]
|
||||
},
|
||||
@@ -1161,6 +1161,17 @@
|
||||
{"origin": [6.5, -3.6, 5.25], "size": [1, 1, 1], "inflate": 0.25, "uv": [112, 82]}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "entity_hook",
|
||||
"parent": "left_upper_leg",
|
||||
"pivot": [7, 14.65, 0],
|
||||
"locators": {
|
||||
"entity_hook": {
|
||||
"offset": [3, -1, 8],
|
||||
"rotation": [0, 45, -90]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "right_upper_leg",
|
||||
"parent": "body",
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
"seat_1": [0, 0.45, 0]
|
||||
},
|
||||
"thirdPersonCameraOffset": {
|
||||
"seat_1": [0, 0.35, 0],
|
||||
"seat_1": [0, 0.35, 5],
|
||||
"seat_1_reverse": [0, 0.35, 0]
|
||||
},
|
||||
"thirdPersonCameraOffsetNoViewBobbing": {
|
||||
|
||||
Reference in New Issue
Block a user