diff options
author | Malfurious <m@lfurio.us> | 2022-09-12 01:57:57 -0400 |
---|---|---|
committer | Malfurious <m@lfurio.us> | 2022-09-12 01:57:57 -0400 |
commit | f44398ea774c171d9aa0f274f603101c7a1186b9 (patch) | |
tree | 4d585c65bda38f643d4a4924ea6757c478509936 | |
parent | 85cf10772c6bc1390e9dfb07dddd6e204b856340 (diff) | |
download | project-s-f44398ea774c171d9aa0f274f603101c7a1186b9.tar.gz project-s-f44398ea774c171d9aa0f274f603101c7a1186b9.zip |
Allow dynamic character material
This will enable selection between the friendly (default) and enemy
material to apply to any given player model for prototyping purposes.
Signed-off-by: Malfurious <m@lfurio.us>
-rw-r--r-- | assets/characters/base_character/BaseCharacter.gd | 7 | ||||
-rw-r--r-- | assets/weapons/goo_gun/Bullet.gd | 6 | ||||
-rw-r--r-- | assets/weapons/goo_gun/GooGun.gd | 2 |
3 files changed, 15 insertions, 0 deletions
diff --git a/assets/characters/base_character/BaseCharacter.gd b/assets/characters/base_character/BaseCharacter.gd index bcc0f26..5d1b013 100644 --- a/assets/characters/base_character/BaseCharacter.gd +++ b/assets/characters/base_character/BaseCharacter.gd @@ -1,10 +1,17 @@ extends KinematicBody +export var material : Material = null export var is_firing = false export var look_angle = 0 export var weapon_pitch = 0 export var weapon_pitch_bias = deg2rad(20) +func _ready(): + look_angle = rotation.y + if material != null: + $Body.set("material/0", material) + $GooGun.projectile_material = material + func _process(_delta): var effective_weapon_pitch = weapon_pitch - weapon_pitch_bias if is_firing else weapon_pitch effective_weapon_pitch = clamp(effective_weapon_pitch, deg2rad(-90), deg2rad(90)) diff --git a/assets/weapons/goo_gun/Bullet.gd b/assets/weapons/goo_gun/Bullet.gd index 1a4c01a..2edba6b 100644 --- a/assets/weapons/goo_gun/Bullet.gd +++ b/assets/weapons/goo_gun/Bullet.gd @@ -1,4 +1,10 @@ extends RigidBody +export var material : Material = null + +func _ready(): + if material != null: + $MeshInstance.set("material/0", material) + func _on_Bullet_body_entered(_body): queue_free() diff --git a/assets/weapons/goo_gun/GooGun.gd b/assets/weapons/goo_gun/GooGun.gd index 6a6758d..6cb87fc 100644 --- a/assets/weapons/goo_gun/GooGun.gd +++ b/assets/weapons/goo_gun/GooGun.gd @@ -2,6 +2,7 @@ extends Spatial export var is_firing = false export var fire_rate = 0.075 +export var projectile_material : Material = null export var projectile_spread = 0 #TODO export var projectile_scalar = 40 export var look_angle = 0 @@ -22,6 +23,7 @@ func _physics_process(delta): func do_fire_projectile(): var bullet = Bullet.instance() + bullet.material = projectile_material $Nozzle.add_child(bullet) bullet.set_as_toplevel(true) var shoot_direction = Vector3.FORWARD.rotated(Vector3.LEFT, weapon_pitch) |