1
0
Fork 0
mirror of https://github.com/Luzifer/sii.git synced 2024-10-18 05:14:19 +00:00

Fix: Placement is not required, don't let it break jobs

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2020-01-04 02:17:15 +01:00
parent 12652cccb2
commit ec468c07a8
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E
2 changed files with 8 additions and 12 deletions

View file

@ -73,30 +73,25 @@ func handleAddJob(w http.ResponseWriter, r *http.Request) {
cargo := baseGameUnit.BlockByName(job.CargoReference).(*sii.CargoData) cargo := baseGameUnit.BlockByName(job.CargoReference).(*sii.CargoData)
// Get trailer / truck from other jobs // Get trailer / truck from other jobs
var ( var cTruck, cTV, cTD string
cTruck, cTV, cTD string
cTP []sii.Placement
)
for _, jp := range company.JobOffer { for _, jp := range company.JobOffer {
j := jp.Resolve().(*sii.JobOfferData) j := jp.Resolve().(*sii.JobOfferData)
if j.CompanyTruck.IsNull() || j.TrailerVariant.IsNull() || j.TrailerDefinition.IsNull() || len(j.TrailerPlace) < 1 { if j.CompanyTruck.IsNull() || j.TrailerVariant.IsNull() || j.TrailerDefinition.IsNull() {
continue continue
} }
cTruck, cTV, cTD = j.CompanyTruck.Target, j.TrailerVariant.Target, j.TrailerDefinition.Target cTruck, cTV, cTD = j.CompanyTruck.Target, j.TrailerVariant.Target, j.TrailerDefinition.Target
cTP = j.TrailerPlace
break break
} }
if cTP == nil || len(cTP) < 1 { if cTruck == "" || cTV == "" || cTD == "" {
// The company did not have any valid job offers to steal from, lets search globally // The company did not have any valid job offers to steal from, lets search globally
for _, jb := range game.BlocksByClass("job_offer_data") { for _, jb := range game.BlocksByClass("job_offer_data") {
j := jb.(*sii.JobOfferData) j := jb.(*sii.JobOfferData)
if j.CompanyTruck.IsNull() || j.TrailerVariant.IsNull() || j.TrailerDefinition.IsNull() || len(j.TrailerPlace) < 1 { if j.CompanyTruck.IsNull() || j.TrailerVariant.IsNull() || j.TrailerDefinition.IsNull() {
continue continue
} }
cTruck, cTV, cTD = j.CompanyTruck.Target, j.TrailerVariant.Target, j.TrailerDefinition.Target cTruck, cTV, cTD = j.CompanyTruck.Target, j.TrailerVariant.Target, j.TrailerDefinition.Target
cTP = j.TrailerPlace
break break
} }
} }
@ -115,8 +110,8 @@ func handleAddJob(w http.ResponseWriter, r *http.Request) {
// Some static data // Some static data
FillRatio: 1, // Dunno but other jobs have it at 1, so keep for now FillRatio: 1, // Dunno but other jobs have it at 1, so keep for now
// Dunno where this data comes from, steal it from previous first job // Dunno where this data comes from, it works without it and gets own ones
TrailerPlace: cTP, TrailerPlace: []sii.Placement{},
// Too lazy to implement, just steal it too // Too lazy to implement, just steal it too
CompanyTruck: sii.Ptr{Target: cTruck}, CompanyTruck: sii.Ptr{Target: cTruck},

View file

@ -3,6 +3,7 @@ package sii
import ( import (
"bytes" "bytes"
"regexp" "regexp"
"strings"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
@ -81,7 +82,7 @@ type Ptr struct {
unit *Unit unit *Unit
} }
func (p Ptr) IsNull() bool { return p.Target == "null" || p.Target == "" } func (p Ptr) IsNull() bool { return p.Target == "null" || strings.TrimSpace(p.Target) == "" }
func (p Ptr) MarshalSII() []byte { return []byte(p.Target) } func (p Ptr) MarshalSII() []byte { return []byte(p.Target) }