diff options
| author | william1008 <[email protected]> | 2015-03-23 12:57:33 +1300 |
|---|---|---|
| committer | william1008 <[email protected]> | 2015-03-23 12:57:33 +1300 |
| commit | 965207dac55e9e1cfbfcab7d229eca417d41d118 (patch) | |
| tree | cfdb8c1f32e5acf59ce22e665dab9e3d44eade6c /ShiftOS/NewAPI.vb | |
| parent | a276b027fb14540aaae66b1e0f42706174b77938 (diff) | |
| download | shiftos-pr/18.tar.gz shiftos-pr/18.tar.bz2 shiftos-pr/18.zip | |
Mod workpr/18
Improved SRIP mod communication system and tested with mod, will soon
release mod template files and documentation. Currently only has 4
commands, please add more. This is a starter.
Diffstat (limited to 'ShiftOS/NewAPI.vb')
| -rw-r--r-- | ShiftOS/NewAPI.vb | 100 |
1 files changed, 62 insertions, 38 deletions
diff --git a/ShiftOS/NewAPI.vb b/ShiftOS/NewAPI.vb index 2a5b7fb..a4f13e6 100644 --- a/ShiftOS/NewAPI.vb +++ b/ShiftOS/NewAPI.vb @@ -2,12 +2,48 @@ Private Command As String Private NewModForm As New ModForm + ' This stores the message and title values for the infobox, since they are created with 2 commands. + Dim modInfoMessage As String = "ShiftOS has been modified to create this infobox, use infobox.message = <your message> to customise it." + Dim modInfoTitle As String = "Info from Mod, customise it with infobox.title = <title>" + Dim isInfo As Integer = 0 + ' Tells other programs where to place output files + Public modOutputPath As String + Dim modInPath As String - Public Sub UseCode(ByVal Path As String) + Dim WithEvents trmReadModInput As New Timer + + Public Sub ReadModInput(ByVal sender As Object, ByVal e As EventArgs) Handles trmReadModInput.Tick + If My.Computer.FileSystem.FileExists(modInPath) Then + UseCode(modInPath, modOutputPath) + End If + End Sub + + Public Sub OpenModFile(path As String) + ' Mod files are zips containing "config.set" and application files. + My.Computer.FileSystem.DeleteDirectory(ShiftOSDesktop.ShiftOSPath & "\Shiftum42\Temp\ModLoader", FileIO.DeleteDirectoryOption.DeleteAllContents) + My.Computer.FileSystem.CreateDirectory(ShiftOSDesktop.ShiftOSPath & "\Shiftum42\Temp\ModLoader") + + System.IO.Compression.ZipFile.ExtractToDirectory(path, ShiftOSDesktop.ShiftOSPath & "\Shiftum42\Temp\ModLoader") + ' Config contents: line1 = what exe to launch, line2 = path mod with write to, line 3 = folder mod will read from, line4 = connection delay in milliseconds + Dim configdata(3) As String + configdata = System.IO.File.ReadAllLines(ShiftOSDesktop.ShiftOSPath & "\Shiftum42\Temp\ModLoader\config.set") + Try + Process.Start(ShiftOSDesktop.ShiftOSPath & "\Shiftum42\Temp\ModLoader\" & configdata(0)) + modOutputPath = configdata(2) + modInPath = configdata(1) + Catch ex As Exception + infobox.showinfo("Mod Error", "There is an error in the modification's config file. Please contact the developer of you mod. If you are the developer, remember: line1 = what exe to launch, line2 = path mod with write to, line 3 = folder mod will read from, line4 = connection delay in milliseconds") + End Try + trmReadModInput.Interval = configdata(3) + trmReadModInput.Start() + End Sub + + + Public Sub UseCode(ByVal InPath As String, ByVal OutPath As String) Dim sr As System.IO.StreamReader - sr = My.Computer.FileSystem.OpenTextFileReader(Path) - Dim linenum As Integer = IO.File.ReadAllLines(Path).Length + sr = My.Computer.FileSystem.OpenTextFileReader(InPath) + Dim linenum As Integer = IO.File.ReadAllLines(InPath).Length Dim i As Integer = 1 While i <= linenum Command = sr.ReadLine() @@ -15,13 +51,24 @@ i = i + 1 End While sr.Close() + My.Computer.FileSystem.DeleteFile(modInPath) + modOutputPath = OutPath End Sub Private Sub DoCommandAPI() - If Command Like "infobox = *" Then + If Command Like "infobox.title = *" Then Try - Dim Message As String = Command.Substring(10) - infobox.showinfo("Message from a ShiftOS Mod Files", Message) + Dim title As String = Command.Substring(16) + modInfoTitle = title + isInfo = isInfo + 1 + Catch ex As Exception + infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") + End Try + ElseIf Command Like "infobox.message = *" Then + Try + Dim Message As String = Command.Substring(18) + modInfoMessage = Message + isInfo = isInfo + 1 Catch ex As Exception infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") End Try @@ -39,42 +86,19 @@ Catch ex As Exception infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") End Try - ElseIf Command Like "window.create" Then - Try - NewModForm.Show() - Catch ex As Exception - infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") - End Try - ElseIf Command Like "label.create = *" Then + ElseIf Command Like "getcolour.title = *" Then Try - NewModForm.CreateLabel(Command.Substring(15)) - Catch ex As Exception - infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") - End Try - ElseIf Command Like "label.select = *" Then - Try - NewModForm.SelectLabel(Command.Substring(15)) - Catch ex As Exception - infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") - End Try - ElseIf Command Like "SelectedLabel.Location.X = *" Then - Try - NewModForm.MoveSelectedLabelLocationX(Command.Substring(27)) - Catch ex As Exception - infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") - End Try - ElseIf Command Like "SelectedLabel.Location.Y = *" Then - Try - NewModForm.MoveSelectedLabelLocationY(Command.Substring(27)) - Catch ex As Exception - infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") - End Try - ElseIf Command Like "SelectedLabel.Text = *" Then - Try - NewModForm.SelectedLabelText(Command.Substring(21)) + Dim title As String = Command.Substring(18) + Colour_Picker.colourtochange = title + Colour_Picker.Show() + Colour_Picker.sendToMod = True Catch ex As Exception infobox.showinfo("Critical Modification Application Error", "A critical error occured whilst trying to add to your codepoint value - please contact the developer of your mod") End Try End If + If isInfo > 2 Then + infobox.showinfo(modInfoTitle, modInfoMessage) + isInfo = 0 + End If End Sub End Module |
