refactor proj and bring new design
							
								
								
									
										4
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					*.import    eol=lf
 | 
				
			||||||
 | 
					*.tscn      eol=lf
 | 
				
			||||||
 | 
					*.godot      eol=lf
 | 
				
			||||||
 | 
					*.tres      eol=lf
 | 
				
			||||||
							
								
								
									
										225
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						@ -1,7 +1,7 @@
 | 
				
			|||||||
# my own ban
 | 
					# my own ban
 | 
				
			||||||
resources/fonts/*.otf
 | 
					src/resources/fonts/*.otf
 | 
				
			||||||
resources/fonts/*.ttf
 | 
					src/resources/fonts/*.ttf
 | 
				
			||||||
resources/textures
 | 
					src/resources/textures/ballance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Godot-specific ignores
 | 
					# Godot-specific ignores
 | 
				
			||||||
.import/
 | 
					.import/
 | 
				
			||||||
@ -15,3 +15,222 @@ export_presets.cfg
 | 
				
			|||||||
.mono/
 | 
					.mono/
 | 
				
			||||||
data_*/
 | 
					data_*/
 | 
				
			||||||
.vs/
 | 
					.vs/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## ------------------------Visual Studio normal settings---------------------------------------
 | 
				
			||||||
 | 
					## Ignore Visual Studio build files, cache files, and rubbish files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Windows
 | 
				
			||||||
 | 
					Thumbs.db
 | 
				
			||||||
 | 
					ehthumbs.db
 | 
				
			||||||
 | 
					Desktop.ini
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# User-specific files
 | 
				
			||||||
 | 
					*.suo
 | 
				
			||||||
 | 
					*.user
 | 
				
			||||||
 | 
					*.userosscache
 | 
				
			||||||
 | 
					*.sln.docstates
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# User-specific files (MonoDevelop/Xamarin Studio)
 | 
				
			||||||
 | 
					*.userprefs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio 2015 cache/options directory
 | 
				
			||||||
 | 
					.vs/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build result
 | 
				
			||||||
 | 
					[Dd]ebug/
 | 
				
			||||||
 | 
					[Dd]ebugPublic/
 | 
				
			||||||
 | 
					[Rr]elease/
 | 
				
			||||||
 | 
					[Rr]eleases/
 | 
				
			||||||
 | 
					x64/
 | 
				
			||||||
 | 
					x86/
 | 
				
			||||||
 | 
					build/
 | 
				
			||||||
 | 
					bld/
 | 
				
			||||||
 | 
					[Bb]in/
 | 
				
			||||||
 | 
					[Oo]bj/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MSTest test Results
 | 
				
			||||||
 | 
					[Tt]est[Rr]esult*/
 | 
				
			||||||
 | 
					[Bb]uild[Ll]og.*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# NUNIT
 | 
				
			||||||
 | 
					*.VisualState.xml
 | 
				
			||||||
 | 
					TestResult.xml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build Results of an ATL Project
 | 
				
			||||||
 | 
					[Dd]ebugPS/
 | 
				
			||||||
 | 
					[Rr]eleasePS/
 | 
				
			||||||
 | 
					dlldata.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DNX
 | 
				
			||||||
 | 
					project.lock.json
 | 
				
			||||||
 | 
					artifacts/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*_i.c
 | 
				
			||||||
 | 
					*_p.c
 | 
				
			||||||
 | 
					*_i.h
 | 
				
			||||||
 | 
					*.ilk
 | 
				
			||||||
 | 
					*.meta
 | 
				
			||||||
 | 
					*.obj
 | 
				
			||||||
 | 
					*.pch
 | 
				
			||||||
 | 
					*.pdb
 | 
				
			||||||
 | 
					*.pgc
 | 
				
			||||||
 | 
					*.pgd
 | 
				
			||||||
 | 
					*.rsp
 | 
				
			||||||
 | 
					*.sbr
 | 
				
			||||||
 | 
					*.tlb
 | 
				
			||||||
 | 
					*.tli
 | 
				
			||||||
 | 
					*.tlh
 | 
				
			||||||
 | 
					*.tmp
 | 
				
			||||||
 | 
					*.tmp_proj
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					*.vspscc
 | 
				
			||||||
 | 
					*.vssscc
 | 
				
			||||||
 | 
					.builds
 | 
				
			||||||
 | 
					*.pidb
 | 
				
			||||||
 | 
					*.svclog
 | 
				
			||||||
 | 
					*.scc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Chutzpah Test files
 | 
				
			||||||
 | 
					_Chutzpah*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual C++ cache files
 | 
				
			||||||
 | 
					ipch/
 | 
				
			||||||
 | 
					*.aps
 | 
				
			||||||
 | 
					*.ncb
 | 
				
			||||||
 | 
					*.opensdf
 | 
				
			||||||
 | 
					*.sdf
 | 
				
			||||||
 | 
					*.cachefile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio profiler
 | 
				
			||||||
 | 
					*.psess
 | 
				
			||||||
 | 
					*.vsp
 | 
				
			||||||
 | 
					*.vspx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TFS 2012 Local Workspace
 | 
				
			||||||
 | 
					$tf/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Guidance Automation Toolkit
 | 
				
			||||||
 | 
					*.gpState
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ReSharper is a .NET coding add-in
 | 
				
			||||||
 | 
					_ReSharper*/
 | 
				
			||||||
 | 
					*.[Rr]e[Ss]harper
 | 
				
			||||||
 | 
					*.DotSettings.user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# JustCode is a .NET coding add-in
 | 
				
			||||||
 | 
					.JustCode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TeamCity is a build add-in
 | 
				
			||||||
 | 
					_TeamCity*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DotCover is a Code Coverage Tool
 | 
				
			||||||
 | 
					*.dotCover
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# NCrunch
 | 
				
			||||||
 | 
					_NCrunch_*
 | 
				
			||||||
 | 
					.*crunch*.local.xml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MightyMoose
 | 
				
			||||||
 | 
					*.mm.*
 | 
				
			||||||
 | 
					AutoTest.Net/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Web workbench (sass)
 | 
				
			||||||
 | 
					.sass-cache/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Installshield output folder
 | 
				
			||||||
 | 
					[Ee]xpress/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DocProject is a documentation generator add-in
 | 
				
			||||||
 | 
					DocProject/buildhelp/
 | 
				
			||||||
 | 
					DocProject/Help/*.HxT
 | 
				
			||||||
 | 
					DocProject/Help/*.HxC
 | 
				
			||||||
 | 
					DocProject/Help/*.hhc
 | 
				
			||||||
 | 
					DocProject/Help/*.hhk
 | 
				
			||||||
 | 
					DocProject/Help/*.hhp
 | 
				
			||||||
 | 
					DocProject/Help/Html2
 | 
				
			||||||
 | 
					DocProject/Help/html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Click-Once directory
 | 
				
			||||||
 | 
					publish/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Publish Web Output
 | 
				
			||||||
 | 
					*.[Pp]ublish.xml
 | 
				
			||||||
 | 
					*.azurePubxml
 | 
				
			||||||
 | 
					## TODO: Comment the next line if you want to checkin your
 | 
				
			||||||
 | 
					## web deploy settings but do note that will include unencrypted
 | 
				
			||||||
 | 
					## passwords
 | 
				
			||||||
 | 
					#*.pubxml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*.publishproj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# NuGet Packages
 | 
				
			||||||
 | 
					*.nupkg
 | 
				
			||||||
 | 
					# The packages folder can be ignored because of Package Restore
 | 
				
			||||||
 | 
					**/packages/*
 | 
				
			||||||
 | 
					# except build/, which is used as an MSBuild target.
 | 
				
			||||||
 | 
					!**/packages/build/
 | 
				
			||||||
 | 
					# Uncomment if necessary however generally it will be regenerated when needed
 | 
				
			||||||
 | 
					#!**/packages/repositories.config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Windows Azure Build Output
 | 
				
			||||||
 | 
					csx/
 | 
				
			||||||
 | 
					*.build.csdef
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Windows Store app package directory
 | 
				
			||||||
 | 
					AppPackages/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio cache files
 | 
				
			||||||
 | 
					# files ending in .cache can be ignored
 | 
				
			||||||
 | 
					*.[Cc]ache
 | 
				
			||||||
 | 
					# but keep track of directories ending in .cache
 | 
				
			||||||
 | 
					!*.[Cc]ache/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Others
 | 
				
			||||||
 | 
					ClientBin/
 | 
				
			||||||
 | 
					[Ss]tyle[Cc]op.*
 | 
				
			||||||
 | 
					~$*
 | 
				
			||||||
 | 
					*~
 | 
				
			||||||
 | 
					*.dbmdl
 | 
				
			||||||
 | 
					*.dbproj.schemaview
 | 
				
			||||||
 | 
					*.pfx
 | 
				
			||||||
 | 
					*.publishsettings
 | 
				
			||||||
 | 
					node_modules/
 | 
				
			||||||
 | 
					orleans.codegen.cs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# RIA/Silverlight projects
 | 
				
			||||||
 | 
					Generated_Code/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Backup & report files from converting an old project file
 | 
				
			||||||
 | 
					# to a newer Visual Studio version. Backup files are not needed,
 | 
				
			||||||
 | 
					# because we have git ;-)
 | 
				
			||||||
 | 
					_UpgradeReport_Files/
 | 
				
			||||||
 | 
					Backup*/
 | 
				
			||||||
 | 
					UpgradeLog*.XML
 | 
				
			||||||
 | 
					UpgradeLog*.htm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SQL Server files
 | 
				
			||||||
 | 
					*.mdf
 | 
				
			||||||
 | 
					*.ldf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Business Intelligence projects
 | 
				
			||||||
 | 
					*.rdl.data
 | 
				
			||||||
 | 
					*.bim.layout
 | 
				
			||||||
 | 
					*.bim_*.settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Microsoft Fakes
 | 
				
			||||||
 | 
					FakesAssemblies/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Node.js Tools for Visual Studio
 | 
				
			||||||
 | 
					.ntvs_analysis.dat
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio 6 build log
 | 
				
			||||||
 | 
					*.plg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Visual Studio 6 workspace options file
 | 
				
			||||||
 | 
					*.opt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# LightSwitch generated files
 | 
				
			||||||
 | 
					GeneratedArtifacts/
 | 
				
			||||||
 | 
					_Pvt_Extensions/
 | 
				
			||||||
 | 
					ModelManifest.xml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,19 +0,0 @@
 | 
				
			|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
 | 
					 | 
				
			||||||
# Visual Studio 2012
 | 
					 | 
				
			||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BallanceStalker", "BallanceStalker.csproj", "{55B5D158-D2E5-4A32-9C96-5878BD379AD3}"
 | 
					 | 
				
			||||||
EndProject
 | 
					 | 
				
			||||||
Global
 | 
					 | 
				
			||||||
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
					 | 
				
			||||||
	Debug|Any CPU = Debug|Any CPU
 | 
					 | 
				
			||||||
	ExportDebug|Any CPU = ExportDebug|Any CPU
 | 
					 | 
				
			||||||
	ExportRelease|Any CPU = ExportRelease|Any CPU
 | 
					 | 
				
			||||||
	EndGlobalSection
 | 
					 | 
				
			||||||
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
					 | 
				
			||||||
		{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
					 | 
				
			||||||
		{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
					 | 
				
			||||||
		{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
 | 
					 | 
				
			||||||
		{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
 | 
					 | 
				
			||||||
		{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
 | 
					 | 
				
			||||||
		{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
 | 
					 | 
				
			||||||
	EndGlobalSection
 | 
					 | 
				
			||||||
EndGlobal
 | 
					 | 
				
			||||||
							
								
								
									
										3
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					# BallanceStalker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A software created by a sad and withered person.
 | 
				
			||||||
@ -1,21 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="wav"
 | 
					 | 
				
			||||||
type="AudioStreamSample"
 | 
					 | 
				
			||||||
path="res://.import/btn_click.wav-10bd4155242a075bd68a0c5c45b66a23.sample"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/soundeffects/btn_click.wav"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/btn_click.wav-10bd4155242a075bd68a0c5c45b66a23.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=false
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
@ -1,11 +0,0 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/btn-small-deselect.png" type="Texture" id=1]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[resource]
 | 
					 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					 | 
				
			||||||
region_rect = Rect2( 0, 0, 64, 32 )
 | 
					 | 
				
			||||||
margin_left = 14.1409
 | 
					 | 
				
			||||||
margin_right = 12.785
 | 
					 | 
				
			||||||
margin_top = 13.5598
 | 
					 | 
				
			||||||
margin_bottom = 13.3661
 | 
					 | 
				
			||||||
@ -1,11 +0,0 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/lineedit_borderless_deselect.png" type="Texture" id=1]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[resource]
 | 
					 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					 | 
				
			||||||
region_rect = Rect2( 0, 0, 64, 32 )
 | 
					 | 
				
			||||||
margin_left = 14.1409
 | 
					 | 
				
			||||||
margin_right = 12.785
 | 
					 | 
				
			||||||
margin_top = 13.5598
 | 
					 | 
				
			||||||
margin_bottom = 13.3661
 | 
					 | 
				
			||||||
@ -1,11 +0,0 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/lineedit_borderless_select.png" type="Texture" id=1]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[resource]
 | 
					 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					 | 
				
			||||||
region_rect = Rect2( 0, 0, 64, 32 )
 | 
					 | 
				
			||||||
margin_left = 14.1409
 | 
					 | 
				
			||||||
margin_right = 12.785
 | 
					 | 
				
			||||||
margin_top = 13.5598
 | 
					 | 
				
			||||||
margin_bottom = 13.3661
 | 
					 | 
				
			||||||
@ -1,11 +0,0 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/lineedit_deselect.png" type="Texture" id=1]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[resource]
 | 
					 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					 | 
				
			||||||
region_rect = Rect2( 0, 0, 64, 32 )
 | 
					 | 
				
			||||||
margin_left = 14.1409
 | 
					 | 
				
			||||||
margin_right = 12.785
 | 
					 | 
				
			||||||
margin_top = 13.5598
 | 
					 | 
				
			||||||
margin_bottom = 13.3661
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/hslider-grabber-deselect.png-dbd5e229e735b61fac88b8a1fde9e3d5.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/hslider-grabber-deselect.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/hslider-grabber-deselect.png-dbd5e229e735b61fac88b8a1fde9e3d5.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/hslider-grabber-select.png-7673e5df914571ff3de950ffc32eb49c.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/hslider-grabber-select.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/hslider-grabber-select.png-7673e5df914571ff3de950ffc32eb49c.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/lineedit_deselect.png-45991e7209bc02828712ac76f58e16af.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/lineedit_deselect.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/lineedit_deselect.png-45991e7209bc02828712ac76f58e16af.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/vscrollbar-grabber-deselect.png-41f1392911c0d83776adf73235c234f7.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/vscrollbar-grabber-deselect.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/vscrollbar-grabber-deselect.png-41f1392911c0d83776adf73235c234f7.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/vscrollbar-grabber-select.png-72f3de637b203963d3a8fc9ea0b65abf.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/vscrollbar-grabber-select.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/vscrollbar-grabber-select.png-72f3de637b203963d3a8fc9ea0b65abf.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/vscrollbar-scroll-deselect.png-211048eb599996b436cb2b45ed32482b.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/vscrollbar-scroll-deselect.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/vscrollbar-scroll-deselect.png-211048eb599996b436cb2b45ed32482b.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,35 +0,0 @@
 | 
				
			|||||||
[remap]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
importer="texture"
 | 
					 | 
				
			||||||
type="StreamTexture"
 | 
					 | 
				
			||||||
path="res://.import/vscrollbar-scroll-select.png-0642361f149185c68fc0158fd364aa8b.stex"
 | 
					 | 
				
			||||||
metadata={
 | 
					 | 
				
			||||||
"vram_texture": false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[deps]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
source_file="res://resources/user_interface/textures/vscrollbar-scroll-select.png"
 | 
					 | 
				
			||||||
dest_files=[ "res://.import/vscrollbar-scroll-select.png-0642361f149185c68fc0158fd364aa8b.stex" ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[params]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
compress/mode=0
 | 
					 | 
				
			||||||
compress/lossy_quality=0.7
 | 
					 | 
				
			||||||
compress/hdr_mode=0
 | 
					 | 
				
			||||||
compress/bptc_ldr=0
 | 
					 | 
				
			||||||
compress/normal_map=0
 | 
					 | 
				
			||||||
flags/repeat=0
 | 
					 | 
				
			||||||
flags/filter=false
 | 
					 | 
				
			||||||
flags/mipmaps=false
 | 
					 | 
				
			||||||
flags/anisotropic=false
 | 
					 | 
				
			||||||
flags/srgb=2
 | 
					 | 
				
			||||||
process/fix_alpha_border=true
 | 
					 | 
				
			||||||
process/premult_alpha=false
 | 
					 | 
				
			||||||
process/HDR_as_SRGB=false
 | 
					 | 
				
			||||||
process/invert_color=false
 | 
					 | 
				
			||||||
process/normal_map_invert_y=false
 | 
					 | 
				
			||||||
stream=false
 | 
					 | 
				
			||||||
size_limit=0
 | 
					 | 
				
			||||||
detect_3d=false
 | 
					 | 
				
			||||||
svg/scale=1.0
 | 
					 | 
				
			||||||
@ -1,17 +0,0 @@
 | 
				
			|||||||
[gd_scene load_steps=5 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://scenes/stages/MenuManager.tscn" type="PackedScene" id=1]
 | 
					 | 
				
			||||||
[ext_resource path="res://scenes/stages/StalkerCore.tscn" type="PackedScene" id=2]
 | 
					 | 
				
			||||||
[ext_resource path="res://scripts/GameRoot.cs" type="Script" id=3]
 | 
					 | 
				
			||||||
[ext_resource path="res://scenes/stages/ConsolePanel.tscn" type="PackedScene" id=4]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="GameRoot" type="Node"]
 | 
					 | 
				
			||||||
script = ExtResource( 3 )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="ConsolePanel" parent="." instance=ExtResource( 4 )]
 | 
					 | 
				
			||||||
visible = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="MenuManager" parent="." instance=ExtResource( 1 )]
 | 
					 | 
				
			||||||
visible = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="StalkerCore" parent="." instance=ExtResource( 2 )]
 | 
					 | 
				
			||||||
@ -1,46 +0,0 @@
 | 
				
			|||||||
[gd_scene load_steps=4 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://scenes/user_interface/LineEditBorderless.tscn" type="PackedScene" id=1]
 | 
					 | 
				
			||||||
[ext_resource path="res://scripts/stages/ConsolePanel.cs" type="Script" id=2]
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/default_theme.tres" type="Theme" id=3]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="ConsolePanel" type="Control"]
 | 
					 | 
				
			||||||
anchor_right = 1.0
 | 
					 | 
				
			||||||
anchor_bottom = 1.0
 | 
					 | 
				
			||||||
theme = ExtResource( 3 )
 | 
					 | 
				
			||||||
script = ExtResource( 2 )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="CommandInput" parent="." instance=ExtResource( 1 )]
 | 
					 | 
				
			||||||
anchor_top = 1.0
 | 
					 | 
				
			||||||
anchor_right = 1.0
 | 
					 | 
				
			||||||
anchor_bottom = 1.0
 | 
					 | 
				
			||||||
margin_top = -44.0
 | 
					 | 
				
			||||||
margin_right = 0.0
 | 
					 | 
				
			||||||
margin_bottom = 0.0
 | 
					 | 
				
			||||||
size_flags_vertical = 3
 | 
					 | 
				
			||||||
placeholder_text = "Input your command here..."
 | 
					 | 
				
			||||||
placeholder_alpha = 0.3
 | 
					 | 
				
			||||||
caret_blink = true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="ScrollSet" type="Control" parent="."]
 | 
					 | 
				
			||||||
anchor_right = 1.0
 | 
					 | 
				
			||||||
anchor_bottom = 1.0
 | 
					 | 
				
			||||||
margin_top = 24.0
 | 
					 | 
				
			||||||
margin_right = -48.0
 | 
					 | 
				
			||||||
margin_bottom = -64.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="ScrollBackground" type="ColorRect" parent="ScrollSet"]
 | 
					 | 
				
			||||||
anchor_right = 1.0
 | 
					 | 
				
			||||||
anchor_bottom = 1.0
 | 
					 | 
				
			||||||
color = Color( 0, 0, 0, 0.498039 )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="Scrollbar" type="ScrollContainer" parent="ScrollSet"]
 | 
					 | 
				
			||||||
anchor_right = 1.0
 | 
					 | 
				
			||||||
anchor_bottom = 1.0
 | 
					 | 
				
			||||||
scroll_horizontal_enabled = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="MessageContainer" type="VBoxContainer" parent="ScrollSet/Scrollbar"]
 | 
					 | 
				
			||||||
margin_right = 976.0
 | 
					 | 
				
			||||||
margin_bottom = 680.0
 | 
					 | 
				
			||||||
size_flags_horizontal = 3
 | 
					 | 
				
			||||||
size_flags_vertical = 3
 | 
					 | 
				
			||||||
@ -1,13 +0,0 @@
 | 
				
			|||||||
[gd_scene load_steps=4 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/default_theme.tres" type="Theme" id=1]
 | 
					 | 
				
			||||||
[ext_resource path="res://scenes/stages/menus/MenuMain.tscn" type="PackedScene" id=2]
 | 
					 | 
				
			||||||
[ext_resource path="res://scripts/stages/MenuManager.cs" type="Script" id=3]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="MenuManager" type="Control"]
 | 
					 | 
				
			||||||
anchor_right = 1.0
 | 
					 | 
				
			||||||
anchor_bottom = 1.0
 | 
					 | 
				
			||||||
theme = ExtResource( 1 )
 | 
					 | 
				
			||||||
script = ExtResource( 3 )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="MenuMain" parent="." instance=ExtResource( 2 )]
 | 
					 | 
				
			||||||
@ -1,21 +0,0 @@
 | 
				
			|||||||
[gd_scene load_steps=6 format=2]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/styles/btn_style_select.tres" type="StyleBox" id=1]
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/styles/btn_style_deselect.tres" type="StyleBox" id=2]
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/fonts/fontstyle_normal.tres" type="DynamicFont" id=3]
 | 
					 | 
				
			||||||
[ext_resource path="res://scripts/user_interface/ButtonCommon.cs" type="Script" id=4]
 | 
					 | 
				
			||||||
[ext_resource path="res://resources/user_interface/soundeffects/btn_click.wav" type="AudioStream" id=5]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="ButtonNormal" type="Button"]
 | 
					 | 
				
			||||||
margin_right = 12.0
 | 
					 | 
				
			||||||
margin_bottom = 20.0
 | 
					 | 
				
			||||||
custom_fonts/font = ExtResource( 3 )
 | 
					 | 
				
			||||||
custom_styles/hover = ExtResource( 1 )
 | 
					 | 
				
			||||||
custom_styles/pressed = ExtResource( 1 )
 | 
					 | 
				
			||||||
custom_styles/focus = ExtResource( 1 )
 | 
					 | 
				
			||||||
custom_styles/disabled = ExtResource( 2 )
 | 
					 | 
				
			||||||
custom_styles/normal = ExtResource( 2 )
 | 
					 | 
				
			||||||
script = ExtResource( 4 )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[node name="AudioClick" type="AudioStreamPlayer" parent="."]
 | 
					 | 
				
			||||||
stream = ExtResource( 5 )
 | 
					 | 
				
			||||||
@ -1,52 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class GameRoot : Node {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    MenuManager mMenuManager;
 | 
					 | 
				
			||||||
    StalkerCore mStalkerCore;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mMenuManager = GetNode<MenuManager>("MenuManager");
 | 
					 | 
				
			||||||
        mStalkerCore = GetNode<StalkerCore>("StalkerCore");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //mMenuManager.Connect(nameof(MenuManager.SetMouseCapture), this, nameof(Proc_MenuManager_SetMouseCapture));
 | 
					 | 
				
			||||||
        mMenuManager.Connect(nameof(MenuManager.ExitGame), this, nameof(Proc_MenuManager_ExitGame));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        //// raw executing this func
 | 
					 | 
				
			||||||
        //// to set proper status
 | 
					 | 
				
			||||||
        //Proc_MenuManager_SetMouseCapture();
 | 
					 | 
				
			||||||
        BallanceStalkerCore.StalkerManager.Singleton.EventControllerChanged += Proc_StalkerManager_EventControllerChanged;
 | 
					 | 
				
			||||||
        BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.None);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_StalkerManager_EventControllerChanged(BallanceStalkerCore.EventControllerSource obj) {
 | 
					 | 
				
			||||||
        switch (obj) {
 | 
					 | 
				
			||||||
            case BallanceStalkerCore.EventControllerSource.None:
 | 
					 | 
				
			||||||
                Input.SetMouseMode(Input.MouseMode.Captured);
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            case BallanceStalkerCore.EventControllerSource.Menu:
 | 
					 | 
				
			||||||
            case BallanceStalkerCore.EventControllerSource.Console:
 | 
					 | 
				
			||||||
            case BallanceStalkerCore.EventControllerSource.Chat:
 | 
					 | 
				
			||||||
                Input.SetMouseMode(Input.MouseMode.Visible);
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Input(InputEvent @event) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //private void Proc_MenuManager_SetMouseCapture() {
 | 
					 | 
				
			||||||
    //    if (mMenuManager.Visible) {
 | 
					 | 
				
			||||||
    //        Input.SetMouseMode(Input.MouseMode.Visible);
 | 
					 | 
				
			||||||
    //    } else {
 | 
					 | 
				
			||||||
    //        Input.SetMouseMode(Input.MouseMode.Captured);
 | 
					 | 
				
			||||||
    //    }
 | 
					 | 
				
			||||||
    //}
 | 
					 | 
				
			||||||
    private void Proc_MenuManager_ExitGame() {
 | 
					 | 
				
			||||||
        GetTree().Notification(MainLoop.NotificationWmQuitRequest);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,101 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public enum LabelConsoleMessageType {
 | 
					 | 
				
			||||||
    Normal,
 | 
					 | 
				
			||||||
    Highlight,
 | 
					 | 
				
			||||||
    Error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class ConsolePanel : Control {
 | 
					 | 
				
			||||||
    private LineEdit mCmdInput;
 | 
					 | 
				
			||||||
    private ScrollContainer mScrollbar;
 | 
					 | 
				
			||||||
    private VScrollBar mScrollbarVChild;
 | 
					 | 
				
			||||||
    private VBoxContainer mMessageContainer;
 | 
					 | 
				
			||||||
    private PackedScene mTemplateLabelConsole;
 | 
					 | 
				
			||||||
    private Queue<LabelConsole> mMessageQueue = new Queue<LabelConsole>();
 | 
					 | 
				
			||||||
    private readonly int QUEUE_MAX_SIZE = 100;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mTemplateLabelConsole = ResourceLoader.Load<PackedScene>("res://scenes/user_interface/LabelConsole.tscn");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        mCmdInput = GetNode<LineEdit>("CommandInput");
 | 
					 | 
				
			||||||
        mScrollbar = GetNode<ScrollContainer>("ScrollSet/Scrollbar");
 | 
					 | 
				
			||||||
        mScrollbarVChild = mScrollbar.GetVScrollbar();
 | 
					 | 
				
			||||||
        mMessageContainer = GetNode<VBoxContainer>("ScrollSet/Scrollbar/MessageContainer");
 | 
					 | 
				
			||||||
        mCmdInput.Connect("text_entered", this, nameof(Proc_LineEdit_TextEntered));
 | 
					 | 
				
			||||||
        mScrollbarVChild.Connect("changed", this, nameof(Proc_ScrollbarVChild_Changed));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        BallanceStalkerCore.StalkerManager.Singleton.EventControllerChanged += Proc_StalkerManager_EventControllerChanged;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_StalkerManager_EventControllerChanged(BallanceStalkerCore.EventControllerSource obj) {
 | 
					 | 
				
			||||||
        if (obj == BallanceStalkerCore.EventControllerSource.Chat) {
 | 
					 | 
				
			||||||
            this.Visible = true;
 | 
					 | 
				
			||||||
            mCmdInput.GrabFocus();
 | 
					 | 
				
			||||||
        } else if (obj == BallanceStalkerCore.EventControllerSource.Console) {
 | 
					 | 
				
			||||||
            // same process of chat
 | 
					 | 
				
			||||||
            // but only add a extra preset charcater in cmd input
 | 
					 | 
				
			||||||
            this.Visible = true;
 | 
					 | 
				
			||||||
            mCmdInput.Text = "/";
 | 
					 | 
				
			||||||
            mCmdInput.CaretPosition = 1;
 | 
					 | 
				
			||||||
            mCmdInput.GrabFocus();
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            this.Visible = false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Input(InputEvent @event) {
 | 
					 | 
				
			||||||
        if (!this.Visible) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (@event.IsActionPressed("ballance_esc")) {
 | 
					 | 
				
			||||||
            // clean input
 | 
					 | 
				
			||||||
            mCmdInput.Text = "";
 | 
					 | 
				
			||||||
            // back to camera
 | 
					 | 
				
			||||||
            BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.None);
 | 
					 | 
				
			||||||
            // mark handled to prevent loop call
 | 
					 | 
				
			||||||
            GetTree().SetInputAsHandled();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void AddMessage(string strl, LabelConsoleMessageType t) {
 | 
					 | 
				
			||||||
        LabelConsole target;
 | 
					 | 
				
			||||||
        if (mMessageQueue.Count > QUEUE_MAX_SIZE) {
 | 
					 | 
				
			||||||
            // popup last item and remove it from scene first
 | 
					 | 
				
			||||||
            target = mMessageQueue.Dequeue();
 | 
					 | 
				
			||||||
            mMessageContainer.RemoveChild(target);
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            target = mTemplateLabelConsole.Instance<LabelConsole>();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // add into scene and queue
 | 
					 | 
				
			||||||
        mMessageQueue.Enqueue(target);
 | 
					 | 
				
			||||||
        mMessageContainer.AddChild(target);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // set text
 | 
					 | 
				
			||||||
        target.SetText(strl, t);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_LineEdit_TextEntered(string new_strl) {
 | 
					 | 
				
			||||||
        if (new_strl != string.Empty) {
 | 
					 | 
				
			||||||
            // todo: finish cmd parse
 | 
					 | 
				
			||||||
            if (new_strl.StartsWith("/")) {
 | 
					 | 
				
			||||||
                AddMessage(new_strl, LabelConsoleMessageType.Highlight);
 | 
					 | 
				
			||||||
            } else if (new_strl.StartsWith("!")) {
 | 
					 | 
				
			||||||
                AddMessage(new_strl, LabelConsoleMessageType.Error);
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                AddMessage(new_strl, LabelConsoleMessageType.Normal);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // clean cmd
 | 
					 | 
				
			||||||
            mCmdInput.Text = "";
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_ScrollbarVChild_Changed() {
 | 
					 | 
				
			||||||
        mScrollbar.ScrollVertical = (int)mScrollbarVChild.MaxValue;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,75 +0,0 @@
 | 
				
			|||||||
using BallanceStalker;
 | 
					 | 
				
			||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class MenuManager : Control {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public enum MenuPage : int {
 | 
					 | 
				
			||||||
        Main,
 | 
					 | 
				
			||||||
        LoadLevel,
 | 
					 | 
				
			||||||
        LoadSky,
 | 
					 | 
				
			||||||
        Multiplayer,
 | 
					 | 
				
			||||||
        About
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //[Signal]
 | 
					 | 
				
			||||||
    //public delegate void SetMouseCapture();
 | 
					 | 
				
			||||||
    [Signal]
 | 
					 | 
				
			||||||
    public delegate void ExitGame();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private MenuMain mMenuMain;
 | 
					 | 
				
			||||||
    private MenuPage mCurrentPage;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Called when the node enters the scene tree for the first time.
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mCurrentPage = MenuPage.Main;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        mMenuMain = GetNode<MenuMain>("MenuMain");
 | 
					 | 
				
			||||||
        mMenuMain.Connect(nameof(MenuMain.MenuMain_GotoPage), this, nameof(Proc_MenuMain_GotoPage));
 | 
					 | 
				
			||||||
        mMenuMain.Connect(nameof(MenuMain.MenuMain_Back), this, nameof(Proc_MenuMain_Back));
 | 
					 | 
				
			||||||
        mMenuMain.Connect(nameof(MenuMain.MenuMain_Exit), this, nameof(Proc_MenuMain_Exit));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        BallanceStalkerCore.StalkerManager.Singleton.EventControllerChanged += Proc_StalkerManager_EventControllerChanged;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_StalkerManager_EventControllerChanged(BallanceStalkerCore.EventControllerSource obj) {
 | 
					 | 
				
			||||||
        if (obj == BallanceStalkerCore.EventControllerSource.Menu) {
 | 
					 | 
				
			||||||
            this.Visible = true;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            this.Visible = false;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Input(InputEvent @event) {
 | 
					 | 
				
			||||||
        if (!this.Visible) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (@event.IsActionPressed("ballance_esc")) {
 | 
					 | 
				
			||||||
            if (mCurrentPage == MenuPage.Main) {
 | 
					 | 
				
			||||||
                // we are in main menu, we need switch visible
 | 
					 | 
				
			||||||
                BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.None);
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                // otherwise, back from sub menu
 | 
					 | 
				
			||||||
                RefreshMenuPage(MenuPage.Main);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            // mark handled to prevent loop call
 | 
					 | 
				
			||||||
            GetTree().SetInputAsHandled();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void RefreshMenuPage(MenuPage page_type) {
 | 
					 | 
				
			||||||
        ;//todo: 
 | 
					 | 
				
			||||||
        //mCurrentPage = page_type;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_MenuMain_GotoPage(MenuPage menu_type) {
 | 
					 | 
				
			||||||
        RefreshMenuPage(menu_type);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    private void Proc_MenuMain_Back() {
 | 
					 | 
				
			||||||
        BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.None);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    private void Proc_MenuMain_Exit() {
 | 
					 | 
				
			||||||
        EmitSignal(nameof(ExitGame));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,231 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Reference: https://github.com/godotengine/godot-demo-projects/blob/master/3d/waypoints
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public enum ShadowBallType : UInt32 {
 | 
					 | 
				
			||||||
    Stone,
 | 
					 | 
				
			||||||
    Wood,
 | 
					 | 
				
			||||||
    Paper
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class ShadowBall : Spatial {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    static readonly float MARGIN = 16f;  // set it as half of arrow image
 | 
					 | 
				
			||||||
    static readonly float TEXT_RADIUS = MARGIN + 16f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private bool mAlwaysTracking = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Control mCtl2D;
 | 
					 | 
				
			||||||
    Spatial mTextArchor, mModelArchor;
 | 
					 | 
				
			||||||
    TextureRect mPlayerArrow;
 | 
					 | 
				
			||||||
    Label mPlayername;
 | 
					 | 
				
			||||||
    Camera mSpectatorCamera = null;
 | 
					 | 
				
			||||||
    MeshInstance mMeshWood, mMeshStone, mMeshPaper;
 | 
					 | 
				
			||||||
    ShadowBallType mOldState = ShadowBallType.Wood;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mCtl2D = GetNode<Control>("TextArchor/Ctl2D");
 | 
					 | 
				
			||||||
        mTextArchor = GetNode<Spatial>("TextArchor");
 | 
					 | 
				
			||||||
        mPlayerArrow = GetNode<TextureRect>("TextArchor/Ctl2D/PlayerArrow");
 | 
					 | 
				
			||||||
        mPlayername = GetNode<Label>("TextArchor/Ctl2D/Playername");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        mModelArchor = GetNode<Spatial>("ModelArchor");
 | 
					 | 
				
			||||||
        mMeshWood = GetNode<MeshInstance>("ModelArchor/Ball_Wood");
 | 
					 | 
				
			||||||
        mMeshStone = GetNode<MeshInstance>("ModelArchor/Ball_Stone");
 | 
					 | 
				
			||||||
        mMeshPaper = GetNode<MeshInstance>("ModelArchor/Ball_Paper");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void SetPlayerName(string new_name) {
 | 
					 | 
				
			||||||
        mPlayername.Text = new_name;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void SetBallState(Vector3 pos, Quat quad, ShadowBallType btype) {
 | 
					 | 
				
			||||||
        this.Translation = pos;
 | 
					 | 
				
			||||||
        mModelArchor.Rotation = quad.GetEuler();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (mOldState != btype) {
 | 
					 | 
				
			||||||
            switch (mOldState) {
 | 
					 | 
				
			||||||
                case ShadowBallType.Stone:
 | 
					 | 
				
			||||||
                    mMeshStone.Visible = false;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case ShadowBallType.Wood:
 | 
					 | 
				
			||||||
                    mMeshWood.Visible = false;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case ShadowBallType.Paper:
 | 
					 | 
				
			||||||
                    mMeshPaper.Visible = false;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            switch (btype) {
 | 
					 | 
				
			||||||
                case ShadowBallType.Stone:
 | 
					 | 
				
			||||||
                    mMeshStone.Visible = true;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case ShadowBallType.Wood:
 | 
					 | 
				
			||||||
                    mMeshWood.Visible = true;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
                case ShadowBallType.Paper:
 | 
					 | 
				
			||||||
                    mMeshPaper.Visible = true;
 | 
					 | 
				
			||||||
                    break;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            mOldState = btype;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Process(float delta) {
 | 
					 | 
				
			||||||
        if (mSpectatorCamera is null || !mSpectatorCamera.Current) {
 | 
					 | 
				
			||||||
            mSpectatorCamera = GetViewport().GetCamera();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (mSpectatorCamera is null) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        var parent_translation = mTextArchor.GlobalTransform.origin;
 | 
					 | 
				
			||||||
        var camera_transform = mSpectatorCamera.GlobalTransform;
 | 
					 | 
				
			||||||
        var camera_translation = camera_transform.origin;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        var unprojected_position = mSpectatorCamera.UnprojectPosition(parent_translation);
 | 
					 | 
				
			||||||
        // `get_size_override()` will return a valid size only if the stretch mode is `2d`.
 | 
					 | 
				
			||||||
        // Otherwise, the viewport size is used directly.
 | 
					 | 
				
			||||||
        var viewport_base_size = GetViewport().GetSizeOverride() > Vector2.Zero ? GetViewport().GetSizeOverride() : GetViewport().Size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // unprojected_position will return some illegal number, such as inf or nan, so we need to check them here
 | 
					 | 
				
			||||||
        // if something bad happend, we need hide all UI elements and return immediately
 | 
					 | 
				
			||||||
        if (Mathf.IsInf(unprojected_position.x) || Mathf.IsInf(unprojected_position.y) ||
 | 
					 | 
				
			||||||
            Mathf.IsNaN(unprojected_position.x) || Mathf.IsNaN(unprojected_position.y)) {
 | 
					 | 
				
			||||||
            mCtl2D.Visible = false;
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            mCtl2D.Visible = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // We would use "camera.is_position_behind(parent_translation)", except
 | 
					 | 
				
			||||||
        // that it also accounts for the near clip plane, which we don't want.
 | 
					 | 
				
			||||||
        var is_behind = camera_transform.basis.z.Dot(parent_translation - camera_translation) > 0f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Fade the waypoint when the camera gets close.
 | 
					 | 
				
			||||||
        //var distance = camera_translation.DistanceTo(parent_translation);
 | 
					 | 
				
			||||||
        //mCtl2D.Modulate.a = Godot.Mathf.Clamp(RangeLerp range_lerp(distance, 0, 2, 0, 1), 0, 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (!mAlwaysTracking) {
 | 
					 | 
				
			||||||
            // For non-sticky waypoints, we don't need to clamp and calculate
 | 
					 | 
				
			||||||
            // the position if the waypoint goes off screen.
 | 
					 | 
				
			||||||
            mCtl2D.RectPosition = unprojected_position;
 | 
					 | 
				
			||||||
            mCtl2D.Visible = !is_behind;
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // calculate corner position
 | 
					 | 
				
			||||||
        // We use Liang - Barsky clip to implement this function
 | 
					 | 
				
			||||||
        var viewport_center = viewport_base_size / 2f;
 | 
					 | 
				
			||||||
        if (is_behind) {
 | 
					 | 
				
			||||||
            unprojected_position = viewport_center + (viewport_center - unprojected_position);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        var relative_pos = unprojected_position - viewport_center;
 | 
					 | 
				
			||||||
        /*
 | 
					 | 
				
			||||||
        Liang-Barsky clip
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        wx_left <= x1+u(x2-x1) <= wx_right
 | 
					 | 
				
			||||||
        wy_top <= y1+u(y2-y1) <= wy_bottom
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        p1 = x1-x2;
 | 
					 | 
				
			||||||
        p2 = x2-x1;
 | 
					 | 
				
			||||||
        p3 = y1-y2;
 | 
					 | 
				
			||||||
        p4 = y2-y1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        assume x1 = y1 = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        left: u(-x2) <= -wx_left
 | 
					 | 
				
			||||||
        right: u(x2) <= wx_right
 | 
					 | 
				
			||||||
        bottom: u(y2) <= wy_bottom
 | 
					 | 
				
			||||||
        top: u(-y2) <= -wy_top
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        when <= become ==, solve u to get corner data:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        left: u1 = wx_left / x2
 | 
					 | 
				
			||||||
        right: u2 = wx_right / x2
 | 
					 | 
				
			||||||
        bottom: u3 = wy_bottom / y2
 | 
					 | 
				
			||||||
        top: u4 = wy_top / y2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        u = 0 and 1 indicate the start point and end point of this line.
 | 
					 | 
				
			||||||
        but we don't need it when `is_behind` is true.
 | 
					 | 
				
			||||||
        so we modify LB clip method in there
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        we dont need check requirement: uone > utwo, because it is impossible 
 | 
					 | 
				
			||||||
        that line is outside of viewport entirely.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        */
 | 
					 | 
				
			||||||
        float u2 = (viewport_center.x - MARGIN) / relative_pos.x,
 | 
					 | 
				
			||||||
            u1 = -u2;
 | 
					 | 
				
			||||||
        float u3 = (viewport_center.y - MARGIN) / relative_pos.y,
 | 
					 | 
				
			||||||
            u4 = -u3;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // becasue p1 = -p2, p3 = -p4
 | 
					 | 
				
			||||||
        // we need move number to let u1 become negative one and u2 become positive one.
 | 
					 | 
				
			||||||
        // also the u3, u4.
 | 
					 | 
				
			||||||
        float cache;
 | 
					 | 
				
			||||||
        if (Mathf.Sign(relative_pos.x) < 0) {
 | 
					 | 
				
			||||||
            cache = u1;
 | 
					 | 
				
			||||||
            u1 = u2;
 | 
					 | 
				
			||||||
            u2 = cache;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (Mathf.Sign(relative_pos.y) > 0) {
 | 
					 | 
				
			||||||
            cache = u3;
 | 
					 | 
				
			||||||
            u3 = u4;
 | 
					 | 
				
			||||||
            u4 = cache;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // we don't need uone, because uone is a const
 | 
					 | 
				
			||||||
        float uone = 0f, utwo = 1f;
 | 
					 | 
				
			||||||
        if (relative_pos.x == 0f) {
 | 
					 | 
				
			||||||
            // only y is valid
 | 
					 | 
				
			||||||
            if (relative_pos.y == 0f) {
 | 
					 | 
				
			||||||
                // something goes wrong.
 | 
					 | 
				
			||||||
                mCtl2D.Visible = false;
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                // pick
 | 
					 | 
				
			||||||
                uone = u3;
 | 
					 | 
				
			||||||
                utwo = u4;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            uone = Mathf.Max(u1, u3);
 | 
					 | 
				
			||||||
            utwo = Mathf.Min(u2, u4);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        bool outside_window;
 | 
					 | 
				
			||||||
        if (!is_behind) {
 | 
					 | 
				
			||||||
            // if object is not behind the camera, we need to restore the real position of it.
 | 
					 | 
				
			||||||
            // because previous process assume that the start point and end point of line is ignored.
 | 
					 | 
				
			||||||
            uone = Mathf.Max(0f, uone);
 | 
					 | 
				
			||||||
            utwo = Mathf.Min(1f, utwo);
 | 
					 | 
				
			||||||
            outside_window = utwo != 1f;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            outside_window = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        mCtl2D.RectPosition = (relative_pos * utwo) + viewport_center;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // if player ball is bebind us camera, we need to show a arrow and a playername with it
 | 
					 | 
				
			||||||
        // otherwise, we only need display username
 | 
					 | 
				
			||||||
        mPlayerArrow.Visible = outside_window;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (outside_window) {
 | 
					 | 
				
			||||||
            // Used to display a diagonal arrow when the waypoint is displayed in
 | 
					 | 
				
			||||||
            // one of the screen corners.
 | 
					 | 
				
			||||||
            var deg = Mathf.Rad2Deg(mCtl2D.RectPosition.AngleToPoint(viewport_center));
 | 
					 | 
				
			||||||
            mPlayerArrow.RectRotation = deg;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            var text_pos = mCtl2D.RectPosition.DirectionTo(viewport_center) * TEXT_RADIUS;
 | 
					 | 
				
			||||||
            text_pos.x -= RangeLerp(mCtl2D.RectPosition.x, MARGIN, viewport_base_size.x - MARGIN, 0f, mPlayername.RectSize.x);
 | 
					 | 
				
			||||||
            text_pos.y -= RangeLerp(mCtl2D.RectPosition.y, MARGIN, viewport_base_size.y - MARGIN, 0f, mPlayername.RectSize.y);
 | 
					 | 
				
			||||||
            mPlayername.RectPosition = text_pos;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            mPlayername.RectPosition = (-mPlayername.RectSize) / 2f;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static float RangeLerp(float value, float istart, float istop, float ostart, float ostop) {
 | 
					 | 
				
			||||||
        return ostart + (ostop - ostart) * (value - istart) / (istop - istart);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,44 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class ShadowBallManager : Spatial {
 | 
					 | 
				
			||||||
    private Dictionary<Guid, ShadowBall> mBallDict = new Dictionary<Guid, ShadowBall>();
 | 
					 | 
				
			||||||
    private PackedScene mTemplateShadowBall;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Called when the node enters the scene tree for the first time.
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mTemplateShadowBall = ResourceLoader.Load<PackedScene>("res://scenes/stages/ShadowBall.tscn");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public Guid AddBall() {
 | 
					 | 
				
			||||||
        var guid = Guid.NewGuid();
 | 
					 | 
				
			||||||
        var instance = mTemplateShadowBall.Instance<ShadowBall>();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        AddChild(instance);
 | 
					 | 
				
			||||||
        mBallDict.Add(guid, instance);
 | 
					 | 
				
			||||||
        return guid;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void SetBallName(Guid ballid, string new_name) {
 | 
					 | 
				
			||||||
        if (mBallDict.TryGetValue(ballid, out ShadowBall entity)) {
 | 
					 | 
				
			||||||
            entity.SetPlayerName(new_name);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void SetBallState(Guid ballid, Vector3 pos, Quat quad, ShadowBallType btype) {
 | 
					 | 
				
			||||||
        if (mBallDict.TryGetValue(ballid, out ShadowBall entity)) {
 | 
					 | 
				
			||||||
            entity.SetBallState(pos, quad, btype);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void RemoveBall(Guid ballid) {
 | 
					 | 
				
			||||||
        if (mBallDict.TryGetValue(ballid, out ShadowBall entity)) {
 | 
					 | 
				
			||||||
            RemoveChild(entity);
 | 
					 | 
				
			||||||
            entity.QueueFree();
 | 
					 | 
				
			||||||
            mBallDict.Remove(ballid);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,117 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class StalkerCamera : Spatial {
 | 
					 | 
				
			||||||
    Spatial mFreeCamOrigin = null, mSpecCam = null, mStaticCameraOrigin = null, mStaticCameraTracking = null;
 | 
					 | 
				
			||||||
    Camera mFreeCam;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private static float BASIC_MOVEMENT = 0.2f;
 | 
					 | 
				
			||||||
    private static float STATIC_MOVEMENT = 10f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    bool mEnableCamera = false;
 | 
					 | 
				
			||||||
    object lockMotionMouse = new object();
 | 
					 | 
				
			||||||
    Vector2 motionMouse = new Vector2(0, 0);
 | 
					 | 
				
			||||||
    int movementScale = 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mFreeCam = GetNode<Camera>("FreeCam");
 | 
					 | 
				
			||||||
        mFreeCamOrigin = GetNode<Spatial>("FreeCamOrigin");
 | 
					 | 
				
			||||||
        mStaticCameraOrigin = GetNode<Spatial>("StaticCamOrigin");
 | 
					 | 
				
			||||||
        mStaticCameraTracking = GetNode<Spatial>("StaticCamOrigin/StaticCamTracking");
 | 
					 | 
				
			||||||
        mSpecCam = null;
 | 
					 | 
				
			||||||
        //Input.SetMouseMode(Input.MouseMode.Captured);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        BallanceStalkerCore.StalkerManager.Singleton.EventControllerChanged += Proc_StalkerManager_EventControllerChanged;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_StalkerManager_EventControllerChanged(BallanceStalkerCore.EventControllerSource obj) {
 | 
					 | 
				
			||||||
        mEnableCamera = obj == BallanceStalkerCore.EventControllerSource.None;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Process(float delta) {
 | 
					 | 
				
			||||||
        if (!mEnableCamera) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (mSpecCam is null) {
 | 
					 | 
				
			||||||
            Vector3 motion3d = new Vector3(0, 0, 0);
 | 
					 | 
				
			||||||
            if (Input.IsActionPressed("ballance_forward")) motion3d.z -= 1f;
 | 
					 | 
				
			||||||
            if (Input.IsActionPressed("ballance_backward")) motion3d.z += 1f;
 | 
					 | 
				
			||||||
            if (Input.IsActionPressed("ballance_left")) motion3d.x -= 1f;
 | 
					 | 
				
			||||||
            if (Input.IsActionPressed("ballance_right")) motion3d.x += 1f;
 | 
					 | 
				
			||||||
            if (Input.IsActionPressed("ballance_down")) motion3d.y -= 1f;
 | 
					 | 
				
			||||||
            if (Input.IsActionPressed("ballance_up")) motion3d.y += 1f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            mFreeCam.Translate(motion3d * (BASIC_MOVEMENT * movementScale));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            Vector2 copiedMotion2d;
 | 
					 | 
				
			||||||
            lock (lockMotionMouse) {
 | 
					 | 
				
			||||||
                copiedMotion2d = motionMouse;
 | 
					 | 
				
			||||||
                motionMouse = new Vector2(0, 0);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            var viewport_base_size = GetViewport().GetSizeOverride() > Vector2.Zero ? GetViewport().GetSizeOverride() : GetViewport().Size;
 | 
					 | 
				
			||||||
            float window_x = viewport_base_size.x;
 | 
					 | 
				
			||||||
            Vector3 camRot = mFreeCam.Rotation;
 | 
					 | 
				
			||||||
            camRot.x = Mathf.Clamp(camRot.x - copiedMotion2d.y * 2 / window_x, -90f, 90f);
 | 
					 | 
				
			||||||
            camRot.y = camRot.y - copiedMotion2d.x * 2 / window_x;
 | 
					 | 
				
			||||||
            camRot.z = 0;
 | 
					 | 
				
			||||||
            mFreeCam.Rotation = camRot;
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            mStaticCameraOrigin.Translation = mSpecCam.Translation;
 | 
					 | 
				
			||||||
            mFreeCam.Transform = mFreeCam.Transform.InterpolateWith(mStaticCameraTracking.Transform, STATIC_MOVEMENT);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Input(InputEvent @event) {
 | 
					 | 
				
			||||||
        if (!mEnableCamera) return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (@event.IsActionPressed("ballance_esc")) {
 | 
					 | 
				
			||||||
            BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.Menu);
 | 
					 | 
				
			||||||
            // mark handled to prevent loop call
 | 
					 | 
				
			||||||
            GetTree().SetInputAsHandled();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (@event.IsActionPressed("ballance_cmd")) {
 | 
					 | 
				
			||||||
            BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.Console);
 | 
					 | 
				
			||||||
            // mark handled to prevent loop call
 | 
					 | 
				
			||||||
            GetTree().SetInputAsHandled();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (@event.IsActionPressed("ballance_chat")) {
 | 
					 | 
				
			||||||
            BallanceStalkerCore.StalkerManager.Singleton.SetEventController(BallanceStalkerCore.EventControllerSource.Chat);
 | 
					 | 
				
			||||||
            // mark handled to prevent loop call
 | 
					 | 
				
			||||||
            GetTree().SetInputAsHandled();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // mouse wheel
 | 
					 | 
				
			||||||
        if (@event is InputEventMouseButton) {
 | 
					 | 
				
			||||||
            InputEventMouseButton emb = (InputEventMouseButton)@event;
 | 
					 | 
				
			||||||
            if (emb.IsPressed()) {
 | 
					 | 
				
			||||||
                if (emb.ButtonIndex == (int)ButtonList.WheelUp) {
 | 
					 | 
				
			||||||
                    movementScale = Mathf.Clamp(movementScale + 1, 1, 50);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                if (emb.ButtonIndex == (int)ButtonList.WheelDown) {
 | 
					 | 
				
			||||||
                    movementScale = Mathf.Clamp(movementScale - 1, 1, 50);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // mouse motion
 | 
					 | 
				
			||||||
        if (@event is InputEventMouseMotion) {
 | 
					 | 
				
			||||||
            var mov = (InputEventMouseMotion)@event;
 | 
					 | 
				
			||||||
            lock (lockMotionMouse) {
 | 
					 | 
				
			||||||
                motionMouse += mov.Relative;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void SetTrackingTarget(Spatial target) {
 | 
					 | 
				
			||||||
        if (target is null) {
 | 
					 | 
				
			||||||
            if (!(mSpecCam is null)) {
 | 
					 | 
				
			||||||
                // shift off from a player archor, we need move free cam origin to target
 | 
					 | 
				
			||||||
                mFreeCamOrigin.Translation = mSpecCam.Translation;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        // set cam origin
 | 
					 | 
				
			||||||
        mSpecCam = target;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,20 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class StalkerCore : Spatial {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Declare member variables here. Examples:
 | 
					 | 
				
			||||||
    // private int a = 2;
 | 
					 | 
				
			||||||
    // private string b = "text";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Called when the node enters the scene tree for the first time.
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //  // Called every frame. 'delta' is the elapsed time since the previous frame.
 | 
					 | 
				
			||||||
    //  public override void _Process(float delta)
 | 
					 | 
				
			||||||
    //  {
 | 
					 | 
				
			||||||
    //      
 | 
					 | 
				
			||||||
    //  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,34 +0,0 @@
 | 
				
			|||||||
using BallanceStalker;
 | 
					 | 
				
			||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class MenuMain : Control {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    [Signal]
 | 
					 | 
				
			||||||
    public delegate void MenuMain_GotoPage(MenuManager.MenuPage menu_type);
 | 
					 | 
				
			||||||
    [Signal]
 | 
					 | 
				
			||||||
    public delegate void MenuMain_Back();
 | 
					 | 
				
			||||||
    [Signal]
 | 
					 | 
				
			||||||
    public delegate void MenuMain_Exit();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Called when the node enters the scene tree for the first time.
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        GetNode<ButtonCommon>("MenuList/BtnLoadLevel").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.LoadLevel });
 | 
					 | 
				
			||||||
        GetNode<ButtonCommon>("MenuList/BtnLoadSky").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.LoadSky });
 | 
					 | 
				
			||||||
        GetNode<ButtonCommon>("MenuList/BtnMultiplayer").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.Multiplayer });
 | 
					 | 
				
			||||||
        GetNode<ButtonCommon>("MenuList/BtnAbout").Connect("pressed", this, nameof(Proc_GotoPage), new Godot.Collections.Array() { MenuManager.MenuPage.About });
 | 
					 | 
				
			||||||
        GetNode<ButtonCommon>("MenuList/BtnBack").Connect("pressed", this, nameof(Proc_Back));
 | 
					 | 
				
			||||||
        GetNode<ButtonCommon>("MenuList/BtnExit").Connect("pressed", this, nameof(Proc_Exit));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_GotoPage(MenuManager.MenuPage menu_type) {
 | 
					 | 
				
			||||||
        EmitSignal(nameof(MenuMain_GotoPage), menu_type);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    private void Proc_Back() {
 | 
					 | 
				
			||||||
        EmitSignal(nameof(MenuMain_Back));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    private void Proc_Exit() {
 | 
					 | 
				
			||||||
        EmitSignal(nameof(MenuMain_Exit));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,10 +0,0 @@
 | 
				
			|||||||
using System;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.Linq;
 | 
					 | 
				
			||||||
using System.Text;
 | 
					 | 
				
			||||||
using System.Threading.Tasks;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace BallanceStalkerCore {
 | 
					 | 
				
			||||||
    public class LogManager {
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,55 +0,0 @@
 | 
				
			|||||||
using System;
 | 
					 | 
				
			||||||
using System.IO;
 | 
					 | 
				
			||||||
using System.Collections.Generic;
 | 
					 | 
				
			||||||
using System.Linq;
 | 
					 | 
				
			||||||
using System.Text;
 | 
					 | 
				
			||||||
using System.Threading.Tasks;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace BallanceStalkerCore {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public enum EventControllerSource {
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Default statue. It mean that we are now in camera mode.
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        None,
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Menu take control of event input
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        Menu,
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// Console panel now take control of event input.
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        Console,
 | 
					 | 
				
			||||||
        /// <summary>
 | 
					 | 
				
			||||||
        /// it is same as console, the only different is preset character
 | 
					 | 
				
			||||||
        /// </summary>
 | 
					 | 
				
			||||||
        Chat
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public class StalkerManager {
 | 
					 | 
				
			||||||
        public static StalkerManager Singleton = new StalkerManager();
 | 
					 | 
				
			||||||
        private StalkerManager() {
 | 
					 | 
				
			||||||
            mEventController = EventControllerSource.None;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            mLogger = new LogManager();
 | 
					 | 
				
			||||||
            mBmmoClient = new BmmoClient(mLogger);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public event Action<EventControllerSource> EventControllerChanged;
 | 
					 | 
				
			||||||
        private EventControllerSource mEventController;
 | 
					 | 
				
			||||||
        public BmmoClient mBmmoClient;
 | 
					 | 
				
			||||||
        public LogManager mLogger;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public void SetEventController(EventControllerSource src) {
 | 
					 | 
				
			||||||
            if (mEventController != src) {
 | 
					 | 
				
			||||||
                mEventController = src;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            EventControllerChanged?.Invoke(src);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        public EventControllerSource GetEventController() {
 | 
					 | 
				
			||||||
            return mEventController;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,16 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class ButtonCommon : Button
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    AudioStreamPlayer audio;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        this.Connect("pressed", this, nameof(event_Btn_pressed));
 | 
					 | 
				
			||||||
        audio = GetNode<AudioStreamPlayer>("AudioClick");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void event_Btn_pressed() {
 | 
					 | 
				
			||||||
        audio.Play();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,39 +0,0 @@
 | 
				
			|||||||
using Godot;
 | 
					 | 
				
			||||||
using System;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class LabelConsole : Control {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Label mRealLabel;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Called when the node enters the scene tree for the first time.
 | 
					 | 
				
			||||||
    public override void _Ready() {
 | 
					 | 
				
			||||||
        mRealLabel = GetNode<Label>("RealLabel");
 | 
					 | 
				
			||||||
        mRealLabel.Connect("item_rect_changed", this, nameof(Proc_Label_ItemRectChanged));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void SetText(string strl, LabelConsoleMessageType t) {
 | 
					 | 
				
			||||||
        mRealLabel.Text = strl;
 | 
					 | 
				
			||||||
        switch (t) {
 | 
					 | 
				
			||||||
            case LabelConsoleMessageType.Normal:
 | 
					 | 
				
			||||||
                mRealLabel.Modulate = Colors.White;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            case LabelConsoleMessageType.Highlight:
 | 
					 | 
				
			||||||
                mRealLabel.Modulate = Colors.Yellow;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
            case LabelConsoleMessageType.Error:
 | 
					 | 
				
			||||||
                mRealLabel.Modulate = Colors.OrangeRed;
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        this.RectMinSize = new Vector2(0, (mRealLabel.GetLineHeight() + mRealLabel.GetConstant("line_spacing")) * mRealLabel.GetLineCount());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private void Proc_Label_ItemRectChanged() {
 | 
					 | 
				
			||||||
        this.RectMinSize = new Vector2(0, (mRealLabel.GetLineHeight() + mRealLabel.GetConstant("line_spacing")) * mRealLabel.GetLineCount());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    //  // Called every frame. 'delta' is the elapsed time since the previous frame.
 | 
					 | 
				
			||||||
    //  public override void _Process(float delta)
 | 
					 | 
				
			||||||
    //  {
 | 
					 | 
				
			||||||
    //      
 | 
					 | 
				
			||||||
    //  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										41
									
								
								src/BallanceStalker.sln
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
 | 
					# Visual Studio Version 16
 | 
				
			||||||
 | 
					VisualStudioVersion = 16.0.31702.278
 | 
				
			||||||
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
 | 
					Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BallanceStalker", "BallanceStalker.csproj", "{55B5D158-D2E5-4A32-9C96-5878BD379AD3}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "debug_proj", "debug_proj\debug_proj.csproj", "{A203405D-3F18-4890-8DFC-8752E2BE8225}"
 | 
				
			||||||
 | 
					EndProject
 | 
				
			||||||
 | 
					Global
 | 
				
			||||||
 | 
						GlobalSection(SolutionConfigurationPlatforms) = preSolution
 | 
				
			||||||
 | 
							Debug|Any CPU = Debug|Any CPU
 | 
				
			||||||
 | 
							ExportDebug|Any CPU = ExportDebug|Any CPU
 | 
				
			||||||
 | 
							ExportRelease|Any CPU = ExportRelease|Any CPU
 | 
				
			||||||
 | 
							Release|Any CPU = Release|Any CPU
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ProjectConfigurationPlatforms) = postSolution
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Release|Any CPU.ActiveCfg = ExportRelease|Any CPU
 | 
				
			||||||
 | 
							{55B5D158-D2E5-4A32-9C96-5878BD379AD3}.Release|Any CPU.Build.0 = ExportRelease|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.Debug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.ExportDebug|Any CPU.ActiveCfg = Debug|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.ExportDebug|Any CPU.Build.0 = Debug|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.ExportRelease|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.ExportRelease|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.Release|Any CPU.ActiveCfg = Release|Any CPU
 | 
				
			||||||
 | 
							{A203405D-3F18-4890-8DFC-8752E2BE8225}.Release|Any CPU.Build.0 = Release|Any CPU
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(SolutionProperties) = preSolution
 | 
				
			||||||
 | 
							HideSolutionNode = FALSE
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
						GlobalSection(ExtensibilityGlobals) = postSolution
 | 
				
			||||||
 | 
							SolutionGuid = {0F74F6BC-8B1F-4D22-808E-4580D119177C}
 | 
				
			||||||
 | 
						EndGlobalSection
 | 
				
			||||||
 | 
					EndGlobal
 | 
				
			||||||
							
								
								
									
										33
									
								
								src/debug_proj/debug_proj.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
 | 
					<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
 | 
					  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
 | 
				
			||||||
 | 
					  <PropertyGroup>
 | 
				
			||||||
 | 
					    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 | 
				
			||||||
 | 
					    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
 | 
				
			||||||
 | 
					    <ProjectGuid>{B83A5A30-7D9A-4BCC-BB56-2974A2AAE767}</ProjectGuid>
 | 
				
			||||||
 | 
					    <OutputType>Library</OutputType>
 | 
				
			||||||
 | 
					    <RootNamespace>DebugProj</RootNamespace>
 | 
				
			||||||
 | 
					    <AssemblyName>DebugProj</AssemblyName>
 | 
				
			||||||
 | 
					    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
 | 
				
			||||||
 | 
					    <FileAlignment>512</FileAlignment>
 | 
				
			||||||
 | 
					    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
 | 
				
			||||||
 | 
					    <Deterministic>true</Deterministic>
 | 
				
			||||||
 | 
					    <ProjectTypeGuids>{8F3E2DF0-C35C-4265-82FC-BEA011F4A7ED};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 | 
				
			||||||
 | 
					    <PlatformTarget>AnyCPU</PlatformTarget>
 | 
				
			||||||
 | 
					    <DebugSymbols>true</DebugSymbols>
 | 
				
			||||||
 | 
					    <DebugType>full</DebugType>
 | 
				
			||||||
 | 
					    <Optimize>false</Optimize>
 | 
				
			||||||
 | 
					    <OutputPath>bin\Debug\</OutputPath>
 | 
				
			||||||
 | 
					    <DefineConstants>DEBUG;TRACE</DefineConstants>
 | 
				
			||||||
 | 
					    <ErrorReport>prompt</ErrorReport>
 | 
				
			||||||
 | 
					    <WarningLevel>4</WarningLevel>
 | 
				
			||||||
 | 
					  </PropertyGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <ProjectReference Include="..\*.csproj">
 | 
				
			||||||
 | 
					      <Private>False</Private>
 | 
				
			||||||
 | 
					    </ProjectReference>
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 | 
				
			||||||
 | 
					</Project>
 | 
				
			||||||
@ -11,7 +11,7 @@ config_version=4
 | 
				
			|||||||
[application]
 | 
					[application]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config/name="BallanceStalker"
 | 
					config/name="BallanceStalker"
 | 
				
			||||||
run/main_scene="res://scenes/GameRoot.tscn"
 | 
					run/main_scene="res://scenes/StalkerBase.tscn"
 | 
				
			||||||
config/icon="res://resources/icons/icon.png"
 | 
					config/icon="res://resources/icons/icon.png"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[display]
 | 
					[display]
 | 
				
			||||||
@ -1,19 +1,19 @@
 | 
				
			|||||||
[gd_resource type="Theme" load_steps=15 format=2]
 | 
					[gd_resource type="Theme" load_steps=15 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/vscrollbar-scroll-select.png" type="Texture" id=1]
 | 
					[ext_resource path="res://resources/textures/gui/hslider-grabber-select.png" type="Texture" id=1]
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/vscrollbar-grabber-select.png" type="Texture" id=2]
 | 
					[ext_resource path="res://resources/textures/gui/vscrollbar-scroll-select.png" type="Texture" id=2]
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/vscrollbar-grabber-deselect.png" type="Texture" id=3]
 | 
					[ext_resource path="res://resources/textures/gui/vscrollbar-grabber-select.png" type="Texture" id=3]
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/vscrollbar-scroll-deselect.png" type="Texture" id=4]
 | 
					[ext_resource path="res://resources/textures/gui/vscrollbar-grabber-deselect.png" type="Texture" id=4]
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/hslider-grabber-deselect.png" type="Texture" id=5]
 | 
					[ext_resource path="res://resources/textures/gui/hslider-grabber-deselect.png" type="Texture" id=5]
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/hslider-grabber-select.png" type="Texture" id=6]
 | 
					[ext_resource path="res://resources/textures/gui/hslider-slider.png" type="Texture" id=6]
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/hslider-slider.png" type="Texture" id=7]
 | 
					[ext_resource path="res://resources/textures/gui/vscrollbar-scroll-deselect.png" type="Texture" id=7]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxEmpty" id=1]
 | 
					[sub_resource type="StyleBoxEmpty" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxEmpty" id=2]
 | 
					[sub_resource type="StyleBoxEmpty" id=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxTexture" id=3]
 | 
					[sub_resource type="StyleBoxTexture" id=3]
 | 
				
			||||||
texture = ExtResource( 7 )
 | 
					texture = ExtResource( 6 )
 | 
				
			||||||
region_rect = Rect2( 0, 0, 64, 32 )
 | 
					region_rect = Rect2( 0, 0, 64, 32 )
 | 
				
			||||||
margin_left = 1.0
 | 
					margin_left = 1.0
 | 
				
			||||||
margin_right = 1.0
 | 
					margin_right = 1.0
 | 
				
			||||||
@ -21,7 +21,7 @@ margin_top = 14.0
 | 
				
			|||||||
margin_bottom = 14.0
 | 
					margin_bottom = 14.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxTexture" id=4]
 | 
					[sub_resource type="StyleBoxTexture" id=4]
 | 
				
			||||||
texture = ExtResource( 3 )
 | 
					texture = ExtResource( 4 )
 | 
				
			||||||
region_rect = Rect2( 0, 0, 32, 64 )
 | 
					region_rect = Rect2( 0, 0, 32, 64 )
 | 
				
			||||||
margin_left = 13.0
 | 
					margin_left = 13.0
 | 
				
			||||||
margin_right = 13.0
 | 
					margin_right = 13.0
 | 
				
			||||||
@ -29,7 +29,7 @@ margin_top = 3.0
 | 
				
			|||||||
margin_bottom = 3.0
 | 
					margin_bottom = 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxTexture" id=5]
 | 
					[sub_resource type="StyleBoxTexture" id=5]
 | 
				
			||||||
texture = ExtResource( 2 )
 | 
					texture = ExtResource( 3 )
 | 
				
			||||||
region_rect = Rect2( 0, 0, 32, 64 )
 | 
					region_rect = Rect2( 0, 0, 32, 64 )
 | 
				
			||||||
margin_left = 13.0
 | 
					margin_left = 13.0
 | 
				
			||||||
margin_right = 13.0
 | 
					margin_right = 13.0
 | 
				
			||||||
@ -37,7 +37,7 @@ margin_top = 3.0
 | 
				
			|||||||
margin_bottom = 3.0
 | 
					margin_bottom = 3.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxTexture" id=6]
 | 
					[sub_resource type="StyleBoxTexture" id=6]
 | 
				
			||||||
texture = ExtResource( 4 )
 | 
					texture = ExtResource( 7 )
 | 
				
			||||||
region_rect = Rect2( 0, 0, 32, 64 )
 | 
					region_rect = Rect2( 0, 0, 32, 64 )
 | 
				
			||||||
margin_left = 11.0
 | 
					margin_left = 11.0
 | 
				
			||||||
margin_right = 11.0
 | 
					margin_right = 11.0
 | 
				
			||||||
@ -45,7 +45,7 @@ margin_top = 1.0
 | 
				
			|||||||
margin_bottom = 1.0
 | 
					margin_bottom = 1.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sub_resource type="StyleBoxTexture" id=7]
 | 
					[sub_resource type="StyleBoxTexture" id=7]
 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					texture = ExtResource( 2 )
 | 
				
			||||||
region_rect = Rect2( 0, 0, 32, 64 )
 | 
					region_rect = Rect2( 0, 0, 32, 64 )
 | 
				
			||||||
margin_left = 11.0
 | 
					margin_left = 11.0
 | 
				
			||||||
margin_right = 11.0
 | 
					margin_right = 11.0
 | 
				
			||||||
@ -55,7 +55,7 @@ margin_bottom = 1.0
 | 
				
			|||||||
[resource]
 | 
					[resource]
 | 
				
			||||||
HSlider/icons/grabber = ExtResource( 5 )
 | 
					HSlider/icons/grabber = ExtResource( 5 )
 | 
				
			||||||
HSlider/icons/grabber_disabled = ExtResource( 5 )
 | 
					HSlider/icons/grabber_disabled = ExtResource( 5 )
 | 
				
			||||||
HSlider/icons/grabber_highlight = ExtResource( 6 )
 | 
					HSlider/icons/grabber_highlight = ExtResource( 1 )
 | 
				
			||||||
HSlider/icons/tick = null
 | 
					HSlider/icons/tick = null
 | 
				
			||||||
HSlider/styles/grabber_area = SubResource( 1 )
 | 
					HSlider/styles/grabber_area = SubResource( 1 )
 | 
				
			||||||
HSlider/styles/grabber_area_highlight = SubResource( 2 )
 | 
					HSlider/styles/grabber_area_highlight = SubResource( 2 )
 | 
				
			||||||
							
								
								
									
										9
									
								
								src/resources/fonts/fontstyle_small.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					[gd_resource type="DynamicFont" load_steps=3 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ext_resource path="res://resources/fonts/font_SquarishSansCT.tres" type="DynamicFontData" id=1]
 | 
				
			||||||
 | 
					[ext_resource path="res://resources/fonts/font_SourceHanSansCN.tres" type="DynamicFontData" id=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[resource]
 | 
				
			||||||
 | 
					size = 12
 | 
				
			||||||
 | 
					font_data = ExtResource( 1 )
 | 
				
			||||||
 | 
					fallback/0 = ExtResource( 2 )
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB  | 
| 
		 Before Width: | Height: | Size: 518 KiB After Width: | Height: | Size: 518 KiB  | 
| 
		 Before Width: | Height: | Size: 576 KiB After Width: | Height: | Size: 576 KiB  | 
| 
		 Before Width: | Height: | Size: 631 KiB After Width: | Height: | Size: 631 KiB  | 
| 
		 Before Width: | Height: | Size: 580 KiB After Width: | Height: | Size: 580 KiB  | 
| 
		 Before Width: | Height: | Size: 591 KiB After Width: | Height: | Size: 591 KiB  | 
| 
		 Before Width: | Height: | Size: 446 KiB After Width: | Height: | Size: 446 KiB  | 
| 
		 Before Width: | Height: | Size: 537 KiB After Width: | Height: | Size: 537 KiB  | 
| 
		 Before Width: | Height: | Size: 602 KiB After Width: | Height: | Size: 602 KiB  | 
| 
		 Before Width: | Height: | Size: 546 KiB After Width: | Height: | Size: 546 KiB  | 
| 
		 Before Width: | Height: | Size: 596 KiB After Width: | Height: | Size: 596 KiB  | 
| 
		 Before Width: | Height: | Size: 607 KiB After Width: | Height: | Size: 607 KiB  | 
| 
		 Before Width: | Height: | Size: 486 KiB After Width: | Height: | Size: 486 KiB  | 
							
								
								
									
										21
									
								
								src/resources/soundeffects/gui/btn_click.wav.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					[remap]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					importer="wav"
 | 
				
			||||||
 | 
					type="AudioStreamSample"
 | 
				
			||||||
 | 
					path="res://.import/btn_click.wav-250737dca1a0428929c92b4ab8e70e0b.sample"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source_file="res://resources/soundeffects/gui/btn_click.wav"
 | 
				
			||||||
 | 
					dest_files=[ "res://.import/btn_click.wav-250737dca1a0428929c92b4ab8e70e0b.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=false
 | 
				
			||||||
 | 
					compress/mode=0
 | 
				
			||||||
							
								
								
									
										11
									
								
								src/resources/styles/gui/btn_small_style_deselect.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ext_resource path="res://resources/textures/gui/btn-small-deselect.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[resource]
 | 
				
			||||||
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
 | 
					region_rect = Rect2( 0, 0, 64, 32 )
 | 
				
			||||||
 | 
					margin_left = 14.1409
 | 
				
			||||||
 | 
					margin_right = 12.785
 | 
				
			||||||
 | 
					margin_top = 13.5598
 | 
				
			||||||
 | 
					margin_bottom = 13.3661
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/btn-small-select.png" type="Texture" id=1]
 | 
					[ext_resource path="res://resources/textures/gui/btn-small-select.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[resource]
 | 
					[resource]
 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/btn_deselect.png" type="Texture" id=1]
 | 
					[ext_resource path="res://resources/textures/gui/btn_deselect.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[resource]
 | 
					[resource]
 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/btn_select.png" type="Texture" id=1]
 | 
					[ext_resource path="res://resources/textures/gui/btn_select.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[resource]
 | 
					[resource]
 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ext_resource path="res://resources/textures/gui/lineedit_borderless_deselect.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[resource]
 | 
				
			||||||
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
 | 
					region_rect = Rect2( 0, 0, 64, 32 )
 | 
				
			||||||
@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ext_resource path="res://resources/textures/gui/lineedit_borderless_select.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[resource]
 | 
				
			||||||
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
 | 
					region_rect = Rect2( 0, 0, 64, 32 )
 | 
				
			||||||
							
								
								
									
										11
									
								
								src/resources/styles/gui/lineedit_style_deselect.tres
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ext_resource path="res://resources/textures/gui/lineedit_deselect.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[resource]
 | 
				
			||||||
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
 | 
					region_rect = Rect2( 0, 0, 64, 32 )
 | 
				
			||||||
 | 
					margin_left = 14.1409
 | 
				
			||||||
 | 
					margin_right = 12.785
 | 
				
			||||||
 | 
					margin_top = 13.5598
 | 
				
			||||||
 | 
					margin_bottom = 13.3661
 | 
				
			||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
					[gd_resource type="StyleBoxTexture" load_steps=2 format=2]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ext_resource path="res://resources/user_interface/textures/lineedit_select.png" type="Texture" id=1]
 | 
					[ext_resource path="res://resources/textures/gui/lineedit_select.png" type="Texture" id=1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[resource]
 | 
					[resource]
 | 
				
			||||||
texture = ExtResource( 1 )
 | 
					texture = ExtResource( 1 )
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 471 B  | 
							
								
								
									
										35
									
								
								src/resources/textures/gui/btn-small-deselect.png.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					[remap]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					importer="texture"
 | 
				
			||||||
 | 
					type="StreamTexture"
 | 
				
			||||||
 | 
					path="res://.import/btn-small-deselect.png-d715a7f5faa567d48116fddb4bffad5c.stex"
 | 
				
			||||||
 | 
					metadata={
 | 
				
			||||||
 | 
					"vram_texture": false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source_file="res://resources/textures/gui/btn-small-deselect.png"
 | 
				
			||||||
 | 
					dest_files=[ "res://.import/btn-small-deselect.png-d715a7f5faa567d48116fddb4bffad5c.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compress/mode=0
 | 
				
			||||||
 | 
					compress/lossy_quality=0.7
 | 
				
			||||||
 | 
					compress/hdr_mode=0
 | 
				
			||||||
 | 
					compress/bptc_ldr=0
 | 
				
			||||||
 | 
					compress/normal_map=0
 | 
				
			||||||
 | 
					flags/repeat=0
 | 
				
			||||||
 | 
					flags/filter=false
 | 
				
			||||||
 | 
					flags/mipmaps=false
 | 
				
			||||||
 | 
					flags/anisotropic=false
 | 
				
			||||||
 | 
					flags/srgb=2
 | 
				
			||||||
 | 
					process/fix_alpha_border=true
 | 
				
			||||||
 | 
					process/premult_alpha=false
 | 
				
			||||||
 | 
					process/HDR_as_SRGB=false
 | 
				
			||||||
 | 
					process/invert_color=false
 | 
				
			||||||
 | 
					process/normal_map_invert_y=false
 | 
				
			||||||
 | 
					stream=false
 | 
				
			||||||
 | 
					size_limit=0
 | 
				
			||||||
 | 
					detect_3d=false
 | 
				
			||||||
 | 
					svg/scale=1.0
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 466 B After Width: | Height: | Size: 466 B  | 
							
								
								
									
										35
									
								
								src/resources/textures/gui/btn-small-select.png.import
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					[remap]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					importer="texture"
 | 
				
			||||||
 | 
					type="StreamTexture"
 | 
				
			||||||
 | 
					path="res://.import/btn-small-select.png-be8ec72b83327ac478a6b9c59d2a7563.stex"
 | 
				
			||||||
 | 
					metadata={
 | 
				
			||||||
 | 
					"vram_texture": false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source_file="res://resources/textures/gui/btn-small-select.png"
 | 
				
			||||||
 | 
					dest_files=[ "res://.import/btn-small-select.png-be8ec72b83327ac478a6b9c59d2a7563.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compress/mode=0
 | 
				
			||||||
 | 
					compress/lossy_quality=0.7
 | 
				
			||||||
 | 
					compress/hdr_mode=0
 | 
				
			||||||
 | 
					compress/bptc_ldr=0
 | 
				
			||||||
 | 
					compress/normal_map=0
 | 
				
			||||||
 | 
					flags/repeat=0
 | 
				
			||||||
 | 
					flags/filter=false
 | 
				
			||||||
 | 
					flags/mipmaps=false
 | 
				
			||||||
 | 
					flags/anisotropic=false
 | 
				
			||||||
 | 
					flags/srgb=2
 | 
				
			||||||
 | 
					process/fix_alpha_border=true
 | 
				
			||||||
 | 
					process/premult_alpha=false
 | 
				
			||||||
 | 
					process/HDR_as_SRGB=false
 | 
				
			||||||
 | 
					process/invert_color=false
 | 
				
			||||||
 | 
					process/normal_map_invert_y=false
 | 
				
			||||||
 | 
					stream=false
 | 
				
			||||||
 | 
					size_limit=0
 | 
				
			||||||
 | 
					detect_3d=false
 | 
				
			||||||
 | 
					svg/scale=1.0
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 484 B  | 
@ -2,15 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
importer="texture"
 | 
					importer="texture"
 | 
				
			||||||
type="StreamTexture"
 | 
					type="StreamTexture"
 | 
				
			||||||
path="res://.import/btn_deselect.png-00b7f2eab9128d91c7c719e4f6685df5.stex"
 | 
					path="res://.import/btn_deselect.png-f4c23ea1e7ff312deabd84b69eb24168.stex"
 | 
				
			||||||
metadata={
 | 
					metadata={
 | 
				
			||||||
"vram_texture": false
 | 
					"vram_texture": false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[deps]
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_file="res://resources/user_interface/textures/btn_deselect.png"
 | 
					source_file="res://resources/textures/gui/btn_deselect.png"
 | 
				
			||||||
dest_files=[ "res://.import/btn_deselect.png-00b7f2eab9128d91c7c719e4f6685df5.stex" ]
 | 
					dest_files=[ "res://.import/btn_deselect.png-f4c23ea1e7ff312deabd84b69eb24168.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[params]
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 493 B After Width: | Height: | Size: 493 B  | 
@ -2,15 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
importer="texture"
 | 
					importer="texture"
 | 
				
			||||||
type="StreamTexture"
 | 
					type="StreamTexture"
 | 
				
			||||||
path="res://.import/btn_select.png-9d750292de91408d67d9b5679d5e14ad.stex"
 | 
					path="res://.import/btn_select.png-b16231b52adc557127984e6d58e1572a.stex"
 | 
				
			||||||
metadata={
 | 
					metadata={
 | 
				
			||||||
"vram_texture": false
 | 
					"vram_texture": false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[deps]
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_file="res://resources/user_interface/textures/btn_select.png"
 | 
					source_file="res://resources/textures/gui/btn_select.png"
 | 
				
			||||||
dest_files=[ "res://.import/btn_select.png-9d750292de91408d67d9b5679d5e14ad.stex" ]
 | 
					dest_files=[ "res://.import/btn_select.png-b16231b52adc557127984e6d58e1572a.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[params]
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 197 B After Width: | Height: | Size: 197 B  | 
@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					[remap]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					importer="texture"
 | 
				
			||||||
 | 
					type="StreamTexture"
 | 
				
			||||||
 | 
					path="res://.import/hslider-grabber-deselect.png-eb176a60004bc9dd86185e925bada1ca.stex"
 | 
				
			||||||
 | 
					metadata={
 | 
				
			||||||
 | 
					"vram_texture": false
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source_file="res://resources/textures/gui/hslider-grabber-deselect.png"
 | 
				
			||||||
 | 
					dest_files=[ "res://.import/hslider-grabber-deselect.png-eb176a60004bc9dd86185e925bada1ca.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					compress/mode=0
 | 
				
			||||||
 | 
					compress/lossy_quality=0.7
 | 
				
			||||||
 | 
					compress/hdr_mode=0
 | 
				
			||||||
 | 
					compress/bptc_ldr=0
 | 
				
			||||||
 | 
					compress/normal_map=0
 | 
				
			||||||
 | 
					flags/repeat=0
 | 
				
			||||||
 | 
					flags/filter=false
 | 
				
			||||||
 | 
					flags/mipmaps=false
 | 
				
			||||||
 | 
					flags/anisotropic=false
 | 
				
			||||||
 | 
					flags/srgb=2
 | 
				
			||||||
 | 
					process/fix_alpha_border=true
 | 
				
			||||||
 | 
					process/premult_alpha=false
 | 
				
			||||||
 | 
					process/HDR_as_SRGB=false
 | 
				
			||||||
 | 
					process/invert_color=false
 | 
				
			||||||
 | 
					process/normal_map_invert_y=false
 | 
				
			||||||
 | 
					stream=false
 | 
				
			||||||
 | 
					size_limit=0
 | 
				
			||||||
 | 
					detect_3d=false
 | 
				
			||||||
 | 
					svg/scale=1.0
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 197 B After Width: | Height: | Size: 197 B  | 
@ -2,15 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
importer="texture"
 | 
					importer="texture"
 | 
				
			||||||
type="StreamTexture"
 | 
					type="StreamTexture"
 | 
				
			||||||
path="res://.import/btn-small-deselect.png-50de40a7a56e5cc7a3f77da3a18182dc.stex"
 | 
					path="res://.import/hslider-grabber-select.png-f38b699d41ad00ae1de0bbbb40c0cd2e.stex"
 | 
				
			||||||
metadata={
 | 
					metadata={
 | 
				
			||||||
"vram_texture": false
 | 
					"vram_texture": false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[deps]
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_file="res://resources/user_interface/textures/btn-small-deselect.png"
 | 
					source_file="res://resources/textures/gui/hslider-grabber-select.png"
 | 
				
			||||||
dest_files=[ "res://.import/btn-small-deselect.png-50de40a7a56e5cc7a3f77da3a18182dc.stex" ]
 | 
					dest_files=[ "res://.import/hslider-grabber-select.png-f38b699d41ad00ae1de0bbbb40c0cd2e.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[params]
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 200 B After Width: | Height: | Size: 200 B  | 
@ -2,15 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
importer="texture"
 | 
					importer="texture"
 | 
				
			||||||
type="StreamTexture"
 | 
					type="StreamTexture"
 | 
				
			||||||
path="res://.import/hslider-slider.png-e3144ca0191d69c66b3b6002e961fae8.stex"
 | 
					path="res://.import/hslider-slider.png-3eb2d7a672c3fa1416391d0279e35945.stex"
 | 
				
			||||||
metadata={
 | 
					metadata={
 | 
				
			||||||
"vram_texture": false
 | 
					"vram_texture": false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[deps]
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_file="res://resources/user_interface/textures/hslider-slider.png"
 | 
					source_file="res://resources/textures/gui/hslider-slider.png"
 | 
				
			||||||
dest_files=[ "res://.import/hslider-slider.png-e3144ca0191d69c66b3b6002e961fae8.stex" ]
 | 
					dest_files=[ "res://.import/hslider-slider.png-3eb2d7a672c3fa1416391d0279e35945.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[params]
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 165 B After Width: | Height: | Size: 165 B  | 
@ -2,15 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
importer="texture"
 | 
					importer="texture"
 | 
				
			||||||
type="StreamTexture"
 | 
					type="StreamTexture"
 | 
				
			||||||
path="res://.import/lineedit_borderless_deselect.png-5a57d2f0a83a0ea3163638365fbb072b.stex"
 | 
					path="res://.import/lineedit_borderless_deselect.png-72e2e66dc3a8de40ef8cbd9b3b5162e7.stex"
 | 
				
			||||||
metadata={
 | 
					metadata={
 | 
				
			||||||
"vram_texture": false
 | 
					"vram_texture": false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[deps]
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_file="res://resources/user_interface/textures/lineedit_borderless_deselect.png"
 | 
					source_file="res://resources/textures/gui/lineedit_borderless_deselect.png"
 | 
				
			||||||
dest_files=[ "res://.import/lineedit_borderless_deselect.png-5a57d2f0a83a0ea3163638365fbb072b.stex" ]
 | 
					dest_files=[ "res://.import/lineedit_borderless_deselect.png-72e2e66dc3a8de40ef8cbd9b3b5162e7.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[params]
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 166 B  | 
@ -2,15 +2,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
importer="texture"
 | 
					importer="texture"
 | 
				
			||||||
type="StreamTexture"
 | 
					type="StreamTexture"
 | 
				
			||||||
path="res://.import/lineedit_borderless_select.png-4aee58b7e500decf6960fa056582c12d.stex"
 | 
					path="res://.import/lineedit_borderless_select.png-60af708dfafe45ec5c1a02982e459da8.stex"
 | 
				
			||||||
metadata={
 | 
					metadata={
 | 
				
			||||||
"vram_texture": false
 | 
					"vram_texture": false
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[deps]
 | 
					[deps]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source_file="res://resources/user_interface/textures/lineedit_borderless_select.png"
 | 
					source_file="res://resources/textures/gui/lineedit_borderless_select.png"
 | 
				
			||||||
dest_files=[ "res://.import/lineedit_borderless_select.png-4aee58b7e500decf6960fa056582c12d.stex" ]
 | 
					dest_files=[ "res://.import/lineedit_borderless_select.png-60af708dfafe45ec5c1a02982e459da8.stex" ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[params]
 | 
					[params]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 406 B  |