Skip to content
This repository was archived by the owner on Apr 15, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions MapImageLayerConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,12 @@ public decimal Opacity
set;
} = 1m;

public decimal Speed
{
get;
set;
} = 50m;

public void SetPosition( Vector3 position )
{
X = ( decimal ) position.x;
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ To make your city planning more efficient, MapImageLayer offers these handy keyb
- **(ALT + =)** Increase opacity of overlay
- **(ALT + -)** Decrease opacity of overlay
- **(ALT + I)** Force open image file selection dialog
- **(CTRL + Arrows)** Move the overlay

## Image Requirements

Expand Down
88 changes: 87 additions & 1 deletion Systems/ImageOverlaySystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,36 @@ private void CreateKeyBinding( )
ReloadImage( );
};
inputAction.Enable( );

inputAction = new InputAction( "ImageOverlayMoveLeft" );
inputAction.AddCompositeBinding( "ButtonWithOneModifier" )
.With( "Modifier", "<Keyboard>/ctrl" )
.With( "Button", "<Keyboard>/leftArrow" );
inputAction.performed += OnImageOverlayMoveLeft;
inputAction.Enable();

inputAction = new InputAction( "ImageOverlayMoveRight" );
inputAction.AddCompositeBinding( "ButtonWithOneModifier" )
.With( "Modifier", "<Keyboard>/ctrl" )
.With( "Button", "<Keyboard>/rightArrow" );
inputAction.performed += OnImageOverlayMoveRight;
inputAction.Enable();


inputAction = new InputAction( "ImageOverlayMoveForward" );
inputAction.AddCompositeBinding( "ButtonWithOneModifier" )
.With( "Modifier", "<Keyboard>/ctrl" )
.With( "Button", "<Keyboard>/upArrow" );
inputAction.performed += OnImageOverlayMoveForward;
inputAction.Enable();


inputAction = new InputAction( "ImageOverlayMoveBackward" );
inputAction.AddCompositeBinding( "ButtonWithOneModifier" )
.With( "Modifier", "<Keyboard>/ctrl" )
.With( "Button", "<Keyboard>/downArrow" );
inputAction.performed += OnImageOverlayMoveBackward;
inputAction.Enable();
}

private void ChooseInputFile()
Expand Down Expand Up @@ -328,6 +358,62 @@ private void OnImageOverlayDecreaseTransparency( InputAction.CallbackContext obj
MapImageLayerConfig.Save( _config );
}

private void OnImageOverlayMoveLeft( InputAction.CallbackContext obj )
{
if ( !ShowImageOverlay || imageOverlayObj == null )
return;

imageOverlayObj.transform.position -= Vector3.right * (float)_config.Speed;
AudioManager.instance.PlayUISound( soundSettings.m_TransportLineStartSound );

_config.X = ( decimal ) imageOverlayObj.transform.position.x;
_config.Y = ( decimal ) imageOverlayObj.transform.position.y;
_config.Z = ( decimal ) imageOverlayObj.transform.position.z;
MapImageLayerConfig.Save( _config );
}

private void OnImageOverlayMoveRight( InputAction.CallbackContext obj )
{
if ( !ShowImageOverlay || imageOverlayObj == null )
return;

imageOverlayObj.transform.position += Vector3.right * (float)_config.Speed;
AudioManager.instance.PlayUISound( soundSettings.m_PolygonToolDropPointSound );

_config.X = ( decimal ) imageOverlayObj.transform.position.x;
_config.Y = ( decimal ) imageOverlayObj.transform.position.y;
_config.Z = ( decimal ) imageOverlayObj.transform.position.z;
MapImageLayerConfig.Save( _config );
}

private void OnImageOverlayMoveForward( InputAction.CallbackContext obj )
{
if ( !ShowImageOverlay || imageOverlayObj == null )
return;

imageOverlayObj.transform.position += Vector3.forward * (float)_config.Speed;
AudioManager.instance.PlayUISound( soundSettings.m_AreaMarqueeEndSound );

_config.X = ( decimal ) imageOverlayObj.transform.position.x;
_config.Y = ( decimal ) imageOverlayObj.transform.position.y;
_config.Z = ( decimal ) imageOverlayObj.transform.position.z;
MapImageLayerConfig.Save( _config );
}

private void OnImageOverlayMoveBackward( InputAction.CallbackContext obj )
{
if ( !ShowImageOverlay || imageOverlayObj == null )
return;

imageOverlayObj.transform.position -= Vector3.forward * (float)_config.Speed;
AudioManager.instance.PlayUISound( soundSettings.m_TransportLineCompleteSound );

_config.X = ( decimal ) imageOverlayObj.transform.position.x;
_config.Y = ( decimal ) imageOverlayObj.transform.position.y;
_config.Z = ( decimal ) imageOverlayObj.transform.position.z;
MapImageLayerConfig.Save( _config );
}

private Shader LoadAssetBundle( )
{
var assembly = Assembly.GetExecutingAssembly( );
Expand Down Expand Up @@ -378,4 +464,4 @@ private float SampleWaterHeight( )
return ( float ) WaterUtils.SampleHeight( ref surfaceData, ref heightData, Vector3.zero );
}
}
}
}