Cram server and client functions together into the same file
It's how avorion does it anyway
This commit is contained in:
		
							
								
								
									
										35
									
								
								class.go
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								class.go
									
									
									
									
									
								
							@@ -167,22 +167,21 @@ func ParseClass(file string) (*Class, error) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	className := strings.TrimSpace(class.Text())
 | 
						className := strings.TrimSpace(class.Text())
 | 
				
			||||||
	// Clean up class name to be a valid Lua identifier
 | 
						// Clean up class name to be a valid Lua identifier
 | 
				
			||||||
	// Handle [Client], [Server] patterns as affixes
 | 
						// Merge [Client] and [Server] classes into single types
 | 
				
			||||||
	// Replace "Class [Client]" with "Class_Client"
 | 
						// Replace "Player [Client]" and "Player [Server]" with "Player"
 | 
				
			||||||
	// Replace "Class [Client] [Client] : Parent" with "Class_Client_Client_Parent"
 | 
						// Replace "Alliance [Client]" and "Alliance [Server]" with "Alliance"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// First, handle the inheritance part (after ":")
 | 
						// Remove inheritance part (after ":") - keep only the main class name
 | 
				
			||||||
	if strings.Contains(className, " : ") {
 | 
						if strings.Contains(className, " : ") {
 | 
				
			||||||
		parts := strings.Split(className, " : ")
 | 
							parts := strings.Split(className, " : ")
 | 
				
			||||||
		if len(parts) == 2 {
 | 
							if len(parts) == 2 {
 | 
				
			||||||
			className = parts[0] + "_" + parts[1]
 | 
								className = parts[0] // Keep only the main class name, ignore inheritance
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Handle [Client] and [Server] patterns
 | 
						// Remove [Client] and [Server] patterns to merge classes
 | 
				
			||||||
	// Replace "[Client]" with "_Client"
 | 
						className = strings.ReplaceAll(className, "[Client]", "")
 | 
				
			||||||
	className = strings.ReplaceAll(className, "[Client]", "_Client")
 | 
						className = strings.ReplaceAll(className, "[Server]", "")
 | 
				
			||||||
	className = strings.ReplaceAll(className, "[Server]", "_Server")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Remove any remaining brackets and clean up
 | 
						// Remove any remaining brackets and clean up
 | 
				
			||||||
	className = strings.ReplaceAll(className, "[", "")
 | 
						className = strings.ReplaceAll(className, "[", "")
 | 
				
			||||||
@@ -513,6 +512,12 @@ func getMethods(doc *goquery.Document, log *logger.Logger, className string) ([]
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Determine availability based on the original class name
 | 
				
			||||||
 | 
							availability := determineAvailability(originalClassName)
 | 
				
			||||||
 | 
							if availability != "" {
 | 
				
			||||||
 | 
								method.Comment = availability + " " + method.Comment
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		log.Trace("Method %s has %d parameters and %d return values", method.Name, len(method.Params), len(method.Returns))
 | 
							log.Trace("Method %s has %d parameters and %d return values", method.Name, len(method.Params), len(method.Returns))
 | 
				
			||||||
		res = append(res, method)
 | 
							res = append(res, method)
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
@@ -520,3 +525,15 @@ func getMethods(doc *goquery.Document, log *logger.Logger, className string) ([]
 | 
				
			|||||||
	log.Debug("Found %d methods", len(res))
 | 
						log.Debug("Found %d methods", len(res))
 | 
				
			||||||
	return res, nil
 | 
						return res, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// determineAvailability returns a comment indicating whether a method is available on client, server, or both
 | 
				
			||||||
 | 
					func determineAvailability(originalClassName string) string {
 | 
				
			||||||
 | 
						if strings.Contains(originalClassName, "[Client]") && strings.Contains(originalClassName, "[Server]") {
 | 
				
			||||||
 | 
							return "[Client/Server]"
 | 
				
			||||||
 | 
						} else if strings.Contains(originalClassName, "[Client]") {
 | 
				
			||||||
 | 
							return "[Client]"
 | 
				
			||||||
 | 
						} else if strings.Contains(originalClassName, "[Server]") {
 | 
				
			||||||
 | 
							return "[Server]"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return ""
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,9 +19,9 @@
 | 
				
			|||||||
    ---@return {{.Type}}{{if ne .Comment ""}} #{{truncateComment .Comment 80}}{{end}}
 | 
					    ---@return {{.Type}}{{if ne .Comment ""}} #{{truncateComment .Comment 80}}{{end}}
 | 
				
			||||||
    {{- end}}
 | 
					    {{- end}}
 | 
				
			||||||
    {{- end}}
 | 
					    {{- end}}
 | 
				
			||||||
    {{.Name}} = function(self{{if gt (len .Params) 0}}, {{range $index, $param := .Params}}{{if $index}}, {{end}}{{$param.Name}}{{end}}{{end}}) end,
 | 
					    {{.Name}} = function(self{{if gt (len .Params) 0}}, {{range $index, $param := .Params}}{{if $index}}, {{end}}{{$param.Name}}{{end}}{{end}}) end,{{if ne $method.Comment ""}} -- {{truncateComment $method.Comment 80}}{{end}}
 | 
				
			||||||
    {{- else}}
 | 
					    {{- else}}
 | 
				
			||||||
    {{.Name}} = function(self{{if gt (len .Params) 0}}, {{range $index, $param := .Params}}{{if $index}}, {{end}}{{$param.Name}}{{end}}{{end}}) end,
 | 
					    {{.Name}} = function(self{{if gt (len .Params) 0}}, {{range $index, $param := .Params}}{{if $index}}, {{end}}{{$param.Name}}{{end}}{{end}}) end,{{if ne $method.Comment ""}} -- {{truncateComment $method.Comment 80}}{{end}}
 | 
				
			||||||
    {{- end}}
 | 
					    {{- end}}
 | 
				
			||||||
    {{- if ne (plus1 $index) $n}}
 | 
					    {{- if ne (plus1 $index) $n}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user