func (resource *WorkspaceResource) objectEntity(project *core.Project, objID res.ObjectID) (entity model.GameObject) { entity.ID = fmt.Sprintf("%d/%d/%d", objID.Class, objID.Subclass, objID.Type) entity.Href = "/projects/" + project.Name() + "/objects/" + entity.ID entity.Properties = project.GameObjects().Properties(objID) return }
func getLevelTileEntity(project *core.Project, level *core.Level, x int, y int) (entity model.Tile) { entity.Href = "/projects/" + project.Name() + "/archive/levels/" + fmt.Sprintf("%d", level.ID()) + "/tiles/" + fmt.Sprintf("%d", y) + "/" + fmt.Sprintf("%d", x) entity.Properties = level.TileProperties(int(x), int(y)) return }
func (resource *WorkspaceResource) textureEntity(project *core.Project, textureID int) (entity model.Texture) { entity.ID = fmt.Sprintf("%d", textureID) entity.Href = "/projects/" + project.Name() + "/textures/" + entity.ID entity.Properties = project.Textures().Properties(textureID) for _, size := range model.TextureSizes() { entity.Images = append(entity.Images, model.Link{Rel: string(size), Href: entity.Href + "/" + string(size)}) } return }
func (resource *WorkspaceResource) getLevelEntity(project *core.Project, archive *core.Archive, levelID int) (entity model.Level) { entity.ID = fmt.Sprintf("%d", levelID) entity.Href = "/projects/" + project.Name() + "/archive/levels/" + entity.ID level := archive.Level(levelID) entity.Properties = level.Properties() entity.Links = []model.Link{} entity.Links = append(entity.Links, model.Link{Rel: "tiles", Href: entity.Href + "/tiles/{y}/{x}"}) if !entity.Properties.CyberspaceFlag { entity.Links = append(entity.Links, model.Link{Rel: "textures", Href: entity.Href + "/textures"}) } return }