feat: new coin asset

This commit is contained in:
Jakob Feldmann 2024-01-28 17:37:22 +01:00
parent 9f8735a8c7
commit ea9b5a2c5d
16 changed files with 1705 additions and 5 deletions

View File

@ -0,0 +1,11 @@
Model Information:
* title: Pirate Coin (game ready asset)
* source: https://sketchfab.com/3d-models/pirate-coin-game-ready-asset-7f5bd42a45164a64a20a39a8c37befb5
* author: Pixel Life (https://sketchfab.com/pixellife)
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 "Pirate Coin (game ready asset)" (https://sketchfab.com/3d-models/pirate-coin-game-ready-asset-7f5bd42a45164a64a20a39a8c37befb5) by Pixel Life (https://sketchfab.com/pixellife) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)

View File

@ -0,0 +1,395 @@
{
"accessors": [
{
"bufferView": 2,
"componentType": 5126,
"count": 388,
"max": [
11.877857208251953,
1.4657793045043945,
12.0
],
"min": [
-11.877856254577637,
-1.4657793045043945,
-12.000001907348633
],
"type": "VEC3"
},
{
"bufferView": 2,
"byteOffset": 4656,
"componentType": 5126,
"count": 388,
"max": [
0.9898214936256409,
1.0,
1.0
],
"min": [
-0.9898214936256409,
-1.0,
-1.0
],
"type": "VEC3"
},
{
"bufferView": 3,
"componentType": 5126,
"count": 388,
"max": [
0.9999979734420776,
0.619443416595459,
0.9901516437530518,
1.0
],
"min": [
-0.9999992251396179,
-0.6194434762001038,
-0.9901516437530518,
1.0
],
"type": "VEC4"
},
{
"bufferView": 1,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 3104,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 6208,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 9312,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 12416,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 15520,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 18624,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 21728,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 24832,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 1,
"byteOffset": 27936,
"componentType": 5126,
"count": 388,
"max": [
0.9929424524307251,
0.9907678365707397
],
"min": [
0.006324410438537598,
0.005905091762542725
],
"type": "VEC2"
},
{
"bufferView": 0,
"componentType": 5125,
"count": 1176,
"type": "SCALAR"
}
],
"asset": {
"extras": {
"author": "Pixel Life (https://sketchfab.com/pixellife)",
"license": "CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)",
"source": "https://sketchfab.com/3d-models/pirate-coin-game-ready-asset-7f5bd42a45164a64a20a39a8c37befb5",
"title": "Pirate Coin (game ready asset)"
},
"generator": "Sketchfab-15.55.0",
"version": "2.0"
},
"bufferViews": [
{
"buffer": 0,
"byteLength": 4704,
"name": "floatBufferViews",
"target": 34963
},
{
"buffer": 0,
"byteLength": 31040,
"byteOffset": 4704,
"byteStride": 8,
"name": "floatBufferViews",
"target": 34962
},
{
"buffer": 0,
"byteLength": 9312,
"byteOffset": 35744,
"byteStride": 12,
"name": "floatBufferViews",
"target": 34962
},
{
"buffer": 0,
"byteLength": 6208,
"byteOffset": 45056,
"byteStride": 16,
"name": "floatBufferViews",
"target": 34962
}
],
"buffers": [
{
"byteLength": 51264,
"uri": "scene.bin"
}
],
"images": [
{
"uri": "textures/DefaultMaterial_baseColor.jpeg"
},
{
"uri": "textures/DefaultMaterial_metallicRoughness.png"
},
{
"uri": "textures/DefaultMaterial_normal.jpeg"
}
],
"materials": [
{
"doubleSided": true,
"name": "DefaultMaterial",
"normalTexture": {
"index": 2
},
"occlusionTexture": {
"index": 1
},
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"metallicRoughnessTexture": {
"index": 1
}
}
}
],
"meshes": [
{
"name": "Coin.007_DefaultMaterial_0",
"primitives": [
{
"attributes": {
"NORMAL": 1,
"POSITION": 0,
"TANGENT": 2,
"TEXCOORD_0": 3,
"TEXCOORD_1": 4,
"TEXCOORD_2": 5,
"TEXCOORD_3": 6,
"TEXCOORD_4": 7,
"TEXCOORD_5": 8,
"TEXCOORD_6": 9,
"TEXCOORD_7": 10,
"TEXCOORD_8": 11,
"TEXCOORD_9": 12
},
"indices": 13,
"material": 0,
"mode": 4
}
]
}
],
"nodes": [
{
"children": [
1
],
"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": "7c04764b7991465cb15354db574230fc.fbx"
},
{
"children": [
3
],
"name": "RootNode"
},
{
"children": [
4
],
"name": "Coin.007"
},
{
"mesh": 0,
"name": "Coin.007_DefaultMaterial_0"
}
],
"samplers": [
{
"magFilter": 9729,
"minFilter": 9987,
"wrapS": 10497,
"wrapT": 10497
}
],
"scene": 0,
"scenes": [
{
"name": "Sketchfab_Scene",
"nodes": [
0
]
}
],
"textures": [
{
"sampler": 0,
"source": 0
},
{
"sampler": 0,
"source": 1
},
{
"sampler": 0,
"source": 2
}
]
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 731 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/DefaultMaterial_baseColor.jpeg-f34274fff2bcffdb5cd47b6b0c3d5efd.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/neutral object/pirate_coin_game_ready_asset/textures/DefaultMaterial_baseColor.jpeg"
dest_files=[ "res://.import/DefaultMaterial_baseColor.jpeg-f34274fff2bcffdb5cd47b6b0c3d5efd.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=false
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/DefaultMaterial_metallicRoughness.png-958280e9782dca231a73c8238e7ca67d.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/neutral object/pirate_coin_game_ready_asset/textures/DefaultMaterial_metallicRoughness.png"
dest_files=[ "res://.import/DefaultMaterial_metallicRoughness.png-958280e9782dca231a73c8238e7ca67d.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=false
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/DefaultMaterial_normal.jpeg-2f9f944d0380d27de066c503b7bc4f6a.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/neutral object/pirate_coin_game_ready_asset/textures/DefaultMaterial_normal.jpeg"
dest_files=[ "res://.import/DefaultMaterial_normal.jpeg-2f9f944d0380d27de066c503b7bc4f6a.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=false
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=false
svg/scale=1.0

View File

@ -2,12 +2,16 @@ extends Area2D
onready var anim_player: AnimationPlayer = get_node("AnimationPlayer")
onready var level_state := get_tree().root.get_child(4).get_node("%LevelState")
onready var proto_coin := get_parent().get_node("ProtoCoin3DSprite")
export onready var was_collected := false
export var currencyValue := 1
export var coin_3D_fps := 30
var last_draw_time := 0
var scene_saved_id := 0
func _ready() -> void:
scene_saved_id = level_state.register_saveable_object(self)
var collected_saved = level_state.get_saved_object_property(scene_saved_id, "was_collected")
@ -18,6 +22,16 @@ func _ready() -> void:
if was_collected:
visible = false
level_state.set_currency(level_state.get_currency() + currencyValue)
return
func _physics_process(delta: float) -> void:
if !visible || proto_coin == null:
return
if last_draw_time <= 0:
$CoinSprite.texture = proto_coin.texture
last_draw_time = 1/coin_3D_fps
else:
last_draw_time -= delta
func _on_body_entered(_body: Node) -> void:
if was_collected == true:

View File

@ -29,7 +29,7 @@ resource_name = "oscilating"
length = 2.4
loop = true
tracks/0/type = "value"
tracks/0/path = NodePath("Sprite2:position")
tracks/0/path = NodePath("CoinSprite:position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/imported = false
@ -106,7 +106,7 @@ script = ExtResource( 2 )
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2( 3.8147e-06, 2.49189 )
scale = Vector2( 0.18, 0.18 )
scale = Vector2( 0.2, 0.2 )
shape = SubResource( 1 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
@ -114,12 +114,13 @@ autoplay = "oscilating"
anims/fade_out = SubResource( 2 )
anims/oscilating = SubResource( 3 )
[node name="Sprite2" type="Sprite" parent="."]
[node name="CoinSprite" type="Sprite" parent="."]
position = Vector2( 0, 2.62356 )
scale = Vector2( -0.484, -0.5 )
scale = Vector2( 0.7, 0.7 )
texture = ExtResource( 1 )
[node name="Sprite" type="Sprite" parent="."]
visible = false
material = SubResource( 6 )
position = Vector2( 0.0564967, 2.37292 )
texture = ExtResource( 317 )
@ -131,4 +132,3 @@ pitch_scale = 1.09
bus = "Effects"
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="finished" from="AudioStreamPlayer" to="." method="collected"]

View File

@ -0,0 +1,51 @@
[gd_scene load_steps=5 format=2]
[ext_resource path="res://src/BenefitialObjects/Coin3DModel.tscn" type="PackedScene" id=1]
[sub_resource type="PanoramaSky" id=3]
[sub_resource type="Environment" id=2]
background_mode = 1
background_sky = SubResource( 3 )
background_color = Color( 1, 0.976471, 0.439216, 1 )
background_energy = 0.4
[sub_resource type="Animation" id=1]
resource_name = "speeen"
length = 6.18
loop = true
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath("Coin3DModel:rotation_degrees")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 6.18 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 360, 0 ) ]
}
[node name="Coin3D" type="Spatial"]
[node name="Camera" type="Camera" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.5884 )
environment = SubResource( 2 )
fov = 14.2
far = 2.0
[node name="Coin3DModel" parent="." instance=ExtResource( 1 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00453615, -4.76837e-07, -0.00402737 )
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
autoplay = "speeen"
anims/speeen = SubResource( 1 )
[node name="SpotLight" type="DirectionalLight" parent="."]
transform = Transform( 0.999963, 0, 0.0085869, 0, 1, 0, -0.0085869, 0, 0.999963, -0.081981, -0.0615109, 1.41474 )
light_indirect_energy = 0.0
directional_shadow_mode = 0
directional_shadow_depth_range = 1
directional_shadow_max_distance = 0.7

View File

@ -0,0 +1,5 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://assets/neutral object/pirate_coin_game_ready_asset/scene.gltf" type="PackedScene" id=1]
[node name="Coin3DModel" instance=ExtResource( 1 )]

View File

@ -0,0 +1,9 @@
extends Sprite
export var coin_3D_fps = 30
var last_draw_time = 0
func _physics_process(delta: float) -> void:
if last_draw_time <= 0:
texture = $ProtoCoin3DViewport.get_texture()
last_draw_time = 1/coin_3D_fps
else:
last_draw_time -= delta

View File

@ -0,0 +1,45 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://src/BenefitialObjects/Coin3D.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/BenefitialObjects/ProtoCoin3DSprite.gd" type="Script" id=2]
[sub_resource type="Animation" id=1]
resource_name = "speeen"
length = 6.18
loop = true
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath("Coin3DModel:rotation_degrees")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 6.18 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Vector3( 0, 0, 0 ), Vector3( 0, 360, 0 ) ]
}
[node name="ProtoCoin3DSprite" type="Sprite"]
visible = false
script = ExtResource( 2 )
[node name="ProtoCoin3DViewport" type="Viewport" parent="."]
size = Vector2( 40, 40 )
own_world = true
transparent_bg = true
handle_input_locally = false
hdr = false
usage = 3
render_target_v_flip = true
__meta__ = {
"_editor_description_": ""
}
[node name="Coin3D" parent="ProtoCoin3DViewport" instance=ExtResource( 1 )]
[node name="AnimationPlayer" parent="ProtoCoin3DViewport/Coin3D" index="2"]
anims/speeen = SubResource( 1 )
[editable path="ProtoCoin3DViewport/Coin3D"]