Guns For Hands

yeah
This commit is contained in:
Daniel Maixner 2022-12-26 20:11:39 +01:00
parent 3ef12f4efb
commit 348dbd156c
11 changed files with 56 additions and 24 deletions

View File

@ -161,6 +161,7 @@ const ItemId = {
Molotov: 35,
Smoke: 36,
Bomb: 50,
DefuseKit: 51,
}
const ItemIdToName = {

View File

@ -326,8 +326,8 @@ export class Game {
model = this.#world.getModelForItem(item)
povItems.add(model)
}
model.position.set(0, 0, 0)
model.rotation.set(0, 0, 0)
model.children.forEach((root) => root.visible = false)
model.getObjectByName('pov').visible = true
model.visible = true
this.#hud.equip(slotId, this.playerSpectate.data.slots)
@ -422,18 +422,17 @@ export class Game {
itemModel = world.getModelForItem(item)
beltSlot.add(itemModel)
}
itemModel.position.set(0, 0, 0)
itemModel.rotation.set(0, 0, 0)
itemModel.children.forEach((root) => root.visible = false)
itemModel.getObjectByName('item').visible = true
itemModel.visible = true
})
const modelInHand = belt.getObjectByName(`slot-${data.item.slot}`).getObjectByName(`item-${data.item.id}`)
hand.add(modelInHand)
modelInHand.position.set(0, 0, 0)
modelInHand.rotation.set(0, 0, 0)
modelInHand.visible = true
modelInHand.userData.slot = data.item.slot
modelInHand.children.forEach((root) => root.visible = false)
modelInHand.getObjectByName('item').visible = true
modelInHand.visible = true
}
getMyTeamPlayers() {

View File

@ -65,7 +65,11 @@ export class ModelRepository {
}
getBomb() {
return this.#models[ItemId.Bomb]
const bomb = this.#models[ItemId.Bomb]
bomb.children.forEach((root) => root.visible = false)
bomb.getObjectByName('item').visible = true
bomb.position.setScalar(0)
return bomb
}
getPlayer(colorIndex, isOpponent) {
@ -118,59 +122,87 @@ export class ModelRepository {
}
})
// fixme inside model
const kitSlot = model.scene.getObjectByName('slot-11')
kitSlot.position.y -= 11
const knifeSlot = model.scene.getObjectByName('slot-0')
knifeSlot.position.y += 5.7
knifeSlot.position.x += 3.8
knifeSlot.position.z += -3.5
knifeSlot.rotateY(degreeToRadian(-70))
knifeSlot.rotateX(degreeToRadian(-4))
this.#models.player = model.scene.getObjectByName('player')
this.#models.playerAnimation = model.animations
}))
promises.push(this.#loadModel('./resources/model/bomb.glb').then((model) => {
model.scene.scale.set(.3, .3, .3)
model.scene.traverse(function (object) {
model.scene.children.forEach((root) => root.visible = false)
const item = model.scene.getObjectByName('item')
item.traverse(function (object) {
if (object.isMesh) {
object.castShadow = true
object.receiveShadow = true
}
})
item.visible = true
this.#models[ItemId.Bomb] = model.scene
}))
promises.push(this.#loadModel('./resources/model/knife.glb').then((model) => {
model.scene.scale.set(-500, 500, 500)
promises.push(this.#loadModel('./resources/model/kit.glb').then((model) => {
model.scene.traverse(function (object) {
if (object.isMesh) {
object.castShadow = true
}
})
this.#models[ItemId.DefuseKit] = model.scene
}))
promises.push(this.#loadModel('./resources/model/knife.glb').then((model) => {
model.scene.children.forEach((root) => root.visible = false)
const item = model.scene.getObjectByName('item')
item.traverse(function (object) {
if (object.isMesh) {
object.castShadow = true
}
})
item.visible = true
this.#models[ItemId.Knife] = model.scene
}))
promises.push(this.#loadModel('./resources/model/pistol.glb').then((model) => {
model.scene.scale.set(15, 15, 15)
model.scene.traverse(function (object) {
model.scene.children.forEach((root) => root.visible = false)
const item = model.scene.getObjectByName('item')
item.traverse(function (object) {
if (object.isMesh) {
object.castShadow = true
}
})
item.visible = true
this.#models[ItemId.PistolUsp] = model.scene
this.#models[ItemId.PistolP250] = model.scene // fixme
this.#models[ItemId.PistolGlock] = model.scene // fixme
}))
promises.push(this.#loadModel('./resources/model/ak.glb').then((model) => {
model.scene.scale.set(15, 15, 15)
model.scene.traverse(function (object) {
model.scene.children.forEach((root) => root.visible = false)
const item = model.scene.getObjectByName('item')
item.traverse(function (object) {
if (object.isMesh) {
object.castShadow = true
}
})
item.visible = true
this.#models[ItemId.RifleAk] = model.scene
}))
promises.push(this.#loadModel('./resources/model/m4.glb').then((model) => {
model.scene.scale.set(10, 10, 10)
model.scene.traverse(function (object) {
model.scene.children.forEach((root) => root.visible = false)
const item = model.scene.getObjectByName('item')
item.traverse(function (object) {
if (object.isMesh) {
object.castShadow = true
}
})
item.visible = true
this.#models[ItemId.RifleM4A4] = model.scene
}))

View File

@ -34,11 +34,8 @@ export class World {
const povItem = new THREE.Group()
povItem.name = 'pov-item'
povItem.scale.setScalar(.7)
povItem.position.x = 4
povItem.position.z = -28
povItem.position.z = -12
povItem.position.y = -14
povItem.rotateX(degreeToRadian(88))
povItem.rotateZ(degreeToRadian(-100))
camera.add(listener, povItem)
this.#soundListener = listener

View File

@ -17,6 +17,9 @@ by **Quaternius** from https://www.patreon.com/quaternius downloaded from https:
#### player.glb (CC4)
by **ReadyPlayerMe** (1617641541-outfit-m-military) from https://readyplayer.me/
#### kit.glb (Public Domain)
by friend **šimon**
#### bomb.glb (Public Domain)
by **solcloud**

Binary file not shown.

Binary file not shown.

BIN
www/resources/model/kit.glb Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.