Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package edit
|
||||
|
||||
import (
|
||||
"github.com/inkyblackness/hacked/ss1/content/audio"
|
||||
"github.com/inkyblackness/hacked/ss1/edit/media"
|
||||
"github.com/inkyblackness/hacked/ss1/resource"
|
||||
)
|
||||
|
||||
// SoundEffectService provides read/write functionality.
|
||||
type SoundEffectService struct {
|
||||
viewer media.SoundEffectViewerService
|
||||
setter media.SoundEffectSetterService
|
||||
}
|
||||
|
||||
// NewSoundEffectService returns a new instance based on given accessor.
|
||||
func NewSoundEffectService(
|
||||
viewer media.SoundEffectViewerService, setter media.SoundEffectSetterService) SoundEffectService {
|
||||
return SoundEffectService{
|
||||
viewer: viewer,
|
||||
setter: setter,
|
||||
}
|
||||
}
|
||||
|
||||
// RestoreFunc creates a snapshot of the current sound and returns a function to restore it.
|
||||
func (service SoundEffectService) RestoreFunc(key resource.Key) func(setter media.SoundEffectBlockSetter) {
|
||||
oldAudio := service.viewer.Audio(key)
|
||||
isModified := service.viewer.Modified(key)
|
||||
|
||||
return func(setter media.SoundEffectBlockSetter) {
|
||||
if isModified {
|
||||
service.setter.Set(setter, key, oldAudio)
|
||||
} else {
|
||||
service.setter.Remove(setter, key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Modified returns true if the identified sound resource is marked as modified.
|
||||
func (service SoundEffectService) Modified(key resource.Key) bool {
|
||||
return service.viewer.Modified(key)
|
||||
}
|
||||
|
||||
// Remove erases the sound from the resources.
|
||||
func (service SoundEffectService) Remove(setter media.SoundEffectBlockSetter, key resource.Key) {
|
||||
service.setter.Remove(setter, key)
|
||||
}
|
||||
|
||||
// Clear resets the identified audio resource to a silent one-sample audio.
|
||||
func (service SoundEffectService) Clear(setter media.SoundEffectBlockSetter, key resource.Key) {
|
||||
service.setter.Clear(setter, key)
|
||||
}
|
||||
|
||||
// Audio returns the audio component of identified sound effect.
|
||||
func (service SoundEffectService) Audio(key resource.Key) audio.L8 {
|
||||
return service.viewer.Audio(key)
|
||||
}
|
||||
|
||||
// SetAudio sets the audio component of identified sound effect.
|
||||
func (service SoundEffectService) SetAudio(setter media.SoundEffectBlockSetter, key resource.Key, data audio.L8) {
|
||||
service.setter.Set(setter, key, data)
|
||||
}
|
||||
Reference in New Issue
Block a user