forked from kaverti/website
Finishing off Marketplace for release
This commit is contained in:
parent
602754bf36
commit
e004b31fa6
|
@ -72,3 +72,7 @@ config/config.json
|
|||
*.sln
|
||||
>>>>>>> frontend
|
||||
frontend/dist1/
|
||||
rendering/global
|
||||
rendering/global/5c2f8896a2b7169d4e253944f3b733e2.png
|
||||
rendering/global/81df1ac4d303319a79db19f45c5c475c.png
|
||||
rendering/global/d24b3e361c4fc6263e0276f52ada9694.png
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
"vue-matomo": "^3.14.0-0",
|
||||
"vue-router": "^2.7.0",
|
||||
"vue-router-sitemap": "^0.0.4",
|
||||
"vue-swatches": "^2.1.0",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuejs-paginator": "^2.0.2",
|
||||
"vuetify": "^2.3.8",
|
||||
|
|
|
@ -753,6 +753,7 @@ blockquote {
|
|||
<router-link to='/inventory' class="navbar-item">Inventory</router-link>
|
||||
<router-link to='/transactions' class="navbar-item">Transactions</router-link>
|
||||
<router-link to='/friends' class="navbar-item">Friends</router-link>
|
||||
<router-link to='/character' class="navbar-item">Character</router-link>
|
||||
<router-link class="navbar-item is-hidden-desktop" to='/notifications'>Notifications</router-link>
|
||||
<router-link to='/admin' class="navbar-item" v-if='$store.state.admin'>Admin Panel</router-link>
|
||||
<router-link class="navbar-item is-active" to='/premium'>Upgrade</router-link>
|
||||
|
|
|
@ -11,6 +11,30 @@
|
|||
margin-top: 0.5rem;
|
||||
word-break: break-all;
|
||||
}
|
||||
.zoom_sp {
|
||||
transition: transform .2s;
|
||||
}
|
||||
.zoom_sp:hover {
|
||||
transform: scale(1.2);
|
||||
cursor: hand;
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
|
||||
}
|
||||
|
||||
.wrapper > div {
|
||||
border: 1px solid #000000;
|
||||
border-radius: 0px;
|
||||
padding: 1px;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
.wrapper {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(15, 1fr);
|
||||
grid-gap: 12px;
|
||||
}
|
||||
</style>
|
||||
<template>
|
||||
<main>
|
||||
|
@ -20,12 +44,10 @@
|
|||
<div class="columns is-vcentered is-mobile">
|
||||
<div class="column"><h1 class="title">Your current avatar</h1></div>
|
||||
</div>
|
||||
<figure class="image is-250">
|
||||
<img width="250px"
|
||||
<img width=60%
|
||||
:src = '"http://localhost/user/avatars/full/" + this.user.picture + ".png"'
|
||||
|
||||
>
|
||||
</figure>
|
||||
/>
|
||||
<br>
|
||||
<menu-button
|
||||
v-if='$store.state'
|
||||
|
@ -40,6 +62,56 @@
|
|||
Problems with your avatar?
|
||||
</button>
|
||||
</menu-button>
|
||||
<br>
|
||||
Head:<br>
|
||||
<v-swatches
|
||||
v-model="user.headColor"
|
||||
|
||||
show-fallback
|
||||
|
||||
popover-x="left"
|
||||
></v-swatches><br>
|
||||
Body:<br>
|
||||
<v-swatches
|
||||
v-model="user.color"
|
||||
|
||||
show-fallback
|
||||
|
||||
popover-x="left"
|
||||
></v-swatches><br>
|
||||
Left arm:<br>
|
||||
<v-swatches
|
||||
v-model="user.leftArmColor"
|
||||
|
||||
show-fallback
|
||||
|
||||
popover-x="left"
|
||||
></v-swatches><br>
|
||||
Right arm:<br>
|
||||
<v-swatches
|
||||
v-model="user.rightArmColor"
|
||||
|
||||
show-fallback
|
||||
|
||||
popover-x="left"
|
||||
></v-swatches><br>
|
||||
Left leg:<br>
|
||||
<v-swatches
|
||||
v-model="user.leftLegColor"
|
||||
|
||||
show-fallback
|
||||
|
||||
popover-x="left"
|
||||
></v-swatches><br>
|
||||
Right leg:<br>
|
||||
<v-swatches
|
||||
v-model="user.rightLegColor"
|
||||
|
||||
show-fallback
|
||||
|
||||
popover-x="left"
|
||||
></v-swatches><br>
|
||||
<br><b-button class="is-info" @click="colorChanges">Save Changes</b-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column is-6 box">
|
||||
|
@ -55,9 +127,8 @@
|
|||
class='columns is-multiline'
|
||||
v-if='users.length'
|
||||
:loading='loading'
|
||||
@loadNext='fetchData'
|
||||
>
|
||||
<div class="column is-4" v-for='user in users' :key='"user-row" + user.name' v-show="user && !user.hidden"><div class="card">
|
||||
<div class="column is-4" v-for='user in users' :key='"user-row" + user.Item.id' v-show="user.Item.ItemCategoryId === tab"><div class="card">
|
||||
<div class="card-content">
|
||||
<div class="media-left">
|
||||
<figure class="image is-128x128">
|
||||
|
@ -79,24 +150,28 @@
|
|||
<div class="content limit">
|
||||
{{user.Item.description | truncate(70)}}
|
||||
</div>
|
||||
<b-button @click="apply(user)">Apply</b-button>
|
||||
<b-button @click="remove(user)">Remove</b-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</scroll-load>
|
||||
<p name='fade' mode='out-in'>
|
||||
<center><loading-message key='loading' v-if='loading'></loading-message></center>
|
||||
<center><div class='overlay_message' v-if='!loading && !users.length'>
|
||||
You have no Marketplace items
|
||||
</div></center></p>
|
||||
</div>
|
||||
<p name='fade' mode='out-in'>
|
||||
<center><loading-message key='loading' v-if='loading'></loading-message></center>
|
||||
<center><div class='overlay_message' v-if='!loading && !users.length'>
|
||||
You have no Marketplace items
|
||||
</div></center></p>
|
||||
</div>
|
||||
</main>
|
||||
</template>
|
||||
<script>
|
||||
import LoadingMessage from '../LoadingMessage';
|
||||
import ScrollLoad from '../ScrollLoad';
|
||||
import MenuButton from '../MenuButton'
|
||||
import TabView from '../TabView'
|
||||
import throttle from 'lodash.throttle';
|
||||
import 'vue-swatches/dist/vue-swatches.css'
|
||||
import VSwatches from 'vue-swatches'
|
||||
import AjaxErrorHandler from '../../assets/js/errorHandler';
|
||||
|
||||
export default {
|
||||
|
@ -104,7 +179,9 @@ export default {
|
|||
components: {
|
||||
LoadingMessage,
|
||||
ScrollLoad,
|
||||
TabView
|
||||
TabView,
|
||||
MenuButton,
|
||||
VSwatches
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
@ -134,15 +211,93 @@ export default {
|
|||
}
|
||||
},
|
||||
methods: {
|
||||
colorChanges () {
|
||||
this.axios
|
||||
.put(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'avatar/colors', {
|
||||
headColor: this.user.headColor,
|
||||
color: this.user.color,
|
||||
leftArmColor: this.user.leftArmColor,
|
||||
rightArmColor: this.user.rightArmColor,
|
||||
leftLegColor: this.user.leftLegColor,
|
||||
rightLegColor: this.user.rightLegColor
|
||||
})
|
||||
.then(() => {
|
||||
this.axios
|
||||
.post(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'users/render/refresh', {
|
||||
})
|
||||
.then(() => {
|
||||
this.resetFetchData()
|
||||
this.refreshAvatar.loading = false
|
||||
})
|
||||
.catch(e => {
|
||||
this.refreshAvatar.loading = false
|
||||
|
||||
AjaxErrorHandler(this.$store)(e, error => {
|
||||
this.refreshAvatar.error = error.message
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
remove (user) {
|
||||
this.axios
|
||||
.put(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'marketplace/remove/' + user.Item.id, {
|
||||
})
|
||||
.then(() => {
|
||||
this.axios
|
||||
.post(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'users/render/refresh', {
|
||||
})
|
||||
.then(() => {
|
||||
this.resetFetchData()
|
||||
this.refreshAvatar.loading = false
|
||||
})
|
||||
.catch(e => {
|
||||
this.refreshAvatar.loading = false
|
||||
|
||||
AjaxErrorHandler(this.$store)(e, error => {
|
||||
this.refreshAvatar.error = error.message
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
apply (user) {
|
||||
this.axios
|
||||
.put(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'marketplace/apply/' + user.Item.id, {
|
||||
})
|
||||
.then(() => {
|
||||
this.axios
|
||||
.post(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'users/render/refresh', {
|
||||
})
|
||||
.then(() => {
|
||||
this.resetFetchData()
|
||||
this.refreshAvatar.loading = false
|
||||
})
|
||||
.catch(e => {
|
||||
this.refreshAvatar.loading = false
|
||||
|
||||
AjaxErrorHandler(this.$store)(e, error => {
|
||||
this.refreshAvatar.error = error.message
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(e => {
|
||||
this.refreshAvatar.loading = false
|
||||
|
||||
AjaxErrorHandler(this.$store)(e, error => {
|
||||
this.refreshAvatar.error = error.message
|
||||
})
|
||||
})
|
||||
},
|
||||
RefreshAvatar () {
|
||||
this.axios
|
||||
.post(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'users/render/refresh', {
|
||||
})
|
||||
.then(() => {
|
||||
this.refreshAvatar.loading = false
|
||||
this.resetFetchData()
|
||||
})
|
||||
.catch(e => {
|
||||
this.refreshAvatar.loading = false
|
||||
this.resetFetchData()
|
||||
|
||||
AjaxErrorHandler(this.$store)(e, error => {
|
||||
this.refreshAvatar.error = error.message
|
||||
|
@ -166,11 +321,7 @@ export default {
|
|||
})
|
||||
if(this.offset === null) return;
|
||||
|
||||
let url = process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'inventory/' + this.tab + `?
|
||||
sort=${this.tableSort.column}
|
||||
&order=${this.tableSort.sort}
|
||||
&offset=${this.offset}
|
||||
`;
|
||||
let url = process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'inventory'
|
||||
if(this.roleSelected.length === 1) {
|
||||
url += '&role=' + this.roleSelected[0];
|
||||
}
|
||||
|
@ -223,13 +374,6 @@ export default {
|
|||
},
|
||||
mounted () {
|
||||
this.fetchData();
|
||||
},
|
||||
watch: {
|
||||
tableSort: 'resetFetchData',
|
||||
tab: 'resetFetchData',
|
||||
search: throttle(function () {
|
||||
this.resetFetchData();
|
||||
}, 200)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
<div class="card-content">
|
||||
<div class="media-left">
|
||||
<figure class="image is-128x128">
|
||||
<img v-if="user.picture !== 'default' && user.approved" width="128px" height="128px" :src="user.picture">
|
||||
<img v-if="user.picture !== 'default' && user.approved" width="128px" height="128px" :src="'http://localhost/marketplace/avatars/' + user.previewFile + '.png'">
|
||||
<img v-if="user.picture === 'default' && $store.state.theme === 'light' && user.approved" width="128px" height="128px" src="http://localhost/teams/unknown-light.png">
|
||||
<img v-if="user.picture === 'default' && $store.state.theme === 'dark' && user.approved" width="128px" height="128px" src="http://localhost/teams/unknown-dark.png">
|
||||
<img v-if="$store.state.theme === 'light' && !user.approved" width="128px" height="128px" src="http://localhost/teams/pending-light.png">
|
||||
|
|
|
@ -1,61 +1,111 @@
|
|||
<template>
|
||||
<main>
|
||||
<div class="section">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div v-if="stage === 1">
|
||||
<center><h1>Hi, what asset would you like to create?</h1>
|
||||
<b-button @click="createType = 'hat'; stage = 2" v-if="$store.state.admin" class="is-large">
|
||||
Hat
|
||||
</b-button>
|
||||
|
||||
<b-button @click="createType = 'face'; stage = 2" v-if="$store.state.admin" class="is-large">
|
||||
Face
|
||||
</b-button>
|
||||
|
||||
<b-button @click="createType = 'shirt'; stage = 2" class="is-large">
|
||||
Shirt
|
||||
</b-button>
|
||||
|
||||
<b-button @click="createType = 'pants'; stage = 2" class="is-large">
|
||||
Pants
|
||||
</b-button>
|
||||
</center>
|
||||
</div>
|
||||
<div v-if="stage === 2">
|
||||
<b-button @click="goBack()">Go back</b-button>
|
||||
<center>
|
||||
<h1>
|
||||
Upload {{createType}}
|
||||
</h1>
|
||||
<center>
|
||||
<div class="section">
|
||||
<div class="column is-6">
|
||||
<div class="box">
|
||||
<div v-if="stage === 1">
|
||||
<center><h1>Hi, what asset would you like to create?</h1>
|
||||
<b-button @click="createType = 0; stage = 2" v-if="$store.state.admin" class="is-large">
|
||||
Hat
|
||||
</b-button>
|
||||
|
||||
<b-button @click="createType = 1; stage = 2" v-if="$store.state.admin" class="is-large">
|
||||
Face
|
||||
</b-button>
|
||||
|
||||
<b-button @click="createType = 2; stage = 2" class="is-large">
|
||||
Shirt
|
||||
</b-button>
|
||||
|
||||
<b-button @click="createType = 3; stage = 2" class="is-large">
|
||||
Pants
|
||||
</b-button>
|
||||
</center>
|
||||
</div>
|
||||
<div v-if="stage === 2">
|
||||
<b-button @click="goBack()">Go back</b-button><br>
|
||||
<h1 v-if="createType === 0">
|
||||
Uploading a hat
|
||||
</h1>
|
||||
<h1 v-if="createType === 1">
|
||||
Uploading a face
|
||||
</h1>
|
||||
<h1 v-if="createType === 2">
|
||||
Uploading a shirt
|
||||
</h1>
|
||||
<h1 v-if="createType === 3">
|
||||
Uploading pants
|
||||
</h1>
|
||||
<b-button tag="a" :href="'https://cdn.kaverti.com/templates/' + createType + 'Template.png'">Download template</b-button><br>
|
||||
Name:
|
||||
<b-input :value="$store.state.username + '\'s ' + createType"
|
||||
v-model="item.name"
|
||||
maxlength="30">
|
||||
</b-input>
|
||||
Description:
|
||||
<b-input v-model="item.description" maxlength="150" type="textarea">
|
||||
|
||||
</b-input>
|
||||
Options:<br>
|
||||
<b-switch v-model="item.limited" v-if="$store.state.admin">
|
||||
Limited
|
||||
</b-switch>
|
||||
<div v-if="item.limited && $store.state.admin">
|
||||
Quantity allowed (0 for unlimited):
|
||||
<b-numberinput v-model="item.quantity"></b-numberinput>
|
||||
</div>
|
||||
<br>
|
||||
<b-switch v-model="item.onSale">
|
||||
On sale
|
||||
</b-switch>
|
||||
<br>
|
||||
<div v-if="item.onSale">
|
||||
On sale price:
|
||||
<b-input v-model="item.onSalePrice" v-if="item.onSale"></b-input>
|
||||
<br>
|
||||
</div>
|
||||
<br>
|
||||
Price:
|
||||
<b-input v-model="item.price"></b-input>
|
||||
<br>
|
||||
<b-field class="file">
|
||||
<b-upload v-model="file" expanded>
|
||||
<b-upload v-model="item.file" expanded>
|
||||
<a class="button is-primary is-fullwidth">
|
||||
<b-icon icon="upload"></b-icon>
|
||||
<span>{{ file.name || "Click to upload"}}</span>
|
||||
<span>{{ item.file.name || "Upload file"}}</span>
|
||||
</a>
|
||||
</b-upload>
|
||||
</b-field>
|
||||
<b-button>Submit</b-button>
|
||||
</center>
|
||||
<b-button @click="submitItem" :loading="loading">Submit</b-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</center>
|
||||
</main>
|
||||
</template>
|
||||
<script>
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import AjaxErrorHandler from "@/assets/js/errorHandler";
|
||||
|
||||
export default {
|
||||
name: 'MarketplaceCreate',
|
||||
data() {
|
||||
return {
|
||||
createType: null,
|
||||
createType: 0,
|
||||
stage: 1,
|
||||
file: '',
|
||||
dropFiles: null
|
||||
loading: false,
|
||||
item: {
|
||||
file: '',
|
||||
dropFiles: null,
|
||||
name: 'Item',
|
||||
limited: false,
|
||||
onSale: false,
|
||||
onSalePrice: 0,
|
||||
quantity: 0,
|
||||
price: 100
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -64,6 +114,23 @@ export default {
|
|||
this.stage = 1
|
||||
this.file = null
|
||||
this.dropFiles = null
|
||||
},
|
||||
submitItem() {
|
||||
this.loading = true
|
||||
const data = new FormData();
|
||||
|
||||
data.append('name', this.item.name);
|
||||
data.append('price', this.item.price);
|
||||
data.append('image', this.item.file);
|
||||
|
||||
this.axios.post(process.env.VUE_APP_APIENDPOINT + process.env.VUE_APP_APIVERSION + '/' + 'marketplace/upload/' + this.createType, data)
|
||||
.then((res) => {
|
||||
this.loading = false
|
||||
this.$router.push('/m/' + res.data.id)
|
||||
}).catch((e) => {
|
||||
this.loading = false
|
||||
AjaxErrorHandler(this.$store)(e)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<div class="columns is-mobile is-multiline">
|
||||
<div class="column is-3">
|
||||
<figure class="image is-512 is-centered">
|
||||
<img v-if="user.picture !== 'default' && user.approved" width="512px" height="512px" :src="user.picture">
|
||||
<img v-if="user.picture !== 'default' && user.approved" width="128px" height="128px" :src="'http://localhost/marketplace/avatars/' + user.previewFile + '.png'">
|
||||
<img v-if="user.picture === 'default' && $store.state.theme === 'light' && user.approved" width="512px" height="512px" src="http://localhost/teams/unknown-light.png">
|
||||
<img v-if="user.picture === 'default' && $store.state.theme === 'dark' && user.approved" width="512px" height="512px" src="http://localhost/teams/unknown-dark.png">
|
||||
<img v-if="$store.state.theme === 'light' && !user.approved" width="512px" height="512px" src="http://localhost/teams/pending-light.png">
|
||||
|
@ -48,6 +48,7 @@
|
|||
<b-button @click="buyItem()" v-if="!purchased && !loading && !failStatus" style="float: right;">Buy item</b-button>
|
||||
<b-button disabled v-if="loading && !failStatus" style="float: right;">Loading purchase status</b-button>
|
||||
<b-button disabled v-if="purchased && !loading && !failStatus" style="float: right;">Item Owned</b-button>
|
||||
<b-button v-if="user.UserId === $store.state.UserId" style="float: right;">Edit Item</b-button>
|
||||
<b-button disabled v-if="failStatus" style="float: right;">Failed to load status</b-button>
|
||||
<b-tooltip v-if="user.limited && purchased && !loading && !failStatus" style="float: right;" label="You own this item, if you don't want it anymore, you can sell it and put it on the market, this is only available for Limited Edition items">
|
||||
<b-button @click="sellItem()" style="float: right;">Sell item</b-button>
|
||||
|
|
|
@ -10192,6 +10192,11 @@ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
|
|||
hash-sum "^1.0.2"
|
||||
loader-utils "^1.0.2"
|
||||
|
||||
vue-swatches@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/vue-swatches/-/vue-swatches-2.1.0.tgz#65221b4589ebb1ecd04a93bf82bfc569220e2724"
|
||||
integrity sha512-JbSomg1penZvgHL24blA3PDgji7LPVGGSFlMo7F+jYVcxooemadI3gkMwFJVIPMikG5g160Mq+Lbph/lqFjzzw==
|
||||
|
||||
vue-template-compiler@^2.6.11:
|
||||
version "2.6.11"
|
||||
resolved "https://npm.open-registry.dev/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080"
|
||||
|
|
|
@ -47,6 +47,10 @@ let Errors = {
|
|||
'Only admins can perform this action in the Marketplace',
|
||||
401
|
||||
],
|
||||
unowned: [
|
||||
'Marketplace item is unowned or doesn\'t exist',
|
||||
400
|
||||
],
|
||||
needToBeFriend: [
|
||||
'You need to be friends with this person to do this action.',
|
||||
401
|
||||
|
|
|
@ -11,18 +11,13 @@ module.exports = (sequelize, DataTypes) => {
|
|||
type: DataTypes.STRING(191),
|
||||
validate: {
|
||||
len: {
|
||||
args: [3, 16],
|
||||
msg: 'Item name must be between 3 and 16 characters'
|
||||
args: [3, 30],
|
||||
msg: 'Item name must be between 3 and 30 characters'
|
||||
},
|
||||
isString(val) {
|
||||
if (typeof val !== 'string') {
|
||||
throw new sequelize.ValidationError('Item name must be a string')
|
||||
}
|
||||
},
|
||||
containsNoBlankCharacters(val) {
|
||||
if (/\s/g.test(val)) {
|
||||
throw new sequelize.ValidationError('Item name can\'t contain blank characters')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -129,6 +124,12 @@ module.exports = (sequelize, DataTypes) => {
|
|||
},
|
||||
description: {
|
||||
type: DataTypes.TEXT,
|
||||
validate: {
|
||||
len: {
|
||||
args: [0, 150],
|
||||
msg: 'Marketplace description must be under 150 characters.'
|
||||
}
|
||||
},
|
||||
default: "No Marketplace item description provided"
|
||||
}
|
||||
}, {
|
||||
|
|
|
@ -165,27 +165,69 @@ module.exports = (sequelize, DataTypes) => {
|
|||
},
|
||||
bodyColor: {
|
||||
type: DataTypes.STRING(191),
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
validate: {
|
||||
validateHex: function(value) {
|
||||
if(!/^#([0-9a-fA-F]{3}){1,2}$/i.test(value)) {
|
||||
throw new Error('Color hex format error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
headColor: {
|
||||
type: DataTypes.STRING(191),
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
validate: {
|
||||
validateHex: function(value) {
|
||||
if(!/^#([0-9a-fA-F]{3}){1,2}$/i.test(value)) {
|
||||
throw new Error('Color hex format error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
leftLegColor: {
|
||||
type: DataTypes.STRING(191),
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
validate: {
|
||||
validateHex: function(value) {
|
||||
if(!/^#([0-9a-fA-F]{3}){1,2}$/i.test(value)) {
|
||||
throw new Error('Color hex format error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
rightLegColor: {
|
||||
type: DataTypes.STRING(191),
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
validate: {
|
||||
validateHex: function(value) {
|
||||
if(!/^#([0-9a-fA-F]{3}){1,2}$/i.test(value)) {
|
||||
throw new Error('Color hex format error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
leftArmColor: {
|
||||
type: DataTypes.STRING(191),
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
validate: {
|
||||
validateHex: function(value) {
|
||||
if(!/^#([0-9a-fA-F]{3}){1,2}$/i.test(value)) {
|
||||
throw new Error('Color hex format error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
rightArmColor: {
|
||||
type: DataTypes.STRING(191),
|
||||
defaultValue: false
|
||||
defaultValue: false,
|
||||
validate: {
|
||||
validateHex: function(value) {
|
||||
if(!/^#([0-9a-fA-F]{3}){1,2}$/i.test(value)) {
|
||||
throw new Error('Color hex format error')
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
emailVerified: {
|
||||
type: DataTypes.BOOLEAN,
|
||||
|
@ -282,6 +324,10 @@ module.exports = (sequelize, DataTypes) => {
|
|||
User.hasMany(models.Transaction)
|
||||
User.hasMany(models.AuditLog)
|
||||
User.hasMany(models.Item)
|
||||
User.hasMany(models.Item, {as: 'pants'})
|
||||
User.hasMany(models.Item, {as: 'shirt'})
|
||||
User.hasMany(models.Item, {as: 'hat'})
|
||||
User.hasMany(models.Item, {as: 'face'})
|
||||
User.belongsToMany(models.Conversation, { through: models.UserConversation })
|
||||
User.belongsToMany(models.Ip, { through: 'UserIp' })
|
||||
}
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
|
@ -14,26 +14,26 @@ def hex_to_rgb(value):
|
|||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#DDE6E8')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#DDE6E8')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#A463BF')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#fc6f90')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#F39C19')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#3D556E')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#C0382B')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/faces/defaultFace.png')
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/6ca14f5e8e132cd0c2337bb3f3f2699b.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/shirts/5.png')
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/pants/6.png')
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
|
@ -42,5 +42,5 @@ for obj in bpy.data.objects:
|
|||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/user/avatars/full/510ca2302751526312d3c37448ecd4ce.png'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/user/avatars/full/9e72f3a5ce69ce1487320f035e2fb334.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#1CA085')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/437ee6d92e64235e803edb1e7af59cb0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars437ee6d92e64235e803edb1e7af59cb0.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#1CA085')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/5a1867cc4b67a77887b912ac1e3b997c.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars5a1867cc4b67a77887b912ac1e3b997c.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#1CA085')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/a420b77614a3b7a1598a782804b60014.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatarsa420b77614a3b7a1598a782804b60014.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/223fe4e31e5dac63cd3c6084edc956fe.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/223fe4e31e5dac63cd3c6084edc956fe.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/223fe4e31e5dac63cd3c6084edc956fe.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/223fe4e31e5dac63cd3c6084edc956fe.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/223fe4e31e5dac63cd3c6084edc956fe.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/223fe4e31e5dac63cd3c6084edc956fe.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/223fe4e31e5dac63cd3c6084edc956fe.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/223fe4e31e5dac63cd3c6084edc956fe.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/223fe4e31e5dac63cd3c6084edc956fe.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/223fe4e31e5dac63cd3c6084edc956fe.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/4759e9bf29a09995e6a9b92592fd02aa.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/20a14ec9ff2c56d6296c97486911af8b.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/4759e9bf29a09995e6a9b92592fd02aa.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/8f569a91f539c337ef0a8bbf7532b8d5.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/4759e9bf29a09995e6a9b92592fd02aa.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/c2f794aa29b8d2b80945984993f63d7c.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/a2335742b25ea327d2451fd5d493f0c2.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/76f126a3a00b1e5bc610de50c4ad73de.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/defaultFace.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/def3dc75b1a6c143813edfcdae7eb78e.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/beb5769f3f5f3af0df1ae9138d4468c9.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/95c056e25a5d2357e56c54b664d283bf.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/6d3351fd04ad5048b6e4f6cc39d9a8b7.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -0,0 +1,46 @@
|
|||
import bpy
|
||||
def hex_to_rgb(value):
|
||||
gamma = 2.05
|
||||
value = value.lstrip('#')
|
||||
lv = len(value)
|
||||
fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
|
||||
r = pow(fin[0] / 255, gamma)
|
||||
g = pow(fin[1] / 255, gamma)
|
||||
b = pow(fin[2] / 255, gamma)
|
||||
fin.clear()
|
||||
fin.append(r)
|
||||
fin.append(g)
|
||||
fin.append(b)
|
||||
return tuple(fin)
|
||||
bpy.ops.wm.open_mainfile(filepath='C:/Users/matth/Documents/GitHub/website/rendering/avatar.blend')
|
||||
bpy.data.objects['Head'].select = True
|
||||
bpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Arm'].select = True
|
||||
bpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Torso'].select = True
|
||||
bpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Arm'].select = True
|
||||
bpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Left Leg'].select = True
|
||||
bpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
bpy.data.objects['Right Leg'].select = True
|
||||
bpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')
|
||||
|
||||
face_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/6ca14f5e8e132cd0c2337bb3f3f2699b.png')
|
||||
bpy.data.textures['Face'].image = face_Image
|
||||
shirt_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['Shirt'].image = shirt_Image
|
||||
bpy.data.textures['ShirtR'].image = shirt_Image
|
||||
bpy.data.textures['ShirtL'].image = shirt_Image
|
||||
pants_Image = bpy.data.images.load(filepath = 'C:/Users/matth/Documents/GitHub/website/rendering/global/0.png')
|
||||
bpy.data.textures['PantsR'].image = pants_Image
|
||||
bpy.data.textures['PantsL'].image = pants_Image
|
||||
for obj in bpy.data.objects:
|
||||
obj.select = False
|
||||
bpy.ops.object.select_all(action='SELECT')
|
||||
bpy.ops.view3d.camera_to_view_selected()
|
||||
scene = bpy.context.scene
|
||||
scene.render.image_settings.file_format = 'PNG'
|
||||
scene.render.filepath = 'C:/xampp21/htdocs/marketplace/avatars/24ae77717917ed178bffc63c4141996a.png'
|
||||
bpy.ops.render.render(write_still = 1)
|
|
@ -11,16 +11,45 @@ const limiter = rateLimit({
|
|||
max: 3,
|
||||
message: "You are being rate limited"
|
||||
});
|
||||
let { User, Sequelize } = require('../models')
|
||||
let { User, Sequelize, Item } = require('../models')
|
||||
const Errors = require('../lib/errors')
|
||||
var randomString = (Math.random().toString(36).substring(2))
|
||||
router.post("/refresh", limiter, auth, async(req, res, next) => {
|
||||
let user = await User.findOne({ where: {
|
||||
id: req.userData.UserId
|
||||
}})
|
||||
}
|
||||
})
|
||||
if(!user) {
|
||||
throw Errors.unknown
|
||||
}
|
||||
if(user.pantsId) {
|
||||
var pantsModel = await Item.findOne({
|
||||
where: {
|
||||
id: user.pantsId
|
||||
}
|
||||
})
|
||||
}
|
||||
if(user.hatId) {
|
||||
var hatModel = await Item.findOne({
|
||||
where: {
|
||||
id: user.hatId
|
||||
}
|
||||
})
|
||||
}
|
||||
if(user.faceId) {
|
||||
var faceModel = await Item.findOne({
|
||||
where: {
|
||||
id: user.faceId
|
||||
}
|
||||
})
|
||||
}
|
||||
if(user.shirtId) {
|
||||
var shirtModel = await Item.findOne({
|
||||
where: {
|
||||
id: user.shirtId
|
||||
}
|
||||
})
|
||||
}
|
||||
console.log(user)
|
||||
let rootPathRender = "C:/Users/matth/Documents/GitHub/website/";
|
||||
let img2 = cryptoRandomString({length: 32})
|
||||
|
@ -28,20 +57,24 @@ router.post("/refresh", limiter, auth, async(req, res, next) => {
|
|||
var blendFilePath = rootPathRender + "rendering/avatar.blend";
|
||||
var imageSavePath = "C:/xampp21/htdocs/user/avatars/full/" + img + ".png";
|
||||
var pythonFilePath = "rendering/usercontent/"+req.userData.UserId+".py";
|
||||
var faceFilePath = rootPathRender + "rendering/faces/defaultFace.png";
|
||||
if(user.shirtId) {
|
||||
var shirtFilePath = rootPathRender + "rendering/shirts/" + user.shirtId + ".png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
if(user.faceId) {
|
||||
var faceFilePath = rootPathRender + "rendering/global/" + faceModel.sourceFile + ".png";
|
||||
} else {
|
||||
var shirtFilePath = rootPathRender + "rendering/shirts/0.png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
var faceFilePath = rootPathRender + "rendering/global/defaultFace.png";
|
||||
}
|
||||
if(user.shirtId) {
|
||||
var shirtFilePath = rootPathRender + "rendering/global/" + shirtModel.sourceFile + ".png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
} else {
|
||||
var shirtFilePath = rootPathRender + "rendering/global/0.png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
}
|
||||
if(user.pantsId) {
|
||||
var pantsFilePath = rootPathRender + "rendering/pants/" + user.pantsId + ".png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
var pantsFilePath = rootPathRender + "rendering/global/" + pantsModel.sourceFile + ".png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
} else {
|
||||
var pantsFilePath = rootPathRender + "rendering/pants/0.png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
var pantsFilePath = rootPathRender + "rendering/global/0.png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
}
|
||||
if(user.hatId) {
|
||||
var hatFilePath = rootPathRender + "rendering/hats/" + user.hatId + ".obj"
|
||||
var hat = "hat_import = bpy.ops.import_scene.obj(filepath='"+hatFilePath+"')\nhat = bpy.context.selected_objects[0]\nbpy.context.selected_objects[0].data.name = 'hat'\nbpy.context.selected_objects[0].name = 'hat'\nhat_material = bpy.data.materials.new('hat')\nhat_material.diffuse_shader = 'LAMBERT'\nhat.active_material = hat_material\nhat_image = bpy.data.images.load(filepath = '" + rootPathRender + "rendering/hats/"+user.hatID+".png')\nhat_texture = bpy.data.textures.new('ColorTex', type = 'IMAGE')\nhat_texture.image = hat_image\nhat_add = bpy.data.objects['hat'].active_material.texture_slots.add()\nhat_add.texture = hat_texture";
|
||||
var hatFilePath = rootPathRender + "rendering/hats/" + hatModel.sourceFile + ".obj"
|
||||
var hat = "hat_import = bpy.ops.import_scene.obj(filepath='"+hatFilePath+"')\nhat = bpy.context.selected_objects[0]\nbpy.context.selected_objects[0].data.name = 'hat'\nbpy.context.selected_objects[0].name = 'hat'\nhat_material = bpy.data.materials.new('hat')\nhat_material.diffuse_shader = 'LAMBERT'\nhat.active_material = hat_material\nhat_image = bpy.data.images.load(filepath = '" + rootPathRender + "rendering/hats/"+hatModel.sourceFile+".png')\nhat_texture = bpy.data.textures.new('ColorTex', type = 'IMAGE')\nhat_texture.image = hat_image\nhat_add = bpy.data.objects['hat'].active_material.texture_slots.add()\nhat_add.texture = hat_texture";
|
||||
} else {
|
||||
var hat = ''
|
||||
}
|
||||
|
@ -52,7 +85,7 @@ router.post("/refresh", limiter, auth, async(req, res, next) => {
|
|||
var headColor = "bpy.data.objects['Head'].select = True\nbpy.data.materials['Head'].diffuse_color = hex_to_rgb('"+user.headColor+"')\nbpy.data.materials['Face'].diffuse_color = hex_to_rgb('"+user.headColor+"')";
|
||||
var leftArmColor = "bpy.data.objects['Left Arm'].select = True\nbpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('"+user.leftArmColor+"')";
|
||||
var rightArmColor = "bpy.data.objects['Right Arm'].select = True\nbpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('"+user.rightArmColor+"')";
|
||||
var bodyColor = "bpy.data.objects['Torso'].select = True\nbpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('"+user.bodyColor+"')";
|
||||
var bodyColor = "bpy.data.objects['Torso'].select = True\nbpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('"+user.color+"')";
|
||||
var leftLegColor = "bpy.data.objects['Left Leg'].select = True\nbpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('"+user.leftLegColor+"')";
|
||||
var rightLegColor = "bpy.data.objects['Right Leg'].select = True\nbpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('"+user.rightLegColor+"')";
|
||||
var colors = headColor+"\n"+leftArmColor+"\n"+bodyColor+"\n"+rightArmColor+"\n"+leftLegColor+"\n"+rightLegColor;
|
||||
|
@ -81,4 +114,24 @@ router.post("/refresh", limiter, auth, async(req, res, next) => {
|
|||
user.update({picture: img})
|
||||
});
|
||||
|
||||
router.put('/colors', auth, async (req, res, next) => {
|
||||
try {
|
||||
let user = await User.findOne({
|
||||
where: {id: req.userData.UserId}
|
||||
})
|
||||
if(user) {
|
||||
user.update({
|
||||
color: req.body.color,
|
||||
headColor: req.body.headColor,
|
||||
leftArmColor: req.body.leftArmColor,
|
||||
rightArmColor: req.body.rightArmColor,
|
||||
leftLegColor: req.body.leftLegColor,
|
||||
rightLegColor: req.body.rightLegColor,
|
||||
})
|
||||
res.json({success: true})
|
||||
} else {
|
||||
throw Errors.unknown
|
||||
}
|
||||
} catch (e) { next(e) }
|
||||
})
|
||||
module.exports = router;
|
|
@ -10,12 +10,18 @@ let pagination = require('../lib/pagination')
|
|||
let { Ban, Item, Transaction, Inventory, ItemCategory, User, Ip, sequelize, Sequelize } = require('../models')
|
||||
let img2 = cryptoRandomString({length: 32})
|
||||
let img = img2
|
||||
const rateLimit = require("express-rate-limit");
|
||||
const limiter = rateLimit({
|
||||
windowMs: 60 * 1000,
|
||||
max: 1,
|
||||
message: "{\"errors\":[{\"name\":\"rateLimit\",\"message\":\"You may only make 1 request to this endpoint per minute.\",\"status\":429}]}"
|
||||
});
|
||||
const storage = multer.diskStorage({
|
||||
destination: (req, file, cb) => {
|
||||
cb(null, 'C:\\Users\\matth\\Documents\\GitHub\\website\\rendering\\global\\');
|
||||
},
|
||||
filename: (req, file, cb) => {
|
||||
cb(null, img)
|
||||
cb(null, img + '.png')
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -218,12 +224,16 @@ try {
|
|||
} catch (err) { next(err) }
|
||||
})
|
||||
|
||||
router.post('/upload/:id', auth, upload.single('image'), async (req, res, next) => {
|
||||
router.post('/upload/:id', auth, limiter, upload.single('image'), async (req, res, next) => {
|
||||
try {
|
||||
|
||||
let findCategory = await ItemCategory.findOne({
|
||||
where: {id: req.params.id}
|
||||
});
|
||||
console.log(findCategory.id)
|
||||
if(!findCategory) {
|
||||
throw Errors.marketplaceNotFound
|
||||
}
|
||||
let user = await User.findOne({
|
||||
where: {id: req.userData.UserId}
|
||||
});
|
||||
|
@ -237,19 +247,161 @@ router.post('/upload/:id', auth, upload.single('image'), async (req, res, next)
|
|||
if(req.body.limited && !req.userData.admin && !user.admin) {
|
||||
throw Errors.marketplaceAdminOnly
|
||||
}
|
||||
if(!req.body.image) {
|
||||
throw Errors.uploadFile
|
||||
if(req.body.quantityAllowed && !req.userData.admin && !user.admin) {
|
||||
throw Errors.marketplaceAdminOnly
|
||||
}
|
||||
if(findCategory) {
|
||||
let img3 = cryptoRandomString({length: 32})
|
||||
let img4 = img3
|
||||
let marketplace = await Item.create({
|
||||
name: req.body.name, UserId: user.id, sourceFile: img, previewFile: img, limited: req.body.limited, salePrice: req.body.salePrice, saleEnabled: req.body.saleEnabled, price: req.body.price, quantityAllowed: req.body.quantityAllowed, approved: false, itemCategoryId: findCategory.id
|
||||
name: req.body.name, UserId: user.id, sourceFile: img, previewFile: img4, limited: req.body.limited, salePrice: req.body.salePrice, saleEnabled: req.body.saleEnabled, price: req.body.price, quantityAllowed: req.body.quantityAllowed, approved: false, ItemCategoryId: findCategory.id, description: req.body.description
|
||||
})
|
||||
if(marketplace.ItemCategoryId === 0) {
|
||||
var type = "hat"
|
||||
} else if(marketplace.ItemCategoryId === 1) {
|
||||
var type = "face"
|
||||
} else if(marketplace.ItemCategoryId === 2) {
|
||||
var type = "shirt"
|
||||
} else if(marketplace.ItemCategoryId === 3) {
|
||||
var type = "pants"
|
||||
}
|
||||
const { exec } = require('child_process');
|
||||
var fs = require("fs");
|
||||
let rootPathRender = "C:/Users/matth/Documents/GitHub/website/";
|
||||
var blendFilePath = rootPathRender + "rendering/avatar.blend";
|
||||
var imageSavePath = "C:/xampp21/htdocs/marketplace/avatars/" + img4 + ".png";
|
||||
var pythonFilePath = "rendering/usercontent/"+req.userData.UserId+".py";
|
||||
if(type === "face") {
|
||||
var faceFilePath = rootPathRender + "rendering/global/" + marketplace.sourceFile + ".png";
|
||||
var shirtFilePath = rootPathRender + "rendering/global/0.png";
|
||||
var pantsFilePath = rootPathRender + "rendering/global/0.png";
|
||||
var hat = ''
|
||||
}
|
||||
if(type === "shirt") {
|
||||
var faceFilePath = rootPathRender + "rendering/global/defaultFace.png";
|
||||
var shirtFilePath = rootPathRender + "rendering/global/" + marketplace.sourceFile + ".png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
var pantsFilePath = rootPathRender + "rendering/global/0.png";
|
||||
var hat = ''
|
||||
}
|
||||
if(type === "pants") {
|
||||
var faceFilePath = rootPathRender + "rendering/global/defaultFace.png";
|
||||
var shirtFilePath = rootPathRender + "rendering/global/0.png";
|
||||
var hat = ''
|
||||
var pantsFilePath = rootPathRender + "rendering/global/" + marketplace.sourceFile + ".png"; // should be set to 0 by default, 0.png will just be a transparent image
|
||||
}
|
||||
if(type === "hat") {
|
||||
var faceFilePath = rootPathRender + "rendering/global/defaultFace.png";
|
||||
var shirtFilePath = rootPathRender + "rendering/global/0.png";
|
||||
var pantsFilePath = rootPathRender + "rendering/global/0.png";
|
||||
var hatFilePath = rootPathRender + "rendering/hats/" + marketplace.sourceFile + ".obj"
|
||||
var hat = "hat_import = bpy.ops.import_scene.obj(filepath='"+hatFilePath+"')\nhat = bpy.context.selected_objects[0]\nbpy.context.selected_objects[0].data.name = 'hat'\nbpy.context.selected_objects[0].name = 'hat'\nhat_material = bpy.data.materials.new('hat')\nhat_material.diffuse_shader = 'LAMBERT'\nhat.active_material = hat_material\nhat_image = bpy.data.images.load(filepath = '" + rootPathRender + "rendering/hats/"+marketplace.sourceFile+".png')\nhat_texture = bpy.data.textures.new('ColorTex', type = 'IMAGE')\nhat_texture.image = hat_image\nhat_add = bpy.data.objects['hat'].active_material.texture_slots.add()\nhat_add.texture = hat_texture";
|
||||
}
|
||||
|
||||
var imports = "import bpy";
|
||||
var functions = "def hex_to_rgb(value):\n gamma = 2.05\n value = value.lstrip('#')\n lv = len(value)\n fin = list(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))\n r = pow(fin[0] / 255, gamma)\n g = pow(fin[1] / 255, gamma)\n b = pow(fin[2] / 255, gamma)\n fin.clear()\n fin.append(r)\n fin.append(g)\n fin.append(b)\n return tuple(fin)";
|
||||
var blenderImport = "bpy.ops.wm.open_mainfile(filepath='"+blendFilePath+"')";
|
||||
var headColor = "bpy.data.objects['Head'].select = True\nbpy.data.materials['Head'].diffuse_color = hex_to_rgb('#ffffff')\nbpy.data.materials['Face'].diffuse_color = hex_to_rgb('#ffffff')";
|
||||
var leftArmColor = "bpy.data.objects['Left Arm'].select = True\nbpy.data.objects['Left Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')";
|
||||
var rightArmColor = "bpy.data.objects['Right Arm'].select = True\nbpy.data.objects['Right Arm'].active_material.diffuse_color = hex_to_rgb('#ffffff')";
|
||||
var bodyColor = "bpy.data.objects['Torso'].select = True\nbpy.data.objects['Torso'].active_material.diffuse_color = hex_to_rgb('#ffffff')";
|
||||
var leftLegColor = "bpy.data.objects['Left Leg'].select = True\nbpy.data.objects['Left Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')";
|
||||
var rightLegColor = "bpy.data.objects['Right Leg'].select = True\nbpy.data.objects['Right Leg'].active_material.diffuse_color = hex_to_rgb('#ffffff')";
|
||||
var colors = headColor+"\n"+leftArmColor+"\n"+bodyColor+"\n"+rightArmColor+"\n"+leftLegColor+"\n"+rightLegColor;
|
||||
|
||||
var face = "face_Image = bpy.data.images.load(filepath = '"+faceFilePath+"')\nbpy.data.textures['Face'].image = face_Image";
|
||||
var shirt = "shirt_Image = bpy.data.images.load(filepath = '"+shirtFilePath+"')\nbpy.data.textures['Shirt'].image = shirt_Image\nbpy.data.textures['ShirtR'].image = shirt_Image\nbpy.data.textures['ShirtL'].image = shirt_Image";
|
||||
var pants = "pants_Image = bpy.data.images.load(filepath = '"+pantsFilePath+"')\nbpy.data.textures['PantsR'].image = pants_Image\nbpy.data.textures['PantsL'].image = pants_Image";
|
||||
var render = "for obj in bpy.data.objects:\n obj.select = False\n bpy.ops.object.select_all(action='SELECT')\nbpy.ops.view3d.camera_to_view_selected()\nscene = bpy.context.scene\nscene.render.image_settings.file_format = 'PNG'\nscene.render.filepath = '"+imageSavePath+"'\nbpy.ops.render.render(write_still = 1)";
|
||||
var python = imports+"\n"+functions+"\n"+blenderImport+"\n"+colors+"\n"+hat+"\n"+face+"\n"+shirt+"\n"+pants+"\n"+render;
|
||||
fs.writeFile("rendering/usercontent/"+marketplace.id+".py", python, function(err,data){
|
||||
if(err) { console.log(err) }
|
||||
})
|
||||
|
||||
res.json(marketplace.toJSON())
|
||||
exec("blender -b -P rendering/usercontent/"+marketplace.id+".py", (err, stdout, stderr) => {
|
||||
if(err) { console.log(err) }
|
||||
console.log("stdout: " + stdout);
|
||||
console.log("stderr: " + stderr);
|
||||
res.status(200)
|
||||
res.json(marketplace.toJSON())
|
||||
});
|
||||
} else {
|
||||
throw Errors.marketplaceNotFound
|
||||
}
|
||||
} catch (e) { next(e) }
|
||||
})
|
||||
|
||||
router.put('/apply/:id', auth, async (req, res, next) => {
|
||||
try {
|
||||
let item = await Inventory.findOne({
|
||||
where: {ItemId: req.params.id, UserId: req.userData.UserId}
|
||||
});
|
||||
if (item) {
|
||||
let marketplaceItem = await Item.findOne({
|
||||
where: {id: item.ItemId}
|
||||
})
|
||||
if (marketplaceItem) {
|
||||
console.log(marketplaceItem)
|
||||
if (marketplaceItem.ItemCategoryId === 0) {
|
||||
await User.update({ hatId: marketplaceItem.id }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else if (marketplaceItem.ItemCategoryId === 1) {
|
||||
await User.update({ faceId: marketplaceItem.id }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else if (marketplaceItem.ItemCategoryId === 2) {
|
||||
await User.update({ shirtId: marketplaceItem.id }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else if (marketplaceItem.ItemCategoryId === 3) {
|
||||
await User.update({ pantsId: marketplaceItem.id }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else {
|
||||
throw Errors.unknown
|
||||
}
|
||||
} else {
|
||||
console.log('second to last')
|
||||
throw Errors.unowned
|
||||
}
|
||||
} else {
|
||||
console.log('last')
|
||||
throw Errors.unowned
|
||||
}
|
||||
} catch (e) { next(e) }
|
||||
})
|
||||
|
||||
router.put('/remove/:id', auth, async (req, res, next) => {
|
||||
try {
|
||||
let item = await Inventory.findOne({
|
||||
where: {ItemId: req.params.id, UserId: req.userData.UserId}
|
||||
});
|
||||
if (item) {
|
||||
let marketplaceItem = await Item.findOne({
|
||||
where: {id: item.ItemId}
|
||||
})
|
||||
if (marketplaceItem) {
|
||||
console.log(marketplaceItem)
|
||||
if (marketplaceItem.ItemCategoryId === 0) {
|
||||
await User.update({ hatId: null }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else if (marketplaceItem.ItemCategoryId === 1) {
|
||||
await User.update({ faceId: null }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else if (marketplaceItem.ItemCategoryId === 2) {
|
||||
await User.update({ shirtId: null }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else if (marketplaceItem.ItemCategoryId === 3) {
|
||||
await User.update({ pantsId: null }, {where: {id: req.userData.UserId}})
|
||||
res.json({success: true})
|
||||
} else {
|
||||
throw Errors.unknown
|
||||
}
|
||||
} else {
|
||||
console.log('second to last')
|
||||
throw Errors.unowned
|
||||
}
|
||||
} else {
|
||||
console.log('last')
|
||||
throw Errors.unowned
|
||||
}
|
||||
} catch (e) { next(e) }
|
||||
})
|
||||
|
||||
module.exports = router
|
||||
|
|
|
@ -104,6 +104,7 @@ if(!config.maintenance) {
|
|||
app.use('/api/v1/kaverti/job-apply', require('./routes/StaffApplications'))
|
||||
app.use('/api/v1/admin/', require('./routes/admin'))
|
||||
app.use('/api/v1/users/render', require('./routes/avatar'))
|
||||
app.use('/api/v1/avatar', require('./routes/avatar'))
|
||||
app.use('/api/v1/userinfo', require('./routes/userinfo'))
|
||||
app.use('/api/v1/wall', require('./routes/user_wall'))
|
||||
app.use('/api/v1/chat/conversation', require('./routes/conversation'));
|
||||
|
|
Loading…
Reference in New Issue