You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`BUCKET`: S3 bucket (if unset, uses local `./storage`)
36
+
-`GODOT4_EDITOR`: Path to Godot (default: `/usr/local/bin/godot` in containers)
66
37
67
38
## Architecture
68
39
69
-
### Core Components
40
+
### Dependency Injection Pattern
70
41
71
-
1.**Service Layer** (`src/service.ts`): Main entry point that wires components and starts the processing loop based on `PROCESS_METHOD`
42
+
Uses `@well-known-components` framework. Components defined in `src/components.ts` with interfaces in `src/types.ts`. All adapters implement standard interfaces allowing swap between AWS services and local mocks via environment variables.
72
43
73
-
2.**Runners** (`src/runners/`): Different processing pipelines
74
-
-`godot-optimizer/`: Asset optimization using Godot engine
75
-
-`minimap-generator/`: Scene minimap generation
76
-
-`crdt-runner/`: CRDT file generation from deployments
77
-
-`imposter-runner/`: Imposter mesh generation
44
+
### Core Structure
78
45
79
-
3.**Adapters** (`src/adapters/`): External service integrations
80
-
-`sqs.ts`: AWS SQS queue consumer/publisher
81
-
-`storage.ts`: S3 or local file storage
82
-
-`sns.ts`: AWS SNS notifications
83
-
-`runner.ts`: Task runner management
84
-
85
-
4.**Components** (`src/components.ts`): Dependency injection setup using well-known-components pattern
46
+
-**`src/service.ts`**: Main processing loop, routes messages to runners based on `PROCESS_METHOD`
docker run --rm --entrypoint /bin/bash -it godot-optimizer:latest
143
-
144
-
# Check Godot installation
145
-
docker run --rm --entrypoint /usr/local/bin/godot godot-optimizer:latest --version
146
-
```
74
+
## Entity ID Resolution
147
75
148
-
### Working with Entity IDs
149
-
The service supports both direct entity IDs and pointer resolution. If an entity ID contains a comma, it's treated as a pointer and resolved via the content server API.
76
+
The service supports direct entity IDs and pointer resolution. If entity ID contains a comma, it's treated as a pointer and resolved via content server API.
0 commit comments