Friday Update
This commit is contained in:
parent
e9012cafe8
commit
fe0d6096ea
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"__class__": "Rokojori.RokojoriPlugin+MarkerData",
|
||||
"time": "2025-10-26T21:19:50.0794119+01:00"
|
||||
"time": "2025-10-31T13:00:40.4466123+01:00"
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
[gd_resource type="AudioBusLayout" format=3 uid="uid://b0ki2xn5a4avs"]
|
||||
|
||||
[resource]
|
||||
bus/1/name = &"FX"
|
||||
bus/1/solo = false
|
||||
bus/1/mute = false
|
||||
bus/1/bypass_fx = false
|
||||
bus/1/volume_db = 0.0
|
||||
bus/1/send = &"Master"
|
||||
bus/2/name = &"Music"
|
||||
bus/2/solo = false
|
||||
bus/2/mute = false
|
||||
bus/2/bypass_fx = false
|
||||
bus/2/volume_db = 0.0
|
||||
bus/2/send = &"Master"
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="Resource" script_class="CollisionFlag" load_steps=2 format=3 uid="uid://d1ng53m5uqpi0"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://crk6vntm10let" path="res://addons/rokojori_action_library/Runtime/Interactions/CollisionFlag.cs" id="1_odf40"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_odf40")
|
||||
metadata/_custom_type_script = "uid://crk6vntm10let"
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[gd_resource type="Resource" script_class="HealthData" load_steps=2 format=3 uid="uid://d3c6naflvvx3i"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://w5l6csc2p364" path="res://DomeFox/Game Objects/Health/HealthData.cs" id="1_yne6r"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_yne6r")
|
||||
max = 25
|
||||
initial = 25
|
||||
metadata/_custom_type_script = "uid://w5l6csc2p364"
|
||||
|
|
@ -0,0 +1,212 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Eye : Node
|
||||
{
|
||||
[Export]
|
||||
public Node3D transform;
|
||||
|
||||
[Export]
|
||||
public Node3D beamScale;
|
||||
|
||||
[Export]
|
||||
public Action onHasCollider;
|
||||
|
||||
[Export]
|
||||
public Action onNoCollider;
|
||||
|
||||
[Export]
|
||||
public PlayerSight playerSight;
|
||||
|
||||
[Export]
|
||||
public Smoothing toPlayerRotationSmoothing;
|
||||
|
||||
[Export]
|
||||
public float maxLength = 10;
|
||||
|
||||
[Export]
|
||||
public float rootScale = 20;
|
||||
|
||||
[Export]
|
||||
public MultiRayCaster multiRayCaster;
|
||||
|
||||
[Export]
|
||||
public Health health;
|
||||
|
||||
[Export]
|
||||
public Smoothing lengthSmoothing;
|
||||
|
||||
float _nextLength = 10;
|
||||
|
||||
[Export]
|
||||
public Collider collider;
|
||||
|
||||
[ExportGroup( "Debugging")]
|
||||
|
||||
|
||||
[Export]
|
||||
public bool forceDebugLength = false;
|
||||
|
||||
[Export]
|
||||
public float debugLength = 5;
|
||||
|
||||
[Export]
|
||||
public float wobbleRaycast = 1;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public override void _Process( double delta )
|
||||
{
|
||||
var currentNumColliders = _colliders.Count;
|
||||
|
||||
var pos = multiRayCaster.Position;
|
||||
var random = GodotRandom.Get().InsideCircle( wobbleRaycast );
|
||||
|
||||
|
||||
multiRayCaster.Position = new Vector3( random.X, random.Y, pos.Z );
|
||||
|
||||
ResolveCollisions();
|
||||
|
||||
if ( currentNumColliders != _colliders.Count )
|
||||
{
|
||||
var hasColliders = _colliders.Count > 0;
|
||||
Action.Trigger( hasColliders ? onNoCollider : onHasCollider );
|
||||
}
|
||||
|
||||
if ( forceDebugLength )
|
||||
{
|
||||
_nextLength = debugLength;
|
||||
}
|
||||
|
||||
var length = Smoothing.Apply( lengthSmoothing, _nextLength, (float) delta );
|
||||
|
||||
beamScale.SetScaleZ( length / maxLength );
|
||||
|
||||
UpdateRotation( (float) delta );
|
||||
|
||||
}
|
||||
|
||||
void UpdateRotation( float delta )
|
||||
{
|
||||
if ( playerSight == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( playerSight.visible )
|
||||
{
|
||||
var player = Unique<Player>.Get();
|
||||
var playerDirection = transform.DirectionTowards( player.transform.GlobalPosition );
|
||||
var toPlayerRotation = Math3D.LookRotation( playerDirection );
|
||||
|
||||
var smoothedRotation = Smoothing.Apply( toPlayerRotationSmoothing, toPlayerRotation, delta );
|
||||
transform.SetGlobalQuaternion( smoothedRotation );
|
||||
|
||||
|
||||
// this.LogInfo( playerDirection, toPlayerRotation, smoothedRotation );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( toPlayerRotationSmoothing != null )
|
||||
{
|
||||
toPlayerRotationSmoothing.SetCurrent( transform.GlobalQuaternion() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Node> _colliders = new List<Node>();
|
||||
|
||||
void ResolveCollisions()
|
||||
{
|
||||
var invalid = _colliders.Has( c => ! IsInstanceValid( c ) );
|
||||
|
||||
if ( invalid )
|
||||
{
|
||||
_colliders = _colliders.Filter( c=> IsInstanceValid( c ) );
|
||||
}
|
||||
|
||||
var numColliders = multiRayCaster.NumColliders();
|
||||
|
||||
if ( health.isDead )
|
||||
{
|
||||
numColliders = 0;
|
||||
}
|
||||
|
||||
var same = _colliders.Count == numColliders;
|
||||
|
||||
var minDistance = maxLength;
|
||||
|
||||
for ( int i = 0; i < numColliders; i++ )
|
||||
{
|
||||
|
||||
|
||||
if ( same && _colliders[ i ] != multiRayCaster.GetCollider( i ) )
|
||||
{
|
||||
same = false;
|
||||
}
|
||||
|
||||
var distance = transform.DistanceTo( multiRayCaster.GetCollisionPosition( i ) ) / rootScale;
|
||||
|
||||
minDistance = Mathf.Min( distance, minDistance );
|
||||
}
|
||||
|
||||
_nextLength = minDistance;
|
||||
|
||||
|
||||
if ( same )
|
||||
{
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var newColliders = new List<Node>();
|
||||
|
||||
var enteredColliders = new List<Node>();
|
||||
|
||||
for ( int i = 0; i < numColliders; i++ )
|
||||
{
|
||||
var collider = multiRayCaster.GetCollider( i );
|
||||
|
||||
if ( collider == null )
|
||||
{
|
||||
// this.LogInfo( "Collider is null!", i, multiRayCaster.NumColliders() );
|
||||
continue;
|
||||
}
|
||||
newColliders.Add( collider );
|
||||
|
||||
if ( ! _colliders.Contains( collider ) )
|
||||
{
|
||||
enteredColliders.Add( collider );
|
||||
}
|
||||
}
|
||||
|
||||
var exitedColliders = _colliders.Filter( c => ! newColliders.Contains( c ) );
|
||||
|
||||
exitedColliders.ForEach(
|
||||
( c )=>
|
||||
{
|
||||
// this.LogInfo( "Collider exited:", HierarchyName.Of( c ) );
|
||||
collider.TriggerOnExited( c as Node3D );
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
enteredColliders.ForEach(
|
||||
( c )=>
|
||||
{
|
||||
// this.LogInfo( "Collider entered:", HierarchyName.Of( c ) );
|
||||
collider.TriggerOnEnter( c as Node3D );
|
||||
}
|
||||
);
|
||||
|
||||
_colliders = newColliders;
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bxyvrb0kijl80
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="Resource" script_class="DamagerData" load_steps=2 format=3 uid="uid://dchdcdx53xjj4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bksl7m8vfm068" path="res://DomeFox/Game Objects/Health/DamagerData.cs" id="1_va70n"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_va70n")
|
||||
numDamage = 5
|
||||
metadata/_custom_type_script = "uid://bksl7m8vfm068"
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
shader_type spatial;
|
||||
render_mode blend_mix, depth_draw_opaque, cull_front, diffuse_burley, specular_schlick_ggx, unshaded;
|
||||
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Light.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
|
||||
|
||||
uniform vec4 albedo : source_color;
|
||||
uniform sampler2D texture_albedo : source_color, filter_linear_mipmap, repeat_enable;
|
||||
uniform float alpha = 1.0;
|
||||
uniform float glowPower = 0.2;
|
||||
uniform float glowScale = 1.2;
|
||||
|
||||
void vertex()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void fragment()
|
||||
{
|
||||
float fresnel = clamp( fresnelNormalizedFromView( NORMAL ), 0, 1 );
|
||||
vec4 sampledAlbedo = texture( texture_albedo, UV );
|
||||
ALBEDO = albedo.rgb * sampledAlbedo.rgb;
|
||||
//ALBEDO = vec3( centerDistance );
|
||||
ALPHA = 1.0 - clamp01( pow( fresnel, glowPower ) * glowScale );
|
||||
ALPHA *= alpha;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bes2cxci34jvx
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://c5w4unmnxxwfi"
|
||||
path="res://.godot/imported/eye-explosion-sound-short.mp3-911f0065fc40d390e31bfb3017dfd16c.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Game Objects/Eye/eye-explosion-sound-short.mp3"
|
||||
dest_files=["res://.godot/imported/eye-explosion-sound-short.mp3-911f0065fc40d390e31bfb3017dfd16c.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://d3ft8g1thg4n"
|
||||
path="res://.godot/imported/eye-explosion-sound-short.ogg-6d45ebb7606a2418c41d1943e1bef9ea.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Game Objects/Eye/eye-explosion-sound-short.ogg"
|
||||
dest_files=["res://.godot/imported/eye-explosion-sound-short.ogg-6d45ebb7606a2418c41d1943e1bef9ea.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://dtvoafygp83e7"
|
||||
path="res://.godot/imported/eye-explosion-sound-short.wav-e9e7985951b4e67513afa2fe9b185ad3.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Game Objects/Eye/eye-explosion-sound-short.wav"
|
||||
dest_files=["res://.godot/imported/eye-explosion-sound-short.wav-e9e7985951b4e67513afa2fe9b185ad3.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://dg3uryx3mwg5f"
|
||||
path="res://.godot/imported/eye-explosion-sound.mp3-80e2425b2a24664a6934045b0b27bf5c.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Game Objects/Eye/eye-explosion-sound.mp3"
|
||||
dest_files=["res://.godot/imported/eye-explosion-sound.mp3-80e2425b2a24664a6934045b0b27bf5c.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://bahgqyijj5tvx"
|
||||
path="res://.godot/imported/eye-explosion-sound.ogg-386e875f7cbd83f8f1ba9d6d54049985.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Game Objects/Eye/eye-explosion-sound.ogg"
|
||||
dest_files=["res://.godot/imported/eye-explosion-sound.ogg-386e875f7cbd83f8f1ba9d6d54049985.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cw6imhrmxg6n0"
|
||||
path="res://.godot/imported/eye-explosion-sound.wav-6168d238d96172eb05b01b3e6ef2dc07.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Game Objects/Eye/eye-explosion-sound.wav"
|
||||
dest_files=["res://.godot/imported/eye-explosion-sound.wav-6168d238d96172eb05b01b3e6ef2dc07.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
Binary file not shown.
|
|
@ -0,0 +1,11 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Focusable : Node
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bn367gamj5ev0
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Damagable:Action
|
||||
{
|
||||
[Export]
|
||||
public DamagableData damagableData;
|
||||
|
||||
[Export]
|
||||
public Collidable collidable;
|
||||
|
||||
[Export]
|
||||
public Health health;
|
||||
|
||||
[Export]
|
||||
public int defaultDamage = 0;
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
var collider = collidable.collider;
|
||||
var damager = collider.GetNextSiblingOrChild<Damager>();
|
||||
|
||||
// this.LogInfo( "Damagable:", HierarchyName.Of( collider ), HierarchyName.Of( damager ) );
|
||||
|
||||
if ( damager == null )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var computedDamage = damagableData.ComputeDamage( this, damager );
|
||||
|
||||
// this.LogInfo( "Computed Damage:", computedDamage );
|
||||
health.ChangeHealth( computedDamage );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dn1jkvx1f4y5r
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class DamagableData:Resource
|
||||
{
|
||||
[Export]
|
||||
public int damageAbsorbion = 0;
|
||||
|
||||
public int ComputeDamage( Damagable damagable, Damager damager )
|
||||
{
|
||||
return -Mathf.Max( 0, damager.damagerData.numDamage - damageAbsorbion );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://d0x8co6nm8koo
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Damager:Node
|
||||
{
|
||||
[Export]
|
||||
public DamagerData damagerData;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://ba1bue0f8r50y
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class DamagerData:Resource
|
||||
{
|
||||
[Export]
|
||||
public int numDamage;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bksl7m8vfm068
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Health:Node
|
||||
{
|
||||
[Export]
|
||||
public HealthData healthData;
|
||||
|
||||
[Export]
|
||||
public bool initializeOnReady = true;
|
||||
|
||||
[Export]
|
||||
public int currentHealth = 0;
|
||||
|
||||
[Export]
|
||||
public Action onHeal;
|
||||
|
||||
[Export]
|
||||
public Action onMax;
|
||||
|
||||
[Export]
|
||||
public Action onDamage;
|
||||
|
||||
[Export]
|
||||
public Action onDeath;
|
||||
|
||||
[Export]
|
||||
public bool markAsDead = true;
|
||||
|
||||
bool _isDead = false;
|
||||
|
||||
public bool isDead => _isDead;
|
||||
|
||||
public void ChangeHealth( int change )
|
||||
{
|
||||
if ( _isDead )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var previouseHealth = currentHealth;
|
||||
currentHealth = Mathf.Clamp( previouseHealth + change, 0, healthData.max );
|
||||
|
||||
var realChange = currentHealth - previouseHealth;;
|
||||
|
||||
// this.LogInfo( "Health Changed:", change, previouseHealth, ">", currentHealth, " +/-", realChange );
|
||||
|
||||
if ( previouseHealth == currentHealth )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ( realChange < 0 )
|
||||
{
|
||||
Action.Trigger( onDamage );
|
||||
|
||||
if ( currentHealth == 0 )
|
||||
{
|
||||
if ( markAsDead )
|
||||
{
|
||||
_isDead = true;
|
||||
}
|
||||
|
||||
Action.Trigger( onDeath );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Action.Trigger( onHeal );
|
||||
|
||||
if ( currentHealth == healthData.max )
|
||||
{
|
||||
Action.Trigger( onMax );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
currentHealth = healthData.initial;
|
||||
}
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
if ( initializeOnReady )
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://cbbesrlha8kor
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class HealthData:Resource
|
||||
{
|
||||
[Export]
|
||||
public int max = 200;
|
||||
|
||||
[Export]
|
||||
public int initial = 100;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://w5l6csc2p364
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class SyncHealthUI:Action
|
||||
{
|
||||
[Export]
|
||||
public UIText text;
|
||||
|
||||
[Export]
|
||||
public Health health;
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
text.locale = LocaleText.Create( health.currentHealth + "" );
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://5vvwb74foskj
|
||||
|
|
@ -72,21 +72,21 @@ public partial class AimControl : Node
|
|||
return;
|
||||
}
|
||||
|
||||
pointer.onPointerChange.AddAction(
|
||||
( p )=>
|
||||
{
|
||||
if ( p == null )
|
||||
{
|
||||
this.LogInfo( "onBlur", p );
|
||||
Action.Trigger( onBlur );
|
||||
}
|
||||
else
|
||||
{
|
||||
this.LogInfo( "onFocus", p );
|
||||
Action.Trigger( onFocus );
|
||||
}
|
||||
}
|
||||
);
|
||||
// pointer.onPointerChange.AddAction(
|
||||
// ( p )=>
|
||||
// {
|
||||
// if ( p == null )
|
||||
// {
|
||||
// this.LogInfo( "onBlur", p );
|
||||
// Action.Trigger( onBlur );
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// this.LogInfo( "onFocus", p );
|
||||
// Action.Trigger( onFocus );
|
||||
// }
|
||||
// }
|
||||
// );
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
[gd_resource type="Resource" script_class="DamagerData" load_steps=2 format=3 uid="uid://mkrqdvv6p004"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bksl7m8vfm068" path="res://DomeFox/Game Objects/Health/DamagerData.cs" id="1_h4ut6"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_h4ut6")
|
||||
numDamage = 5
|
||||
metadata/_custom_type_script = "uid://bksl7m8vfm068"
|
||||
|
|
@ -5,23 +5,14 @@ using Rokojori;
|
|||
public partial class LaserBeam: Action
|
||||
{
|
||||
[Export]
|
||||
public Node3D body;
|
||||
public Projectile body;
|
||||
|
||||
[Export]
|
||||
public Node3D graphics;
|
||||
|
||||
[Export]
|
||||
public Vector3 direction;
|
||||
|
||||
[Export]
|
||||
public float speed = 1;
|
||||
|
||||
[Export]
|
||||
public Duration duration;
|
||||
|
||||
[Export]
|
||||
public Node3D aim;
|
||||
|
||||
[Export]
|
||||
public Action onDone;
|
||||
|
||||
|
|
@ -31,12 +22,6 @@ public partial class LaserBeam: Action
|
|||
[Export]
|
||||
public Curve scaleCurve;
|
||||
|
||||
[Export]
|
||||
public float forwardFollowDistanceScale = 1.5f;
|
||||
|
||||
[Export]
|
||||
public float correctionDistance = 500;
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
Action.Trigger( onStart );
|
||||
|
|
@ -64,8 +49,4 @@ public partial class LaserBeam: Action
|
|||
);
|
||||
}
|
||||
|
||||
public override void _PhysicsProcess( double delta )
|
||||
{
|
||||
body.GlobalPosition += direction * speed * (float)delta;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
[gd_scene load_steps=44 format=3 uid="uid://dwdm5cq57lrv2"]
|
||||
[gd_scene load_steps=57 format=3 uid="uid://dwdm5cq57lrv2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ds7m6xeltbhyv" path="res://DomeFox/Game Objects/Laser/LaserBeam.cs" id="1_rsmh3"]
|
||||
[ext_resource type="Script" uid="uid://ddhwhwos5kkrm" path="res://addons/rokojori_action_library/Runtime/Time/Duration/SecondsDuration.cs" id="2_vdjdq"]
|
||||
[ext_resource type="Resource" uid="uid://ch5nsa6yafs5l" path="res://addons/rokojori_action_library/Runtime/Time/TimeLines/GameTime.tres" id="3_nlvic"]
|
||||
[ext_resource type="Script" uid="uid://baohlfn1nwjsk" path="res://addons/rokojori_action_library/Runtime/Physics/Projectile.cs" id="4_x7uco"]
|
||||
[ext_resource type="Script" uid="uid://b4yjsis2fh64c" path="res://addons/rokojori_action_library/Runtime/Actions/ActionList.cs" id="5_0loo2"]
|
||||
[ext_resource type="Script" uid="uid://crm7o7w0gumhn" path="res://addons/rokojori_action_library/Runtime/Actions/Conditional/Once.cs" id="6_0sgxb"]
|
||||
[ext_resource type="Script" uid="uid://dq5kae8x62gre" path="res://addons/rokojori_action_library/Runtime/Actions/RemoveNode.cs" id="6_nibk5"]
|
||||
|
|
@ -15,12 +16,18 @@
|
|||
[ext_resource type="Script" uid="uid://cnp3xr8gawyi6" path="res://addons/rokojori_action_library/Runtime/Actions/Node3D/SetTransform.cs" id="9_qx516"]
|
||||
[ext_resource type="Script" uid="uid://b2g7rycr0ouu4" path="res://addons/rokojori_action_library/Runtime/Actions/Time/Delay.cs" id="10_6687p"]
|
||||
[ext_resource type="Script" uid="uid://be4oc7tgr55vu" path="res://addons/rokojori_action_library/Runtime/Animation/Transform/TransformCurve.cs" id="10_xwb5b"]
|
||||
[ext_resource type="Script" uid="uid://0wcfunmv4j6d" path="res://addons/rokojori_action_library/Runtime/Actions/Visual/TweenMaterial.cs" id="11_p1x71"]
|
||||
[ext_resource type="Script" uid="uid://bqpiwp16h7614" path="res://addons/rokojori_action_library/Runtime/Animation/Transform/TransformAnimations.cs" id="11_u0sqv"]
|
||||
[ext_resource type="Script" uid="uid://dy65lu5p2yf3j" path="res://addons/rokojori_action_library/Runtime/Actions/Sequence/Parallel.cs" id="11_x7uco"]
|
||||
[ext_resource type="Script" uid="uid://lm37r3ycp1ls" path="res://addons/rokojori_action_library/Runtime/Animation/Tweens/TweenTimeCurve.cs" id="12_fwjbr"]
|
||||
[ext_resource type="Script" uid="uid://cd0ikdsdhutn0" path="res://addons/rokojori_action_library/Runtime/Actions/RJLogMessage.cs" id="13_u0sqv"]
|
||||
[ext_resource type="Script" uid="uid://csgk6d2jvferv" path="res://addons/rokojori_action_library/Runtime/Actions/Visual/TweenScale.cs" id="14_b1tky"]
|
||||
[ext_resource type="Script" uid="uid://cdspv8f8l6dgd" path="res://addons/rokojori_action_library/Runtime/Actions/Physics/SetCollisionShape.cs" id="14_jmxwb"]
|
||||
[ext_resource type="Script" uid="uid://dnstanbmrqthf" path="res://addons/rokojori_action_library/Runtime/Actions/Node3D/PlayParticles.cs" id="16_qx516"]
|
||||
[ext_resource type="Script" uid="uid://xnupkyu3042b" path="res://addons/rokojori_action_library/Runtime/Interactions/Collider.cs" id="19_6687p"]
|
||||
[ext_resource type="Resource" uid="uid://ckyvygk7xtnpm" path="res://DomeFox/Game Objects/Wall/Projectile-Collision.tres" id="20_6687p"]
|
||||
[ext_resource type="Shader" uid="uid://g038sa37p3uc" path="res://DomeFox/X/Flares/FlareShaderAdd.gdshader" id="21_anpfd"]
|
||||
[ext_resource type="Script" uid="uid://ba1bue0f8r50y" path="res://DomeFox/Game Objects/Health/Damager.cs" id="21_xnre0"]
|
||||
[ext_resource type="Resource" uid="uid://mkrqdvv6p004" path="res://DomeFox/Game Objects/Laser/LaseBeam-Damage Data.tres" id="22_xnre0"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_88k83"]
|
||||
script = ExtResource("2_vdjdq")
|
||||
|
|
@ -33,6 +40,10 @@ _limits = [0.0, 2.0, 0.0, 1.0]
|
|||
_data = [Vector2(0, 1.2477157), 0.0, 0.0, 0, 0, Vector2(0.05333334, 2), 0.0, 0.0, 0, 0, Vector2(0.16266668, 1.1817259), -1.5747585, -1.5747585, 0, 0, Vector2(0.3786667, 1.0365483), 0.0, 0.0, 0, 0, Vector2(1, 0.9705584), 0.0, 0.0, 0, 0]
|
||||
point_count = 5
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_u0sqv"]
|
||||
radius = 1.0532227
|
||||
height = 5.6881676
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0sgxb"]
|
||||
render_priority = 1
|
||||
transparency = 1
|
||||
|
|
@ -82,12 +93,13 @@ curve = SubResource("Curve_anpfd")
|
|||
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_u0sqv"]
|
||||
particle_flag_align_y = true
|
||||
spread = 180.0
|
||||
initial_velocity_min = 20.0
|
||||
initial_velocity_max = 20.0
|
||||
initial_velocity_min = 15.0
|
||||
initial_velocity_max = 60.0
|
||||
linear_accel_curve = SubResource("CurveTexture_anpfd")
|
||||
damping_min = 10.0
|
||||
damping_max = 10.0
|
||||
damping_curve = SubResource("CurveTexture_6687p")
|
||||
scale_min = 0.29999998
|
||||
scale_curve = SubResource("CurveTexture_12esp")
|
||||
turbulence_noise_strength = 16.15
|
||||
turbulence_noise_scale = 10.0
|
||||
|
|
@ -117,7 +129,7 @@ metadata/_stencil_owned = true
|
|||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kglu6"]
|
||||
next_pass = SubResource("StandardMaterial3D_apv0p")
|
||||
shading_mode = 0
|
||||
albedo_color = Color(1.2836698, 0.7847774, 0.60943115, 1)
|
||||
albedo_color = Color(1.2838488, 0.790611, 0.61125183, 0)
|
||||
disable_receive_shadows = true
|
||||
stencil_mode = 1
|
||||
stencil_flags = 2
|
||||
|
|
@ -135,6 +147,44 @@ rings = 3
|
|||
radius = 0.6
|
||||
height = 5.0
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_xnre0"]
|
||||
radius = 2.0
|
||||
height = 4.0
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_b1tky"]
|
||||
transparency = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(2.5804994, 0.71441597, 0.50707334, 0)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jmxwb"]
|
||||
transparency = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(2.5804994, 0.71441597, 0.50707334, 1)
|
||||
|
||||
[sub_resource type="Curve" id="Curve_jmxwb"]
|
||||
_data = [Vector2(0, 0), 0.0, 0.06975378, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
|
||||
point_count = 2
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1816h"]
|
||||
script = ExtResource("12_fwjbr")
|
||||
duration = 0.1
|
||||
curve = SubResource("Curve_jmxwb")
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1816h"]
|
||||
transparency = 1
|
||||
shading_mode = 0
|
||||
albedo_color = Color(3.373, 0.676, 1.435061, 0)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3knx3"]
|
||||
script = ExtResource("12_fwjbr")
|
||||
duration = 0.2
|
||||
curve = SubResource("Curve_jmxwb")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_dtivv"]
|
||||
script = ExtResource("12_fwjbr")
|
||||
duration = 0.2
|
||||
curve = SubResource("Curve_jmxwb")
|
||||
|
||||
[sub_resource type="Curve" id="Curve_qx516"]
|
||||
_limits = [0.0, 2.0, 0.0, 1.0]
|
||||
_data = [Vector2(0, 1), 0.0, 1.6231704, 0, 1, Vector2(0.10330579, 1.1676829), 0.0, 0.0, 0, 0, Vector2(0.22520661, 0.95960355), 0.0, 0.0, 0, 0, Vector2(0.3264463, 1.0884145), 0.0, 0.0, 0, 0, Vector2(0.43388432, 0.91996944), 0.0, 0.0, 0, 0, Vector2(0.481405, 1.1181402), 0.0, 0.0, 0, 0, Vector2(0.5619835, 0.91996944), 0.0, 0.0, 0, 0, Vector2(0.69214886, 1.6234756), 0.0, 0.0, 0, 0, Vector2(0.766529, 0.672256), 0.0, 0.0, 0, 0, Vector2(0.85123974, 1.078506), 0.0, 0.0, 0, 0, Vector2(1, 1), -0.527735, 0.0, 1, 0]
|
||||
|
|
@ -154,64 +204,48 @@ curves = [SubResource("Resource_apv0p")]
|
|||
timeline = ExtResource("3_nlvic")
|
||||
metadata/_custom_type_script = "uid://bqpiwp16h7614"
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_u0sqv"]
|
||||
radius = 1.8408203
|
||||
height = 7.665756
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_to38e"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("21_anpfd")
|
||||
shader_parameter/color = Color(0.8862745, 0.41734034, 0.23137252, 1)
|
||||
shader_parameter/alphaScale = 1.0
|
||||
shader_parameter/circleAmount = 1.0
|
||||
shader_parameter/circleDistortion = 2.1085
|
||||
shader_parameter/ellipseAmount = 0.057
|
||||
shader_parameter/ellipseDistortion = 2.3855
|
||||
shader_parameter/ellipseScale = Vector2(1, 0.982)
|
||||
shader_parameter/add_vs_max = 0.0
|
||||
shader_parameter/centerHSL = Vector4(0.08, 0, 0.18, 1)
|
||||
shader_parameter/outsideHSL = Vector4(-0.05, 1.65, 0.02, 0)
|
||||
shader_parameter/sizeX = 21.20800095988
|
||||
shader_parameter/sizeY = 1.0
|
||||
shader_parameter/scaleAll = 0.1755
|
||||
shader_parameter/worldSize_vs_screenSize = 0.3450000163875
|
||||
shader_parameter/usSpectralsNoise = true
|
||||
shader_parameter/spectralsAmount = Vector3(0.1, 0.05, 0.02)
|
||||
shader_parameter/nonSpectralAmount = 1.0
|
||||
shader_parameter/spectralsSize = Vector3(1, 0.8, 0.5)
|
||||
shader_parameter/spectralsSharpness = Vector3(0, 0, 0)
|
||||
shader_parameter/spectralsFrequency = Vector3(50, 200, 500)
|
||||
shader_parameter/spectralsSpeed = Vector3(5, -3, -2)
|
||||
shader_parameter/useQuickOcclusionTest = false
|
||||
shader_parameter/occlusionZOffset = 5.7530016982674965
|
||||
shader_parameter/occlusionTestMaxSteps = 10
|
||||
shader_parameter/occlusionTestStepStride = 1.0
|
||||
shader_parameter/occlusionTest_ViewDependingScaleAmount = 0.5
|
||||
shader_parameter/occlusionTest_ViewDependingDistance = 100.0
|
||||
|
||||
[sub_resource type="QuadMesh" id="QuadMesh_flomn"]
|
||||
material = SubResource("ShaderMaterial_to38e")
|
||||
size = Vector2(0.0001, 0.0001)
|
||||
|
||||
[node name="LaserBeam Root" type="Node3D"]
|
||||
|
||||
[node name="LaserBeam" type="Node" parent="." node_paths=PackedStringArray("body", "graphics", "onDone", "onStart")]
|
||||
script = ExtResource("1_rsmh3")
|
||||
body = NodePath("..")
|
||||
graphics = NodePath("../Graphics")
|
||||
body = NodePath("../Projectile")
|
||||
graphics = NodePath("../Projectile/Graphics")
|
||||
duration = SubResource("Resource_88k83")
|
||||
onDone = NodePath("../Once On Done")
|
||||
onStart = NodePath("../On Start")
|
||||
onDone = NodePath("../Projectile/Once On Done")
|
||||
onStart = NodePath("../Projectile/On Start")
|
||||
scaleCurve = SubResource("Curve_u0sqv")
|
||||
metadata/_custom_type_script = "uid://ds7m6xeltbhyv"
|
||||
|
||||
[node name="PlayParticles Shoot" type="Node" parent="." node_paths=PackedStringArray("particles3D")]
|
||||
[node name="Projectile" type="CharacterBody3D" parent="." node_paths=PackedStringArray("collider")]
|
||||
script = ExtResource("4_x7uco")
|
||||
speed = 1.0
|
||||
disableOnCollision = true
|
||||
collider = NodePath("Collider")
|
||||
metadata/_custom_type_script = "uid://baohlfn1nwjsk"
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Projectile"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, -4.974116e-08, 0.025711179)
|
||||
shape = SubResource("CapsuleShape3D_u0sqv")
|
||||
|
||||
[node name="Collider" type="Node" parent="Projectile" node_paths=PackedStringArray("area", "onEntered")]
|
||||
script = ExtResource("19_6687p")
|
||||
area = NodePath("")
|
||||
collisionType = ExtResource("20_6687p")
|
||||
onEntered = NodePath("../Once On Done")
|
||||
metadata/_custom_type_script = "uid://xnupkyu3042b"
|
||||
|
||||
[node name="Damager" type="Node" parent="Projectile"]
|
||||
script = ExtResource("21_xnre0")
|
||||
damagerData = ExtResource("22_xnre0")
|
||||
metadata/_custom_type_script = "uid://ba1bue0f8r50y"
|
||||
|
||||
[node name="PlayParticles Shoot" type="Node" parent="Projectile" node_paths=PackedStringArray("particles3D")]
|
||||
script = ExtResource("16_qx516")
|
||||
particles3D = NodePath("../Shoot Start")
|
||||
timeLine = ExtResource("3_nlvic")
|
||||
metadata/_custom_type_script = "uid://dnstanbmrqthf"
|
||||
|
||||
[node name="Shoot Start" type="GPUParticles3D" parent="."]
|
||||
[node name="Shoot Start" type="GPUParticles3D" parent="Projectile"]
|
||||
transform = Transform3D(2.047461, 0, 0, 0, 2.047461, 0, 0, 0, 2.047461, 0, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_qx516")
|
||||
emitting = false
|
||||
|
|
@ -226,113 +260,151 @@ fract_delta = false
|
|||
process_material = SubResource("ParticleProcessMaterial_u0sqv")
|
||||
draw_pass_1 = SubResource("CapsuleMesh_qx516")
|
||||
|
||||
[node name="PlayParticles Impact" type="Node" parent="." node_paths=PackedStringArray("particles3D")]
|
||||
[node name="PlayParticles Impact" type="Node" parent="Projectile" node_paths=PackedStringArray("particles3D")]
|
||||
script = ExtResource("16_qx516")
|
||||
particles3D = NodePath("../Impact")
|
||||
timeLine = ExtResource("3_nlvic")
|
||||
metadata/_custom_type_script = "uid://dnstanbmrqthf"
|
||||
|
||||
[node name="Impact" type="GPUParticles3D" parent="."]
|
||||
[node name="Impact" type="GPUParticles3D" parent="Projectile"]
|
||||
transform = Transform3D(2.047461, 0, 0, 0, 2.047461, 0, 0, 0, 2.047461, 0, 0, 0)
|
||||
material_override = SubResource("StandardMaterial3D_kglu6")
|
||||
emitting = false
|
||||
amount = 20
|
||||
lifetime = 0.5
|
||||
amount = 5
|
||||
lifetime = 0.3
|
||||
one_shot = true
|
||||
explosiveness = 1.0
|
||||
randomness = 1.0
|
||||
fixed_fps = 0
|
||||
interpolate = false
|
||||
fract_delta = false
|
||||
process_material = SubResource("ParticleProcessMaterial_u0sqv")
|
||||
draw_pass_1 = SubResource("CapsuleMesh_12esp")
|
||||
|
||||
[node name="Graphics" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, 0, 0)
|
||||
[node name="Graphics" type="MeshInstance3D" parent="Projectile"]
|
||||
transform = Transform3D(0.001, 0, 0, 0, -4.371139e-11, -0.001, 0, 0.001, -4.371139e-11, 0, 0, 0)
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("CapsuleMesh_xwb5b")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_kglu6")
|
||||
|
||||
[node name="Once On Done" type="Node" parent="." node_paths=PackedStringArray("action")]
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Projectile"]
|
||||
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
|
||||
mesh = SubResource("SphereMesh_xnre0")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_b1tky")
|
||||
|
||||
[node name="Once On Done" type="Node" parent="Projectile" node_paths=PackedStringArray("action")]
|
||||
script = ExtResource("6_0sgxb")
|
||||
action = NodePath("On Done")
|
||||
metadata/_custom_type_script = "uid://crm7o7w0gumhn"
|
||||
|
||||
[node name="On Done" type="Node" parent="Once On Done"]
|
||||
[node name="On Done" type="Node" parent="Projectile/Once On Done"]
|
||||
script = ExtResource("5_0loo2")
|
||||
metadata/_custom_type_script = "uid://b4yjsis2fh64c"
|
||||
|
||||
[node name="Disable Graphics + Physics" type="Node" parent="Once On Done/On Done" node_paths=PackedStringArray("disable")]
|
||||
[node name="SetCollisionShape" type="Node" parent="Projectile/Once On Done/On Done" node_paths=PackedStringArray("shape3D")]
|
||||
script = ExtResource("14_jmxwb")
|
||||
shape3D = NodePath("../../../CollisionShape3D")
|
||||
disabled = true
|
||||
metadata/_custom_type_script = "uid://cdspv8f8l6dgd"
|
||||
|
||||
[node name="Disable Graphics + Physics" type="Node" parent="Projectile/Once On Done/On Done" node_paths=PackedStringArray("disable")]
|
||||
script = ExtResource("8_brkx5")
|
||||
disable = [NodePath("../../../Graphics"), NodePath("../../../Area3D"), NodePath("../../../Area3D/CollisionShape3D"), NodePath("../../../Area3D/Collider")]
|
||||
disable = [NodePath("../../../../LaserBeam"), NodePath("../../../Graphics"), NodePath("../../../CollisionShape3D"), NodePath("../../../Collider")]
|
||||
metadata/_custom_type_script = "uid://bex6umukt0r8d"
|
||||
|
||||
[node name="Impact Particles" type="Node" parent="Once On Done/On Done" node_paths=PackedStringArray("referencedAction")]
|
||||
[node name="Impact Particles" type="Node" parent="Projectile/Once On Done/On Done" node_paths=PackedStringArray("referencedAction")]
|
||||
script = ExtResource("7_88k83")
|
||||
referencedAction = NodePath("../../../PlayParticles Impact")
|
||||
metadata/_custom_type_script = "uid://dxra6jao22it4"
|
||||
|
||||
[node name="StopRepeatSequence" type="Node" parent="Once On Done/On Done" node_paths=PackedStringArray("repeatSequence")]
|
||||
[node name="SetNodeState" type="Node" parent="Projectile/Once On Done/On Done" node_paths=PackedStringArray("enable")]
|
||||
script = ExtResource("8_brkx5")
|
||||
enable = [NodePath("../../../MeshInstance3D")]
|
||||
metadata/_custom_type_script = "uid://bex6umukt0r8d"
|
||||
|
||||
[node name="StopRepeatSequence" type="Node" parent="Projectile/Once On Done/On Done" node_paths=PackedStringArray("repeatSequence")]
|
||||
script = ExtResource("6_xwb5b")
|
||||
repeatSequence = NodePath("../../../Repeat Animation")
|
||||
metadata/_custom_type_script = "uid://cvw0nxi8migso"
|
||||
|
||||
[node name="ActionSequence" type="Node" parent="Once On Done/On Done"]
|
||||
[node name="ActionSequence" type="Node" parent="Projectile/Once On Done/On Done"]
|
||||
script = ExtResource("9_0sgxb")
|
||||
metadata/_custom_type_script = "uid://ceaglilesxsi4"
|
||||
|
||||
[node name="Delay" type="Node" parent="Once On Done/On Done/ActionSequence"]
|
||||
[node name="Parallel" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence"]
|
||||
script = ExtResource("11_x7uco")
|
||||
metadata/_custom_type_script = "uid://dy65lu5p2yf3j"
|
||||
|
||||
[node name="TweenMaterial" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence/Parallel" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("11_p1x71")
|
||||
toMaterial = SubResource("StandardMaterial3D_jmxwb")
|
||||
tweenType = SubResource("Resource_1816h")
|
||||
target = NodePath("../../../../../MeshInstance3D")
|
||||
slot = 2
|
||||
metadata/_custom_type_script = "uid://0wcfunmv4j6d"
|
||||
|
||||
[node name="TweenScale" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence/Parallel" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("14_b1tky")
|
||||
target = NodePath("../../../../../MeshInstance3D")
|
||||
tweenType = SubResource("Resource_1816h")
|
||||
metadata/_custom_type_script = "uid://csgk6d2jvferv"
|
||||
|
||||
[node name="Parallel2" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence"]
|
||||
script = ExtResource("11_x7uco")
|
||||
metadata/_custom_type_script = "uid://dy65lu5p2yf3j"
|
||||
|
||||
[node name="TweenMaterial" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence/Parallel2" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("11_p1x71")
|
||||
toMaterial = SubResource("StandardMaterial3D_1816h")
|
||||
tweenType = SubResource("Resource_3knx3")
|
||||
target = NodePath("../../../../../MeshInstance3D")
|
||||
slot = 2
|
||||
metadata/_custom_type_script = "uid://0wcfunmv4j6d"
|
||||
|
||||
[node name="TweenScale" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence/Parallel2" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("14_b1tky")
|
||||
target = NodePath("../../../../../MeshInstance3D")
|
||||
endScale = Vector3(2, 2, 2)
|
||||
tweenType = SubResource("Resource_dtivv")
|
||||
metadata/_custom_type_script = "uid://csgk6d2jvferv"
|
||||
|
||||
[node name="Delay" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence"]
|
||||
script = ExtResource("10_6687p")
|
||||
duration = 1.0
|
||||
timeLine = ExtResource("3_nlvic")
|
||||
metadata/_custom_type_script = "uid://b2g7rycr0ouu4"
|
||||
|
||||
[node name="RemoveNode" type="Node" parent="Once On Done/On Done/ActionSequence" node_paths=PackedStringArray("target")]
|
||||
[node name="RemoveNode" type="Node" parent="Projectile/Once On Done/On Done/ActionSequence" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("6_nibk5")
|
||||
target = NodePath("../../../..")
|
||||
target = NodePath("../../../../..")
|
||||
metadata/_custom_type_script = "uid://dq5kae8x62gre"
|
||||
|
||||
[node name="On Start" type="Node" parent="."]
|
||||
[node name="On Start" type="Node" parent="Projectile"]
|
||||
script = ExtResource("5_0loo2")
|
||||
metadata/_custom_type_script = "uid://b4yjsis2fh64c"
|
||||
|
||||
[node name="SetTransform" type="Node" parent="On Start" node_paths=PackedStringArray("target")]
|
||||
[node name="SetTransform" type="Node" parent="Projectile/On Start" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("9_qx516")
|
||||
target = NodePath("../../Graphics")
|
||||
scaleMode = 1
|
||||
scale = Vector3(0.001, 0.001, 0.001)
|
||||
metadata/_custom_type_script = "uid://cnp3xr8gawyi6"
|
||||
|
||||
[node name="Repeat Animation" type="Node" parent="." node_paths=PackedStringArray("action")]
|
||||
[node name="Repeat Animation" type="Node" parent="Projectile" node_paths=PackedStringArray("action")]
|
||||
script = ExtResource("8_1c3gh")
|
||||
action = NodePath("AnimateTransform")
|
||||
timeLine = ExtResource("3_nlvic")
|
||||
metadata/_custom_type_script = "uid://j41ppn275x8i"
|
||||
|
||||
[node name="AnimateTransform" type="Node" parent="Repeat Animation" node_paths=PackedStringArray("target")]
|
||||
[node name="AnimateTransform" type="Node" parent="Projectile/Repeat Animation" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("9_gk6jt")
|
||||
animations = SubResource("Resource_kglu6")
|
||||
target = NodePath("../../Graphics")
|
||||
metadata/_custom_type_script = "uid://cbtqgliarexam"
|
||||
|
||||
[node name="RJLogMessage" type="Node" parent="Repeat Animation"]
|
||||
[node name="RJLogMessage" type="Node" parent="Projectile/Repeat Animation"]
|
||||
script = ExtResource("13_u0sqv")
|
||||
message = "repeat"
|
||||
metadata/_custom_type_script = "uid://cd0ikdsdhutn0"
|
||||
|
||||
[node name="Area3D" type="Area3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.112234)
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, -1, 0, 1, -4.371139e-08, 0, -5.269331e-08, 1.2054825)
|
||||
shape = SubResource("CapsuleShape3D_u0sqv")
|
||||
|
||||
[node name="Collider" type="Node" parent="Area3D" node_paths=PackedStringArray("area", "onEntered")]
|
||||
script = ExtResource("19_6687p")
|
||||
area = NodePath("..")
|
||||
collisionType = ExtResource("20_6687p")
|
||||
onEntered = NodePath("../../Once On Done")
|
||||
metadata/_custom_type_script = "uid://xnupkyu3042b"
|
||||
|
||||
[node name="MeshInstance3D3" type="MeshInstance3D" parent="Area3D"]
|
||||
mesh = SubResource("QuadMesh_flomn")
|
||||
skeleton = NodePath("../..")
|
||||
|
|
|
|||
|
|
@ -37,12 +37,11 @@ public partial class ShootLaser: Action
|
|||
laserScene.SetParent( container );
|
||||
|
||||
var laserBeam = laserScene.Get<LaserBeam>();
|
||||
laserBeam.direction = dir;
|
||||
laserBeam.speed = speed;
|
||||
laserBeam.body.LookTowards( dir );
|
||||
laserBeam.forwardFollowDistanceScale = 1.5f;
|
||||
var projectile = laserBeam.body;
|
||||
|
||||
laserBeam.body.GlobalPosition = projectileOrigin.GlobalPosition;
|
||||
projectile.GlobalPosition = projectileOrigin.GlobalPosition;
|
||||
projectile.LookTowards( dir );
|
||||
projectile.speed = speed;
|
||||
|
||||
Action.Trigger( laserBeam );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=53 format=3 uid="uid://dpgjtkmuvsr41"]
|
||||
[gd_scene load_steps=55 format=3 uid="uid://dpgjtkmuvsr41"]
|
||||
|
||||
[ext_resource type="AudioStream" uid="uid://by14wgfo8ateq" path="res://DomeFox/Game Objects/Laser/water-fox-impact.ogg" id="2_ehw2o"]
|
||||
[ext_resource type="Script" uid="uid://crm7o7w0gumhn" path="res://addons/rokojori_action_library/Runtime/Actions/Conditional/Once.cs" id="2_ucinm"]
|
||||
|
|
@ -20,7 +20,9 @@
|
|||
[ext_resource type="Script" uid="uid://bqpiwp16h7614" path="res://addons/rokojori_action_library/Runtime/Animation/Transform/TransformAnimations.cs" id="13_vl44m"]
|
||||
[ext_resource type="Script" uid="uid://bex6umukt0r8d" path="res://addons/rokojori_action_library/Runtime/Actions/Node/SetNodeState.cs" id="16_p24ea"]
|
||||
[ext_resource type="Script" uid="uid://dncqth3uf3tb3" path="res://addons/rokojori_action_library/Runtime/Animation/HDRColor.cs" id="19_1ntkc"]
|
||||
[ext_resource type="Script" uid="uid://c1ivlrrt71nwp" path="res://addons/rokojori_action_library/Runtime/Cameras/Effects/PlayCameraEffect.cs" id="19_jsg3s"]
|
||||
[ext_resource type="Script" uid="uid://ddgf2mfdmqywc" path="res://addons/rokojori_action_library/Runtime/Actions/Node3D/PlaySound.cs" id="19_uxklm"]
|
||||
[ext_resource type="Resource" uid="uid://uyuplc6hm25j" path="res://addons/rokojori_action_library/Runtime/Cameras/Effects/Presets/ScreenShake.tres" id="20_l8f1n"]
|
||||
[ext_resource type="Script" uid="uid://cupnq55n3nimc" path="res://addons/rokojori_action_library/Runtime/Animation/Flash/FlashEffect.cs" id="20_vk22f"]
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_am4la"]
|
||||
|
|
@ -219,6 +221,7 @@ stream = ExtResource("2_ehw2o")
|
|||
volume_db = 6.0
|
||||
unit_size = 50.49
|
||||
max_db = 6.0
|
||||
bus = &"FX"
|
||||
attenuation_filter_cutoff_hz = 20500.0
|
||||
attenuation_filter_db = 0.0
|
||||
|
||||
|
|
@ -273,6 +276,12 @@ flashEffect = SubResource("Resource_ammpp")
|
|||
targets = [NodePath("../../../../RigidBody3D/Animation Target/Graphics")]
|
||||
metadata/_custom_type_script = "uid://dnwqkymbre3vb"
|
||||
|
||||
[node name="PlayCameraEffect" type="Node" parent="Once On Impact/OnImpact/Parallel"]
|
||||
script = ExtResource("19_jsg3s")
|
||||
cameraEffect = ExtResource("20_l8f1n")
|
||||
useActiveCameraSlot = true
|
||||
metadata/_custom_type_script = "uid://c1ivlrrt71nwp"
|
||||
|
||||
[node name="Shrink" type="Node" parent="Once On Impact/OnImpact" node_paths=PackedStringArray("target")]
|
||||
script = ExtResource("11_2spjm")
|
||||
animations = SubResource("Resource_ehw2o")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://c74clrqg1mf47"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c1khime56rk4l" path="res://DomeFox/X/GDScript/Submarine/submarine.gltf" id="1_6xjl7"]
|
||||
[ext_resource type="PackedScene" uid="uid://c1khime56rk4l" path="res://DomeFox/XYZ/GDScript/Submarine/submarine.gltf" id="1_6xjl7"]
|
||||
|
||||
[sub_resource type="Shader" id="Shader_3gsdb"]
|
||||
code = "
|
||||
|
|
|
|||
|
|
@ -87,3 +87,6 @@ shader_parameter/uv1_offset = Vector3(0, 0, 0)
|
|||
shader_parameter/uv2_blend_sharpness = 1.0000000475
|
||||
shader_parameter/uv2_scale = Vector3(0.001, 0.001, 0.001)
|
||||
shader_parameter/uv2_offset = Vector3(-0.087, 0, 0)
|
||||
shader_parameter/fadeOffset = 0.1
|
||||
shader_parameter/worldCameraLineDistanceFadeInnerRadius = 10.0
|
||||
shader_parameter/worldCameraLineDistanceFadeOuterRadius = 50.0
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ shader_type spatial;
|
|||
render_mode blend_mix, depth_draw_opaque, cull_disabled, diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
#include \"res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc\"
|
||||
#include \"res://addons/rokojori_action_library/Runtime/Shading/Library/SDF.gdshaderinc\"
|
||||
#include \"res://addons/rokojori_action_library/Runtime/Shading/Library/Noise.gdshaderinc\"
|
||||
|
||||
uniform vec4 albedo : source_color;
|
||||
uniform sampler2D albedoGradient : source_color, filter_linear_mipmap, repeat_enable;
|
||||
|
|
@ -44,6 +46,17 @@ varying vec3 uv2_power_normal;
|
|||
uniform vec3 uv2_scale;
|
||||
uniform vec3 uv2_offset;
|
||||
|
||||
group_uniforms Fading.LineFading;
|
||||
|
||||
global uniform vec3 playerPosition = vec3( 0.0, 0.0, 0.0);
|
||||
uniform float fadeOffset = 0.5;
|
||||
varying vec3 worldCameraLineDistanceFadeViewPosition;
|
||||
uniform float worldCameraLineDistanceFadeInnerRadius = 0.5;
|
||||
uniform float worldCameraLineDistanceFadeOuterRadius = 30;
|
||||
|
||||
// [ F A D I N G ]
|
||||
group_uniforms Fading;
|
||||
|
||||
varying float discardValue;
|
||||
varying float wallDestruction;
|
||||
|
||||
|
|
@ -94,6 +107,9 @@ void vertex()
|
|||
uv2_triplanar_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz * uv2_scale + uv2_offset;
|
||||
uv2_power_normal /= dot(uv2_power_normal, vec3(1.0));
|
||||
uv2_triplanar_pos *= vec3(1.0, -1.0, 1.0);
|
||||
|
||||
worldCameraLineDistanceFadeViewPosition = worldToView( playerPosition, VIEW_MATRIX );
|
||||
|
||||
}
|
||||
|
||||
vec4 triplanar_texture(sampler2D p_sampler, vec3 p_weights, vec3 p_triplanar_pos) {
|
||||
|
|
@ -116,6 +132,19 @@ void fragment()
|
|||
discard;
|
||||
}
|
||||
|
||||
float worldLineDistanceFadeDistance =
|
||||
sdRoundCone( VERTEX, vec3( 0.0, 0.0, 0.0), worldCameraLineDistanceFadeViewPosition, 0, worldCameraLineDistanceFadeInnerRadius );
|
||||
|
||||
|
||||
float worldLineDistanceFadeAmount = clamp( smoothstep( 0, ( worldCameraLineDistanceFadeOuterRadius - worldCameraLineDistanceFadeInnerRadius ), worldLineDistanceFadeDistance ), 0.0, 1.0 );
|
||||
|
||||
|
||||
if ( ditherDiscard( worldLineDistanceFadeAmount + fadeOffset, FRAGCOORD ) )
|
||||
{
|
||||
discard;
|
||||
}
|
||||
|
||||
|
||||
vec4 albedo_tex = triplanar_texture(texture_albedo, uv1_power_normal, uv1_triplanar_pos);
|
||||
ALBEDO = worldAlbedo.rgb * albedo_tex.rgb;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Wall : Node
|
||||
{
|
||||
[Export]
|
||||
public CollisionShape3D collisionShape3D;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://drcfv6u34vs61
|
||||
|
|
@ -1,13 +1,10 @@
|
|||
[gd_scene load_steps=22 format=3 uid="uid://be3xq8wvk32p8"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://be3xq8wvk32p8"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://drcfv6u34vs61" path="res://DomeFox/Game Objects/Wall/Wall.cs" id="1_4k145"]
|
||||
[ext_resource type="Script" uid="uid://dbgwebayabwd5" path="res://addons/rokojori_action_library/Runtime/Interactions/Collidable.cs" id="1_d4yus"]
|
||||
[ext_resource type="Resource" uid="uid://ckyvygk7xtnpm" path="res://DomeFox/Game Objects/Wall/Projectile-Collision.tres" id="2_7ycdx"]
|
||||
[ext_resource type="Script" uid="uid://ceaglilesxsi4" path="res://addons/rokojori_action_library/Runtime/Actions/ActionSequence.cs" id="3_auw5h"]
|
||||
[ext_resource type="Script" uid="uid://dnwqkymbre3vb" path="res://addons/rokojori_action_library/Runtime/Animation/Flash/Flash.cs" id="4_auw5h"]
|
||||
[ext_resource type="Script" uid="uid://dq5kae8x62gre" path="res://addons/rokojori_action_library/Runtime/Actions/RemoveNode.cs" id="4_c5shf"]
|
||||
[ext_resource type="Script" uid="uid://dncqth3uf3tb3" path="res://addons/rokojori_action_library/Runtime/Animation/HDRColor.cs" id="5_kteqw"]
|
||||
[ext_resource type="Script" uid="uid://c5tm02yj1bhhx" path="res://addons/rokojori_action_library/Runtime/Animation/AnimationCurve.cs" id="6_tpf5v"]
|
||||
[ext_resource type="Script" uid="uid://cupnq55n3nimc" path="res://addons/rokojori_action_library/Runtime/Animation/Flash/FlashEffect.cs" id="7_7ycdx"]
|
||||
[ext_resource type="Resource" uid="uid://ch5nsa6yafs5l" path="res://addons/rokojori_action_library/Runtime/Time/TimeLines/GameTime.tres" id="8_04wpl"]
|
||||
[ext_resource type="Script" uid="uid://c7gjkwcuwo17h" path="res://DomeFox/Game Objects/Wall/WallHealth.cs" id="10_0bi28"]
|
||||
[ext_resource type="Script" uid="uid://ddgf2mfdmqywc" path="res://addons/rokojori_action_library/Runtime/Actions/Node3D/PlaySound.cs" id="11_0bi28"]
|
||||
|
|
@ -17,7 +14,8 @@
|
|||
[ext_resource type="AudioStream" uid="uid://by14wgfo8ateq" path="res://DomeFox/Game Objects/Laser/water-fox-impact.ogg" id="14_7vxi8"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_dlj2d"]
|
||||
size = Vector3(30, 170.28778, 2)
|
||||
resource_local_to_scene = true
|
||||
size = Vector3(604.6057, 170, 0.2)
|
||||
|
||||
[sub_resource type="Resource" id="Resource_juwdv"]
|
||||
script = ExtResource("13_73h16")
|
||||
|
|
@ -25,30 +23,13 @@ seconds = 0.1
|
|||
timeLine = ExtResource("8_04wpl")
|
||||
metadata/_custom_type_script = "uid://ddhwhwos5kkrm"
|
||||
|
||||
[sub_resource type="Resource" id="Resource_mqcr4"]
|
||||
script = ExtResource("5_kteqw")
|
||||
color = Color(1.0562375, 0.5419403, 0.35492313, 1)
|
||||
colorMultiply = 1.5
|
||||
rgbMultiply = 2.0
|
||||
|
||||
[sub_resource type="Curve" id="Curve_juwdv"]
|
||||
_data = [Vector2(0, 1), 0.0, 0.0775112, 0, 0, Vector2(0.61455524, 0), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0442571, 0.0, 0, 0]
|
||||
point_count = 3
|
||||
|
||||
[sub_resource type="Resource" id="Resource_iro2o"]
|
||||
script = ExtResource("6_tpf5v")
|
||||
duration = 0.3
|
||||
curve = SubResource("Curve_juwdv")
|
||||
|
||||
[sub_resource type="Resource" id="Resource_3oj55"]
|
||||
script = ExtResource("7_7ycdx")
|
||||
flashCurve = SubResource("Resource_iro2o")
|
||||
timeline = ExtResource("8_04wpl")
|
||||
color = SubResource("Resource_mqcr4")
|
||||
materialMode = 1
|
||||
|
||||
[node name="Wall" type="Node3D"]
|
||||
|
||||
[node name="Wall" type="Node" parent="." node_paths=PackedStringArray("collisionShape3D")]
|
||||
script = ExtResource("1_4k145")
|
||||
collisionShape3D = NodePath("../StaticBody3D/CollisionShape3D")
|
||||
metadata/_custom_type_script = "uid://drcfv6u34vs61"
|
||||
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
|
|
@ -100,12 +81,6 @@ overdrivePreventionFlag = ExtResource("12_ebsfu")
|
|||
overdrivePreventionDuration = SubResource("Resource_juwdv")
|
||||
metadata/_custom_type_script = "uid://ddgf2mfdmqywc"
|
||||
|
||||
[node name="Flash" type="Node" parent="On Hit" node_paths=PackedStringArray("targets")]
|
||||
script = ExtResource("4_auw5h")
|
||||
flashEffect = SubResource("Resource_3oj55")
|
||||
targets = [NodePath("")]
|
||||
metadata/_custom_type_script = "uid://dnwqkymbre3vb"
|
||||
|
||||
[node name="WallHealth" type="Node" parent="." node_paths=PackedStringArray("onHit", "onFinalHit")]
|
||||
script = ExtResource("10_0bi28")
|
||||
onHit = NodePath("../On Hit")
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
using Godot;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Rokojori
|
||||
{
|
||||
[Tool]
|
||||
[GlobalClass]
|
||||
public partial class WallCollidable: Collidable
|
||||
{
|
||||
[Export]
|
||||
public MeshInstance3D hitMesh;
|
||||
|
||||
[Export]
|
||||
public CollisionShape3D collisionShape3D;
|
||||
|
||||
protected override void _Collide( Collider collider, CollisionPhase phase )
|
||||
{
|
||||
// var p = Plane3.CreateFromNormalAndCoplanarPoint( collisionShape3D.GlobalForward(), collisionShape3D.GlobalPosition );
|
||||
// var closest = p.ClosestPointTo( collider.area.GlobalPosition );
|
||||
|
||||
// var hit = (MeshInstance3D) this.CreateChildFromDuplicate( hitMesh );
|
||||
// hit.GlobalPosition = closest;
|
||||
// NodeState.Enable( hit );
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://3y8xs2ii8gu1
|
||||
|
|
@ -0,0 +1,189 @@
|
|||
|
||||
|
||||
shader_type spatial;
|
||||
|
||||
// Rokojori Shader @alb.382-fad.254-geo.121-met.376-nor.278-occ.376-rou.390-sha.391-spa.20-spa.24-spe.376-tra.402-tra.402-uvm.19:
|
||||
/*
|
||||
[ Rokojori.TransparencyModule ] { "alphaScissorTreshold":0.009999999776482582, "blendMode":{"__class__": "Godot.BaseMaterial3D+BlendModeEnum","value__": 0}, "cullMode":{"__class__": "Godot.BaseMaterial3D+CullModeEnum","value__": 0}, "depthDraw":{"__class__": "Godot.BaseMaterial3D+DepthDrawModeEnum","value__": 0}, "noDepthTest":false, "transparency":{"__class__": "Godot.BaseMaterial3D+TransparencyEnum","value__": 0} }
|
||||
[ Rokojori.ShadingModule ] { "diffuseMode":{"__class__": "Godot.BaseMaterial3D+DiffuseModeEnum","value__": 0}, "disableAmbientLight":false, "disableFog":false, "disableReceivingShadows":false, "shadingMode":{"__class__": "Godot.BaseMaterial3D+ShadingModeEnum","value__": 1}, "shadowToOpacity":false, "specularMode":{"__class__": "Godot.BaseMaterial3D+SpecularModeEnum","value__": 0}, "wireFrameMode":false }
|
||||
[ Rokojori.UVModule ] { "channels":[] }
|
||||
[ Rokojori.GeometryModule ] { "modifiers":[{ "__class__": "Rokojori.GeometryTerrainOffset", "sortableCode": true, "uniformGroup": null}] }
|
||||
[ Rokojori.SpatialVarying ] { "variables":[] }
|
||||
[ Rokojori.SpatialMasksModule ] { "maskVariables":[] }
|
||||
[ Rokojori.AlbedoModule ] { "assignmentType":{"__class__": "Rokojori.TextureModule+AssignmentType","value__": 0}, "filter":{"__class__": "Rokojori.TextureModule+TextureFilter","value__": 5}, "overlayLayers":[], "repeat":true, "srgb":true, "textureDefault":{"__class__": "Rokojori.TextureModule+TextureDefault","value__": 0}, "tintVarying":"", "useTint":true, "uvChannel":"UV", "writeAlpha":false }
|
||||
[ Rokojori.TransparencyModule ] { "alphaScissorTreshold":0.009999999776482582, "blendMode":{"__class__": "Godot.BaseMaterial3D+BlendModeEnum","value__": 0}, "cullMode":{"__class__": "Godot.BaseMaterial3D+CullModeEnum","value__": 0}, "depthDraw":{"__class__": "Godot.BaseMaterial3D+DepthDrawModeEnum","value__": 0}, "noDepthTest":false, "transparency":{"__class__": "Godot.BaseMaterial3D+TransparencyEnum","value__": 0} }
|
||||
[ Rokojori.FadingModule ] { "alphaFadeMode":{"__class__": "Rokojori.AlphaFadeMode","value__": 2}, "fadingModifiers":[{ "__class__": "Rokojori.LineFading", "mode": 1, "alphaFadeMode": 0, "createUniformGroup": true, "sortableCode": true, "uniformGroup": null}] }
|
||||
[ Rokojori.NormalMapModule ] { "allowNegativeStrength":false, "filter":{"__class__": "Rokojori.TextureModule+TextureFilter","value__": 5}, "maximumStrength":5, "repeat":true, "textureDefault":{"__class__": "Rokojori.TextureModule+TextureDefault","value__": 0}, "useStrength":true, "uvChannel":"UV" }
|
||||
[ Rokojori.OcclusionModule ] { "assignmentType":{"__class__": "Rokojori.TextureModule+AssignmentType","value__": 0}, "domainMode":{"__class__": "Rokojori.TextureModule+DomainMode","value__": 3}, "filter":{"__class__": "Rokojori.TextureModule+TextureFilter","value__": 5}, "repeat":true, "textureDefault":{"__class__": "Rokojori.TextureModule+TextureDefault","value__": 0}, "uvChannel":"UV" }
|
||||
[ Rokojori.RoughnessModule ] { "assignmentType":{"__class__": "Rokojori.TextureModule+AssignmentType","value__": 0}, "clamp":true, "domainMode":{"__class__": "Rokojori.TextureModule+DomainMode","value__": 3}, "filter":{"__class__": "Rokojori.TextureModule+TextureFilter","value__": 5}, "repeat":true, "textureDefault":{"__class__": "Rokojori.TextureModule+TextureDefault","value__": 0}, "uvChannel":"UV" }
|
||||
[ Rokojori.MetallicModule ] { "assignmentType":{"__class__": "Rokojori.TextureModule+AssignmentType","value__": 0}, "domainMode":{"__class__": "Rokojori.TextureModule+DomainMode","value__": 3}, "filter":{"__class__": "Rokojori.TextureModule+TextureFilter","value__": 5}, "repeat":true, "textureDefault":{"__class__": "Rokojori.TextureModule+TextureDefault","value__": 0}, "uvChannel":"UV" }
|
||||
[ Rokojori.SpecularModule ] { "assignmentType":{"__class__": "Rokojori.TextureModule+AssignmentType","value__": 0}, "domainMode":{"__class__": "Rokojori.TextureModule+DomainMode","value__": 0}, "filter":{"__class__": "Rokojori.TextureModule+TextureFilter","value__": 5}, "repeat":true, "textureDefault":{"__class__": "Rokojori.TextureModule+TextureDefault","value__": 0}, "uvChannel":"UV" }
|
||||
*/
|
||||
|
||||
render_mode blend_mix, cull_back, depth_draw_opaque, diffuse_burley, specular_schlick_ggx;
|
||||
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Terrain.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Noise.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Transform.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Line3.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/SDF.gdshaderinc"
|
||||
#include "res://addons/rokojori_action_library/Runtime/Shading/Library/Math.gdshaderinc"
|
||||
|
||||
// [ G E O M E T R Y . T E R R A I N ]
|
||||
group_uniforms Geometry.Terrain;
|
||||
|
||||
|
||||
uniform sampler2D terrainHeightMap;
|
||||
uniform vec2 terrainCenterXZ = vec2( 0.0, 0.0 );
|
||||
uniform vec2 terrainSizeXZ = vec2( 100.0, 100.0 );
|
||||
uniform float terrainMinHeight = 0.0;
|
||||
uniform float terrainMaxHeight = 100.0;
|
||||
|
||||
|
||||
|
||||
|
||||
// [ A L B E D O ]
|
||||
group_uniforms albedo;
|
||||
|
||||
uniform vec4 albedo:source_color = vec4( 1.0, 1.0, 1.0, 1.0);
|
||||
uniform sampler2D albedoTexture:source_color, hint_default_white, repeat_enable, filter_linear_mipmap_anisotropic;
|
||||
|
||||
|
||||
|
||||
// [ F A D I N G ]
|
||||
group_uniforms Fading;
|
||||
|
||||
|
||||
|
||||
|
||||
// [ F A D I N G . L I N E F A D I N G ]
|
||||
group_uniforms Fading.LineFading;
|
||||
|
||||
uniform vec3 worldCameraLineDistanceFadeWorldPosition = vec3( 0.0, 0.0, 0.0);
|
||||
varying vec3 worldCameraLineDistanceFadeViewPosition;
|
||||
uniform float worldCameraLineDistanceFadeInnerRadius = 0.10000000149011612;
|
||||
uniform float worldCameraLineDistanceFadeOuterRadius = 0.15000000596046448;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// [ F A D I N G ]
|
||||
group_uniforms Fading;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// [ N O R M A L ]
|
||||
group_uniforms normal;
|
||||
|
||||
uniform float normalStrength:hint_range( 0.0, 5.0) = 1.0;
|
||||
uniform sampler2D normalTexture:hint_normal, repeat_enable, filter_linear_mipmap_anisotropic;
|
||||
|
||||
|
||||
|
||||
// [ O C C L U S I O N ]
|
||||
group_uniforms occlusion;
|
||||
|
||||
uniform float occlusion:hint_range( 0.0, 1.0) = 1.0;
|
||||
|
||||
uniform float occlusionOffset:hint_range( -1.0, 1.0) = 0.0;
|
||||
uniform sampler2D occlusionTexture:hint_default_white, repeat_enable, filter_linear_mipmap_anisotropic;
|
||||
|
||||
|
||||
|
||||
// [ R O U G H N E S S ]
|
||||
group_uniforms roughness;
|
||||
|
||||
uniform float roughness:hint_range( 0.0, 1.0) = 1.0;
|
||||
|
||||
uniform float roughnessOffset:hint_range( -1.0, 1.0) = 0.0;
|
||||
uniform sampler2D roughnessTexture:hint_default_white, repeat_enable, filter_linear_mipmap_anisotropic;
|
||||
|
||||
|
||||
|
||||
// [ M E T A L L I C ]
|
||||
group_uniforms metallic;
|
||||
|
||||
uniform float metallic:hint_range( 0.0, 1.0) = 0.0;
|
||||
|
||||
uniform float metallicOffset:hint_range( -1.0, 1.0) = 0.0;
|
||||
uniform sampler2D metallicTexture:hint_default_white, repeat_enable, filter_linear_mipmap_anisotropic;
|
||||
|
||||
|
||||
|
||||
// [ S P E C U L A R ]
|
||||
group_uniforms specular;
|
||||
|
||||
uniform float specular:hint_range( 0.0, 1.0) = 0.5;
|
||||
|
||||
|
||||
|
||||
void vertex()
|
||||
{
|
||||
|
||||
|
||||
|
||||
// [ T E R R A I N ]
|
||||
|
||||
|
||||
addTerrainOffset(
|
||||
MODEL_MATRIX,
|
||||
VERTEX,
|
||||
terrainHeightMap,
|
||||
terrainCenterXZ,
|
||||
terrainSizeXZ,
|
||||
terrainMinHeight,
|
||||
terrainMaxHeight
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
worldCameraLineDistanceFadeViewPosition = worldToView( worldCameraLineDistanceFadeWorldPosition, VIEW_MATRIX );
|
||||
|
||||
|
||||
}
|
||||
|
||||
void fragment()
|
||||
{
|
||||
|
||||
vec4 sampledAlbedo = texture( albedoTexture, UV );
|
||||
ALBEDO = sampledAlbedo.rgb * albedo.rgb;
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
float worldLineDistanceFadeDistance = sdRoundCone( VERTEX, vec3( 0.0, 0.0, 0.0), worldCameraLineDistanceFadeViewPosition, 0, worldCameraLineDistanceFadeInnerRadius );
|
||||
|
||||
|
||||
float worldLineDistanceFadeAmount = clamp( smoothstep( 0, ( worldCameraLineDistanceFadeOuterRadius - worldCameraLineDistanceFadeInnerRadius ), worldLineDistanceFadeDistance ), 0.0, 1.0 );
|
||||
|
||||
|
||||
if ( ditherDiscard( worldLineDistanceFadeAmount, FRAGCOORD ) )
|
||||
{
|
||||
discard;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
vec4 sampledNormal = texture( normalTexture, UV );
|
||||
NORMAL_MAP = sampledNormal.rgb;
|
||||
NORMAL_MAP_DEPTH = normalStrength;
|
||||
|
||||
vec4 sampledOcclusion = texture( occlusionTexture, UV );
|
||||
AO = sampledOcclusion.r * occlusion + occlusionOffset;
|
||||
|
||||
vec4 sampledRoughness = texture( roughnessTexture, UV );
|
||||
ROUGHNESS = sampledRoughness.g * roughness + roughnessOffset;
|
||||
ROUGHNESS = clamp01( ROUGHNESS );
|
||||
|
||||
vec4 sampledMetallic = texture( metallicTexture, UV );
|
||||
METALLIC = sampledMetallic.b * metallic + metallicOffset;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://dsb7yxwp7xw2e
|
||||
|
|
@ -9,10 +9,20 @@ public partial class DomeFoxGame : Node
|
|||
[Export]
|
||||
public int crystals = 0;
|
||||
|
||||
[Export]
|
||||
public bool paused = false;
|
||||
|
||||
|
||||
public void AddCrystal()
|
||||
{
|
||||
crystals ++;
|
||||
|
||||
Unique<DomeFoxGameUI>.Get().crystalCounter.locale = LocaleText.Create( crystals + "" );
|
||||
}
|
||||
|
||||
|
||||
public void TogglePause()
|
||||
{
|
||||
paused = ! paused;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class PostProcessingHack : Action
|
||||
{
|
||||
[Export]
|
||||
public CompositorEffect[] compositorEffects;
|
||||
|
||||
[Export]
|
||||
public WorldEnvironment environment;
|
||||
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
|
||||
var godotArray = new Godot.Collections.Array<CompositorEffect>();
|
||||
|
||||
for ( int i = 0; i < compositorEffects.Length; i++ )
|
||||
{
|
||||
godotArray.Add( (CompositorEffect) compositorEffects[ i ].Duplicate() );
|
||||
}
|
||||
|
||||
environment.Compositor.CompositorEffects = godotArray;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://efhpaj7sfbcr
|
||||
|
|
@ -68,7 +68,7 @@ public partial class LevelGenerator : Action
|
|||
|
||||
var boundaryPointSize = Circle.WithRadius( maxRadius ).circumference / boundaryDensity;
|
||||
|
||||
this.LogInfo( "Num Boundary Points", boundaryPointSize );
|
||||
// this.LogInfo( "Num Boundary Points", boundaryPointSize );
|
||||
|
||||
for ( int i = 0; i < boundaryPointSize; i++ )
|
||||
{
|
||||
|
|
@ -170,12 +170,13 @@ public partial class LevelGenerator : Action
|
|||
|
||||
return rooms[ index ].room;
|
||||
}
|
||||
public override void _Ready()
|
||||
{
|
||||
this.LogInfo( "Ready", this.walls.Length );
|
||||
|
||||
InitializeWalls();
|
||||
}
|
||||
// public override void _Ready()
|
||||
// {
|
||||
// this.LogInfo( "Ready", this.walls.Length );
|
||||
|
||||
// InitializeWalls();
|
||||
// }
|
||||
|
||||
async Task InitializeWalls()
|
||||
{
|
||||
|
|
@ -218,13 +219,19 @@ public partial class LevelGenerator : Action
|
|||
var numWalls = length / wallSize;
|
||||
|
||||
var wallObject = this.CreateChild<Node3D>( wall, "Wall " + wallIndex );
|
||||
|
||||
var wallNode = wallObject.Get<Wall>();
|
||||
wallObject.GlobalPosition = center;
|
||||
wallObject.SetGlobalYaw( yaw + Mathf.Pi * 0.5f );
|
||||
wallObject.Scale = new Vector3( numWalls, 1, 1 );
|
||||
|
||||
var boxShape = wallNode.collisionShape3D.Shape as BoxShape3D;
|
||||
boxShape.Size = new Vector3( length, 170, 0.2f );
|
||||
|
||||
// wallObject.Scale = new Vector3( numWalls, 1, 1 );
|
||||
|
||||
var setTexturesAttributes= wallObject.GetAll<SetTextureAttributeChannel>();
|
||||
|
||||
this.LogInfo( "Num walls:", setTexturesAttributes.Count );
|
||||
// this.LogInfo( "Num walls:", setTexturesAttributes.Count );
|
||||
|
||||
setTexturesAttributes.ForEach(
|
||||
( st )=>
|
||||
|
|
@ -232,7 +239,7 @@ public partial class LevelGenerator : Action
|
|||
st.index = wallIndex;
|
||||
st.textureAttributes = textureAttributes;
|
||||
|
||||
this.LogInfo( "Set Index:", st.index, HierarchyName.Of( st ) );
|
||||
// this.LogInfo( "Set Index:", st.index, HierarchyName.Of( st ) );
|
||||
}
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="Resource" script_class="DamagableData" load_steps=2 format=3 uid="uid://bbnik8um7y2xe"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d0x8co6nm8koo" path="res://DomeFox/Game Objects/Health/DamagableData.cs" id="1_8gphl"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_8gphl")
|
||||
metadata/_custom_type_script = "uid://d0x8co6nm8koo"
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="Resource" script_class="HealthData" load_steps=2 format=3 uid="uid://ckith6bwr51uc"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://w5l6csc2p364" path="res://DomeFox/Game Objects/Health/HealthData.cs" id="1_k7yae"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_k7yae")
|
||||
metadata/_custom_type_script = "uid://w5l6csc2p364"
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class Player : Node
|
||||
{
|
||||
[Export]
|
||||
public Node3D transform;
|
||||
|
||||
[Export]
|
||||
public Vector3Property playerPosition;
|
||||
|
||||
public override void _Process( double delta )
|
||||
{
|
||||
playerPosition.value = transform.GlobalPosition;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://lcmgq0fr5fgs
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[gd_resource type="Resource" script_class="CollisionFlag" load_steps=2 format=3 uid="uid://dw7wtapaqufxu"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://crk6vntm10let" path="res://addons/rokojori_action_library/Runtime/Interactions/CollisionFlag.cs" id="1_nrk5x"]
|
||||
|
||||
[resource]
|
||||
script = ExtResource("1_nrk5x")
|
||||
metadata/_custom_type_script = "uid://crk6vntm10let"
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
[gd_resource type="Resource" script_class="Vector3Property" load_steps=4 format=3 uid="uid://7flbr6w8tfkk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://rukdqg1uo30" path="res://addons/rokojori_action_library/Runtime/Shading/Properties/Vector3PropertyName.cs" id="1_o2sqd"]
|
||||
[ext_resource type="Script" uid="uid://bhq3wuoierkuq" path="res://addons/rokojori_action_library/Runtime/Shading/Properties/Properties/Vector3Property.cs" id="2_1jd0m"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_1m6i4"]
|
||||
script = ExtResource("1_o2sqd")
|
||||
propertyName = "playerPosition"
|
||||
metadata/_custom_type_script = "uid://rukdqg1uo30"
|
||||
|
||||
[resource]
|
||||
script = ExtResource("2_1jd0m")
|
||||
propertyName = SubResource("Resource_1m6i4")
|
||||
metadata/_custom_type_script = "uid://bhq3wuoierkuq"
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class PlayerSight : Node
|
||||
{
|
||||
[Export]
|
||||
public bool visible = false;
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://ck22blkf6u3vx
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
using Godot;
|
||||
using Rokojori;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass]
|
||||
public partial class SetPlayerSight : Action
|
||||
{
|
||||
[Export]
|
||||
public PlayerSight playerSight;
|
||||
|
||||
[Export]
|
||||
public bool visible;
|
||||
|
||||
protected override void _OnTrigger()
|
||||
{
|
||||
playerSight.visible = visible;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://bfdpav4wcws7s
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="mp3"
|
||||
type="AudioStreamMP3"
|
||||
uid="uid://ckb6stpf5454h"
|
||||
path="res://.godot/imported/player-hit-damage.mp3-5415da2fe94d2dfe3c918ec86886861c.mp3str"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Player/sound-fx/player-hit-damage.mp3"
|
||||
dest_files=["res://.godot/imported/player-hit-damage.mp3-5415da2fe94d2dfe3c918ec86886861c.mp3str"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
|||
[remap]
|
||||
|
||||
importer="oggvorbisstr"
|
||||
type="AudioStreamOggVorbis"
|
||||
uid="uid://5g5yqhw3tuj8"
|
||||
path="res://.godot/imported/player-hit-damage.ogg-4cb25fc1a7b56f6495fdbb2954baf53a.oggvorbisstr"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Player/sound-fx/player-hit-damage.ogg"
|
||||
dest_files=["res://.godot/imported/player-hit-damage.ogg-4cb25fc1a7b56f6495fdbb2954baf53a.oggvorbisstr"]
|
||||
|
||||
[params]
|
||||
|
||||
loop=false
|
||||
loop_offset=0
|
||||
bpm=0
|
||||
beat_count=0
|
||||
bar_beats=4
|
||||
Binary file not shown.
|
|
@ -0,0 +1,24 @@
|
|||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://biivekpfjgiki"
|
||||
path="res://.godot/imported/player-hit-damage.wav-a737d7949ad73e49b04c0bca42a9d26b.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/Player/sound-fx/player-hit-damage.wav"
|
||||
dest_files=["res://.godot/imported/player-hit-damage.wav-a737d7949ad73e49b04c0bca42a9d26b.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
|
|
@ -4,10 +4,20 @@ using System.Collections.Generic;
|
|||
using System.Threading.Tasks;
|
||||
|
||||
[Tool, GlobalClass, Icon( "res://icon.svg" )]
|
||||
public partial class DomeFoxGameUI: Node
|
||||
public partial class DomeFoxGameUI: Node, iOnInputSensor
|
||||
{
|
||||
[Export]
|
||||
public UIText crystalCounter;
|
||||
|
||||
[Export]
|
||||
public Sensor pauseButton;
|
||||
|
||||
public override void _Input( InputEvent inputEvent )
|
||||
{
|
||||
if ( pauseButton != null && pauseButton.isDown )
|
||||
{
|
||||
Unique<DomeFoxGame>.Get().TogglePause();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://nnhy5dv8k0nr"
|
||||
path="res://.godot/imported/Dosis-VariableFont_wght.ttf-761c350cf1036bf5681c0a736df7709c.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/Dosis-VariableFont_wght.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-VariableFont_wght.ttf-761c350cf1036bf5681c0a736df7709c.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
Copyright (c) 2011, Edgar Tolentino and Pablo Impallari (www.impallari.com|impallari@gmail.com),
|
||||
Copyright (c) 2011, Igino Marini. (www.ikern.com|mail@iginomarini.com),
|
||||
with Reserved Font Names "Dosis".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
|
@ -0,0 +1,69 @@
|
|||
Dosis Variable Font
|
||||
===================
|
||||
|
||||
This download contains Dosis as both a variable font and static fonts.
|
||||
|
||||
Dosis is a variable font with this axis:
|
||||
wght
|
||||
|
||||
This means all the styles are contained in a single file:
|
||||
Dosis-VariableFont_wght.ttf
|
||||
|
||||
If your app fully supports variable fonts, you can now pick intermediate styles
|
||||
that aren’t available as static fonts. Not all apps support variable fonts, and
|
||||
in those cases you can use the static font files for Dosis:
|
||||
static/Dosis-ExtraLight.ttf
|
||||
static/Dosis-Light.ttf
|
||||
static/Dosis-Regular.ttf
|
||||
static/Dosis-Medium.ttf
|
||||
static/Dosis-SemiBold.ttf
|
||||
static/Dosis-Bold.ttf
|
||||
static/Dosis-ExtraBold.ttf
|
||||
|
||||
Get started
|
||||
-----------
|
||||
|
||||
1. Install the font files you want to use
|
||||
|
||||
2. Use your app's font picker to view the font family and all the
|
||||
available styles
|
||||
|
||||
Learn more about variable fonts
|
||||
-------------------------------
|
||||
|
||||
https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts
|
||||
https://variablefonts.typenetwork.com
|
||||
https://medium.com/variable-fonts
|
||||
|
||||
In desktop apps
|
||||
|
||||
https://theblog.adobe.com/can-variable-fonts-illustrator-cc
|
||||
https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts
|
||||
|
||||
Online
|
||||
|
||||
https://developers.google.com/fonts/docs/getting_started
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide
|
||||
https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts
|
||||
|
||||
Installing fonts
|
||||
|
||||
MacOS: https://support.apple.com/en-us/HT201749
|
||||
Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux
|
||||
Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||
|
||||
Android Apps
|
||||
|
||||
https://developers.google.com/fonts/docs/android
|
||||
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts
|
||||
|
||||
License
|
||||
-------
|
||||
Please read the full license text (OFL.txt) to understand the permissions,
|
||||
restrictions and requirements for usage, redistribution, and modification.
|
||||
|
||||
You can use them freely in your products & projects - print or digital,
|
||||
commercial or otherwise. However, you can't sell the fonts on their own.
|
||||
|
||||
This isn't legal advice, please consider consulting a lawyer and see the full
|
||||
license for all details.
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://qxtia86uqxaf"
|
||||
path="res://.godot/imported/Dosis-Bold.ttf-fb6afb137596a8b31355ba4be319dd7a.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-Bold.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-Bold.ttf-fb6afb137596a8b31355ba4be319dd7a.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://mchosbipx5u0"
|
||||
path="res://.godot/imported/Dosis-ExtraBold.ttf-22e160e2f4bc29bdc81150751e6ef580.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-ExtraBold.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-ExtraBold.ttf-22e160e2f4bc29bdc81150751e6ef580.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://ipwtoloeiipu"
|
||||
path="res://.godot/imported/Dosis-ExtraLight.ttf-d7d3be391ab8bd215ce84da5f8318cac.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-ExtraLight.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-ExtraLight.ttf-d7d3be391ab8bd215ce84da5f8318cac.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://c4ox3ptqqmin8"
|
||||
path="res://.godot/imported/Dosis-Light.ttf-973cccac501150b9f1d18cd98b3d4922.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-Light.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-Light.ttf-973cccac501150b9f1d18cd98b3d4922.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://b0eaevxyhkxb0"
|
||||
path="res://.godot/imported/Dosis-Medium.ttf-663c2a5381747149b2019d81b325b3b7.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-Medium.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-Medium.ttf-663c2a5381747149b2019d81b325b3b7.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://cdq0f1h52alq0"
|
||||
path="res://.godot/imported/Dosis-Regular.ttf-e25730957d6c39490581749250dff134.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-Regular.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-Regular.ttf-e25730957d6c39490581749250dff134.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://brwyso7p5joyv"
|
||||
path="res://.godot/imported/Dosis-SemiBold.ttf-27b985511b7e12708719b5f9fa1d022e.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Dosis/static/Dosis-SemiBold.ttf"
|
||||
dest_files=["res://.godot/imported/Dosis-SemiBold.ttf-27b985511b7e12708719b5f9fa1d022e.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,36 @@
|
|||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://dgk2uqw4d0g0h"
|
||||
path="res://.godot/imported/Electrolize-Regular.ttf-eeed3fc61e622df1e66c19c882fd2157.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://DomeFox/UI/Fonts/Electrolize/Electrolize-Regular.ttf"
|
||||
dest_files=["res://.godot/imported/Electrolize-Regular.ttf-eeed3fc61e622df1e66c19c882fd2157.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
Copyright (c) 2011, Cyreal (www.cyreal.org),
|
||||
with Reserved Font Name "Electrolize".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue