точно есть дэшм
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
Model Information:
|
||||
* title: Shooting Range Target
|
||||
* source: https://sketchfab.com/3d-models/shooting-range-target-bdc995c9e3c8494fbffb7f5758a8567a
|
||||
* author: AJ (https://sketchfab.com/ArneJans)
|
||||
|
||||
Model License:
|
||||
* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
|
||||
* requirements: Author must be credited. Commercial use is allowed.
|
||||
|
||||
If you use this 3D model in your project be sure to copy paste this credit wherever you share it:
|
||||
This work is based on "Shooting Range Target" (https://sketchfab.com/3d-models/shooting-range-target-bdc995c9e3c8494fbffb7f5758a8567a) by AJ (https://sketchfab.com/ArneJans) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
|
||||
@@ -0,0 +1,291 @@
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"bufferView": 2,
|
||||
"componentType": 5126,
|
||||
"count": 930,
|
||||
"max": [
|
||||
1.5620195865631104,
|
||||
3.9458274841308594,
|
||||
5.066810607910156
|
||||
],
|
||||
"min": [
|
||||
-1.2345194816589355,
|
||||
-1.0276665687561035,
|
||||
-1.2869936227798462
|
||||
],
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 2,
|
||||
"byteOffset": 11160,
|
||||
"componentType": 5126,
|
||||
"count": 930,
|
||||
"max": [
|
||||
0.914597749710083,
|
||||
1.0,
|
||||
0.9531488418579102
|
||||
],
|
||||
"min": [
|
||||
-0.9145976901054382,
|
||||
-1.0,
|
||||
-0.9985436797142029
|
||||
],
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 1,
|
||||
"componentType": 5126,
|
||||
"count": 930,
|
||||
"max": [
|
||||
0.7976829409599304,
|
||||
0.9998277425765991
|
||||
],
|
||||
"min": [
|
||||
0.00017230633238796145,
|
||||
0.000172314714291133
|
||||
],
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView": 0,
|
||||
"componentType": 5125,
|
||||
"count": 4074,
|
||||
"type": "SCALAR"
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"extras": {
|
||||
"author": "AJ (https://sketchfab.com/ArneJans)",
|
||||
"license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)",
|
||||
"source": "https://sketchfab.com/3d-models/shooting-range-target-bdc995c9e3c8494fbffb7f5758a8567a",
|
||||
"title": "Shooting Range Target"
|
||||
},
|
||||
"generator": "Sketchfab-16.15.0",
|
||||
"version": "2.0"
|
||||
},
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 16296,
|
||||
"name": "floatBufferViews",
|
||||
"target": 34963
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 7440,
|
||||
"byteOffset": 16296,
|
||||
"byteStride": 8,
|
||||
"name": "floatBufferViews",
|
||||
"target": 34962
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 22320,
|
||||
"byteOffset": 23736,
|
||||
"byteStride": 12,
|
||||
"name": "floatBufferViews",
|
||||
"target": 34962
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"byteLength": 46056,
|
||||
"uri": "scene.bin"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"uri": "textures/Material.004_baseColor.png"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"doubleSided": true,
|
||||
"name": "Material.004",
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 0
|
||||
},
|
||||
"metallicFactor": 0.048280408763609235,
|
||||
"roughnessFactor": 0.8211145618000169
|
||||
}
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"name": "Target_Material.004_0",
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"NORMAL": 1,
|
||||
"POSITION": 0,
|
||||
"TEXCOORD_0": 2
|
||||
},
|
||||
"indices": 3,
|
||||
"material": 0,
|
||||
"mode": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"children": [
|
||||
1
|
||||
],
|
||||
"matrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2.220446049250313e-16,
|
||||
-1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
2.220446049250313e-16,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
"name": "Sketchfab_model"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
2
|
||||
],
|
||||
"matrix": [
|
||||
0.009999999776482582,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.009999999776482582,
|
||||
0.0,
|
||||
0.0,
|
||||
-0.009999999776482582,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
"name": "b5a0e62a279f4d11a80919e4a1156d3d.fbx"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
3,
|
||||
5
|
||||
],
|
||||
"name": "RootNode"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
4
|
||||
],
|
||||
"matrix": [
|
||||
100.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
-0.08166733985129916,
|
||||
-4.648343369543457,
|
||||
0.0,
|
||||
0.0,
|
||||
99.98456223084526,
|
||||
-1.7566415762422025,
|
||||
0.0,
|
||||
0.0,
|
||||
128.00289916992188,
|
||||
-3.588259220123291,
|
||||
1.0
|
||||
],
|
||||
"name": "Target"
|
||||
},
|
||||
{
|
||||
"mesh": 0,
|
||||
"name": "Target_Material.004_0"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
6
|
||||
],
|
||||
"matrix": [
|
||||
99.67958453146503,
|
||||
-7.549475705196962,
|
||||
2.6427860928026887,
|
||||
0.0,
|
||||
7.202835772227331,
|
||||
99.08830697975256,
|
||||
11.385366780417893,
|
||||
0.0,
|
||||
-3.4782274954897514,
|
||||
-11.15853076202815,
|
||||
99.31458905338954,
|
||||
0.0,
|
||||
38.82959747314453,
|
||||
1021.6508178710938,
|
||||
102.60393524169922,
|
||||
1.0
|
||||
],
|
||||
"name": "Spot"
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
7
|
||||
],
|
||||
"matrix": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
2.220446049250313e-16,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
-1.0,
|
||||
2.220446049250313e-16,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
],
|
||||
"name": "Object_6"
|
||||
},
|
||||
{
|
||||
"name": "Object_7"
|
||||
}
|
||||
],
|
||||
"samplers": [
|
||||
{
|
||||
"magFilter": 9729,
|
||||
"minFilter": 9987,
|
||||
"wrapS": 10497,
|
||||
"wrapT": 10497
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"name": "Sketchfab_Scene",
|
||||
"nodes": [
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"textures": [
|
||||
{
|
||||
"sampler": 0,
|
||||
"source": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c1kgycyji1yyi"
|
||||
valid=false
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/Targets/Models/ShootingRangeTarget/scene.gltf"
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 47 KiB |
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cbr0w1ctijpoj"
|
||||
path.s3tc="res://.godot/imported/Material.004_baseColor.png-c6a2301099671cd1c4930d95f0dc09fb.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/Targets/Models/ShootingRangeTarget/textures/Material.004_baseColor.png"
|
||||
dest_files=["res://.godot/imported/Material.004_baseColor.png-c6a2301099671cd1c4930d95f0dc09fb.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
[gd_scene format=3 uid="uid://0lit11q35782"]
|
||||
|
||||
[node name="DamageNumber" type="Label3D" unique_id=155791118]
|
||||
billboard = 1
|
||||
@@ -0,0 +1,32 @@
|
||||
[gd_scene format=3 uid="uid://d27xhk2ygjsbr"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://coyv53xc2grb0" path="res://addons/Targets/Scripts/HitableBoxScript.gd" id="1_2ye1w"]
|
||||
[ext_resource type="Shader" uid="uid://0uxg2amf4yf6" path="res://addons/texture_custom/ps1.gdshader" id="2_wqlms"]
|
||||
[ext_resource type="Texture2D" uid="uid://d2ituqwj8vjlq" path="res://addons/texture_custom/1672960658_grizly-club-p-tekstura-fasada-doma-6.jpg" id="3_wqlms"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xcqb5"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_wqlms")
|
||||
shader_parameter/albedo_texture = ExtResource("3_wqlms")
|
||||
shader_parameter/vertex_snap_resolution = 86.425
|
||||
shader_parameter/texture_pixelation = Vector2(67.425, 71.34)
|
||||
shader_parameter/dither_strength = 0.15
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_rhfyy"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_88vs1"]
|
||||
size = Vector3(1.01, 1.01, 1.01)
|
||||
|
||||
[node name="HitableBox" type="RigidBody3D" unique_id=673564446 groups=["HitableObjects"]]
|
||||
collision_layer = 16
|
||||
collision_mask = 31
|
||||
mass = 0.5
|
||||
continuous_cd = true
|
||||
script = ExtResource("1_2ye1w")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="." unique_id=583500367]
|
||||
material_override = SubResource("ShaderMaterial_xcqb5")
|
||||
mesh = SubResource("BoxMesh_rhfyy")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1742543524]
|
||||
shape = SubResource("BoxShape3D_88vs1")
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,12 @@
|
||||
extends RigidBody3D
|
||||
|
||||
func hitscanHit(propulForce : float, propulDir: Vector3, propulPos : Vector3):
|
||||
var hitPos : Vector3 = propulPos - global_transform.origin#set the position to launch the object at
|
||||
if propulDir != Vector3.ZERO: apply_impulse(propulDir * propulForce, hitPos)
|
||||
|
||||
func projectileHit(propulForce : float, propulDir: Vector3):
|
||||
if propulDir != Vector3.ZERO: apply_central_force((global_transform.origin - propulDir) * propulForce)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://coyv53xc2grb0
|
||||
@@ -0,0 +1,6 @@
|
||||
extends StaticBody3D
|
||||
|
||||
@onready var parent : CharacterBody3D = $".."
|
||||
|
||||
func hitscanHit(damageVal : float, hitscanDir : Vector3, hitscanPos : Vector3):
|
||||
if parent != null: parent.hitscanHit(damageVal, hitscanDir, hitscanPos)
|
||||
@@ -0,0 +1 @@
|
||||
uid://cnw6x7g8unlvp
|
||||
@@ -0,0 +1,34 @@
|
||||
extends Node3D
|
||||
|
||||
var shootRangeTargets : Array[CharacterBody3D] = []
|
||||
|
||||
@export_group("Keybind variables")
|
||||
@export var restartShootingRangeAction : String = ""
|
||||
|
||||
func _ready():
|
||||
for child in get_children():
|
||||
if child is ShootingRangeTarget:
|
||||
shootRangeTargets.append(child)
|
||||
|
||||
func _process(_delta : float):
|
||||
inputManagement()
|
||||
|
||||
func inputManagement():
|
||||
if Input.is_action_just_pressed(restartShootingRangeAction):
|
||||
restartShootRange()
|
||||
|
||||
func restartShootRange():
|
||||
#revive all fallen targets
|
||||
for target in range(0, shootRangeTargets.size()):
|
||||
if shootRangeTargets[target].isDisabled:
|
||||
shootRangeTargets[target].animManager.play_backwards("fall")
|
||||
shootRangeTargets[target].health = 100
|
||||
shootRangeTargets[target].isDisabled = false
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://c8a2kystypxdm
|
||||
@@ -0,0 +1,40 @@
|
||||
extends CharacterBody3D
|
||||
|
||||
class_name ShootingRangeTarget
|
||||
|
||||
@export var health : float = 100.0
|
||||
var healthRef : float
|
||||
var isDisabled : bool = false
|
||||
|
||||
@onready var animManager : AnimationPlayer = $AnimationPlayer
|
||||
|
||||
func _ready():
|
||||
healthRef = health
|
||||
animManager.play("idle")
|
||||
|
||||
func hitscanHit(damageVal : float, _hitscanDir : Vector3, _hitscanPos : Vector3):
|
||||
health -= damageVal
|
||||
|
||||
print("Hitscan hit, target health : ", health)
|
||||
|
||||
if health <= 0.0 and !isDisabled:
|
||||
isDisabled = true
|
||||
animManager.play("fall")
|
||||
|
||||
func projectileHit(damageVal : float, _hitscanDir : Vector3):
|
||||
health -= damageVal
|
||||
|
||||
print("Projectile hit, target health : ", health)
|
||||
|
||||
if health <= 0.0 and !isDisabled:
|
||||
isDisabled = true
|
||||
animManager.play("fall")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://0mu6mj41uch3
|
||||
Reference in New Issue
Block a user