mirror of
https://github.com/PrismarineJS/prismarine-web-client.git
synced 2024-11-14 19:25:07 -05:00
Merge pull request #35 from Karang/master
Fix moving in chat, fix breaking snapping view
This commit is contained in:
commit
0265d30304
3 changed files with 28 additions and 29 deletions
|
@ -51,10 +51,10 @@
|
|||
.chat {
|
||||
overflow: hidden;
|
||||
color: white;
|
||||
font-size: 32px;
|
||||
font-size: 16px;
|
||||
margin: 0px;
|
||||
line-height: 100%;
|
||||
text-shadow: 4px 4px 0px #3f3f3f;
|
||||
text-shadow: 2px 2px 0px #3f3f3f;
|
||||
font-family: mojangles, minecraft, monospace;
|
||||
width: 100%;
|
||||
max-height: calc(90px * 8)
|
||||
|
@ -83,7 +83,7 @@
|
|||
}
|
||||
</style>
|
||||
</head>
|
||||
<body onclick="this.requestFullscreen()">
|
||||
<body>
|
||||
<img id="crosshair" src="textures/icons.png">
|
||||
<div class="chat-wrapper chat-display-wrapper">
|
||||
<div class="chat" id="chat">
|
||||
|
|
8
index.js
8
index.js
|
@ -7,7 +7,7 @@ const mineflayer = require('mineflayer')
|
|||
const { WorldView, Viewer } = require('prismarine-viewer/viewer')
|
||||
const Vec3 = require('vec3').Vec3
|
||||
global.THREE = require('three')
|
||||
const chat = require('./lib/chat')
|
||||
const Chat = require('./lib/chat')
|
||||
|
||||
const maxPitch = 0.5 * Math.PI
|
||||
const minPitch = -0.5 * Math.PI
|
||||
|
@ -47,7 +47,7 @@ async function main () {
|
|||
renderer.setSize(window.innerWidth, window.innerHeight)
|
||||
document.body.appendChild(renderer.domElement)
|
||||
|
||||
chat.init(undefined, bot._client, renderer)
|
||||
const chat = Chat.init(bot._client, renderer)
|
||||
|
||||
// Create viewer
|
||||
const viewer = new Viewer(renderer)
|
||||
|
@ -109,8 +109,8 @@ async function main () {
|
|||
}
|
||||
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (chat.inChat) return
|
||||
console.log(e.code)
|
||||
|
||||
if (e.code in codes) {
|
||||
bot.setControlState(codes[e.code], true)
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ async function main () {
|
|||
if (!ButtonBlock) return
|
||||
if (e.button === 0) {
|
||||
if (bot.canDigBlock(ButtonBlock)) {
|
||||
bot.dig(ButtonBlock)
|
||||
bot.dig(ButtonBlock, 'ignore')
|
||||
}
|
||||
} else if (e.button === 2) {
|
||||
const vecArray = [new Vec3(0, -1, 0), new Vec3(0, 1, 0), new Vec3(0, 0, -1), new Vec3(0, 0, 1), new Vec3(-1, 0, 0), new Vec3(1, 0, 0)]
|
||||
|
|
43
lib/chat.js
43
lib/chat.js
|
@ -33,7 +33,7 @@ const dictionary = {
|
|||
'chat.type.text': '<%s> %s'
|
||||
}
|
||||
|
||||
export function init (mineweb, client, renderer) {
|
||||
export function init (client, renderer) {
|
||||
const chat = document.querySelector('#chat')
|
||||
const chatInput = document.querySelector('#chatinput')
|
||||
|
||||
|
@ -47,10 +47,13 @@ export function init (mineweb, client, renderer) {
|
|||
// Show chat
|
||||
chat.style.display = 'block'
|
||||
|
||||
let inChat = false
|
||||
const chatState = {
|
||||
inChat: false
|
||||
}
|
||||
|
||||
// Esc event - Doesnt work with onkeypress?!
|
||||
document.onkeydown = function (e) {
|
||||
if (!inChat) return
|
||||
if (!chatState.inChat) return
|
||||
e = e || window.event
|
||||
if (e.keyCode === 27 || e.key === 'Escape' || e.key === 'Esc') {
|
||||
disableChat()
|
||||
|
@ -66,7 +69,7 @@ export function init (mineweb, client, renderer) {
|
|||
// Chat events
|
||||
document.onkeypress = function (e) {
|
||||
e = e || window.event
|
||||
if (inChat === false) {
|
||||
if (chatState.inChat === false) {
|
||||
if (e.code === 'KeyT') {
|
||||
enableChat(false)
|
||||
}
|
||||
|
@ -77,13 +80,11 @@ export function init (mineweb, client, renderer) {
|
|||
return false
|
||||
}
|
||||
|
||||
if (!inChat) return
|
||||
if (!chatState.inChat) return
|
||||
e.stopPropagation()
|
||||
if (e.code === 'Enter') {
|
||||
chatHistory.push(chatInput.value)
|
||||
/* TODO: mineweb._client */ client.write('chat', {
|
||||
message: chatInput.value
|
||||
})
|
||||
client.write('chat', { message: chatInput.value })
|
||||
disableChat()
|
||||
}
|
||||
}
|
||||
|
@ -95,13 +96,13 @@ export function init (mineweb, client, renderer) {
|
|||
document.mozPointerLockElement === canvas
|
||||
) {
|
||||
// Someone focused the game back so we hide chat.
|
||||
inChat = false;
|
||||
chatState.inChat = false;
|
||||
hideChat();
|
||||
}
|
||||
}); */
|
||||
function enableChat (isCommand) {
|
||||
// Set inChat value
|
||||
inChat = true
|
||||
chatState.inChat = true
|
||||
// Exit the pointer lock
|
||||
document.exitPointerLock()
|
||||
// Show chat input
|
||||
|
@ -114,25 +115,19 @@ export function init (mineweb, client, renderer) {
|
|||
}
|
||||
// Focus element
|
||||
chatInput.focus()
|
||||
// Disable controls
|
||||
// mineweb._noa.inputs.disabled = true;
|
||||
chatHistoryPos = chatHistory.length
|
||||
}
|
||||
|
||||
function disableChat () {
|
||||
// Set inChat value
|
||||
inChat = false
|
||||
chatState.inChat = false
|
||||
|
||||
// Hide chat
|
||||
hideChat()
|
||||
|
||||
renderer.domElement.requestPointerLock()
|
||||
// Enable controls
|
||||
// mineweb._noa.inputs.disabled = false;
|
||||
// Focus noa again
|
||||
/* const canvas = document.getElementById("noa-canvas");
|
||||
canvas.requestPointerLock =
|
||||
canvas.requestPointerLock || canvas.mozRequestPointerLock;
|
||||
canvas.requestPointerLock(); */
|
||||
}
|
||||
|
||||
function hideChat () {
|
||||
// Clear chat input
|
||||
chatInput.value = ''
|
||||
|
@ -166,8 +161,8 @@ export function init (mineweb, client, renderer) {
|
|||
}
|
||||
return shouldReturn
|
||||
}
|
||||
// Client part
|
||||
/* TODO: mineweb._client */ client.on('chat', function (packet) {
|
||||
|
||||
client.on('chat', (packet) => {
|
||||
// Reading of chat message
|
||||
const fullmessage = JSON.parse(packet.message.toString())
|
||||
let msglist = []
|
||||
|
@ -223,4 +218,8 @@ export function init (mineweb, client, renderer) {
|
|||
chat.appendChild(li)
|
||||
chat.scrollTop = chat.scrollHeight // Stay bottom of the list
|
||||
})
|
||||
|
||||
hideChat()
|
||||
|
||||
return chatState
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue