mirror of
https://github.com/lxsang/Diya-API.git
synced 2024-12-26 03:18:22 +01:00
91 lines
2.0 KiB
Smalltalk
91 lines
2.0 KiB
Smalltalk
Class {
|
|
#name : #DiyaSettings,
|
|
#superclass : #DiyaSingleton,
|
|
#instVars : [
|
|
'maxFPS',
|
|
'fontPaths',
|
|
'assetPath',
|
|
'renderAtOnce'
|
|
],
|
|
#category : #'Diya-Core'
|
|
}
|
|
|
|
{ #category : #'as yet unclassified' }
|
|
DiyaSettings class >> defaultSettingFile [
|
|
^ Smalltalk imageDirectory / 'settings.json'
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> assetPath [
|
|
^ assetPath
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> assetPath: anObject [
|
|
assetPath := anObject
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> fontPaths [
|
|
^ fontPaths
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> fontPaths: anObject [
|
|
fontPaths := anObject
|
|
]
|
|
|
|
{ #category : #initialization }
|
|
DiyaSettings >> initialize [
|
|
super initialize.
|
|
maxFPS := 60.
|
|
renderAtOnce := false.
|
|
fontPaths := { Smalltalk imageDirectory / 'fonts' }.
|
|
assetPath := Smalltalk imageDirectory / 'assets'.
|
|
self loadFromFile.
|
|
self logSettings
|
|
]
|
|
|
|
{ #category : #initialization }
|
|
DiyaSettings >> loadFromFile [
|
|
|d v|
|
|
self class defaultSettingFile exists ifFalse: [
|
|
self stderror: 'Setting file not found. Using default settings'.
|
|
^self
|
|
].
|
|
d := STON fromStream: self class defaultSettingFile readStream.
|
|
maxFPS := d at:'max_fps' ifAbsent:[maxFPS].
|
|
v := d at:'asset_dir' ifAbsent:[nil].
|
|
v ifNotNil: [ assetPath := v ].
|
|
renderAtOnce := d at: 'render_all_at_once' ifAbsent:[renderAtOnce ].
|
|
fontPaths := fontPaths , (d at:'font_dirs' ifAbsent:[#()]).
|
|
]
|
|
|
|
{ #category : #initialization }
|
|
DiyaSettings >> logSettings [
|
|
self stdlog: 'max_fps = ', maxFPS asString.
|
|
self stdlog: 'font_dirs = ', fontPaths asString.
|
|
self stdlog: 'asset_dir = ', assetPath asString.
|
|
self stdlog: 'render_all_at_once = ', renderAtOnce asString.
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> maxFPS [
|
|
^ maxFPS
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> maxFPS: anObject [
|
|
maxFPS := anObject
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> renderAtOnce [
|
|
^ renderAtOnce
|
|
]
|
|
|
|
{ #category : #accessing }
|
|
DiyaSettings >> renderAtOnce: anObject [
|
|
renderAtOnce := anObject
|
|
]
|